summaryrefslogtreecommitdiffstats
path: root/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0507-media-i2c-ap0101-ap0201-fix-vendor-name-fsin-fix-on-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0507-media-i2c-ap0101-ap0201-fix-vendor-name-fsin-fix-on-.patch')
-rw-r--r--bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0507-media-i2c-ap0101-ap0201-fix-vendor-name-fsin-fix-on-.patch97
1 files changed, 97 insertions, 0 deletions
diff --git a/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0507-media-i2c-ap0101-ap0201-fix-vendor-name-fsin-fix-on-.patch b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0507-media-i2c-ap0101-ap0201-fix-vendor-name-fsin-fix-on-.patch
new file mode 100644
index 00000000..45b07d44
--- /dev/null
+++ b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0507-media-i2c-ap0101-ap0201-fix-vendor-name-fsin-fix-on-.patch
@@ -0,0 +1,97 @@
+From 9d8155ae4fbf9f480c993447f6f4753ec2f9c3bf Mon Sep 17 00:00:00 2001
+From: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
+Date: Thu, 30 Apr 2020 11:03:16 +0300
+Subject: [PATCH] media: i2c: ap0101,ap0201: fix vendor name, fsin fix on ap0102
+
+This fixes vendor name, fix fsync on ap0102
+
+Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
+---
+ drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.c | 14 ++++++++++++--
+ drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.h | 8 ++++++++
+ drivers/media/i2c/soc_camera/imagers/ap0201_ar023x.c | 6 ++++--
+ 3 files changed, 24 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.c b/drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.c
+index d2a6ff9..526d4ea 100644
+--- a/drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.c
++++ b/drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.c
+@@ -27,7 +27,9 @@ static const int ap0101_i2c_addr[] = {0x5d, 0x48};
+
+ #define AP0101_PID_REG 0x0000
+ #define AP0101_REV_REG 0x0058
++#define AP0100_PID 0x0062
+ #define AP0101_PID 0x0160
++#define AP0102_PID 0x0064
+
+ #define AP0101_MEDIA_BUS_FMT MEDIA_BUS_FMT_YUYV8_2X8
+
+@@ -434,7 +436,15 @@ static int ap0101_initialize(struct i2c_client *client)
+ priv->max_height = AP0101_MAX_HEIGHT;
+ #endif
+ /* Program wizard registers */
+- ap0101_set_regs(client, ap0101_regs_wizard, ARRAY_SIZE(ap0101_regs_wizard));
++ switch (pid) {
++ case AP0100_PID:
++ case AP0101_PID:
++ ap0101_set_regs(client, ap0101_regs_wizard, ARRAY_SIZE(ap0101_regs_wizard));
++ break;
++ case AP0102_PID:
++ ap0101_set_regs(client, ap0102_regs_wizard, ARRAY_SIZE(ap0102_regs_wizard));
++ break;
++ }
+ /* Read OTP IDs */
+ ap0101_otp_id_read(client);
+
+@@ -471,7 +481,7 @@ static const struct i2c_device_id ap0101_id[] = {
+ MODULE_DEVICE_TABLE(i2c, ap0101_id);
+
+ static const struct of_device_id ap0101_of_ids[] = {
+- { .compatible = "onsemi,ap0101", },
++ { .compatible = "onnn,ap0101", },
+ { }
+ };
+ MODULE_DEVICE_TABLE(of, ap0101_of_ids);
+diff --git a/drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.h b/drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.h
+index d0d6205..5755b87 100644
+--- a/drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.h
++++ b/drivers/media/i2c/soc_camera/imagers/ap0101_ar014x.h
+@@ -26,3 +26,11 @@ static const struct ap0101_reg ap0101_regs_wizard[] = {
+ {0x0040, 0x8100},
+ {AP0101_DELAY, 100},
+ };
++
++static const struct ap0101_reg ap0102_regs_wizard[] = {
++/* enable FSIN */
++{0xc890, 0x0303},
++{0xfc00, 0x2800},
++{0x0040, 0x8100},
++{AP0101_DELAY, 100},
++};
+diff --git a/drivers/media/i2c/soc_camera/imagers/ap0201_ar023x.c b/drivers/media/i2c/soc_camera/imagers/ap0201_ar023x.c
+index 7b274ce..10bf6f7 100644
+--- a/drivers/media/i2c/soc_camera/imagers/ap0201_ar023x.c
++++ b/drivers/media/i2c/soc_camera/imagers/ap0201_ar023x.c
+@@ -27,7 +27,9 @@ static const int ap0201_i2c_addr[] = {0x5d, 0x48};
+
+ #define AP0201_PID_REG 0x0000
+ #define AP0201_REV_REG 0x0058
+-#define AP0201_PID 0x0064
++#define AP0200_PID 0x0062
++#define AP0201_PID 0x0160
++#define AP0202_PID 0x0064
+
+ #define AP0201_MEDIA_BUS_FMT MEDIA_BUS_FMT_YUYV8_2X8
+
+@@ -446,7 +448,7 @@ static const struct i2c_device_id ap0201_id[] = {
+ MODULE_DEVICE_TABLE(i2c, ap0201_id);
+
+ static const struct of_device_id ap0201_of_ids[] = {
+- { .compatible = "onsemi,ap0201", },
++ { .compatible = "onnn,ap0201", },
+ { }
+ };
+ MODULE_DEVICE_TABLE(of, ap0201_of_ids);
+--
+2.7.4
+