aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2014-03-05 04:21:00 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-03-07 11:17:58 -0500
commite05c8c9a790a0670bc166144e6dfbe7db148bd34 (patch)
tree28ec2f5e2b757b9fa95833a7ca31c0b5641405a1 /arch
parentde10e04e8cc60e1e273c83e356184f9200a8deb8 (diff)
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: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/imx53-m53evk.dts17
-rw-r--r--arch/arm/boot/dts/imx53-mba53.dts15
-rw-r--r--arch/arm/boot/dts/imx53-qsb.dts17
-rw-r--r--arch/arm/boot/dts/imx53.dtsi64
4 files changed, 89 insertions, 24 deletions
diff --git a/arch/arm/boot/dts/imx53-m53evk.dts b/arch/arm/boot/dts/imx53-m53evk.dts
index ee6107b6484c..0298adc73bb7 100644
--- a/arch/arm/boot/dts/imx53-m53evk.dts
+++ b/arch/arm/boot/dts/imx53-m53evk.dts
@@ -23,7 +23,6 @@
23 soc { 23 soc {
24 display1: display@di1 { 24 display1: display@di1 {
25 compatible = "fsl,imx-parallel-display"; 25 compatible = "fsl,imx-parallel-display";
26 crtcs = <&ipu 1>;
27 interface-pix-fmt = "bgr666"; 26 interface-pix-fmt = "bgr666";
28 pinctrl-names = "default"; 27 pinctrl-names = "default";
29 pinctrl-0 = <&pinctrl_ipu_disp2_1>; 28 pinctrl-0 = <&pinctrl_ipu_disp2_1>;
@@ -44,6 +43,12 @@
44 }; 43 };
45 }; 44 };
46 }; 45 };
46
47 port {
48 display1_in: endpoint {
49 remote-endpoint = <&ipu_di1_disp1>;
50 };
51 };
47 }; 52 };
48 53
49 backlight { 54 backlight {
@@ -53,12 +58,6 @@
53 default-brightness-level = <6>; 58 default-brightness-level = <6>;
54 }; 59 };
55 60
56 imx-drm {
57 compatible = "fsl,imx-drm";
58 crtcs = <&ipu 1>;
59 connectors = <&display1>;
60 };
61
62 leds { 61 leds {
63 compatible = "gpio-leds"; 62 compatible = "gpio-leds";
64 pinctrl-names = "default"; 63 pinctrl-names = "default";
@@ -227,6 +226,10 @@
227 }; 226 };
228}; 227};
229 228
229&ipu_di1_disp1 {
230 remote-endpoint = <&display1_in>;
231};
232
230&nfc { 233&nfc {
231 pinctrl-names = "default"; 234 pinctrl-names = "default";
232 pinctrl-0 = <&pinctrl_nand_1>; 235 pinctrl-0 = <&pinctrl_nand_1>;
diff --git a/arch/arm/boot/dts/imx53-mba53.dts b/arch/arm/boot/dts/imx53-mba53.dts
index f2affb0cb959..a5b55c603591 100644
--- a/arch/arm/boot/dts/imx53-mba53.dts
+++ b/arch/arm/boot/dts/imx53-mba53.dts
@@ -38,15 +38,14 @@
38 compatible = "fsl,imx-parallel-display"; 38 compatible = "fsl,imx-parallel-display";
39 pinctrl-names = "default"; 39 pinctrl-names = "default";
40 pinctrl-0 = <&pinctrl_disp1_1>; 40 pinctrl-0 = <&pinctrl_disp1_1>;
41 crtcs = <&ipu 1>;
42 interface-pix-fmt = "rgb24"; 41 interface-pix-fmt = "rgb24";
43 status = "disabled"; 42 status = "disabled";
44 };
45 43
46 imx-drm { 44 port {
47 compatible = "fsl,imx-drm"; 45 display1_in: endpoint {
48 crtcs = <&ipu 1>; 46 remote-endpoint = <&ipu_di1_disp1>;
49 connectors = <&disp1>, <&tve>; 47 };
48 };
50 }; 49 };
51 50
52 reg_3p2v: 3p2v { 51 reg_3p2v: 3p2v {
@@ -147,6 +146,10 @@
147 }; 146 };
148}; 147};
149 148
149&ipu_di1_disp1 {
150 remote-endpoint = <&display1_in>;
151};
152
150&cspi { 153&cspi {
151 status = "okay"; 154 status = "okay";
152}; 155};
diff --git a/arch/arm/boot/dts/imx53-qsb.dts b/arch/arm/boot/dts/imx53-qsb.dts
index 3cb4f7791a91..8b254289344f 100644
--- a/arch/arm/boot/dts/imx53-qsb.dts
+++ b/arch/arm/boot/dts/imx53-qsb.dts
@@ -23,7 +23,6 @@
23 23
24 display0: display@di0 { 24 display0: display@di0 {
25 compatible = "fsl,imx-parallel-display"; 25 compatible = "fsl,imx-parallel-display";
26 crtcs = <&ipu 0>;
27 interface-pix-fmt = "rgb565"; 26 interface-pix-fmt = "rgb565";
28 pinctrl-names = "default"; 27 pinctrl-names = "default";
29 pinctrl-0 = <&pinctrl_ipu_disp0_1>; 28 pinctrl-0 = <&pinctrl_ipu_disp0_1>;
@@ -46,6 +45,12 @@
46 pixelclk-active = <0>; 45 pixelclk-active = <0>;
47 }; 46 };
48 }; 47 };
48
49 port {
50 display0_in: endpoint {
51 remote-endpoint = <&ipu_di0_disp0>;
52 };
53 };
49 }; 54 };
50 55
51 gpio-keys { 56 gpio-keys {
@@ -72,12 +77,6 @@
72 }; 77 };
73 }; 78 };
74 79
75 imx-drm {
76 compatible = "fsl,imx-drm";
77 crtcs = <&ipu 0>;
78 connectors = <&display0>;
79 };
80
81 leds { 80 leds {
82 compatible = "gpio-leds"; 81 compatible = "gpio-leds";
83 pinctrl-names = "default"; 82 pinctrl-names = "default";
@@ -132,6 +131,10 @@
132 status = "okay"; 131 status = "okay";
133}; 132};
134 133
134&ipu_di0_disp0 {
135 remote-endpoint = <&display0_in>;
136};
137
135&ssi2 { 138&ssi2 {
136 fsl,mode = "i2s-slave"; 139 fsl,mode = "i2s-slave";
137 status = "okay"; 140 status = "okay";
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi
index 4307e80b2d2e..04d3127edfe1 100644
--- a/arch/arm/boot/dts/imx53.dtsi
+++ b/arch/arm/boot/dts/imx53.dtsi
@@ -45,6 +45,11 @@
45 }; 45 };
46 }; 46 };
47 47
48 display-subsystem {
49 compatible = "fsl,imx-display-subsystem";
50 ports = <&ipu_di0>, <&ipu_di1>;
51 };
52
48 tzic: tz-interrupt-controller@0fffc000 { 53 tzic: tz-interrupt-controller@0fffc000 {
49 compatible = "fsl,imx53-tzic", "fsl,tzic"; 54 compatible = "fsl,imx53-tzic", "fsl,tzic";
50 interrupt-controller; 55 interrupt-controller;
@@ -85,13 +90,49 @@
85 ranges; 90 ranges;
86 91
87 ipu: ipu@18000000 { 92 ipu: ipu@18000000 {
88 #crtc-cells = <1>; 93 #address-cells = <1>;
94 #size-cells = <0>;
89 compatible = "fsl,imx53-ipu"; 95 compatible = "fsl,imx53-ipu";
90 reg = <0x18000000 0x080000000>; 96 reg = <0x18000000 0x080000000>;
91 interrupts = <11 10>; 97 interrupts = <11 10>;
92 clocks = <&clks 59>, <&clks 110>, <&clks 61>; 98 clocks = <&clks 59>, <&clks 110>, <&clks 61>;
93 clock-names = "bus", "di0", "di1"; 99 clock-names = "bus", "di0", "di1";
94 resets = <&src 2>; 100 resets = <&src 2>;
101
102 ipu_di0: port@2 {
103 #address-cells = <1>;
104 #size-cells = <0>;
105 reg = <2>;
106
107 ipu_di0_disp0: endpoint@0 {
108 reg = <0>;
109 };
110
111 ipu_di0_lvds0: endpoint@1 {
112 reg = <1>;
113 remote-endpoint = <&lvds0_in>;
114 };
115 };
116
117 ipu_di1: port@3 {
118 #address-cells = <1>;
119 #size-cells = <0>;
120 reg = <3>;
121
122 ipu_di1_disp1: endpoint@0 {
123 reg = <0>;
124 };
125
126 ipu_di1_lvds1: endpoint@1 {
127 reg = <1>;
128 remote-endpoint = <&lvds1_in>;
129 };
130
131 ipu_di1_tve: endpoint@2 {
132 reg = <2>;
133 remote-endpoint = <&tve_in>;
134 };
135 };
95 }; 136 };
96 137
97 aips@50000000 { /* AIPS1 */ 138 aips@50000000 { /* AIPS1 */
@@ -838,14 +879,24 @@
838 879
839 lvds-channel@0 { 880 lvds-channel@0 {
840 reg = <0>; 881 reg = <0>;
841 crtcs = <&ipu 0>;
842 status = "disabled"; 882 status = "disabled";
883
884 port {
885 lvds0_in: endpoint {
886 remote-endpoint = <&ipu_di0_lvds0>;
887 };
888 };
843 }; 889 };
844 890
845 lvds-channel@1 { 891 lvds-channel@1 {
846 reg = <1>; 892 reg = <1>;
847 crtcs = <&ipu 1>;
848 status = "disabled"; 893 status = "disabled";
894
895 port {
896 lvds1_in: endpoint {
897 remote-endpoint = <&ipu_di0_lvds0>;
898 };
899 };
849 }; 900 };
850 }; 901 };
851 902
@@ -1103,8 +1154,13 @@
1103 interrupts = <92>; 1154 interrupts = <92>;
1104 clocks = <&clks 69>, <&clks 116>; 1155 clocks = <&clks 69>, <&clks 116>;
1105 clock-names = "tve", "di_sel"; 1156 clock-names = "tve", "di_sel";
1106 crtcs = <&ipu 1>;
1107 status = "disabled"; 1157 status = "disabled";
1158
1159 port {
1160 tve_in: endpoint {
1161 remote-endpoint = <&ipu_di1_tve>;
1162 };
1163 };
1108 }; 1164 };
1109 1165
1110 vpu: vpu@63ff4000 { 1166 vpu: vpu@63ff4000 {