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@xxxxxxxxxx> --- 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@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>; - }; - }; }; }; }; -- 1.7.9.5 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel