[PATCH 03/72] ARM: dts: imx6qdl: Create imx-drm crtc nodes

Steve Longerbeam slongerbeam at gmail.com
Fri Oct 31 15:53:46 PDT 2014


Create imx-drm crtc device nodes. Each crtc node requires the following
parameters:

- parent ipu phandle.
- di number.
- port endpoints.

Optionally the node can specify a "dual-plane" boolean parameter
to configure the crtc device with a foreground plane. If not given,
the crtc will have only a single plane.

The crtc port lists the endpoints to the remote encoder endpoints.
These endpoints were moved out of the ipu nodes, since they more
logically now belong to the crtc nodes.

As a result, the display-subsystem node should enumerate its crtcs
instead of the former ipu ports.

Signed-off-by: Steve Longerbeam <steve_longerbeam at mentor.com>
---
 arch/arm/boot/dts/imx6dl.dtsi  |    2 +-
 arch/arm/boot/dts/imx6q.dtsi   |  116 ++++++++++++++++++++------------------
 arch/arm/boot/dts/imx6qdl.dtsi |  122 +++++++++++++++++++++-------------------
 3 files changed, 127 insertions(+), 113 deletions(-)

diff --git a/arch/arm/boot/dts/imx6dl.dtsi b/arch/arm/boot/dts/imx6dl.dtsi
index b453e0e..05af0f4 100644
--- a/arch/arm/boot/dts/imx6dl.dtsi
+++ b/arch/arm/boot/dts/imx6dl.dtsi
@@ -98,7 +98,7 @@
 
 	display-subsystem {
 		compatible = "fsl,imx-display-subsystem";
-		ports = <&ipu1_di0>, <&ipu1_di1>;
+		crtcs = <&crtc0>, <&crtc1>;
 	};
 };
 
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index e9f3646..9d1f88c 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -140,6 +140,59 @@
 			};
 		};
 
+		crtc2: crtc at 2 {
+			compatible = "fsl,imx-ipuv3-crtc";
+			ipu = <&ipu2>;
+			di = <0>;
+			dual-plane;
+
+			port {
+				crtc2_disp0: endpoint at 0 {
+				};
+
+				crtc2_hdmi: endpoint at 1 {
+					remote-endpoint = <&hdmi_mux_2>;
+				};
+
+				crtc2_mipi: endpoint at 2 {
+				};
+
+				crtc2_lvds0: endpoint at 3 {
+					remote-endpoint = <&lvds0_mux_2>;
+				};
+
+				crtc2_lvds1: endpoint at 4 {
+					remote-endpoint = <&lvds1_mux_2>;
+				};
+			};
+		};
+
+		crtc3: crtc at 3 {
+			compatible = "fsl,imx-ipuv3-crtc";
+			ipu = <&ipu2>;
+			di = <1>;
+
+			port {
+				crtc3_disp0: endpoint at 0 {
+				};
+
+				crtc3_hdmi: endpoint at 1 {
+					remote-endpoint = <&hdmi_mux_3>;
+				};
+
+				crtc3_mipi: endpoint at 2 {
+				};
+
+				crtc3_lvds0: endpoint at 3 {
+					remote-endpoint = <&lvds0_mux_3>;
+				};
+
+				crtc3_lvds1: endpoint at 4 {
+					remote-endpoint = <&lvds1_mux_3>;
+				};
+			};
+		};
+
 		sata: sata at 02200000 {
 			compatible = "fsl,imx6q-ahci";
 			reg = <0x02200000 0x4000>;
@@ -171,57 +224,12 @@
 			ipu2_csi1: port at 1 {
 				reg = <1>;
 			};
-
-			ipu2_di0: port at 2 {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				reg = <2>;
-
-				ipu2_di0_disp0: endpoint at 0 {
-				};
-
-				ipu2_di0_hdmi: endpoint at 1 {
-					remote-endpoint = <&hdmi_mux_2>;
-				};
-
-				ipu2_di0_mipi: endpoint at 2 {
-				};
-
-				ipu2_di0_lvds0: endpoint at 3 {
-					remote-endpoint = <&lvds0_mux_2>;
-				};
-
-				ipu2_di0_lvds1: endpoint at 4 {
-					remote-endpoint = <&lvds1_mux_2>;
-				};
-			};
-
-			ipu2_di1: port at 3 {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				reg = <3>;
-
-				ipu2_di1_hdmi: endpoint at 1 {
-					remote-endpoint = <&hdmi_mux_3>;
-				};
-
-				ipu2_di1_mipi: endpoint at 2 {
-				};
-
-				ipu2_di1_lvds0: endpoint at 3 {
-					remote-endpoint = <&lvds0_mux_3>;
-				};
-
-				ipu2_di1_lvds1: endpoint at 4 {
-					remote-endpoint = <&lvds1_mux_3>;
-				};
-			};
 		};
 	};
 
 	display-subsystem {
 		compatible = "fsl,imx-display-subsystem";
-		ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>;
+		crtcs = <&crtc0>, <&crtc1>, <&crtc2>, <&crtc3>;
 	};
 };
 
