summaryrefslogtreecommitdiffstats
path: root/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0347-arm64-renesas-r8a77980-use-CSI-4-lanes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0347-arm64-renesas-r8a77980-use-CSI-4-lanes.patch')
-rw-r--r--bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0347-arm64-renesas-r8a77980-use-CSI-4-lanes.patch339
1 files changed, 339 insertions, 0 deletions
diff --git a/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0347-arm64-renesas-r8a77980-use-CSI-4-lanes.patch b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0347-arm64-renesas-r8a77980-use-CSI-4-lanes.patch
new file mode 100644
index 00000000..6a3e4cc7
--- /dev/null
+++ b/bsp/meta-rcar/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0347-arm64-renesas-r8a77980-use-CSI-4-lanes.patch
@@ -0,0 +1,339 @@
+From 64aba50a93e9a1980b291cb71bd7a62d1faa9ca7 Mon Sep 17 00:00:00 2001
+From: Andrey Dolnikov <andrey.dolnikov@cogentembedded.com>
+Date: Wed, 7 Nov 2018 13:06:39 +0300
+Subject: [PATCH 167/211] arm64: renesas: r8a77980: use CSI 4 lanes
+
+H/w must use 4 lanes
+add PWM for external FSIN on deserializers
+
+Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
+---
+ .../boot/dts/renesas/r8a77980-v3hsk-vb-4ch.dts | 60 ++++---------------
+ .../boot/dts/renesas/r8a77980-v3hsk-vb-8ch.dts | 69 +++++++---------------
+ 2 files changed, 32 insertions(+), 97 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/renesas/r8a77980-v3hsk-vb-4ch.dts b/arch/arm64/boot/dts/renesas/r8a77980-v3hsk-vb-4ch.dts
+index 1dd93fd..406ff2f 100644
+--- a/arch/arm64/boot/dts/renesas/r8a77980-v3hsk-vb-4ch.dts
++++ b/arch/arm64/boot/dts/renesas/r8a77980-v3hsk-vb-4ch.dts
+@@ -108,32 +108,13 @@
+ &csi40 {
+ status = "okay";
+
+- virtual,channel {
+- csi2_vc0 {
+- data,type = "ycbcr422";
+- receive,vc = <0>;
+- };
+- csi2_vc1 {
+- data,type = "ycbcr422";
+- receive,vc = <1>;
+- };
+- csi2_vc2 {
+- data,type = "ycbcr422";
+- receive,vc = <2>;
+- };
+- csi2_vc3 {
+- data,type = "ycbcr422";
+- receive,vc = <3>;
+- };
+- };
+-
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi2_40_ep: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ csi-rate = <1450>;
+ };
+ };
+@@ -142,32 +123,13 @@
+ &csi41 {
+ status = "okay";
+
+- virtual,channel {
+- csi2_vc0 {
+- data,type = "ycbcr422";
+- receive,vc = <0>;
+- };
+- csi2_vc1 {
+- data,type = "ycbcr422";
+- receive,vc = <1>;
+- };
+- csi2_vc2 {
+- data,type = "ycbcr422";
+- receive,vc = <2>;
+- };
+- csi2_vc3 {
+- data,type = "ycbcr422";
+- receive,vc = <3>;
+- };
+- };
+-
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi2_41_ep: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ csi-rate = <1450>;
+ };
+ };
+@@ -201,7 +163,7 @@
+ port@0 {
+ ov106xx_in0: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&vin0ep0>;
+ };
+ };
+@@ -219,7 +181,7 @@
+ port@0 {
+ ov106xx_in1: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&vin1ep0>;
+ };
+ };
+@@ -237,7 +199,7 @@
+ port@0 {
+ ov106xx_in2: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&vin6ep0>;
+ };
+ };
+@@ -255,7 +217,7 @@
+ port@0 {
+ ov106xx_in3: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&vin7ep0>;
+ };
+ };
+@@ -272,7 +234,7 @@
+ clock-names = "ref_clk";
+ reg = <0x3a>;
+ ti,links = <4>;
+- ti,lanes = <3>;
++ ti,lanes = <4>;
+ ti,forwarding-mode = "round-robin";
+ ti,cable-mode = "coax";
+ gpios = <&gpio_exp_ch0 13 GPIO_ACTIVE_LOW>;
+@@ -559,7 +521,7 @@
+ vin0ep0: endpoint {
+ csi,select = "csi40";
+ virtual,channel = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&ov106xx_in0>;
+ };
+ };
+@@ -587,7 +549,7 @@
+ vin1ep0: endpoint {
+ csi,select = "csi40";
+ virtual,channel = <1>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&ov106xx_in1>;
+ };
+ };
+@@ -615,7 +577,7 @@
+ vin6ep0: endpoint {
+ csi,select = "csi41";
+ virtual,channel = <2>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&ov106xx_in2>;
+ };
+ };
+@@ -643,7 +605,7 @@
+ vin7ep0: endpoint {
+ csi,select = "csi41";
+ virtual,channel = <3>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&ov106xx_in3>;
+ };
+ };
+diff --git a/arch/arm64/boot/dts/renesas/r8a77980-v3hsk-vb-8ch.dts b/arch/arm64/boot/dts/renesas/r8a77980-v3hsk-vb-8ch.dts
+index 0db52f4..f8657ed 100644
+--- a/arch/arm64/boot/dts/renesas/r8a77980-v3hsk-vb-8ch.dts
++++ b/arch/arm64/boot/dts/renesas/r8a77980-v3hsk-vb-8ch.dts
+@@ -108,25 +108,6 @@
+ &csi40 {
+ status = "okay";
+
+- virtual,channel {
+- csi2_vc0 {
+- data,type = "ycbcr422";
+- receive,vc = <0>;
+- };
+- csi2_vc1 {
+- data,type = "ycbcr422";
+- receive,vc = <1>;
+- };
+- csi2_vc2 {
+- data,type = "ycbcr422";
+- receive,vc = <2>;
+- };
+- csi2_vc3 {
+- data,type = "ycbcr422";
+- receive,vc = <3>;
+- };
+- };
+-
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+@@ -142,32 +123,13 @@
+ &csi41 {
+ status = "okay";
+
+- virtual,channel {
+- csi2_vc0 {
+- data,type = "ycbcr422";
+- receive,vc = <0>;
+- };
+- csi2_vc1 {
+- data,type = "ycbcr422";
+- receive,vc = <1>;
+- };
+- csi2_vc2 {
+- data,type = "ycbcr422";
+- receive,vc = <2>;
+- };
+- csi2_vc3 {
+- data,type = "ycbcr422";
+- receive,vc = <3>;
+- };
+- };
+-
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi2_41_ep: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ csi-rate = <1450>;
+ };
+ };
+@@ -359,7 +321,7 @@
+ port@0 {
+ ov106xx_in4: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&vin4ep0>;
+ };
+ };
+@@ -377,7 +339,7 @@
+ port@0 {
+ ov106xx_in5: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&vin5ep0>;
+ };
+ };
+@@ -395,7 +357,7 @@
+ port@0 {
+ ov106xx_in6: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&vin6ep0>;
+ };
+ };
+@@ -413,7 +375,7 @@
+ port@0 {
+ ov106xx_in7: endpoint {
+ clock-lanes = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&vin7ep0>;
+ };
+ };
+@@ -430,7 +392,7 @@
+ clock-names = "ref_clk";
+ reg = <0x3a>;
+ ti,links = <4>;
+- ti,lanes = <3>;
++ ti,lanes = <4>;
+ ti,forwarding-mode = "round-robin";
+ ti,cable-mode = "coax";
+ gpios = <&gpio_exp_ch1 13 GPIO_ACTIVE_LOW>;
+@@ -682,12 +644,23 @@
+ function = "i2c1";
+ };
+
++ pwm0_pins: pwm0 {
++ groups = "pwm0_a";
++ function = "pwm0";
++ };
++
+ scif3_pins: scif3 {
+ groups = "scif3_data";
+ function = "scif3";
+ };
+ };
+
++&pwm0 {
++ pinctrl-0 = <&pwm0_pins>;
++ pinctrl-names = "default";
++ status = "okay";
++};
++
+ &scif3 {
+ pinctrl-0 = <&scif3_pins>;
+ pinctrl-names = "default";
+@@ -822,7 +795,7 @@
+ vin4ep0: endpoint {
+ csi,select = "csi41";
+ virtual,channel = <0>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&ov106xx_in4>;
+ };
+ };
+@@ -850,7 +823,7 @@
+ vin5ep0: endpoint {
+ csi,select = "csi41";
+ virtual,channel = <1>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&ov106xx_in5>;
+ };
+ };
+@@ -878,7 +851,7 @@
+ vin6ep0: endpoint {
+ csi,select = "csi41";
+ virtual,channel = <2>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&ov106xx_in6>;
+ };
+ };
+@@ -906,7 +879,7 @@
+ vin7ep0: endpoint {
+ csi,select = "csi41";
+ virtual,channel = <3>;
+- data-lanes = <1 2 3>;
++ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&ov106xx_in7>;
+ };
+ };
+--
+2.7.4
+