summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir Barinov <vladimir.barinov@cogentembedded.com>2017-07-27 16:19:01 +0300
committerVladimir Barinov <vladimir.barinov@cogentembedded.com>2017-07-27 16:19:01 +0300
commit3b54c5af68a83e0b4b211232f65d73e0c0ded04f (patch)
tree8edddc643db92be6658c6227043fd6e4ce9f547c
parent8c94bd9cd068ca1e8bcc685706ebc4a21982d45b (diff)
LVDS: optional compilation for Cogent firmware
This allows to use Cogent generated frimware for LVDS cameras (ov490+0v10640).
-rw-r--r--meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch123
-rw-r--r--meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0043-media-ov490-disable-stats-rows.patch28
-rw-r--r--meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend1
3 files changed, 130 insertions, 22 deletions
diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch
index bc15c75..d3fefb4 100644
--- a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch
+++ b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch
@@ -31,20 +31,20 @@ Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
.../boot/dts/renesas/r8a7795-h3ulcb-had-alfa.dts | 22 +
.../boot/dts/renesas/r8a7795-h3ulcb-had-beta.dts | 23 +
.../arm64/boot/dts/renesas/r8a7795-h3ulcb-had.dtsi | 219 +++
- .../boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts | 445 +++++
- arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts | 1703 +++++++++++++++++++
+ .../boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts | 469 +++++
+ arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts | 1712 +++++++++++++++++++
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-vb.dts | 1787 ++++++++++++++++++++
.../arm64/boot/dts/renesas/r8a7795-h3ulcb-view.dts | 546 ++++++
.../boot/dts/renesas/r8a7795-salvator-x-view.dts | 552 ++++++
- .../boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts | 445 +++++
- arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts | 1267 ++++++++++++++
+ .../boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts | 469 +++++
+ arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts | 1284 ++++++++++++++
.../arm64/boot/dts/renesas/r8a7796-m3ulcb-view.dts | 287 ++++
.../boot/dts/renesas/r8a7796-salvator-x-view.dts | 318 ++++
arch/arm64/boot/dts/renesas/ulcb-kf-cmos.dtsi | 75 +
arch/arm64/boot/dts/renesas/ulcb-kf-rpi.dtsi | 75 +
- arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi | 33 +
+ arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi | 44 +
arch/arm64/boot/dts/renesas/ulcb-vb-cn12.dtsi | 515 ++++++
- 25 files changed, 13633 insertions(+)
+ 25 files changed, 13718 insertions(+)
create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-had-alfa.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-had-beta.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-had.dtsi
@@ -5733,10 +5733,10 @@ index 0000000..4a00426
+};
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts
new file mode 100644
-index 0000000..fc613d2
+index 0000000..f3e5bda
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts
-@@ -0,0 +1,445 @@
+@@ -0,0 +1,469 @@
+/*
+ * Device Tree Source for the H3ULCB Kingfisher V1 board
+ *
@@ -5819,6 +5819,25 @@ index 0000000..fc613d2
+ regulator-always-on;
+ };
+
++ mpcie_3v3: regulator@12 {
++ compatible = "regulator-fixed";
++ regulator-name = "mPCIe 3v3";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ gpio = <&gpio_ext_77 14 GPIO_ACTIVE_HIGH>;
++ enable-active-high;
++ };
++
++ mpcie_1v8: regulator@13 {
++ compatible = "regulator-fixed";
++ regulator-name = "mPCIe 1v8";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ gpio = <&gpio_ext_77 15 GPIO_ACTIVE_HIGH>;
++ startup-delay-us = <200000>;
++ enable-active-high;
++ };
++
+ kim {
+ nshutdown_gpio = <343>; /* gpio_ext_74 pin 3 */
+ };
@@ -6182,12 +6201,17 @@ index 0000000..fc613d2
+&wlcore {
+ interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+};
++
++&pciec1 {
++ pcie3v3-supply = <&mpcie_3v3>;
++ pcie1v8-supply = <&mpcie_1v8>;
++};
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts
new file mode 100644
-index 0000000..c0481dc
+index 0000000..71e8881
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts
-@@ -0,0 +1,1703 @@
+@@ -0,0 +1,1712 @@
+/*
+ * Device Tree Source for the H3ULCB Kingfisher board on r8a7795
+ *
@@ -6232,7 +6256,9 @@ index 0000000..c0481dc
+ regulator-name = "SDHI3 Vcc";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
-+ regulator-always-on;
++
++ gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>;
++ enable-active-high;
+ };
+
+ vccq_sdhi3: regulator@5 {
@@ -6455,6 +6481,12 @@ index 0000000..c0481dc
+ power-source = <3300>;
+ };
+
++ sdhi3_pins_1v8: sd3_1v8 {
++ groups = "sdhi3_data4", "sdhi3_ctrl";
++ function = "sdhi3";
++ power-source = <1800>;
++ };
++
+ sound_0_pins: sound0 {
+ groups = "ssi78_ctrl", "ssi7_data", "ssi8_data";
+ function = "ssi";
@@ -7805,7 +7837,8 @@ index 0000000..c0481dc
+
+&sdhi3 {
+ pinctrl-0 = <&sdhi3_pins_3v3>;
-+ pinctrl-names = "default";
++ pinctrl-1 = <&sdhi3_pins_1v8>;
++ pinctrl-names = "default", "state_uhs";
+
+ vmmc-supply = <&wlan_en>;
+ vqmmc-supply = <&vccq_sdhi3>;
@@ -10796,10 +10829,10 @@ index 0000000..fb12a39f3
+};
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts
new file mode 100644
-index 0000000..202af9c
+index 0000000..9264680
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts
-@@ -0,0 +1,445 @@
+@@ -0,0 +1,469 @@
+/*
+ * Device Tree Source for the M3ULCB Kingfisher V1 board
+ *
@@ -10882,6 +10915,25 @@ index 0000000..202af9c
+ regulator-always-on;
+ };
+
++ mpcie_3v3: regulator@12 {
++ compatible = "regulator-fixed";
++ regulator-name = "mPCIe 3v3";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ gpio = <&gpio_ext_77 14 GPIO_ACTIVE_HIGH>;
++ enable-active-high;
++ };
++
++ mpcie_1v8: regulator@13 {
++ compatible = "regulator-fixed";
++ regulator-name = "mPCIe 1v8";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ gpio = <&gpio_ext_77 15 GPIO_ACTIVE_HIGH>;
++ startup-delay-us = <200000>;
++ enable-active-high;
++ };
++
+ kim {
+ nshutdown_gpio = <343>; /* gpio_ext_74 pin 3 */
+ };
@@ -11245,12 +11297,17 @@ index 0000000..202af9c
+&wlcore {
+ interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+};
++
++&pciec1 {
++ pcie3v3-supply = <&mpcie_3v3>;
++ pcie1v8-supply = <&mpcie_1v8>;
++};
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts
new file mode 100644
-index 0000000..e5aaa88
+index 0000000..5a6c38b
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts
-@@ -0,0 +1,1273 @@
+@@ -0,0 +1,1284 @@
+/*
+ * Device Tree Source for the M3ULCB Kingfisher board on r8a7796
+ *
@@ -11295,7 +11352,9 @@ index 0000000..e5aaa88
+ regulator-name = "SDHI3 Vcc";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
-+ regulator-always-on;
++
++ gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>;
++ enable-active-high;
+ };
+
+ vccq_sdhi3: regulator@5 {
@@ -11518,6 +11577,12 @@ index 0000000..e5aaa88
+ power-source = <3300>;
+ };
+
++ sdhi3_pins_1v8: sd3_1v8 {
++ groups = "sdhi3_data4", "sdhi3_ctrl";
++ function = "sdhi3";
++ power-source = <1800>;
++ };
++
+ sound_0_pins: sound0 {
+ groups = "ssi78_ctrl", "ssi7_data", "ssi8_data";
+ function = "ssi";
@@ -12436,7 +12501,8 @@ index 0000000..e5aaa88
+
+&sdhi3 {
+ pinctrl-0 = <&sdhi3_pins_3v3>;
-+ pinctrl-names = "default";
++ pinctrl-1 = <&sdhi3_pins_1v8>;
++ pinctrl-names = "default", "state_uhs";
+
+ vmmc-supply = <&wlan_en>;
+ vqmmc-supply = <&vccq_sdhi3>;
@@ -12522,6 +12588,8 @@ index 0000000..e5aaa88
+
+/* uncomment to enable CN47: SD on SDHI3 */
+//#include "ulcb-kf-sd3.dtsi"
++/* CN48 (Raspberry Pi) on VIN4 */
++#include "ulcb-kf-rpi.dtsi"
+/* CN29: (CMOS camera) on VIN5 */
+#include "ulcb-kf-cmos.dtsi"
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-view.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-view.dts
@@ -13305,10 +13373,10 @@ index 0000000..d3b4ece
+};
diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi
new file mode 100644
-index 0000000..ef481d3
+index 0000000..216e800
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi
-@@ -0,0 +1,33 @@
+@@ -0,0 +1,44 @@
+/*
+ * Device Tree Source for the H3/M3ULCB Kingfisher board:
+ * this overrides WIFI in favour SD on SDHI3
@@ -13326,15 +13394,26 @@ index 0000000..ef481d3
+ enable-active-high;
+};
+
++&vccq_sdhi3 {
++ compatible = "regulator-gpio";
++
++ regulator-min-microvolt = <1800000>;
++
++ gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
++ gpios-states = <1>;
++ states = <3300000 1
++ 1800000 0>;
++};
++
+&sdhi3 {
+ /delete-property/non-removable;
+ /delete-property/cap-power-off-card;
+ /delete-property/keep-power-in-suspend;
+ /delete-property/enable-sdio-wakeup;
-+ /delete-property/sd-uhs-sdr104;
++ /delete-property/max-frequency;
++ /delete-property/no-1-8-v;
+
+ vmmc-supply = <&vcc_sdhi3>;
-+ max-frequency = <46000000>;
+ cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
+ wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
+};
diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0043-media-ov490-disable-stats-rows.patch b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0043-media-ov490-disable-stats-rows.patch
new file mode 100644
index 0000000..a1d1f0d
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0043-media-ov490-disable-stats-rows.patch
@@ -0,0 +1,28 @@
+From 93c918815a618bd799e7c8a40a17da2282c4b23c Mon Sep 17 00:00:00 2001
+From: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
+Date: Wed, 26 Jul 2017 21:03:34 +0300
+Subject: [PATCH] media: ov490: disable stats rows
+
+This is needed if Cogent generated firmware used
+
+Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
+---
+ drivers/media/i2c/soc_camera/ov490_ov10640.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/media/i2c/soc_camera/ov490_ov10640.h b/drivers/media/i2c/soc_camera/ov490_ov10640.h
+index dde81ef..0f5b657 100644
+--- a/drivers/media/i2c/soc_camera/ov490_ov10640.h
++++ b/drivers/media/i2c/soc_camera/ov490_ov10640.h
+@@ -35,7 +35,7 @@ static const struct ov490_reg ov490_regs_wizard[] = {
+ {0x5000, 0x00},
+ {0x5001, 0x30},
+ {0x5002, 0x91},
+-{0x5003, 0x08},
++{0x5003, 0x00},
+ {0xfffe, 0x80},
+ {0x00c0, 0xc1},
+ /* Ov490 FSIN: app_fsin_from_fsync */
+--
+1.9.1
+
diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend
index 5cae1e5..ef06f5b 100644
--- a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend
+++ b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend
@@ -39,6 +39,7 @@ SRC_URI_append = " \
file://0040-arm64-dts-renesas-add-ADAS-boards.patch \
file://0041-arm64-dts-renesas-ulcb-enlarge-cma-region.patch \
file://0042-arm64-dts-renesas-r8a7795-es1-h3ulcb-disable-eMMC.patch \
+ ${@base_conditional("LVDSCAMERA_USE_COGENT_FIRMWARE", "1", " file://0043-media-ov490-disable-stats-rows.patch", "", d)} \
${@base_conditional("LVDSCAMERA_FIRST4_TYPE1", "1", " file://0050-arm64-dts-Gen3-view-boards-TYPE1-first-4-cameras.patch", "", d)} \
${@base_conditional("LVDSCAMERA_SECOND4_TYPE1", "1", " file://0051-arm64-dts-Gen3-view-boards-TYPE1-second-4-cameras.patch", "", d)} \
${@base_conditional("LVDSCAMERA_FIRST4_TYPE2", "1", " file://0052-arm64-dts-Gen3-view-boards-TYPE2-first-4-cameras.patch", "", d)} \