@@ -98,7 +98,7 @@
display-subsystem {
compatible = "fsl,imx-display-subsystem";
- ports = <&ipu1_di0>, <&ipu1_di1>;
+ crtcs = <&crtc0>, <&crtc1>;
};
};
@@ -140,6 +140,59 @@
};
};
+ crtc2: crtc@2 {
+ compatible = "fsl,imx-ipuv3-crtc";
+ ipu = <&ipu2>;
+ di = <0>;
+ dual-plane;
+
+ port {
+ crtc2_disp0: endpoint@0 {
+ };
+
+ crtc2_hdmi: endpoint@1 {
+ remote-endpoint = <&hdmi_mux_2>;
+ };
+
+ crtc2_mipi: endpoint@2 {
+ };
+
+ crtc2_lvds0: endpoint@3 {
+ remote-endpoint = <&lvds0_mux_2>;
+ };
+
+ crtc2_lvds1: endpoint@4 {
+ remote-endpoint = <&lvds1_mux_2>;
+ };
+ };
+ };
+
+ crtc3: crtc@3 {
+ compatible = "fsl,imx-ipuv3-crtc";
+ ipu = <&ipu2>;
+ di = <1>;
+
+ port {
+ crtc3_disp0: endpoint@0 {
+ };
+
+ crtc3_hdmi: endpoint@1 {
+ remote-endpoint = <&hdmi_mux_3>;
+ };
+
+ crtc3_mipi: endpoint@2 {
+ };
+
+ crtc3_lvds0: endpoint@3 {
+ remote-endpoint = <&lvds0_mux_3>;
+ };
+
+ crtc3_lvds1: endpoint@4 {
+ remote-endpoint = <&lvds1_mux_3>;
+ };
+ };
+ };
+
sata: sata@02200000 {
compatible = "fsl,imx6q-ahci";
reg = <0x02200000 0x4000>;
@@ -171,57 +224,12 @@
ipu2_csi1: port@1 {
reg = <1>;
};
-
- ipu2_di0: port@2 {
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <2>;
-
- ipu2_di0_disp0: endpoint@0 {
- };
-
- ipu2_di0_hdmi: endpoint@1 {
- remote-endpoint = <&hdmi_mux_2>;
- };
-
- ipu2_di0_mipi: endpoint@2 {
- };
-
- ipu2_di0_lvds0: endpoint@3 {
- remote-endpoint = <&lvds0_mux_2>;
- };
-
- ipu2_di0_lvds1: endpoint@4 {
- remote-endpoint = <&lvds1_mux_2>;
- };
- };
-
- ipu2_di1: port@3 {
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <3>;
-
- ipu2_di1_hdmi: endpoint@1 {
- remote-endpoint = <&hdmi_mux_3>;
- };
-
- ipu2_di1_mipi: endpoint@2 {
- };
-
- ipu2_di1_lvds0: endpoint@3 {
- remote-endpoint = <&lvds0_mux_3>;
- };
-
- ipu2_di1_lvds1: endpoint@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>;
};
};
};
@@ -167,6 +167,62 @@
interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
};
+ crtc0: crtc@0 {
+ compatible = "fsl,imx-ipuv3-crtc";
+ ipu = <&ipu1>;
+ di = <0>;
+ dual-plane;
+
+ port {
+ crtc0_disp0: endpoint@0 {
+ };
+
+ crtc0_hdmi: endpoint@1 {
+ remote-endpoint = <&hdmi_mux_0>;
+ };
+
+ crtc0_mipi: endpoint@2 {
+ remote-endpoint = <&mipi_mux_0>;
+ };
+
+ crtc0_lvds0: endpoint@3 {
+ remote-endpoint = <&lvds0_mux_0>;
+ };
+
+ crtc0_lvds1: endpoint@4 {
+ remote-endpoint = <&lvds1_mux_0>;
+ };
+ };
+
+ };
+
+ crtc1: crtc@1 {
+ compatible = "fsl,imx-ipuv3-crtc";
+ ipu = <&ipu1>;
+ di = <1>;
+
+ port {
+ crtc1_disp0: endpoint@0 {
+ };
+
+ crtc1_hdmi: endpoint@1 {
+ remote-endpoint = <&hdmi_mux_1>;
+ };
+
+ crtc1_mipi: endpoint@2 {
+ remote-endpoint = <&mipi_mux_1>;
+ };
+
+ crtc1_lvds0: endpoint@3 {
+ remote-endpoint = <&lvds0_mux_1>;
+ };
+
+ crtc1_lvds1: endpoint@4 {
+ remote-endpoint = <&lvds1_mux_1>;
+ };
+ };
+ };
+
aips-bus@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@1 {
reg = <1>;
};
-
- ipu1_di0: port@2 {
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <2>;
-
- ipu1_di0_disp0: endpoint@0 {
- };
-
- ipu1_di0_hdmi: endpoint@1 {
- remote-endpoint = <&hdmi_mux_0>;
- };
-
- ipu1_di0_mipi: endpoint@2 {
- remote-endpoint = <&mipi_mux_0>;
- };
-
- ipu1_di0_lvds0: endpoint@3 {
- remote-endpoint = <&lvds0_mux_0>;
- };
-
- ipu1_di0_lvds1: endpoint@4 {
- remote-endpoint = <&lvds1_mux_0>;
- };
- };
-
- ipu1_di1: port@3 {
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <3>;
-
- ipu1_di0_disp1: endpoint@0 {
- };
-
- ipu1_di1_hdmi: endpoint@1 {
- remote-endpoint = <&hdmi_mux_1>;
- };
-
- ipu1_di1_mipi: endpoint@2 {
- remote-endpoint = <&mipi_mux_1>;
- };
-
- ipu1_di1_lvds0: endpoint@3 {
- remote-endpoint = <&lvds0_mux_1>;
- };
-
- ipu1_di1_lvds1: endpoint@4 {
- remote-endpoint = <&lvds1_mux_1>;
- };
- };
};
};
};
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@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(-)