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 5a7f552786a112dadff76c0d664fc6fb682f7ccf..d3f98141462cb3eb183185c54b30ac08e9149455 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 6ff15a0eacb3ccfcb52ce450b189f6e0ebc51aa7..671927145632925776fa17bbdb5489a3177beac6 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 4bcdd3ad15e524d95cb553b47fc6f61e5eef9a3a..28c96aada80b6fb6edd531270bac66fe5a8afa01 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 */