summaryrefslogtreecommitdiffstats
path: root/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0457-media-i2c-ov10640-fix-dvp-order-and-soft-reset.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0457-media-i2c-ov10640-fix-dvp-order-and-soft-reset.patch')
-rw-r--r--bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0457-media-i2c-ov10640-fix-dvp-order-and-soft-reset.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0457-media-i2c-ov10640-fix-dvp-order-and-soft-reset.patch b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0457-media-i2c-ov10640-fix-dvp-order-and-soft-reset.patch
new file mode 100644
index 00000000..71c116d2
--- /dev/null
+++ b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0457-media-i2c-ov10640-fix-dvp-order-and-soft-reset.patch
@@ -0,0 +1,67 @@
+From f35b83dbb68c5c9d01b9c10f8afc95f436a0a40c Mon Sep 17 00:00:00 2001
+From: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
+Date: Thu, 26 Dec 2019 15:27:34 +0300
+Subject: [PATCH] media: i2c: ov10640: fix dvp order and soft reset
+
+1) the s/w reset must be removed since some comeras have
+serizlizer connected to imager gpio and the address of imager
+may change after soft reset
+
+2) add dvp order
+
+Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
+---
+ drivers/media/i2c/soc_camera/ov10640.c | 6 ++++++
+ drivers/media/i2c/soc_camera/ov10640.h | 6 +++---
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/media/i2c/soc_camera/ov10640.c b/drivers/media/i2c/soc_camera/ov10640.c
+index 89dac1b..6414c6e 100644
+--- a/drivers/media/i2c/soc_camera/ov10640.c
++++ b/drivers/media/i2c/soc_camera/ov10640.c
+@@ -481,6 +481,8 @@ static int ov10640_initialize(struct i2c_client *client)
+ ov10640_otp_id_read(client);
+ /* Program wizard registers */
+ ov10640_set_regs(client, ov10640_regs_wizard_r1e, ARRAY_SIZE(ov10640_regs_wizard_r1e));
++ /* Set DVP bit swap */
++ reg16_write(client, 0x3124, priv->dvp_order << 4);
+
+ dev_info(&client->dev, "ov10640 PID %x, res %dx%d, OTP_ID %02x:%02x:%02x:%02x:%02x:%02x\n",
+ pid, OV10640_MAX_WIDTH, OV10640_MAX_HEIGHT, priv->id[0], priv->id[1], priv->id[2], priv->id[3], priv->id[4], priv->id[5]);
+@@ -552,6 +554,10 @@ static int ov10640_parse_dt(struct device_node *np, struct ov10640_priv *priv)
+ }
+ client->addr = tmp_addr;
+
++ /* module params override dts */
++ if (dvp_order != -1)
++ priv->dvp_order = dvp_order;
++
+ return 0;
+ }
+
+diff --git a/drivers/media/i2c/soc_camera/ov10640.h b/drivers/media/i2c/soc_camera/ov10640.h
+index dbc6c0b..32cdb2c 100644
+--- a/drivers/media/i2c/soc_camera/ov10640.h
++++ b/drivers/media/i2c/soc_camera/ov10640.h
+@@ -1,7 +1,7 @@
+ /*
+- * OmniVision ov10640 sensor camera wizard 1280x800@30/UYVY/BT601/8bit
++ * OmniVision ov10640 sensor camera wizard 1280x1080@30/BGGR/BT601/12bit
+ *
+- * Copyright (C) 2015-2017 Cogent Embedded, Inc.
++ * Copyright (C) 2015-2019 Cogent Embedded, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+@@ -1185,7 +1185,7 @@ static const struct ov10640_reg ov10640_regs_wizard_r1f[] = {
+ /* DVP_1280x1080_COMB12_raw 30fps */
+ static const struct ov10640_reg ov10640_regs_wizard_r1e[] = {
+ /* ov10640_R1E_setting_3x12_1280x1080_MIPIin_4lane_raw */
+-{0x3013, 0x01},
++//{0x3013, 0x01},
+ {OV10640_DELAY, 10},
+ {0x328a, 0x11},
+ {0x313f, 0x80},
+--
+2.7.4
+