Commit e05c8c9a authored by Philipp Zabel's avatar Philipp Zabel Committed by Russell King

ARM: dts: imx53: Add IPU DI ports and endpoints, move imx-drm node to dtsi

This patch connects IPU and display encoder (VGA, LVDS)
device tree nodes, as well as parallel displays on the DISP0
and DISP1 outputs, 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 encoders or panels have to be added.
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent de10e04e
...@@ -23,7 +23,6 @@ memory { ...@@ -23,7 +23,6 @@ memory {
soc { soc {
display1: display@di1 { display1: display@di1 {
compatible = "fsl,imx-parallel-display"; compatible = "fsl,imx-parallel-display";
crtcs = <&ipu 1>;
interface-pix-fmt = "bgr666"; interface-pix-fmt = "bgr666";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu_disp2_1>; pinctrl-0 = <&pinctrl_ipu_disp2_1>;
...@@ -44,6 +43,12 @@ display-timings { ...@@ -44,6 +43,12 @@ display-timings {
}; };
}; };
}; };
port {
display1_in: endpoint {
remote-endpoint = <&ipu_di1_disp1>;
};
};
}; };
backlight { backlight {
...@@ -53,12 +58,6 @@ backlight { ...@@ -53,12 +58,6 @@ backlight {
default-brightness-level = <6>; default-brightness-level = <6>;
}; };
imx-drm {
compatible = "fsl,imx-drm";
crtcs = <&ipu 1>;
connectors = <&display1>;
};
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -227,6 +226,10 @@ MX53_PAD_PATA_DATA9__GPIO2_9 0x80000000 ...@@ -227,6 +226,10 @@ MX53_PAD_PATA_DATA9__GPIO2_9 0x80000000
}; };
}; };
&ipu_di1_disp1 {
remote-endpoint = <&display1_in>;
};
&nfc { &nfc {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_nand_1>; pinctrl-0 = <&pinctrl_nand_1>;
......
...@@ -38,15 +38,14 @@ disp1: display@disp1 { ...@@ -38,15 +38,14 @@ disp1: display@disp1 {
compatible = "fsl,imx-parallel-display"; compatible = "fsl,imx-parallel-display";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_disp1_1>; pinctrl-0 = <&pinctrl_disp1_1>;
crtcs = <&ipu 1>;
interface-pix-fmt = "rgb24"; interface-pix-fmt = "rgb24";
status = "disabled"; status = "disabled";
};
imx-drm { port {
compatible = "fsl,imx-drm"; display1_in: endpoint {
crtcs = <&ipu 1>; remote-endpoint = <&ipu_di1_disp1>;
connectors = <&disp1>, <&tve>; };
};
}; };
reg_3p2v: 3p2v { reg_3p2v: 3p2v {
...@@ -147,6 +146,10 @@ MX53_PAD_EIM_DA15__IPU_DI1_PIN4 0xe6 ...@@ -147,6 +146,10 @@ MX53_PAD_EIM_DA15__IPU_DI1_PIN4 0xe6
}; };
}; };
&ipu_di1_disp1 {
remote-endpoint = <&display1_in>;
};
&cspi { &cspi {
status = "okay"; status = "okay";
}; };
......
...@@ -23,7 +23,6 @@ memory { ...@@ -23,7 +23,6 @@ memory {
display0: display@di0 { display0: display@di0 {
compatible = "fsl,imx-parallel-display"; compatible = "fsl,imx-parallel-display";
crtcs = <&ipu 0>;
interface-pix-fmt = "rgb565"; interface-pix-fmt = "rgb565";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu_disp0_1>; pinctrl-0 = <&pinctrl_ipu_disp0_1>;
...@@ -46,6 +45,12 @@ claawvga { ...@@ -46,6 +45,12 @@ claawvga {
pixelclk-active = <0>; pixelclk-active = <0>;
}; };
}; };
port {
display0_in: endpoint {
remote-endpoint = <&ipu_di0_disp0>;
};
};
}; };
gpio-keys { gpio-keys {
...@@ -72,12 +77,6 @@ volume-down { ...@@ -72,12 +77,6 @@ volume-down {
}; };
}; };
imx-drm {
compatible = "fsl,imx-drm";
crtcs = <&ipu 0>;
connectors = <&display0>;
};
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -132,6 +131,10 @@ &esdhc1 { ...@@ -132,6 +131,10 @@ &esdhc1 {
status = "okay"; status = "okay";
}; };
&ipu_di0_disp0 {
remote-endpoint = <&display0_in>;
};
&ssi2 { &ssi2 {
fsl,mode = "i2s-slave"; fsl,mode = "i2s-slave";
status = "okay"; status = "okay";
......
...@@ -45,6 +45,11 @@ cpu@0 { ...@@ -45,6 +45,11 @@ cpu@0 {
}; };
}; };
display-subsystem {
compatible = "fsl,imx-display-subsystem";
ports = <&ipu_di0>, <&ipu_di1>;
};
tzic: tz-interrupt-controller@0fffc000 { tzic: tz-interrupt-controller@0fffc000 {
compatible = "fsl,imx53-tzic", "fsl,tzic"; compatible = "fsl,imx53-tzic", "fsl,tzic";
interrupt-controller; interrupt-controller;
...@@ -85,13 +90,49 @@ soc { ...@@ -85,13 +90,49 @@ soc {
ranges; ranges;
ipu: ipu@18000000 { ipu: ipu@18000000 {
#crtc-cells = <1>; #address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx53-ipu"; compatible = "fsl,imx53-ipu";
reg = <0x18000000 0x080000000>; reg = <0x18000000 0x080000000>;
interrupts = <11 10>; interrupts = <11 10>;
clocks = <&clks 59>, <&clks 110>, <&clks 61>; clocks = <&clks 59>, <&clks 110>, <&clks 61>;
clock-names = "bus", "di0", "di1"; clock-names = "bus", "di0", "di1";
resets = <&src 2>; resets = <&src 2>;
ipu_di0: port@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
ipu_di0_disp0: endpoint@0 {
reg = <0>;
};
ipu_di0_lvds0: endpoint@1 {
reg = <1>;
remote-endpoint = <&lvds0_in>;
};
};
ipu_di1: port@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
ipu_di1_disp1: endpoint@0 {
reg = <0>;
};
ipu_di1_lvds1: endpoint@1 {
reg = <1>;
remote-endpoint = <&lvds1_in>;
};
ipu_di1_tve: endpoint@2 {
reg = <2>;
remote-endpoint = <&tve_in>;
};
};
}; };
aips@50000000 { /* AIPS1 */ aips@50000000 { /* AIPS1 */
...@@ -838,14 +879,24 @@ ldb: ldb@53fa8008 { ...@@ -838,14 +879,24 @@ ldb: ldb@53fa8008 {
lvds-channel@0 { lvds-channel@0 {
reg = <0>; reg = <0>;
crtcs = <&ipu 0>;
status = "disabled"; status = "disabled";
port {
lvds0_in: endpoint {
remote-endpoint = <&ipu_di0_lvds0>;
};
};
}; };
lvds-channel@1 { lvds-channel@1 {
reg = <1>; reg = <1>;
crtcs = <&ipu 1>;
status = "disabled"; status = "disabled";
port {
lvds1_in: endpoint {
remote-endpoint = <&ipu_di0_lvds0>;
};
};
}; };
}; };
...@@ -1103,8 +1154,13 @@ tve: tve@63ff0000 { ...@@ -1103,8 +1154,13 @@ tve: tve@63ff0000 {
interrupts = <92>; interrupts = <92>;
clocks = <&clks 69>, <&clks 116>; clocks = <&clks 69>, <&clks 116>;
clock-names = "tve", "di_sel"; clock-names = "tve", "di_sel";
crtcs = <&ipu 1>;
status = "disabled"; status = "disabled";
port {
tve_in: endpoint {
remote-endpoint = <&ipu_di1_tve>;
};
};
}; };
vpu: vpu@63ff4000 { vpu: vpu@63ff4000 {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment