ARM: dts: imx51: Add IPU ports and endpoints, move imx-drm node to dtsi
authorPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 5 Mar 2014 09:20:59 +0000 (10:20 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 7 Mar 2014 16:17:57 +0000 (16:17 +0000)
This patch connects IPU and and parallel display device tree
nodes using the OF graph bindings described in
Documentation/devicetree/bindings/media/video-interfaces.txt

The IPU ports correspond to the two display interfaces. The
order of endpoints in the ports is arbitrary.

Since the imx-drm node now only needs to contain links to the
display interfaces, it can be moved to the SoC dtsi level. At
the board level, only connections between the display interface
ports and panels have to be added.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/boot/dts/imx51-apf51dev.dts
arch/arm/boot/dts/imx51-babbage.dts
arch/arm/boot/dts/imx51.dtsi

index 5a7f552..d3f9814 100644 (file)
@@ -18,7 +18,6 @@
 
        display@di1 {
                compatible = "fsl,imx-parallel-display";
-               crtcs = <&ipu 0>;
                interface-pix-fmt = "bgr666";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ipu_disp1_1>;
                                pixelclk-active = <0>;
                        };
                };
+
+               port {
+                       display_in: endpoint {
+                               remote-endpoint = <&ipu_di0_disp0>;
+                       };
+               };
        };
 
        gpio-keys {
                };
        };
 };
+
+&ipu_di0_disp0 {
+       remote-endpoint = <&display_in>;
+};
index 6ff15a0..6719271 100644 (file)
@@ -23,7 +23,6 @@
 
        display0: display@di0 {
                compatible = "fsl,imx-parallel-display";
-               crtcs = <&ipu 0>;
                interface-pix-fmt = "rgb24";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ipu_disp1_1>;
                                vsync-len = <10>;
                        };
                };
+
+               port {
+                       display0_in: endpoint {
+                               remote-endpoint = <&ipu_di0_disp0>;
+                       };
+               };
        };
 
        display1: display@di1 {
                compatible = "fsl,imx-parallel-display";
-               crtcs = <&ipu 1>;
                interface-pix-fmt = "rgb565";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ipu_disp2_1>;
                                pixelclk-active = <0>;
                        };
                };
+
+               port {
+                       display1_in: endpoint {
+                               remote-endpoint = <&ipu_di1_disp1>;
+                       };
+               };
        };
 
        gpio-keys {
                };
        };
 
-       imx-drm {
-               compatible = "fsl,imx-drm";
-               crtcs = <&ipu 0>, <&ipu 1>;
-               connectors = <&display0>, <&display1>;
-       };
-
        sound {
                compatible = "fsl,imx51-babbage-sgtl5000",
                             "fsl,imx-audio-sgtl5000";
        };
 };
 
+&ipu_di0_disp0 {
+       remote-endpoint = <&display0_in>;
+};
+
+&ipu_di1_disp1 {
+       remote-endpoint = <&display1_in>;
+};
+
 &ssi2 {
        fsl,mode = "i2s-slave";
        status = "okay";
index 4bcdd3a..28c96aa 100644 (file)
                };
        };
 
+       display-subsystem {
+               compatible = "fsl,imx-display-subsystem";
+               ports = <&ipu_di0>, <&ipu_di1>;
+       };
+
        soc {
                #address-cells = <1>;
                #size-cells = <1>;
                };
 
                ipu: ipu@40000000 {
-                       #crtc-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        compatible = "fsl,imx51-ipu";
                        reg = <0x40000000 0x20000000>;
                        interrupts = <11 10>;
                        clocks = <&clks 59>, <&clks 110>, <&clks 61>;
                        clock-names = "bus", "di0", "di1";
                        resets = <&src 2>;
+
+                       ipu_di0: port@2 {
+                               reg = <2>;
+
+                               ipu_di0_disp0: endpoint {
+                               };
+                       };
+
+                       ipu_di1: port@3 {
+                               reg = <3>;
+
+                               ipu_di1_disp1: endpoint {
+                               };
+                       };
                };
 
                aips@70000000 { /* AIPS1 */