@@ -232,7 +240,7 @@
 		reg = <2>;
 
 		hdmi_mux_2: endpoint {
-			remote-endpoint = <&ipu2_di0_hdmi>;
+			remote-endpoint = <&crtc2_hdmi>;
 		};
 	};
 
@@ -240,7 +248,7 @@
 		reg = <3>;
 
 		hdmi_mux_3: endpoint {
-			remote-endpoint = <&ipu2_di1_hdmi>;
+			remote-endpoint = <&crtc3_hdmi>;
 		};
 	};
 };
@@ -259,7 +267,7 @@
 			reg = <2>;
 
 			lvds0_mux_2: endpoint {
-				remote-endpoint = <&ipu2_di0_lvds0>;
+				remote-endpoint = <&crtc2_lvds0>;
 			};
 		};
 
@@ -267,7 +275,7 @@
 			reg = <3>;
 
 			lvds0_mux_3: endpoint {
-				remote-endpoint = <&ipu2_di1_lvds0>;
+				remote-endpoint = <&crtc3_lvds0>;
 			};
 		};
 	};
@@ -277,7 +285,7 @@
 			reg = <2>;
 
 			lvds1_mux_2: endpoint {
-				remote-endpoint = <&ipu2_di0_lvds1>;
+				remote-endpoint = <&crtc2_lvds1>;
 			};
 		};
 
@@ -285,7 +293,7 @@
 			reg = <3>;
 
 			lvds1_mux_3: endpoint {
-				remote-endpoint = <&ipu2_di1_lvds1>;
+				remote-endpoint = <&crtc3_lvds1>;
 			};
 		};
 	};
@@ -296,7 +304,7 @@
 		reg = <2>;
 
 		mipi_mux_2: endpoint {
-			remote-endpoint = <&ipu2_di0_mipi>;
+			remote-endpoint = <&crtc2_mipi>;
 		};
 	};
 
@@ -304,7 +312,7 @@
 		reg = <3>;
 
 		mipi_mux_3: endpoint {
-			remote-endpoint = <&ipu2_di1_mipi>;
+			remote-endpoint = <&crtc3_mipi>;
 		};
 	};
 };
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 9596ed5..13d6b50 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -167,6 +167,62 @@
 			interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
 		};
 
