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@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>;
 		};
 	};
 };
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@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>;
-				};
-			};
 		};
 	};
 };
