diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-01-21 04:12:12 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-03-19 05:03:11 -0400 |
commit | cbab579bf8e2bc36a0e74bc11066660b6776493f (patch) | |
tree | 7f6db9a5d0b794a791fbf222b8a657a190b27b88 | |
parent | 6e7efe4eb86e493ea10d1568a6497aa931ff5221 (diff) |
Doc/DT: Add DT binding documentation for OMAP DSS
Add device tree bindings for OMAP Display Subsystem for the following
SoCs: OMAP2, OMAP3, OMAP4.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Archit Taneja <archit@ti.com>
4 files changed, 459 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/video/ti,omap-dss.txt b/Documentation/devicetree/bindings/video/ti,omap-dss.txt new file mode 100644 index 000000000000..d5f1a3fe3109 --- /dev/null +++ b/Documentation/devicetree/bindings/video/ti,omap-dss.txt | |||
@@ -0,0 +1,211 @@ | |||
1 | Texas Instruments OMAP Display Subsystem | ||
2 | ======================================== | ||
3 | |||
4 | Generic Description | ||
5 | ------------------- | ||
6 | |||
7 | This document is a generic description of the OMAP Display Subsystem bindings. | ||
8 | Binding details for each OMAP SoC version are described in respective binding | ||
9 | documentation. | ||
10 | |||
11 | The OMAP Display Subsystem (DSS) hardware consists of DSS Core, DISPC module and | ||
12 | a number of encoder modules. All DSS versions contain DSS Core and DISPC, but | ||
13 | the encoder modules vary. | ||
14 | |||
15 | The DSS Core is the parent of the other DSS modules, and manages clock routing, | ||
16 | integration to the SoC, etc. | ||
17 | |||
18 | DISPC is the display controller, which reads pixels from the memory and outputs | ||
19 | a RGB pixel stream to encoders. | ||
20 | |||
21 | The encoder modules encode the received RGB pixel stream to a video output like | ||
22 | HDMI, MIPI DPI, etc. | ||
23 | |||
24 | Video Ports | ||
25 | ----------- | ||
26 | |||
27 | The DSS Core and the encoders have video port outputs. The structure of the | ||
28 | video ports is described in Documentation/devicetree/bindings/video/video- | ||
29 | ports.txt, and the properties for the ports and endpoints for each encoder are | ||
30 | described in the SoC's DSS binding documentation. | ||
31 | |||
32 | The video ports are used to describe the connections to external hardware, like | ||
33 | panels or external encoders. | ||
34 | |||
35 | Aliases | ||
36 | ------- | ||
37 | |||
38 | The board dts file may define aliases for displays to assign "displayX" style | ||
39 | name for each display. If no aliases are defined, a semi-random number is used | ||
40 | for the display. | ||
41 | |||
42 | Example | ||
43 | ------- | ||
44 | |||
45 | A shortened example of the DSS description for OMAP4, with non-relevant parts | ||
46 | removed, defined in omap4.dtsi: | ||
47 | |||
48 | dss: dss@58000000 { | ||
49 | compatible = "ti,omap4-dss"; | ||
50 | reg = <0x58000000 0x80>; | ||
51 | status = "disabled"; | ||
52 | ti,hwmods = "dss_core"; | ||
53 | clocks = <&dss_dss_clk>; | ||
54 | clock-names = "fck"; | ||
55 | #address-cells = <1>; | ||
56 | #size-cells = <1>; | ||
57 | ranges; | ||
58 | |||
59 | dispc@58001000 { | ||
60 | compatible = "ti,omap4-dispc"; | ||
61 | reg = <0x58001000 0x1000>; | ||
62 | interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; | ||
63 | ti,hwmods = "dss_dispc"; | ||
64 | clocks = <&dss_dss_clk>; | ||
65 | clock-names = "fck"; | ||
66 | }; | ||
67 | |||
68 | hdmi: encoder@58006000 { | ||
69 | compatible = "ti,omap4-hdmi"; | ||
70 | reg = <0x58006000 0x200>, | ||
71 | <0x58006200 0x100>, | ||
72 | <0x58006300 0x100>, | ||
73 | <0x58006400 0x1000>; | ||
74 | reg-names = "wp", "pll", "phy", "core"; | ||
75 | interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; | ||
76 | status = "disabled"; | ||
77 | ti,hwmods = "dss_hdmi"; | ||
78 | clocks = <&dss_48mhz_clk>, <&dss_sys_clk>; | ||
79 | clock-names = "fck", "sys_clk"; | ||
80 | }; | ||
81 | }; | ||
82 | |||
83 | A shortened example of the board description for OMAP4 Panda board, defined in | ||
84 | omap4-panda.dts. | ||
85 | |||
86 | The Panda board has a DVI and a HDMI connector, and the board contains a TFP410 | ||
87 | chip (MIPI DPI to DVI encoder) and a TPD12S015 chip (HDMI ESD protection & level | ||
88 | shifter). The video pipelines for the connectors are formed as follows: | ||
89 | |||
90 | DSS Core --(MIPI DPI)--> TFP410 --(DVI)--> DVI Connector | ||
91 | OMAP HDMI --(HDMI)--> TPD12S015 --(HDMI)--> HDMI Connector | ||
92 | |||
93 | / { | ||
94 | aliases { | ||
95 | display0 = &dvi0; | ||
96 | display1 = &hdmi0; | ||
97 | }; | ||
98 | |||
99 | tfp410: encoder@0 { | ||
100 | compatible = "ti,tfp410"; | ||
101 | gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; /* 0, power-down */ | ||
102 | |||
103 | pinctrl-names = "default"; | ||
104 | pinctrl-0 = <&tfp410_pins>; | ||
105 | |||
106 | ports { | ||
107 | #address-cells = <1>; | ||
108 | #size-cells = <0>; | ||
109 | |||
110 | port@0 { | ||
111 | reg = <0>; | ||
112 | |||
113 | tfp410_in: endpoint@0 { | ||
114 | remote-endpoint = <&dpi_out>; | ||
115 | }; | ||
116 | }; | ||
117 | |||
118 | port@1 { | ||
119 | reg = <1>; | ||
120 | |||
121 | tfp410_out: endpoint@0 { | ||
122 | remote-endpoint = <&dvi_connector_in>; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | }; | ||
127 | |||
128 | dvi0: connector@0 { | ||
129 | compatible = "dvi-connector"; | ||
130 | label = "dvi"; | ||
131 | |||
132 | i2c-bus = <&i2c3>; | ||
133 | |||
134 | port { | ||
135 | dvi_connector_in: endpoint { | ||
136 | remote-endpoint = <&tfp410_out>; | ||
137 | }; | ||
138 | }; | ||
139 | }; | ||
140 | |||
141 | tpd12s015: encoder@1 { | ||
142 | compatible = "ti,tpd12s015"; | ||
143 | |||
144 | pinctrl-names = "default"; | ||
145 | pinctrl-0 = <&tpd12s015_pins>; | ||
146 | |||
147 | gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */ | ||
148 | <&gpio2 9 GPIO_ACTIVE_HIGH>, /* 41, LS OE */ | ||
149 | <&gpio2 31 GPIO_ACTIVE_HIGH>; /* 63, HPD */ | ||
150 | |||
151 | ports { | ||
152 | #address-cells = <1>; | ||
153 | #size-cells = <0>; | ||
154 | |||
155 | port@0 { | ||
156 | reg = <0>; | ||
157 | |||
158 | tpd12s015_in: endpoint@0 { | ||
159 | remote-endpoint = <&hdmi_out>; | ||
160 | }; | ||
161 | }; | ||
162 | |||
163 | port@1 { | ||
164 | reg = <1>; | ||
165 | |||
166 | tpd12s015_out: endpoint@0 { | ||
167 | remote-endpoint = <&hdmi_connector_in>; | ||
168 | }; | ||
169 | }; | ||
170 | }; | ||
171 | }; | ||
172 | |||
173 | hdmi0: connector@1 { | ||
174 | compatible = "hdmi-connector"; | ||
175 | label = "hdmi"; | ||
176 | |||
177 | port { | ||
178 | hdmi_connector_in: endpoint { | ||
179 | remote-endpoint = <&tpd12s015_out>; | ||
180 | }; | ||
181 | }; | ||
182 | }; | ||
183 | }; | ||
184 | |||
185 | &dss { | ||
186 | status = "ok"; | ||
187 | |||
188 | pinctrl-names = "default"; | ||
189 | pinctrl-0 = <&dss_dpi_pins>; | ||
190 | |||
191 | port { | ||
192 | dpi_out: endpoint { | ||
193 | remote-endpoint = <&tfp410_in>; | ||
194 | data-lines = <24>; | ||
195 | }; | ||
196 | }; | ||
197 | }; | ||
198 | |||
199 | &hdmi { | ||
200 | status = "ok"; | ||
201 | vdda-supply = <&vdac>; | ||
202 | |||
203 | pinctrl-names = "default"; | ||
204 | pinctrl-0 = <&dss_hdmi_pins>; | ||
205 | |||
206 | port { | ||
207 | hdmi_out: endpoint { | ||
208 | remote-endpoint = <&tpd12s015_in>; | ||
209 | }; | ||
210 | }; | ||
211 | }; | ||
diff --git a/Documentation/devicetree/bindings/video/ti,omap2-dss.txt b/Documentation/devicetree/bindings/video/ti,omap2-dss.txt new file mode 100644 index 000000000000..fa8bb2ed1170 --- /dev/null +++ b/Documentation/devicetree/bindings/video/ti,omap2-dss.txt | |||
@@ -0,0 +1,54 @@ | |||
1 | Texas Instruments OMAP2 Display Subsystem | ||
2 | ========================================= | ||
3 | |||
4 | See Documentation/devicetree/bindings/video/ti,omap-dss.txt for generic | ||
5 | description about OMAP Display Subsystem bindings. | ||
6 | |||
7 | DSS Core | ||
8 | -------- | ||
9 | |||
10 | Required properties: | ||
11 | - compatible: "ti,omap2-dss" | ||
12 | - reg: address and length of the register space | ||
13 | - ti,hwmods: "dss_core" | ||
14 | |||
15 | Optional nodes: | ||
16 | - Video port for DPI output | ||
17 | |||
18 | DPI Endpoint required properties: | ||
19 | - data-lines: number of lines used | ||
20 | |||
21 | |||
22 | DISPC | ||
23 | ----- | ||
24 | |||
25 | Required properties: | ||
26 | - compatible: "ti,omap2-dispc" | ||
27 | - reg: address and length of the register space | ||
28 | - ti,hwmods: "dss_dispc" | ||
29 | - interrupts: the DISPC interrupt | ||
30 | |||
31 | |||
32 | RFBI | ||
33 | ---- | ||
34 | |||
35 | Required properties: | ||
36 | - compatible: "ti,omap2-rfbi" | ||
37 | - reg: address and length of the register space | ||
38 | - ti,hwmods: "dss_rfbi" | ||
39 | |||
40 | |||
41 | VENC | ||
42 | ---- | ||
43 | |||
44 | Required properties: | ||
45 | - compatible: "ti,omap2-venc" | ||
46 | - reg: address and length of the register space | ||
47 | - ti,hwmods: "dss_venc" | ||
48 | - vdda-supply: power supply for DAC | ||
49 | |||
50 | VENC Endpoint required properties: | ||
51 | |||
52 | Required properties: | ||
53 | - ti,invert-polarity: invert the polarity of the video signal | ||
54 | - ti,channels: 1 for composite, 2 for s-video | ||
diff --git a/Documentation/devicetree/bindings/video/ti,omap3-dss.txt b/Documentation/devicetree/bindings/video/ti,omap3-dss.txt new file mode 100644 index 000000000000..0023fa4b1328 --- /dev/null +++ b/Documentation/devicetree/bindings/video/ti,omap3-dss.txt | |||
@@ -0,0 +1,83 @@ | |||
1 | Texas Instruments OMAP3 Display Subsystem | ||
2 | ========================================= | ||
3 | |||
4 | See Documentation/devicetree/bindings/video/ti,omap-dss.txt for generic | ||
5 | description about OMAP Display Subsystem bindings. | ||
6 | |||
7 | DSS Core | ||
8 | -------- | ||
9 | |||
10 | Required properties: | ||
11 | - compatible: "ti,omap3-dss" | ||
12 | - reg: address and length of the register space | ||
13 | - ti,hwmods: "dss_core" | ||
14 | - clocks: handle to fclk | ||
15 | - clock-names: "fck" | ||
16 | |||
17 | Optional nodes: | ||
18 | - Video ports: | ||
19 | - Port 0: DPI output | ||
20 | - Port 1: SDI output | ||
21 | |||
22 | DPI Endpoint required properties: | ||
23 | - data-lines: number of lines used | ||
24 | |||
25 | SDI Endpoint required properties: | ||
26 | - datapairs: number of datapairs used | ||
27 | |||
28 | |||
29 | DISPC | ||
30 | ----- | ||
31 | |||
32 | Required properties: | ||
33 | - compatible: "ti,omap3-dispc" | ||
34 | - reg: address and length of the register space | ||
35 | - ti,hwmods: "dss_dispc" | ||
36 | - interrupts: the DISPC interrupt | ||
37 | - clocks: handle to fclk | ||
38 | - clock-names: "fck" | ||
39 | |||
40 | |||
41 | RFBI | ||
42 | ---- | ||
43 | |||
44 | Required properties: | ||
45 | - compatible: "ti,omap3-rfbi" | ||
46 | - reg: address and length of the register space | ||
47 | - ti,hwmods: "dss_rfbi" | ||
48 | - clocks: handles to fclk and iclk | ||
49 | - clock-names: "fck", "ick" | ||
50 | |||
51 | |||
52 | VENC | ||
53 | ---- | ||
54 | |||
55 | Required properties: | ||
56 | - compatible: "ti,omap3-venc" | ||
57 | - reg: address and length of the register space | ||
58 | - ti,hwmods: "dss_venc" | ||
59 | - vdda-supply: power supply for DAC | ||
60 | - clocks: handle to fclk | ||
61 | - clock-names: "fck" | ||
62 | |||
63 | VENC Endpoint required properties: | ||
64 | - ti,invert-polarity: invert the polarity of the video signal | ||
65 | - ti,channels: 1 for composite, 2 for s-video | ||
66 | |||
67 | |||
68 | DSI | ||
69 | --- | ||
70 | |||
71 | Required properties: | ||
72 | - compatible: "ti,omap3-dsi" | ||
73 | - reg: addresses and lengths of the register spaces for 'proto', 'phy' and 'pll' | ||
74 | - reg-names: "proto", "phy", "pll" | ||
75 | - interrupts: the DSI interrupt line | ||
76 | - ti,hwmods: "dss_dsi1" | ||
77 | - vdd-supply: power supply for DSI | ||
78 | - clocks: handles to fclk and pll clock | ||
79 | - clock-names: "fck", "sys_clk" | ||
80 | |||
81 | DSI Endpoint required properties: | ||
82 | - lanes: list of pin numbers for the DSI lanes: CLK+, CLK-, DATA0+, DATA0-, | ||
83 | DATA1+, DATA1-, ... | ||
diff --git a/Documentation/devicetree/bindings/video/ti,omap4-dss.txt b/Documentation/devicetree/bindings/video/ti,omap4-dss.txt new file mode 100644 index 000000000000..f85d6fcfa705 --- /dev/null +++ b/Documentation/devicetree/bindings/video/ti,omap4-dss.txt | |||
@@ -0,0 +1,111 @@ | |||
1 | Texas Instruments OMAP4 Display Subsystem | ||
2 | ========================================= | ||
3 | |||
4 | See Documentation/devicetree/bindings/video/ti,omap-dss.txt for generic | ||
5 | description about OMAP Display Subsystem bindings. | ||
6 | |||
7 | DSS Core | ||
8 | -------- | ||
9 | |||
10 | Required properties: | ||
11 | - compatible: "ti,omap4-dss" | ||
12 | - reg: address and length of the register space | ||
13 | - ti,hwmods: "dss_core" | ||
14 | - clocks: handle to fclk | ||
15 | - clock-names: "fck" | ||
16 | |||
17 | Required nodes: | ||
18 | - DISPC | ||
19 | |||
20 | Optional nodes: | ||
21 | - DSS Submodules: RFBI, VENC, DSI, HDMI | ||
22 | - Video port for DPI output | ||
23 | |||
24 | DPI Endpoint required properties: | ||
25 | - data-lines: number of lines used | ||
26 | |||
27 | |||
28 | DISPC | ||
29 | ----- | ||
30 | |||
31 | Required properties: | ||
32 | - compatible: "ti,omap4-dispc" | ||
33 | - reg: address and length of the register space | ||
34 | - ti,hwmods: "dss_dispc" | ||
35 | - interrupts: the DISPC interrupt | ||
36 | - clocks: handle to fclk | ||
37 | - clock-names: "fck" | ||
38 | |||
39 | |||
40 | RFBI | ||
41 | ---- | ||
42 | |||
43 | Required properties: | ||
44 | - compatible: "ti,omap4-rfbi" | ||
45 | - reg: address and length of the register space | ||
46 | - ti,hwmods: "dss_rfbi" | ||
47 | - clocks: handles to fclk and iclk | ||
48 | - clock-names: "fck", "ick" | ||
49 | |||
50 | Optional nodes: | ||
51 | - Video port for RFBI output | ||
52 | - RFBI controlled peripherals | ||
53 | |||
54 | |||
55 | VENC | ||
56 | ---- | ||
57 | |||
58 | Required properties: | ||
59 | - compatible: "ti,omap4-venc" | ||
60 | - reg: address and length of the register space | ||
61 | - ti,hwmods: "dss_venc" | ||
62 | - vdda-supply: power supply for DAC | ||
63 | - clocks: handle to fclk | ||
64 | - clock-names: "fck" | ||
65 | |||
66 | Optional nodes: | ||
67 | - Video port for VENC output | ||
68 | |||
69 | VENC Endpoint required properties: | ||
70 | - ti,invert-polarity: invert the polarity of the video signal | ||
71 | - ti,channels: 1 for composite, 2 for s-video | ||
72 | |||
73 | |||
74 | DSI | ||
75 | --- | ||
76 | |||
77 | Required properties: | ||
78 | - compatible: "ti,omap4-dsi" | ||
79 | - reg: addresses and lengths of the register spaces for 'proto', 'phy' and 'pll' | ||
80 | - reg-names: "proto", "phy", "pll" | ||
81 | - interrupts: the DSI interrupt line | ||
82 | - ti,hwmods: "dss_dsi1" or "dss_dsi2" | ||
83 | - vdd-supply: power supply for DSI | ||
84 | - clocks: handles to fclk and pll clock | ||
85 | - clock-names: "fck", "sys_clk" | ||
86 | |||
87 | Optional nodes: | ||
88 | - Video port for DSI output | ||
89 | - DSI controlled peripherals | ||
90 | |||
91 | DSI Endpoint required properties: | ||
92 | - lanes: list of pin numbers for the DSI lanes: CLK+, CLK-, DATA0+, DATA0-, | ||
93 | DATA1+, DATA1-, ... | ||
94 | |||
95 | |||
96 | HDMI | ||
97 | ---- | ||
98 | |||
99 | Required properties: | ||
100 | - compatible: "ti,omap4-hdmi" | ||
101 | - reg: addresses and lengths of the register spaces for 'wp', 'pll', 'phy', | ||
102 | 'core' | ||
103 | - reg-names: "wp", "pll", "phy", "core" | ||
104 | - interrupts: the HDMI interrupt line | ||
105 | - ti,hwmods: "dss_hdmi" | ||
106 | - vdda-supply: vdda power supply | ||
107 | - clocks: handles to fclk and pll clock | ||
108 | - clock-names: "fck", "sys_clk" | ||
109 | |||
110 | Optional nodes: | ||
111 | - Video port for HDMI output | ||