+		crtc0: crtc at 0 {
+			compatible = "fsl,imx-ipuv3-crtc";
+			ipu = <&ipu1>;
+			di = <0>;
+			dual-plane;
+
+			port {
+				crtc0_disp0: endpoint at 0 {
+				};
+
+				crtc0_hdmi: endpoint at 1 {
+					remote-endpoint = <&hdmi_mux_0>;
+				};
+
+				crtc0_mipi: endpoint at 2 {
+					remote-endpoint = <&mipi_mux_0>;
+				};
+
+				crtc0_lvds0: endpoint at 3 {
+					remote-endpoint = <&lvds0_mux_0>;
+				};
+
+				crtc0_lvds1: endpoint at 4 {
+					remote-endpoint = <&lvds1_mux_0>;
+				};
+			};
+
+		};
+
+		crtc1: crtc at 1 {
+			compatible = "fsl,imx-ipuv3-crtc";
+			ipu = <&ipu1>;
+			di = <1>;
+
+			port {
+				crtc1_disp0: endpoint at 0 {
+				};
+
+				crtc1_hdmi: endpoint at 1 {
+					remote-endpoint = <&hdmi_mux_1>;
+				};
+
+				crtc1_mipi: endpoint at 2 {
+					remote-endpoint = <&mipi_mux_1>;
+				};
+
+				crtc1_lvds0: endpoint at 3 {
+					remote-endpoint = <&lvds0_mux_1>;
+				};
+
+				crtc1_lvds1: endpoint at 4 {
+					remote-endpoint = <&lvds1_mux_1>;
+				};
+			};
+		};
+
 		aips-bus at 02000000 { /* AIPS1 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
@@ -711,7 +767,7 @@
 						reg = <0>;
 
 						lvds0_mux_0: endpoint {
-							remote-endpoint = <&ipu1_di0_lvds0>;
+							remote-endpoint = <&crtc0_lvds0>;
 						};
 					};
 
@@ -719,7 +775,7 @@
 						reg = <1>;
 
 						lvds0_mux_1: endpoint {
-							remote-endpoint = <&ipu1_di1_lvds0>;
+							remote-endpoint = <&crtc1_lvds0>;
 						};
 					};
 				};
@@ -734,7 +790,7 @@
 						reg = <0>;
 
 						lvds1_mux_0: endpoint {
-							remote-endpoint = <&ipu1_di0_lvds1>;
+							remote-endpoint = <&crtc0_lvds1>;
 						};
 					};
 
@@ -742,7 +798,7 @@
 						reg = <1>;
 
 						lvds1_mux_1: endpoint {
-							remote-endpoint = <&ipu1_di1_lvds1>;
+							remote-endpoint = <&crtc1_lvds1>;
 						};
 					};
 				};
@@ -763,7 +819,7 @@
 					reg = <0>;
 
 					hdmi_mux_0: endpoint {
-						remote-endpoint = <&ipu1_di0_hdmi>;
+						remote-endpoint = <&crtc0_hdmi>;
 					};
 				};
 
@@ -771,7 +827,7 @@
 					reg = <1>;
 
 					hdmi_mux_1: endpoint {
-						remote-endpoint = <&ipu1_di1_hdmi>;
+						remote-endpoint = <&crtc1_hdmi>;
 					};
 				};
 			};
@@ -1013,7 +1069,7 @@
 					reg = <0>;
 
 					mipi_mux_0: endpoint {
-						remote-endpoint = <&ipu1_di0_mipi>;
+						remote-endpoint = <&crtc0_mipi>;
 					};
 				};
 
@@ -1021,7 +1077,7 @@
 					reg = <1>;
 
 					mipi_mux_1: endpoint {
-						remote-endpoint = <&ipu1_di1_mipi>;
+						remote-endpoint = <&crtc1_mipi>;
 					};
 				};
 			};
@@ -1100,56 +1156,6 @@
 			ipu1_csi1: port at 1 {
 				reg = <1>;
 			};
-
-			ipu1_di0: port at 2 {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				reg = <2>;
-
-				ipu1_di0_disp0: endpoint at 0 {
-				};
-
-				ipu1_di0_hdmi: endpoint at 1 {
-					remote-endpoint = <&hdmi_mux_0>;
-				};
-
-				ipu1_di0_mipi: endpoint at 2 {
-					remote-endpoint = <&mipi_mux_0>;
-				};
-
-				ipu1_di0_lvds0: endpoint at 3 {
-					remote-endpoint = <&lvds0_mux_0>;
-				};
-
-				ipu1_di0_lvds1: endpoint at 4 {
-					remote-endpoint = <&lvds1_mux_0>;
-				};
-			};
-
-			ipu1_di1: port at 3 {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				reg = <3>;
-
-				ipu1_di0_disp1: endpoint at 0 {
-				};
-
-				ipu1_di1_hdmi: endpoint at 1 {
-					remote-endpoint = <&hdmi_mux_1>;
-				};
-
-				ipu1_di1_mipi: endpoint at 2 {
-					remote-endpoint = <&mipi_mux_1>;
-				};
-
-				ipu1_di1_lvds0: endpoint at 3 {
-					remote-endpoint = <&lvds0_mux_1>;
-				};
-
-				ipu1_di1_lvds1: endpoint at 4 {
-					remote-endpoint = <&lvds1_mux_1>;
-				};
-			};
 		};
 	};
 };
-- 
1.7.9.5



More information about the dri-devel mailing list