Skip to contentSkip to conversation

R-Car H3 ES2.0 Salvator-X: Enable DU support in DT

PATCH In review Laurent Pinchart 7 participants 19 messages Jun 26, 2017 – Jul 13, 2017 2 messages not in the archive

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

v2 cover R-Car H3 ES2.0 Salvator-X: Enable DU support in DT

Hello,

This patch series enable DU support in DT for the R-Car H3 ES2.0 Salvator-X board. Patch 1/2 extends the DT bindings as needed, and patch 2/2 then enables DU in the SoC DT.

The patches are based on top of Simon's arm64-dt-for-v4.14 branch.

Compared to v1

- the VSP DT bindings have been extended in patch 1/2
- patch 2/2 has been updated accordingly
- patch "arm64: dts: r8a7795: salvator-x: Unify DU node between ES1.x and ES2.0" has been dropped

Laurent Pinchart (2):
drm: rcar-du: Add a VSP channel index to the vsps DT property
arm64: dts: r8a7795: Add support for the DU

 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++++++++---------
 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi       |  1 -
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |  2 +
 3 files changed, 32 insertions(+), 22 deletions(-)
Signature · 3 lines
Regards,

Laurent Pinchart
#1 lore raw

PATCH v2 1/2 drm: rcar-du: Add a VSP channel index to the vsps DT property

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

---
 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++++++++---------
 1 file changed, 30 insertions(+), 21 deletions(-)
Documentation/devicetree/bindings/display/renesas,du.txt +30 -21
index c6cb96a4fa93..89bbc7950654 100644
@@ -36,8 +36,10 @@ Required Properties:
       When supplied they must be named "dclkin.x" with "x" being the input
       clock numerical index.
 
-  - vsps: A list of phandles to the VSP nodes that handle the memory
-    interfaces for the DU channels.
+  - vsps: A list of phandle and channel index tuples to the VSPs that handle
+    the memory interfaces for the DU channels. The phandle identifies the VSP
+    instance that serves the DU channel, and the channel index identifies the
+    LIF instances in that VSP.
 
 Required nodes:
 
@@ -59,24 +61,24 @@ corresponding to each DU output.
  R8A7796 (M3-W)	DPAD		HDMI		LVDS		-
 
 
-Example: R8A7790 (R-Car H2) DU
+Example: R8A7795 (R-Car H3) ES2.0 DU
 
