gpu: host1x: Update host1x device tree example
[platform/adaptation/renesas_rcar/renesas_kernel.git] / Documentation / devicetree / bindings / gpu / nvidia,tegra20-host1x.txt
1 NVIDIA Tegra host1x
2
3 Required properties:
4 - compatible: "nvidia,tegra<chip>-host1x"
5 - reg: Physical base address and length of the controller's registers.
6 - interrupts: The interrupt outputs from the controller.
7 - #address-cells: The number of cells used to represent physical base addresses
8   in the host1x address space. Should be 1.
9 - #size-cells: The number of cells used to represent the size of an address
10   range in the host1x address space. Should be 1.
11 - ranges: The mapping of the host1x address space to the CPU address space.
12 - clocks: Must contain one entry, for the module clock.
13   See ../clocks/clock-bindings.txt for details.
14 - resets: Must contain an entry for each entry in reset-names.
15   See ../reset/reset.txt for details.
16 - reset-names: Must include the following entries:
17   - host1x
18
19 The host1x top-level node defines a number of children, each representing one
20 of the following host1x client modules:
21
22 - mpe: video encoder
23
24   Required properties:
25   - compatible: "nvidia,tegra<chip>-mpe"
26   - reg: Physical base address and length of the controller's registers.
27   - interrupts: The interrupt outputs from the controller.
28   - clocks: Must contain one entry, for the module clock.
29     See ../clocks/clock-bindings.txt for details.
30   - resets: Must contain an entry for each entry in reset-names.
31     See ../reset/reset.txt for details.
32   - reset-names: Must include the following entries:
33     - mpe
34
35 - vi: video input
36
37   Required properties:
38   - compatible: "nvidia,tegra<chip>-vi"
39   - reg: Physical base address and length of the controller's registers.
40   - interrupts: The interrupt outputs from the controller.
41   - clocks: Must contain one entry, for the module clock.
42     See ../clocks/clock-bindings.txt for details.
43   - resets: Must contain an entry for each entry in reset-names.
44     See ../reset/reset.txt for details.
45   - reset-names: Must include the following entries:
46     - vi
47
48 - epp: encoder pre-processor
49
50   Required properties:
51   - compatible: "nvidia,tegra<chip>-epp"
52   - reg: Physical base address and length of the controller's registers.
53   - interrupts: The interrupt outputs from the controller.
54   - clocks: Must contain one entry, for the module clock.
55     See ../clocks/clock-bindings.txt for details.
56   - resets: Must contain an entry for each entry in reset-names.
57     See ../reset/reset.txt for details.
58   - reset-names: Must include the following entries:
59     - epp
60
61 - isp: image signal processor
62
63   Required properties:
64   - compatible: "nvidia,tegra<chip>-isp"
65   - reg: Physical base address and length of the controller's registers.
66   - interrupts: The interrupt outputs from the controller.
67   - clocks: Must contain one entry, for the module clock.
68     See ../clocks/clock-bindings.txt for details.
69   - resets: Must contain an entry for each entry in reset-names.
70     See ../reset/reset.txt for details.
71   - reset-names: Must include the following entries:
72     - isp
73
74 - gr2d: 2D graphics engine
75
76   Required properties:
77   - compatible: "nvidia,tegra<chip>-gr2d"
78   - reg: Physical base address and length of the controller's registers.
79   - interrupts: The interrupt outputs from the controller.
80   - clocks: Must contain one entry, for the module clock.
81     See ../clocks/clock-bindings.txt for details.
82   - resets: Must contain an entry for each entry in reset-names.
83     See ../reset/reset.txt for details.
84   - reset-names: Must include the following entries:
85     - 2d
86
87 - gr3d: 3D graphics engine
88
89   Required properties:
90   - compatible: "nvidia,tegra<chip>-gr3d"
91   - reg: Physical base address and length of the controller's registers.
92   - clocks: Must contain an entry for each entry in clock-names.
93     See ../clocks/clock-bindings.txt for details.
94   - clock-names: Must include the following entries:
95     (This property may be omitted if the only clock in the list is "3d")
96     - 3d
97       This MUST be the first entry.
98     - 3d2 (Only required on SoCs with two 3D clocks)
99   - resets: Must contain an entry for each entry in reset-names.
100     See ../reset/reset.txt for details.
101   - reset-names: Must include the following entries:
102     - 3d
103     - 3d2 (Only required on SoCs with two 3D clocks)
104
105 - dc: display controller
106
107   Required properties:
108   - compatible: "nvidia,tegra<chip>-dc"
109   - reg: Physical base address and length of the controller's registers.
110   - interrupts: The interrupt outputs from the controller.
111   - clocks: Must contain an entry for each entry in clock-names.
112     See ../clocks/clock-bindings.txt for details.
113   - clock-names: Must include the following entries:
114     - dc
115       This MUST be the first entry.
116     - parent
117   - resets: Must contain an entry for each entry in reset-names.
118     See ../reset/reset.txt for details.
119   - reset-names: Must include the following entries:
120     - dc
121
122   Each display controller node has a child node, named "rgb", that represents
123   the RGB output associated with the controller. It can take the following
124   optional properties:
125   - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
126   - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
127   - nvidia,edid: supplies a binary EDID blob
128   - nvidia,panel: phandle of a display panel
129
130 - hdmi: High Definition Multimedia Interface
131
132   Required properties:
133   - compatible: "nvidia,tegra<chip>-hdmi"
134   - reg: Physical base address and length of the controller's registers.
135   - interrupts: The interrupt outputs from the controller.
136   - vdd-supply: regulator for supply voltage
137   - pll-supply: regulator for PLL
138   - clocks: Must contain an entry for each entry in clock-names.
139     See ../clocks/clock-bindings.txt for details.
140   - clock-names: Must include the following entries:
141     - hdmi
142       This MUST be the first entry.
143     - parent
144   - resets: Must contain an entry for each entry in reset-names.
145     See ../reset/reset.txt for details.
146   - reset-names: Must include the following entries:
147     - hdmi
148
149   Optional properties:
150   - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
151   - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
152   - nvidia,edid: supplies a binary EDID blob
153   - nvidia,panel: phandle of a display panel
154
155 - tvo: TV encoder output
156
157   Required properties:
158   - compatible: "nvidia,tegra<chip>-tvo"
159   - reg: Physical base address and length of the controller's registers.
160   - interrupts: The interrupt outputs from the controller.
161   - clocks: Must contain one entry, for the module clock.
162     See ../clocks/clock-bindings.txt for details.
163
164 - dsi: display serial interface
165
166   Required properties:
167   - compatible: "nvidia,tegra<chip>-dsi"
168   - reg: Physical base address and length of the controller's registers.
169   - clocks: Must contain an entry for each entry in clock-names.
170     See ../clocks/clock-bindings.txt for details.
171   - clock-names: Must include the following entries:
172     - dsi
173       This MUST be the first entry.
174     - parent
175   - resets: Must contain an entry for each entry in reset-names.
176     See ../reset/reset.txt for details.
177   - reset-names: Must include the following entries:
178     - dsi
179
180 Example:
181
182 / {
183         ...
184
185         host1x {
186                 compatible = "nvidia,tegra20-host1x", "simple-bus";
187                 reg = <0x50000000 0x00024000>;
188                 interrupts = <0 65 0x04   /* mpcore syncpt */
189                               0 67 0x04>; /* mpcore general */
190                 clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
191                 resets = <&tegra_car 28>;
192                 reset-names = "host1x";
193
194                 #address-cells = <1>;
195                 #size-cells = <1>;
196
197                 ranges = <0x54000000 0x54000000 0x04000000>;
198
199                 mpe {
200                         compatible = "nvidia,tegra20-mpe";
201                         reg = <0x54040000 0x00040000>;
202                         interrupts = <0 68 0x04>;
203                         clocks = <&tegra_car TEGRA20_CLK_MPE>;
204                         resets = <&tegra_car 60>;
205                         reset-names = "mpe";
206                 };
207
208                 vi {
209                         compatible = "nvidia,tegra20-vi";
210                         reg = <0x54080000 0x00040000>;
211                         interrupts = <0 69 0x04>;
212                         clocks = <&tegra_car TEGRA20_CLK_VI>;
213                         resets = <&tegra_car 100>;
214                         reset-names = "vi";
215                 };
216
217                 epp {
218                         compatible = "nvidia,tegra20-epp";
219                         reg = <0x540c0000 0x00040000>;
220                         interrupts = <0 70 0x04>;
221                         clocks = <&tegra_car TEGRA20_CLK_EPP>;
222                         resets = <&tegra_car 19>;
223                         reset-names = "epp";
224                 };
225
226                 isp {
227                         compatible = "nvidia,tegra20-isp";
228                         reg = <0x54100000 0x00040000>;
229                         interrupts = <0 71 0x04>;
230                         clocks = <&tegra_car TEGRA20_CLK_ISP>;
231                         resets = <&tegra_car 23>;
232                         reset-names = "isp";
233                 };
234
235                 gr2d {
236                         compatible = "nvidia,tegra20-gr2d";
237                         reg = <0x54140000 0x00040000>;
238                         interrupts = <0 72 0x04>;
239                         clocks = <&tegra_car TEGRA20_CLK_GR2D>;
240                         resets = <&tegra_car 21>;
241                         reset-names = "2d";
242                 };
243
244                 gr3d {
245                         compatible = "nvidia,tegra20-gr3d";
246                         reg = <0x54180000 0x00040000>;
247                         clocks = <&tegra_car TEGRA20_CLK_GR3D>;
248                         resets = <&tegra_car 24>;
249                         reset-names = "3d";
250                 };
251
252                 dc@54200000 {
253                         compatible = "nvidia,tegra20-dc";
254                         reg = <0x54200000 0x00040000>;
255                         interrupts = <0 73 0x04>;
256                         clocks = <&tegra_car TEGRA20_CLK_DISP1>,
257                                  <&tegra_car TEGRA20_CLK_PLL_P>;
258                         clock-names = "dc", "parent";
259                         resets = <&tegra_car 27>;
260                         reset-names = "dc";
261
262                         rgb {
263                                 status = "disabled";
264                         };
265                 };
266
267                 dc@54240000 {
268                         compatible = "nvidia,tegra20-dc";
269                         reg = <0x54240000 0x00040000>;
270                         interrupts = <0 74 0x04>;
271                         clocks = <&tegra_car TEGRA20_CLK_DISP2>,
272                                  <&tegra_car TEGRA20_CLK_PLL_P>;
273                         clock-names = "dc", "parent";
274                         resets = <&tegra_car 26>;
275                         reset-names = "dc";
276
277                         rgb {
278                                 status = "disabled";
279                         };
280                 };
281
282                 hdmi {
283                         compatible = "nvidia,tegra20-hdmi";
284                         reg = <0x54280000 0x00040000>;
285                         interrupts = <0 75 0x04>;
286                         clocks = <&tegra_car TEGRA20_CLK_HDMI>,
287                                  <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
288                         clock-names = "hdmi", "parent";
289                         resets = <&tegra_car 51>;
290                         reset-names = "hdmi";
291                         status = "disabled";
292                 };
293
294                 tvo {
295                         compatible = "nvidia,tegra20-tvo";
296                         reg = <0x542c0000 0x00040000>;
297                         interrupts = <0 76 0x04>;
298                         clocks = <&tegra_car TEGRA20_CLK_TVO>;
299                         status = "disabled";
300                 };
301
302                 dsi {
303                         compatible = "nvidia,tegra20-dsi";
304                         reg = <0x54300000 0x00040000>;
305                         clocks = <&tegra_car TEGRA20_CLK_DSI>,
306                                  <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
307                         clock-names = "dsi", "parent";
308                         resets = <&tegra_car 48>;
309                         reset-names = "dsi";
310                         status = "disabled";
311                 };
312         };
313
314         ...
315 };