-	du: du@feb00000 {
-		compatible = "renesas,du-r8a7790";
-		reg = <0 0xfeb00000 0 0x70000>,
-		      <0 0xfeb90000 0 0x1c>,
-		      <0 0xfeb94000 0 0x1c>;
-		reg-names = "du", "lvds.0", "lvds.1";
-		interrupt-parent = <&gic>;
-		interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 268 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 269 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&mstp7_clks R8A7790_CLK_DU0>,
-		         <&mstp7_clks R8A7790_CLK_DU1>,
-		         <&mstp7_clks R8A7790_CLK_DU2>,
-		         <&mstp7_clks R8A7790_CLK_LVDS0>,
-		         <&mstp7_clks R8A7790_CLK_LVDS1>;
-		clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+	du: display@feb00000 {
+		compatible = "renesas,du-r8a7795";
+		reg = <0 0xfeb00000 0 0x80000>,
+		      <0 0xfeb90000 0 0x14>;
+		reg-names = "du", "lvds.0";
+		interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&cpg CPG_MOD 724>,
+			 <&cpg CPG_MOD 723>,
+			 <&cpg CPG_MOD 722>,
+			 <&cpg CPG_MOD 721>,
+			 <&cpg CPG_MOD 727>;
+		clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+		vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>;
 
 		ports {
 			#address-cells = <1>;
@@ -89,12 +91,19 @@ Example: R8A7790 (R-Car H2) DU
 			};
 			port@1 {
 				reg = <1>;
-				du_out_lvds0: endpoint {
+				du_out_hdmi0: endpoint {
+					remote-endpoint = <&dw_hdmi0_in>;
 				};
 			};
 			port@2 {
 				reg = <2>;
-				du_out_lvds1: endpoint {
+				du_out_hdmi1: endpoint {
+					remote-endpoint = <&dw_hdmi1_in>;
+				};
+			};
+			port@3 {
+				reg = <3>;
+				du_out_lvds0: endpoint {
 				};
 			};
 		};
Signature · 3 lines
Regards,

Laurent Pinchart
#2 lore raw

Re: [PATCH v2 1/2] drm: rcar-du: Add a VSP channel index to the vsps DT property

Hi Laurent,

Quoted 10 lines · Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

Thanks for your patch!

Documentation/devicetree/bindings/display/renesas,du.txt Required Properties: · line 42

Quoted 12 lines
Documentation/devicetree/bindings/display/renesas,du.txt +4 -2
@@ -36,8 +36,10 @@ Required Properties:
       When supplied they must be named "dclkin.x" with "x" being the input
       clock numerical index.
 
-  - vsps: A list of phandles to the VSP nodes that handle the memory
-    interfaces for the DU channels.
+  - vsps: A list of phandle and channel index tuples to the VSPs that handle
+    the memory interfaces for the DU channels. The phandle identifies the VSP
+    instance that serves the DU channel, and the channel index identifies the
+    LIF instances in that VSP.

instance

Quoted 29 lines
Documentation/devicetree/bindings/display/renesas,du.txt +7 -17
@@ -59,24 +61,24 @@ corresponding to each DU output.
  R8A7796 (M3-W)        DPAD            HDMI            LVDS            -
 
 
-Example: R8A7790 (R-Car H2) DU
+Example: R8A7795 (R-Car H3) ES2.0 DU
 
-       du: du@feb00000 {
-               compatible = "renesas,du-r8a7790";
-               reg = <0 0xfeb00000 0 0x70000>,
-                     <0 0xfeb90000 0 0x1c>,
-                     <0 0xfeb94000 0 0x1c>;
-               reg-names = "du", "lvds.0", "lvds.1";
-               interrupt-parent = <&gic>;
-               interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 268 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 269 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&mstp7_clks R8A7790_CLK_DU0>,
-                        <&mstp7_clks R8A7790_CLK_DU1>,
-                        <&mstp7_clks R8A7790_CLK_DU2>,
-                        <&mstp7_clks R8A7790_CLK_LVDS0>,
-                        <&mstp7_clks R8A7790_CLK_LVDS1>;
-               clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+       du: display@feb00000 {
+               compatible = "renesas,du-r8a7795";
+               reg = <0 0xfeb00000 0 0x80000>,
+                     <0 0xfeb90000 0 0x14>;
+               reg-names = "du", "lvds.0";
+               interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,

Documentation/devicetree/bindings/display/renesas,du.txt corresponding to each DU output. · line 81

Quoted 10 lines
Documentation/devicetree/bindings/display/renesas,du.txt +10 -0
+                            <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cpg CPG_MOD 724>,
+                        <&cpg CPG_MOD 723>,
+                        <&cpg CPG_MOD 722>,
+                        <&cpg CPG_MOD 721>,
+                        <&cpg CPG_MOD 727>;
+               clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+               vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>;

For increased readability, I suggest formatting this as:

        vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#3 lore raw

Re: [PATCH v2 1/2] drm: rcar-du: Add a VSP channel index to the vsps DT property

Hi Geert,

Quoted 74 lines · On Monday 26 Jun 2017 18:36:14 Geert Uytterhoeven wrote:
Quoted 11 lines · Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

Signed-off-by: Laurent Pinchart
<[email protected]>

Thanks for your patch!

Quoted 11 lines
Documentation/devicetree/bindings/display/renesas,du.txt +1 -2
@@ -36,8 +36,10 @@ Required Properties:
       When supplied they must be named "dclkin.x" with "x" being the
       input
       clock numerical index.
 
-  - vsps: A list of phandles to the VSP nodes that handle the memory
-    interfaces for the DU channels.
+  - vsps: A list of phandle and channel index tuples to the VSPs that
Quoted 3 lines

handle + the memory interfaces for the DU channels. The phandle
identifies the VSP + instance that serves the DU channel, and the
channel index identifies the + LIF instances in that VSP.

instance

Quoted 29 lines
Documentation/devicetree/bindings/display/renesas,du.txt +7 -17
@@ -59,24 +61,24 @@ corresponding to each DU output.
 
  R8A7796 (M3-W)        DPAD            HDMI            LVDS            -
 
-Example: R8A7790 (R-Car H2) DU
+Example: R8A7795 (R-Car H3) ES2.0 DU
 
-       du: du@feb00000 {
-               compatible = "renesas,du-r8a7790";
-               reg = <0 0xfeb00000 0 0x70000>,
-                     <0 0xfeb90000 0 0x1c>,
-                     <0 0xfeb94000 0 0x1c>;
-               reg-names = "du", "lvds.0", "lvds.1";
-               interrupt-parent = <&gic>;
-               interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 268 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 269 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&mstp7_clks R8A7790_CLK_DU0>,
-                        <&mstp7_clks R8A7790_CLK_DU1>,
-                        <&mstp7_clks R8A7790_CLK_DU2>,
-                        <&mstp7_clks R8A7790_CLK_LVDS0>,
-                        <&mstp7_clks R8A7790_CLK_LVDS1>;
-               clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+       du: display@feb00000 {
+               compatible = "renesas,du-r8a7795";
+               reg = <0 0xfeb00000 0 0x80000>,
+                     <0 0xfeb90000 0 0x14>;
+               reg-names = "du", "lvds.0";
+               interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,

Documentation/devicetree/bindings/display/renesas,du.txt corresponding to each DU output. · line 81

Quoted 10 lines
Documentation/devicetree/bindings/display/renesas,du.txt +10 -0
+                            <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cpg CPG_MOD 724>,
+                        <&cpg CPG_MOD 723>,
+                        <&cpg CPG_MOD 722>,
+                        <&cpg CPG_MOD 721>,
+                        <&cpg CPG_MOD 727>;
+               clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+               vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>;

For increased readability, I suggest formatting this as:

Quoted 1 line
        vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;

Good point. I'll address both comments in v3.

Signature · 3 lines
Regards,

Laurent Pinchart

A message that is not in the archive (sent off-list or not yet received): 20170626162930.30240-2-laurent.pinchart+renesas-ryLnwIuWjnjg/[email protected]

#5 lore raw

Re: [PATCH v2 1/2] drm: rcar-du: Add a VSP channel index to the vsps DT property

Quoted 4 lines · Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

"dt-bindings: display: ..." for the subject.

Quoted 76 lines

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

---
 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++++++++---------
 1 file changed, 30 insertions(+), 21 deletions(-)
Documentation/devicetree/bindings/display/renesas,du.txt +23 -20
index c6cb96a4fa93..89bbc7950654 100644
@@ -36,8 +36,10 @@ Required Properties:
       When supplied they must be named "dclkin.x" with "x" being the input
       clock numerical index.
 
-  - vsps: A list of phandles to the VSP nodes that handle the memory
-    interfaces for the DU channels.
+  - vsps: A list of phandle and channel index tuples to the VSPs that handle
+    the memory interfaces for the DU channels. The phandle identifies the VSP
+    instance that serves the DU channel, and the channel index identifies the
+    LIF instances in that VSP.
 
 Required nodes:
 
@@ -59,24 +61,24 @@ corresponding to each DU output.
  R8A7796 (M3-W)	DPAD		HDMI		LVDS		-
 
 
-Example: R8A7790 (R-Car H2) DU
+Example: R8A7795 (R-Car H3) ES2.0 DU
 
-	du: du@feb00000 {
-		compatible = "renesas,du-r8a7790";
-		reg = <0 0xfeb00000 0 0x70000>,
-		      <0 0xfeb90000 0 0x1c>,
-		      <0 0xfeb94000 0 0x1c>;
-		reg-names = "du", "lvds.0", "lvds.1";
-		interrupt-parent = <&gic>;
-		interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 268 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 269 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&mstp7_clks R8A7790_CLK_DU0>,
-		         <&mstp7_clks R8A7790_CLK_DU1>,
-		         <&mstp7_clks R8A7790_CLK_DU2>,
-		         <&mstp7_clks R8A7790_CLK_LVDS0>,
-		         <&mstp7_clks R8A7790_CLK_LVDS1>;
-		clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+	du: display@feb00000 {
+		compatible = "renesas,du-r8a7795";
+		reg = <0 0xfeb00000 0 0x80000>,
+		      <0 0xfeb90000 0 0x14>;
+		reg-names = "du", "lvds.0";
+		interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&cpg CPG_MOD 724>,
+			 <&cpg CPG_MOD 723>,
+			 <&cpg CPG_MOD 722>,
+			 <&cpg CPG_MOD 721>,
+			 <&cpg CPG_MOD 727>;
+		clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+		vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>;
 
 		ports {
 			#address-cells = <1>;
@@ -89,12 +91,19 @@ Example: R8A7790 (R-Car H2) DU
 			};
 			port@1 {
 				reg = <1>;
-				du_out_lvds0: endpoint {
+				du_out_hdmi0: endpoint {
+					remote-endpoint = <&dw_hdmi0_in>;

Documentation/devicetree/bindings/display/renesas,du.txt Example: R8A7790 (R-Car H2) DU · line 104

Quoted 10 lines
Documentation/devicetree/bindings/display/renesas,du.txt +5 -1
 				};
 			};
 			port@2 {
 				reg = <2>;
-				du_out_lvds1: endpoint {
+				du_out_hdmi1: endpoint {
+					remote-endpoint = <&dw_hdmi1_in>;
+				};
+			};
+			port@3 {

Shouldn't a new port be documented somewhere?

Quoted 14 lines
Documentation/devicetree/bindings/display/renesas,du.txt +2 -0
+				reg = <3>;
+				du_out_lvds0: endpoint {
 				};
 			};
 		};
Signature · 8 lines
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#6 lore raw

Re: [PATCH v2 1/2] drm: rcar-du: Add a VSP channel index to the vsps DT property

Hi Rob,

Quoted 7 lines · On Wednesday 28 Jun 2017 18:18:07 Rob Herring wrote:
Quoted 4 lines · Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

"dt-bindings: display: ..." for the subject.

Sorry, I'll fix that.

Quoted 86 lines
Quoted 86 lines

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

Signed-off-by: Laurent Pinchart
<[email protected]>
---

 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++++-------
 1 file changed, 30 insertions(+), 21 deletions(-)
(quoted diff) +0 -0

b/Documentation/devicetree/bindings/display/renesas,du.txt index c6cb96a4fa93..89bbc7950654 100644

Documentation/devicetree/bindings/display/renesas,du.txt +1 -2
@@ -36,8 +36,10 @@ Required Properties:
       When supplied they must be named "dclkin.x" with "x" being the
       input
       clock numerical index.
 
-  - vsps: A list of phandles to the VSP nodes that handle the memory
-    interfaces for the DU channels.
+  - vsps: A list of phandle and channel index tuples to the VSPs that

handle
+ the memory interfaces for the DU channels. The phandle identifies the
VSP
+ instance that serves the DU channel, and the channel index identifies
the

Documentation/devicetree/bindings/display/renesas,du.txt +20 -18
+    LIF instances in that VSP.
 
 Required nodes:
@@ -59,24 +61,24 @@ corresponding to each DU output.
 
  R8A7796 (M3-W)	DPAD		HDMI		LVDS		-
 
-Example: R8A7790 (R-Car H2) DU
+Example: R8A7795 (R-Car H3) ES2.0 DU
 
-	du: du@feb00000 {
-		compatible = "renesas,du-r8a7790";
-		reg = <0 0xfeb00000 0 0x70000>,
-		      <0 0xfeb90000 0 0x1c>,
-		      <0 0xfeb94000 0 0x1c>;
-		reg-names = "du", "lvds.0", "lvds.1";
-		interrupt-parent = <&gic>;
-		interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 268 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 269 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&mstp7_clks R8A7790_CLK_DU0>,
-		         <&mstp7_clks R8A7790_CLK_DU1>,
-		         <&mstp7_clks R8A7790_CLK_DU2>,
-		         <&mstp7_clks R8A7790_CLK_LVDS0>,
-		         <&mstp7_clks R8A7790_CLK_LVDS1>;
-		clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+	du: display@feb00000 {
+		compatible = "renesas,du-r8a7795";
+		reg = <0 0xfeb00000 0 0x80000>,
+		      <0 0xfeb90000 0 0x14>;
+		reg-names = "du", "lvds.0";
+		interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&cpg CPG_MOD 724>,
+			 <&cpg CPG_MOD 723>,
+			 <&cpg CPG_MOD 722>,
+			 <&cpg CPG_MOD 721>,
+			 <&cpg CPG_MOD 727>;
+		clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+		vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>;
 
 		ports {
 			#address-cells = <1>;
@@ -89,12 +91,19 @@ Example: R8A7790 (R-Car H2) DU
 			};
 			port@1 {
 				reg = <1>;
-				du_out_lvds0: endpoint {
+				du_out_hdmi0: endpoint {
+					remote-endpoint = <&dw_hdmi0_in>;
 				};
 			};
 			port@2 {
 				reg = <2>;
Quoted 8 lines

Documentation/devicetree/bindings/display/renesas,du.txt Example: R8A7790 (R-Car H2) DU · line 104

Quoted 6 lines
Documentation/devicetree/bindings/display/renesas,du.txt +5 -1
-				du_out_lvds1: endpoint {
+				du_out_hdmi1: endpoint {
+					remote-endpoint = <&dw_hdmi1_in>;
+				};
+			};
+			port@3 {

Shouldn't a new port be documented somewhere?

I've replaced the R8A7790-based example with one based on the R8A7795, as it gives a better idea of how to use the vsps property. Port 3 is already defined for the R8A7795 earlier in this file.

Port 0 Port1 Port2 Port3
-----------------------------------------------------------------------------
...
R8A7790 (H2) DPAD LVDS 0 LVDS 1 -
...
R8A7795 (H3) DPAD HDMI 0 HDMI 1 LVDS

Quoted 8 lines
Quoted 8 lines
Documentation/devicetree/bindings/display/renesas,du.txt +2 -0
+				reg = <3>;
+				du_out_lvds0: endpoint {
 
 				};
 
Documentation/devicetree/bindings/display/renesas,du.txt +0 -0
 			};
 
 		};
Signature · 3 lines
Regards,

Laurent Pinchart
#7 lore raw

PATCH RESEND 1/2 dt-bindings: display: rcar-du: Add a VSP channel index to the vsps DT property

In reply to a message not in the archive

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

---
 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++++++++---------
 1 file changed, 30 insertions(+), 21 deletions(-)

Changes since v2:

- Used proper prefix for subject line
- Fixed type in vsps property description
- Increase visibility in the vsps example

Documentation/devicetree/bindings/display/renesas,du.txt +30 -21
index c6cb96a4fa93..4bbd1e9bf3be 100644
@@ -36,8 +36,10 @@ Required Properties:
       When supplied they must be named "dclkin.x" with "x" being the input
       clock numerical index.
 
-  - vsps: A list of phandles to the VSP nodes that handle the memory
-    interfaces for the DU channels.
+  - vsps: A list of phandle and channel index tuples to the VSPs that handle
+    the memory interfaces for the DU channels. The phandle identifies the VSP
+    instance that serves the DU channel, and the channel index identifies the
+    LIF instance in that VSP.
 
 Required nodes:
 
@@ -59,24 +61,24 @@ corresponding to each DU output.
  R8A7796 (M3-W)	DPAD		HDMI		LVDS		-
 
 
-Example: R8A7790 (R-Car H2) DU
+Example: R8A7795 (R-Car H3) ES2.0 DU
 
-	du: du@feb00000 {
-		compatible = "renesas,du-r8a7790";
-		reg = <0 0xfeb00000 0 0x70000>,
-		      <0 0xfeb90000 0 0x1c>,
-		      <0 0xfeb94000 0 0x1c>;
-		reg-names = "du", "lvds.0", "lvds.1";
-		interrupt-parent = <&gic>;
-		interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 268 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 269 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&mstp7_clks R8A7790_CLK_DU0>,
-		         <&mstp7_clks R8A7790_CLK_DU1>,
-		         <&mstp7_clks R8A7790_CLK_DU2>,
-		         <&mstp7_clks R8A7790_CLK_LVDS0>,
-		         <&mstp7_clks R8A7790_CLK_LVDS1>;
-		clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+	du: display@feb00000 {
+		compatible = "renesas,du-r8a7795";
+		reg = <0 0xfeb00000 0 0x80000>,
+		      <0 0xfeb90000 0 0x14>;
+		reg-names = "du", "lvds.0";
+		interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&cpg CPG_MOD 724>,
+			 <&cpg CPG_MOD 723>,
+			 <&cpg CPG_MOD 722>,
+			 <&cpg CPG_MOD 721>,
+			 <&cpg CPG_MOD 727>;
+		clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+		vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;
 
 		ports {
 			#address-cells = <1>;
@@ -89,12 +91,19 @@ Example: R8A7790 (R-Car H2) DU
 			};
 			port@1 {
 				reg = <1>;
-				du_out_lvds0: endpoint {
+				du_out_hdmi0: endpoint {
+					remote-endpoint = <&dw_hdmi0_in>;
 				};
 			};
 			port@2 {
 				reg = <2>;
-				du_out_lvds1: endpoint {
+				du_out_hdmi1: endpoint {
+					remote-endpoint = <&dw_hdmi1_in>;
+				};
+			};
+			port@3 {
+				reg = <3>;
+				du_out_lvds0: endpoint {
 				};
 			};
 		};
Signature · 8 lines
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Applied
#8 lore raw

Re: [RESEND] [PATCH v2.1 1/2] dt-bindings: display: rcar-du: Add a VSP channel index to the vsps DT property

Quoted 5 lines · Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Quoted 7 lines

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

Thanks, applied for v2.1.

#9 lore raw

Re: [RESEND] [PATCH v2.1 1/2] dt-bindings: display: rcar-du: Add a VSP channel index to the vsps DT property

Quoted 10 lines · Simon Horman
Quoted 9 lines · Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

Quoted 5 lines
Quoted 3 lines

Thanks, applied for v2.1.

s/v2.1/v4.14/

#10 lore raw

PATCH v2 1/2 dt-bindings: display: rcar-du: Add a VSP channel index to the vsps DT property

In reply to Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

---
 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++++++++---------
 1 file changed, 30 insertions(+), 21 deletions(-)

Changes since v2:

- Used proper prefix for subject line
- Fixed type in vsps property description
- Increase visibility in the vsps example

Documentation/devicetree/bindings/display/renesas,du.txt +30 -21
index c6cb96a4fa93..4bbd1e9bf3be 100644
@@ -36,8 +36,10 @@ Required Properties:
       When supplied they must be named "dclkin.x" with "x" being the input
       clock numerical index.
 
-  - vsps: A list of phandles to the VSP nodes that handle the memory
-    interfaces for the DU channels.
+  - vsps: A list of phandle and channel index tuples to the VSPs that handle
+    the memory interfaces for the DU channels. The phandle identifies the VSP
+    instance that serves the DU channel, and the channel index identifies the
+    LIF instance in that VSP.
 
 Required nodes:
 
@@ -59,24 +61,24 @@ corresponding to each DU output.
  R8A7796 (M3-W)	DPAD		HDMI		LVDS		-
 
 
-Example: R8A7790 (R-Car H2) DU
+Example: R8A7795 (R-Car H3) ES2.0 DU
 
-	du: du@feb00000 {
-		compatible = "renesas,du-r8a7790";
-		reg = <0 0xfeb00000 0 0x70000>,
-		      <0 0xfeb90000 0 0x1c>,
-		      <0 0xfeb94000 0 0x1c>;
-		reg-names = "du", "lvds.0", "lvds.1";
-		interrupt-parent = <&gic>;
-		interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 268 IRQ_TYPE_LEVEL_HIGH>,
-			     <0 269 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&mstp7_clks R8A7790_CLK_DU0>,
-		         <&mstp7_clks R8A7790_CLK_DU1>,
-		         <&mstp7_clks R8A7790_CLK_DU2>,
-		         <&mstp7_clks R8A7790_CLK_LVDS0>,
-		         <&mstp7_clks R8A7790_CLK_LVDS1>;
-		clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+	du: display@feb00000 {
+		compatible = "renesas,du-r8a7795";
+		reg = <0 0xfeb00000 0 0x80000>,
+		      <0 0xfeb90000 0 0x14>;
+		reg-names = "du", "lvds.0";
+		interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&cpg CPG_MOD 724>,
+			 <&cpg CPG_MOD 723>,
+			 <&cpg CPG_MOD 722>,
+			 <&cpg CPG_MOD 721>,
+			 <&cpg CPG_MOD 727>;
+		clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+		vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;
 
 		ports {
 			#address-cells = <1>;
@@ -89,12 +91,19 @@ Example: R8A7790 (R-Car H2) DU
 			};
 			port@1 {
 				reg = <1>;
-				du_out_lvds0: endpoint {
+				du_out_hdmi0: endpoint {
+					remote-endpoint = <&dw_hdmi0_in>;
 				};
 			};
 			port@2 {
 				reg = <2>;
-				du_out_lvds1: endpoint {
+				du_out_hdmi1: endpoint {
+					remote-endpoint = <&dw_hdmi1_in>;
+				};
+			};
+			port@3 {
+				reg = <3>;
+				du_out_lvds0: endpoint {
 				};
 			};
 		};
Signature · 3 lines
Regards,

Laurent Pinchart
Reviewed-by on v2 1/2
#11 lore raw

Re: [PATCH v2.1 1/2] dt-bindings: display: rcar-du: Add a VSP channel index to the vsps DT property

Quoted 10 lines · Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

maintainer Acked-by on v2 1/2
#12 lore raw

Re: [PATCH v2.1 1/2] dt-bindings: display: rcar-du: Add a VSP channel index to the vsps DT property

In reply to Laurent Pinchart
Quoted 5 lines · Laurent Pinchart

On some R-Car SoCs a single VSP can serve multiple DU channels through multiple LIF instances in the VSP. The current DT bindings don't support specifying that kind of SoC integration scheme. Extend them with a VSP channel index.

Quoted 8 lines

Backward compatibility can be ensured in drivers by checking the length of the vsps property and setting the channel to 0 when the property doesn't contain channel indices.

---
 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++++++++---------
 1 file changed, 30 insertions(+), 21 deletions(-)

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

A message that is not in the archive (sent off-list or not yet received): 20170626162930.30240-1-laurent.pinchart+renesas-ryLnwIuWjnjg/[email protected]

#14 lore raw

PATCH v2 2/2 arm64: dts: r8a7795: Add support for the DU

Add a compatible string and VSP links to the DU node. The H3 ES1.x and H3 ES2.0 are compatible save for the links to the VSPs that are described explicitly in DT, so there's no need for a new ES2-specific compatible string.

---
 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi | 1 -
 arch/arm64/boot/dts/renesas/r8a7795.dtsi     | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi +0 -1
index a0ba7bd21ea3..f1646334899f 100644
@@ -79,6 +79,5 @@
 };
 
 &du {
-	compatible = "renesas,du-r8a7795";
 	vsps = <&vspd0 &vspd1 &vspd2 &vspd3>;
 };
arch/arm64/boot/dts/renesas/r8a7795.dtsi +2 -0
index e31c1b660b3f..525dfedaba17 100644
@@ -1755,6 +1755,7 @@
 		};
 
 		du: display@feb00000 {
+			compatible = "renesas,du-r8a7795";
 			reg = <0 0xfeb00000 0 0x80000>,
 			      <0 0xfeb90000 0 0x14>;
 			reg-names = "du", "lvds.0";
@@ -1768,6 +1769,7 @@
 				 <&cpg CPG_MOD 721>,
 				 <&cpg CPG_MOD 727>;
 			clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+			vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>;
 			status = "disabled";
 
 			ports {
Signature · 8 lines
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#15 lore raw
In reply to Laurent Pinchart

Hi Simon,

Could you please pick this series for v4.14 ? I believe it has received the necessary acks.

Quoted 23 lines · On Monday 26 Jun 2017 19:29:28 Laurent Pinchart wrote:

Hello,

This patch series enable DU support in DT for the R-Car H3 ES2.0 Salvator-X board. Patch 1/2 extends the DT bindings as needed, and patch 2/2 then enables DU in the SoC DT.

The patches are based on top of Simon's arm64-dt-for-v4.14 branch.

Compared to v1

- the VSP DT bindings have been extended in patch 1/2
- patch 2/2 has been updated accordingly
- patch "arm64: dts: r8a7795: salvator-x: Unify DU node between ES1.x and ES2.0" has been dropped

Laurent Pinchart (2):
drm: rcar-du: Add a VSP channel index to the vsps DT property
arm64: dts: r8a7795: Add support for the DU

 .../devicetree/bindings/display/renesas,du.txt     | 51 ++++++++++---------
 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi       |  1 -
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |  2 +
 3 files changed, 32 insertions(+), 22 deletions(-)
Signature · 3 lines
Regards,

Laurent Pinchart
#16 lore raw
Quoted 25 lines · Laurent Pinchart
Quoted 15 lines · On Monday 26 Jun 2017 19:29:28 Laurent Pinchart wrote:

Hello,

This patch series enable DU support in DT for the R-Car H3 ES2.0 Salvator-X board. Patch 1/2 extends the DT bindings as needed, and patch 2/2 then enables DU in the SoC DT.

The patches are based on top of Simon's arm64-dt-for-v4.14 branch.

Compared to v1

- the VSP DT bindings have been extended in patch 1/2
- patch 2/2 has been updated accordingly
- patch "arm64: dts: r8a7795: salvator-x: Unify DU node between ES1.x and ES2.0" has been dropped

Quoted 8 lines

Laurent Pinchart (2):
drm: rcar-du: Add a VSP channel index to the vsps DT property
arm64: dts: r8a7795: Add support for the DU

 .../devicetree/bindings/display/renesas,du.txt     | 51 ++++++++++---------
 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi       |  1 -
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |  2 +
 3 files changed, 32 insertions(+), 22 deletions(-)
Quoted 4 lines

Hi Simon,

Could you please pick this series for v4.14 ? I believe it has received the necessary acks.

Hi Laurent,

sure, both patches applied for v4.14.

#17 lore raw

Hi Simon,

Quoted 26 lines · On Tuesday 11 Jul 2017 11:16:17 Simon Horman wrote:
Quoted 25 lines · Laurent Pinchart
Quoted 23 lines · On Monday 26 Jun 2017 19:29:28 Laurent Pinchart wrote:

Hello,

This patch series enable DU support in DT for the R-Car H3 ES2.0 Salvator-X board. Patch 1/2 extends the DT bindings as needed, and patch 2/2 then enables DU in the SoC DT.

The patches are based on top of Simon's arm64-dt-for-v4.14 branch.

Compared to v1

- the VSP DT bindings have been extended in patch 1/2
- patch 2/2 has been updated accordingly
- patch "arm64: dts: r8a7795: salvator-x: Unify DU node between ES1.x and ES2.0" has been dropped

Laurent Pinchart (2):
drm: rcar-du: Add a VSP channel index to the vsps DT property
arm64: dts: r8a7795: Add support for the DU

 .../devicetree/bindings/display/renesas,du.txt     | 51 ++++++++-------
 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi       |  1 -
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |  2 +
 3 files changed, 32 insertions(+), 22 deletions(-)
Quoted 8 lines
Quoted 4 lines

Hi Simon,

Could you please pick this series for v4.14 ? I believe it has received the necessary acks.

Hi Laurent,

sure, both patches applied for v4.14.

It looks like you've picked v2 instead of v2.1 for patch 2/2 :-/ Is it possible to fix that ?

Signature · 3 lines
Regards,

Laurent Pinchart
#18 lore raw
Quoted 34 lines · Laurent Pinchart

Hi Simon,

Quoted 31 lines · On Tuesday 11 Jul 2017 11:16:17 Simon Horman wrote:
Quoted 29 lines · Laurent Pinchart
Quoted 15 lines · On Monday 26 Jun 2017 19:29:28 Laurent Pinchart wrote:

Hello,

This patch series enable DU support in DT for the R-Car H3 ES2.0 Salvator-X board. Patch 1/2 extends the DT bindings as needed, and patch 2/2 then enables DU in the SoC DT.

The patches are based on top of Simon's arm64-dt-for-v4.14 branch.

Compared to v1

- the VSP DT bindings have been extended in patch 1/2
- patch 2/2 has been updated accordingly
- patch "arm64: dts: r8a7795: salvator-x: Unify DU node between ES1.x and ES2.0" has been dropped

Quoted 8 lines

Laurent Pinchart (2):
drm: rcar-du: Add a VSP channel index to the vsps DT property
arm64: dts: r8a7795: Add support for the DU

 .../devicetree/bindings/display/renesas,du.txt     | 51 ++++++++-------
 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi       |  1 -
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |  2 +
 3 files changed, 32 insertions(+), 22 deletions(-)

Hi Simon,

Could you please pick this series for v4.14 ? I believe it has received the necessary acks.

Quoted 6 lines
Quoted 3 lines

Hi Laurent,

sure, both patches applied for v4.14.

It looks like you've picked v2 instead of v2.1 for patch 2/2 :-/ Is it possible to fix that ?

Sure, but I don't see v2.1. Could you repost it?

#19 lore raw

Hi Simon,

Quoted 35 lines · On Wednesday 12 Jul 2017 07:56:15 Simon Horman wrote:
Quoted 34 lines · Laurent Pinchart
Quoted 33 lines · On Tuesday 11 Jul 2017 11:16:17 Simon Horman wrote:
Quoted 31 lines · Laurent Pinchart
Quoted 17 lines · On Monday 26 Jun 2017 19:29:28 Laurent Pinchart wrote:

Hello,

This patch series enable DU support in DT for the R-Car H3 ES2.0 Salvator-X board. Patch 1/2 extends the DT bindings as needed, and patch
2/2 then enables DU in the SoC DT.

The patches are based on top of Simon's arm64-dt-for-v4.14 branch.

Compared to v1

- the VSP DT bindings have been extended in patch 1/2
- patch 2/2 has been updated accordingly
- patch "arm64: dts: r8a7795: salvator-x: Unify DU node between ES1.x

and ES2.0" has been dropped

Quoted 8 lines

Laurent Pinchart (2):
drm: rcar-du: Add a VSP channel index to the vsps DT property
arm64: dts: r8a7795: Add support for the DU

 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++------
 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi       |  1 -
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |  2 +
 3 files changed, 32 insertions(+), 22 deletions(-)

Hi Simon,

Could you please pick this series for v4.14 ? I believe it has received the necessary acks.

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

Hi Laurent,

sure, both patches applied for v4.14.

It looks like you've picked v2 instead of v2.1 for patch 2/2 :-/ Is it possible to fix that ?

Sure, but I don't see v2.1. Could you repost it?

Strange. I've reposted the patch and CC'ed you.

Signature · 3 lines
Regards,

Laurent Pinchart
#20 lore raw
Quoted 40 lines · Laurent Pinchart

Hi Simon,

Quoted 37 lines · On Wednesday 12 Jul 2017 07:56:15 Simon Horman wrote:
Quoted 36 lines · Laurent Pinchart
Quoted 35 lines · On Tuesday 11 Jul 2017 11:16:17 Simon Horman wrote:
Quoted 27 lines · Laurent Pinchart
Quoted 17 lines · On Monday 26 Jun 2017 19:29:28 Laurent Pinchart wrote:

Hello,

This patch series enable DU support in DT for the R-Car H3 ES2.0 Salvator-X board. Patch 1/2 extends the DT bindings as needed, and patch
2/2 then enables DU in the SoC DT.

The patches are based on top of Simon's arm64-dt-for-v4.14 branch.

Compared to v1

- the VSP DT bindings have been extended in patch 1/2
- patch 2/2 has been updated accordingly
- patch "arm64: dts: r8a7795: salvator-x: Unify DU node between ES1.x

and ES2.0" has been dropped

Quoted 8 lines

Laurent Pinchart (2):
drm: rcar-du: Add a VSP channel index to the vsps DT property
arm64: dts: r8a7795: Add support for the DU

 .../devicetree/bindings/display/renesas,du.txt     | 51 +++++++------
 arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi       |  1 -
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |  2 +
 3 files changed, 32 insertions(+), 22 deletions(-)
Quoted 4 lines

Hi Simon,

Could you please pick this series for v4.14 ? I believe it has received the necessary acks.

Hi Laurent,

Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Quoted 1 line

sure, both patches applied for v4.14.

It looks like you've picked v2 instead of v2.1 for patch 2/2 :-/ Is it possible to fix that ?

Sure, but I don't see v2.1. Could you repost it?

Strange. I've reposted the patch and CC'ed you.

Thanks, I think the change of subject confused me.
In any case I have applied the repost of v2.1 and will push it later today.