xref: /freebsd-src/sys/contrib/device-tree/Bindings/display/tegra/nvidia,tegra20-host1x.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only
2b97ee269SEmmanuel Vadot%YAML 1.2
3b97ee269SEmmanuel Vadot---
4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-host1x.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7b97ee269SEmmanuel Vadottitle: NVIDIA Tegra host1x controller
8b97ee269SEmmanuel Vadot
9b97ee269SEmmanuel Vadotmaintainers:
10b97ee269SEmmanuel Vadot  - Thierry Reding <thierry.reding@gmail.com>
11b97ee269SEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
12b97ee269SEmmanuel Vadot
13b97ee269SEmmanuel Vadotdescription: The host1x top-level node defines a number of children, each
14b97ee269SEmmanuel Vadot  representing one of the host1x client modules defined in this binding.
15b97ee269SEmmanuel Vadot
16b97ee269SEmmanuel Vadotproperties:
17b97ee269SEmmanuel Vadot  compatible:
18b97ee269SEmmanuel Vadot    oneOf:
19b97ee269SEmmanuel Vadot      - enum:
20b97ee269SEmmanuel Vadot          - nvidia,tegra20-host1x
21b97ee269SEmmanuel Vadot          - nvidia,tegra30-host1x
22b97ee269SEmmanuel Vadot          - nvidia,tegra114-host1x
23b97ee269SEmmanuel Vadot          - nvidia,tegra124-host1x
24b97ee269SEmmanuel Vadot          - nvidia,tegra210-host1x
25b97ee269SEmmanuel Vadot          - nvidia,tegra186-host1x
26b97ee269SEmmanuel Vadot          - nvidia,tegra194-host1x
27b97ee269SEmmanuel Vadot          - nvidia,tegra234-host1x
28b97ee269SEmmanuel Vadot
29b97ee269SEmmanuel Vadot      - items:
30b97ee269SEmmanuel Vadot          - const: nvidia,tegra132-host1x
31b97ee269SEmmanuel Vadot          - const: nvidia,tegra124-host1x
32b97ee269SEmmanuel Vadot
33b97ee269SEmmanuel Vadot  reg:
34b97ee269SEmmanuel Vadot    minItems: 1
35b97ee269SEmmanuel Vadot    maxItems: 3
36b97ee269SEmmanuel Vadot
37b97ee269SEmmanuel Vadot  reg-names:
38b97ee269SEmmanuel Vadot    minItems: 1
39b97ee269SEmmanuel Vadot    maxItems: 3
40b97ee269SEmmanuel Vadot
41b97ee269SEmmanuel Vadot  interrupts:
42b97ee269SEmmanuel Vadot    minItems: 1
43b97ee269SEmmanuel Vadot    maxItems: 9
44b97ee269SEmmanuel Vadot
45b97ee269SEmmanuel Vadot  interrupt-names:
46b97ee269SEmmanuel Vadot    minItems: 1
47b97ee269SEmmanuel Vadot    maxItems: 9
48b97ee269SEmmanuel Vadot
49b97ee269SEmmanuel Vadot  '#address-cells':
50b97ee269SEmmanuel Vadot    description: The number of cells used to represent physical base addresses
51b97ee269SEmmanuel Vadot      in the host1x address space.
52b97ee269SEmmanuel Vadot    enum: [1, 2]
53b97ee269SEmmanuel Vadot
54b97ee269SEmmanuel Vadot  '#size-cells':
55b97ee269SEmmanuel Vadot    description: The number of cells used to represent the size of an address
56b97ee269SEmmanuel Vadot      range in the host1x address space.
57b97ee269SEmmanuel Vadot    enum: [1, 2]
58b97ee269SEmmanuel Vadot
59b97ee269SEmmanuel Vadot  ranges:
60b97ee269SEmmanuel Vadot    maxItems: 1
61b97ee269SEmmanuel Vadot
62b97ee269SEmmanuel Vadot  clocks:
63b97ee269SEmmanuel Vadot    description: Must contain one entry, for the module clock. See
64b97ee269SEmmanuel Vadot      ../clocks/clock-bindings.txt for details.
65b97ee269SEmmanuel Vadot
66b97ee269SEmmanuel Vadot  clock-names:
67b97ee269SEmmanuel Vadot    items:
68b97ee269SEmmanuel Vadot      - const: host1x
69b97ee269SEmmanuel Vadot
70b97ee269SEmmanuel Vadot  resets:
71b97ee269SEmmanuel Vadot    minItems: 1 # MC reset is optional on Tegra186 and later
72b97ee269SEmmanuel Vadot    items:
73b97ee269SEmmanuel Vadot      - description: module reset
74b97ee269SEmmanuel Vadot      - description: memory client hotflush reset
75b97ee269SEmmanuel Vadot
76b97ee269SEmmanuel Vadot  reset-names:
77b97ee269SEmmanuel Vadot    minItems: 1 # MC reset is optional on Tegra186 and later
78b97ee269SEmmanuel Vadot    items:
79b97ee269SEmmanuel Vadot      - const: host1x
80b97ee269SEmmanuel Vadot      - const: mc
81b97ee269SEmmanuel Vadot
82b97ee269SEmmanuel Vadot  iommus:
83b97ee269SEmmanuel Vadot    maxItems: 1
84b97ee269SEmmanuel Vadot
85b97ee269SEmmanuel Vadot  interconnects:
86b97ee269SEmmanuel Vadot    items:
87b97ee269SEmmanuel Vadot      - description: memory read client for host1x
88b97ee269SEmmanuel Vadot
89b97ee269SEmmanuel Vadot  interconnect-names:
90b97ee269SEmmanuel Vadot    items:
91b97ee269SEmmanuel Vadot      - const: dma-mem # read
92b97ee269SEmmanuel Vadot
93cb7aa33aSEmmanuel Vadot  operating-points-v2: true
94b97ee269SEmmanuel Vadot
95b97ee269SEmmanuel Vadot  power-domains:
96b97ee269SEmmanuel Vadot    items:
97b97ee269SEmmanuel Vadot      - description: phandle to the HEG or core power domain
98b97ee269SEmmanuel Vadot
99b97ee269SEmmanuel Vadotrequired:
100b97ee269SEmmanuel Vadot  - compatible
101b97ee269SEmmanuel Vadot  - interrupts
102b97ee269SEmmanuel Vadot  - interrupt-names
103b97ee269SEmmanuel Vadot  - '#address-cells'
104b97ee269SEmmanuel Vadot  - '#size-cells'
105b97ee269SEmmanuel Vadot  - ranges
106b97ee269SEmmanuel Vadot  - reg
107b97ee269SEmmanuel Vadot  - clocks
108b97ee269SEmmanuel Vadot  - clock-names
109b97ee269SEmmanuel Vadot
110b97ee269SEmmanuel VadotunevaluatedProperties:
111b97ee269SEmmanuel Vadot  type: object
112b97ee269SEmmanuel Vadot
113b97ee269SEmmanuel VadotallOf:
114b97ee269SEmmanuel Vadot  - if:
115b97ee269SEmmanuel Vadot      properties:
116b97ee269SEmmanuel Vadot        compatible:
117b97ee269SEmmanuel Vadot          contains:
118b97ee269SEmmanuel Vadot            enum:
119b97ee269SEmmanuel Vadot              - nvidia,tegra20-host1x
120b97ee269SEmmanuel Vadot              - nvidia,tegra30-host1x
121b97ee269SEmmanuel Vadot              - nvidia,tegra114-host1x
122b97ee269SEmmanuel Vadot              - nvidia,tegra124-host1x
123b97ee269SEmmanuel Vadot              - nvidia,tegra210-host1x
124b97ee269SEmmanuel Vadot    then:
125b97ee269SEmmanuel Vadot      properties:
126b97ee269SEmmanuel Vadot        interrupts:
127b97ee269SEmmanuel Vadot          items:
128b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt
129b97ee269SEmmanuel Vadot            - description: host1x general interrupt
130b97ee269SEmmanuel Vadot
131b97ee269SEmmanuel Vadot        interrupt-names:
132b97ee269SEmmanuel Vadot          items:
133b97ee269SEmmanuel Vadot            - const: syncpt
134b97ee269SEmmanuel Vadot            - const: host1x
135b97ee269SEmmanuel Vadot      required:
136b97ee269SEmmanuel Vadot        - resets
137b97ee269SEmmanuel Vadot        - reset-names
138b97ee269SEmmanuel Vadot  - if:
139b97ee269SEmmanuel Vadot      properties:
140b97ee269SEmmanuel Vadot        compatible:
141b97ee269SEmmanuel Vadot          contains:
142b97ee269SEmmanuel Vadot            enum:
143b97ee269SEmmanuel Vadot              - nvidia,tegra186-host1x
144b97ee269SEmmanuel Vadot              - nvidia,tegra194-host1x
145b97ee269SEmmanuel Vadot    then:
146b97ee269SEmmanuel Vadot      properties:
147b97ee269SEmmanuel Vadot        reg-names:
148b97ee269SEmmanuel Vadot          items:
149b97ee269SEmmanuel Vadot            - const: hypervisor
150b97ee269SEmmanuel Vadot            - const: vm
151b97ee269SEmmanuel Vadot
152b97ee269SEmmanuel Vadot        reg:
153b97ee269SEmmanuel Vadot          items:
154b97ee269SEmmanuel Vadot            - description: region used by the hypervisor
155b97ee269SEmmanuel Vadot            - description: region assigned to the virtual machine
156b97ee269SEmmanuel Vadot
157b97ee269SEmmanuel Vadot        resets:
158b97ee269SEmmanuel Vadot          maxItems: 1
159b97ee269SEmmanuel Vadot
160b97ee269SEmmanuel Vadot        reset-names:
161b97ee269SEmmanuel Vadot          maxItems: 1
162b97ee269SEmmanuel Vadot
163b97ee269SEmmanuel Vadot        interrupts:
164b97ee269SEmmanuel Vadot          items:
165b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt
166b97ee269SEmmanuel Vadot            - description: host1x general interrupt
167b97ee269SEmmanuel Vadot
168b97ee269SEmmanuel Vadot        interrupt-names:
169b97ee269SEmmanuel Vadot          items:
170b97ee269SEmmanuel Vadot            - const: syncpt
171b97ee269SEmmanuel Vadot            - const: host1x
172b97ee269SEmmanuel Vadot
173b97ee269SEmmanuel Vadot        iommu-map:
174b97ee269SEmmanuel Vadot          description: Specification of stream IDs available for memory context device
175b97ee269SEmmanuel Vadot            use. Should be a mapping of IDs 0..n to IOMMU entries corresponding to
176b97ee269SEmmanuel Vadot            usable stream IDs.
177b97ee269SEmmanuel Vadot
178b97ee269SEmmanuel Vadot      required:
179b97ee269SEmmanuel Vadot        - reg-names
180b97ee269SEmmanuel Vadot  - if:
181b97ee269SEmmanuel Vadot      properties:
182b97ee269SEmmanuel Vadot        compatible:
183b97ee269SEmmanuel Vadot          contains:
184b97ee269SEmmanuel Vadot            enum:
185*7d0873ebSEmmanuel Vadot              - nvidia,tegra194-host1x
186*7d0873ebSEmmanuel Vadot    then:
187*7d0873ebSEmmanuel Vadot      properties:
188*7d0873ebSEmmanuel Vadot        dma-coherent: true
189*7d0873ebSEmmanuel Vadot  - if:
190*7d0873ebSEmmanuel Vadot      properties:
191*7d0873ebSEmmanuel Vadot        compatible:
192*7d0873ebSEmmanuel Vadot          contains:
193*7d0873ebSEmmanuel Vadot            enum:
194b97ee269SEmmanuel Vadot              - nvidia,tegra234-host1x
195b97ee269SEmmanuel Vadot    then:
196b97ee269SEmmanuel Vadot      properties:
197b97ee269SEmmanuel Vadot        reg-names:
198b97ee269SEmmanuel Vadot          items:
199b97ee269SEmmanuel Vadot            - const: common
200b97ee269SEmmanuel Vadot            - const: hypervisor
201b97ee269SEmmanuel Vadot            - const: vm
202b97ee269SEmmanuel Vadot
203b97ee269SEmmanuel Vadot        reg:
204b97ee269SEmmanuel Vadot          items:
205b97ee269SEmmanuel Vadot            - description: region used by host1x server
206b97ee269SEmmanuel Vadot            - description: region used by the hypervisor
207b97ee269SEmmanuel Vadot            - description: region assigned to the virtual machine
208b97ee269SEmmanuel Vadot
209b97ee269SEmmanuel Vadot        interrupts:
210b97ee269SEmmanuel Vadot          items:
211b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt 0
212b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt 1
213b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt 2
214b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt 3
215b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt 4
216b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt 5
217b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt 6
218b97ee269SEmmanuel Vadot            - description: host1x syncpoint interrupt 7
219b97ee269SEmmanuel Vadot            - description: host1x general interrupt
220b97ee269SEmmanuel Vadot
221b97ee269SEmmanuel Vadot        interrupt-names:
222b97ee269SEmmanuel Vadot          items:
223b97ee269SEmmanuel Vadot            - const: syncpt0
224b97ee269SEmmanuel Vadot            - const: syncpt1
225b97ee269SEmmanuel Vadot            - const: syncpt2
226b97ee269SEmmanuel Vadot            - const: syncpt3
227b97ee269SEmmanuel Vadot            - const: syncpt4
228b97ee269SEmmanuel Vadot            - const: syncpt5
229b97ee269SEmmanuel Vadot            - const: syncpt6
230b97ee269SEmmanuel Vadot            - const: syncpt7
231b97ee269SEmmanuel Vadot            - const: host1x
232b97ee269SEmmanuel Vadot
233b97ee269SEmmanuel Vadot        iommu-map:
234b97ee269SEmmanuel Vadot          description: Specification of stream IDs available for memory context device
235b97ee269SEmmanuel Vadot            use. Should be a mapping of IDs 0..n to IOMMU entries corresponding to
236b97ee269SEmmanuel Vadot            usable stream IDs.
237b97ee269SEmmanuel Vadot
238*7d0873ebSEmmanuel Vadot        dma-coherent: true
239*7d0873ebSEmmanuel Vadot
240b97ee269SEmmanuel Vadot      required:
241b97ee269SEmmanuel Vadot        - reg-names
242b97ee269SEmmanuel Vadot
243b97ee269SEmmanuel Vadotexamples:
244b97ee269SEmmanuel Vadot  - |
245b97ee269SEmmanuel Vadot    #include <dt-bindings/clock/tegra20-car.h>
246b97ee269SEmmanuel Vadot    #include <dt-bindings/gpio/tegra-gpio.h>
247b97ee269SEmmanuel Vadot    #include <dt-bindings/memory/tegra20-mc.h>
248b97ee269SEmmanuel Vadot
249b97ee269SEmmanuel Vadot    host1x@50000000 {
250b97ee269SEmmanuel Vadot        compatible = "nvidia,tegra20-host1x";
251b97ee269SEmmanuel Vadot        reg = <0x50000000 0x00024000>;
252b97ee269SEmmanuel Vadot        interrupts = <0 65 0x04>, /* mpcore syncpt */
253b97ee269SEmmanuel Vadot                     <0 67 0x04>; /* mpcore general */
254b97ee269SEmmanuel Vadot        interrupt-names = "syncpt", "host1x";
255b97ee269SEmmanuel Vadot        clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
256b97ee269SEmmanuel Vadot        clock-names = "host1x";
257b97ee269SEmmanuel Vadot        resets = <&tegra_car 28>, <&mc TEGRA20_MC_RESET_HC>;
258b97ee269SEmmanuel Vadot        reset-names = "host1x", "mc";
259b97ee269SEmmanuel Vadot
260b97ee269SEmmanuel Vadot        #address-cells = <1>;
261b97ee269SEmmanuel Vadot        #size-cells = <1>;
262b97ee269SEmmanuel Vadot
263b97ee269SEmmanuel Vadot        ranges = <0x54000000 0x54000000 0x04000000>;
264b97ee269SEmmanuel Vadot
265b97ee269SEmmanuel Vadot        mpe@54040000 {
266b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-mpe";
267b97ee269SEmmanuel Vadot            reg = <0x54040000 0x00040000>;
268b97ee269SEmmanuel Vadot            interrupts = <0 68 0x04>;
269b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_MPE>;
270b97ee269SEmmanuel Vadot            resets = <&tegra_car 60>;
271b97ee269SEmmanuel Vadot            reset-names = "mpe";
272b97ee269SEmmanuel Vadot        };
273b97ee269SEmmanuel Vadot
274b97ee269SEmmanuel Vadot        vi@54080000 {
275b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-vi";
276b97ee269SEmmanuel Vadot            reg = <0x54080000 0x00040000>;
277b97ee269SEmmanuel Vadot            interrupts = <0 69 0x04>;
278b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_VI>;
279b97ee269SEmmanuel Vadot            resets = <&tegra_car 100>;
280b97ee269SEmmanuel Vadot            reset-names = "vi";
281b97ee269SEmmanuel Vadot        };
282b97ee269SEmmanuel Vadot
283b97ee269SEmmanuel Vadot        epp@540c0000 {
284b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-epp";
285b97ee269SEmmanuel Vadot            reg = <0x540c0000 0x00040000>;
286b97ee269SEmmanuel Vadot            interrupts = <0 70 0x04>;
287b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_EPP>;
288b97ee269SEmmanuel Vadot            resets = <&tegra_car 19>;
289b97ee269SEmmanuel Vadot            reset-names = "epp";
290b97ee269SEmmanuel Vadot        };
291b97ee269SEmmanuel Vadot
292b97ee269SEmmanuel Vadot        isp@54100000 {
293b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-isp";
294b97ee269SEmmanuel Vadot            reg = <0x54100000 0x00040000>;
295b97ee269SEmmanuel Vadot            interrupts = <0 71 0x04>;
296b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_ISP>;
297b97ee269SEmmanuel Vadot            resets = <&tegra_car 23>;
298b97ee269SEmmanuel Vadot            reset-names = "isp";
299b97ee269SEmmanuel Vadot        };
300b97ee269SEmmanuel Vadot
301b97ee269SEmmanuel Vadot        gr2d@54140000 {
302b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-gr2d";
303b97ee269SEmmanuel Vadot            reg = <0x54140000 0x00040000>;
304b97ee269SEmmanuel Vadot            interrupts = <0 72 0x04>;
305b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_GR2D>;
306b97ee269SEmmanuel Vadot            resets = <&tegra_car 21>, <&mc TEGRA20_MC_RESET_2D>;
307b97ee269SEmmanuel Vadot            reset-names = "2d", "mc";
308b97ee269SEmmanuel Vadot        };
309b97ee269SEmmanuel Vadot
310b97ee269SEmmanuel Vadot        gr3d@54180000 {
311b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-gr3d";
312b97ee269SEmmanuel Vadot            reg = <0x54180000 0x00040000>;
313b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_GR3D>;
314b97ee269SEmmanuel Vadot            resets = <&tegra_car 24>, <&mc TEGRA20_MC_RESET_3D>;
315b97ee269SEmmanuel Vadot            reset-names = "3d", "mc";
316b97ee269SEmmanuel Vadot        };
317b97ee269SEmmanuel Vadot
318b97ee269SEmmanuel Vadot        dc@54200000 {
319b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-dc";
320b97ee269SEmmanuel Vadot            reg = <0x54200000 0x00040000>;
321b97ee269SEmmanuel Vadot            interrupts = <0 73 0x04>;
322b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_DISP1>;
323b97ee269SEmmanuel Vadot            clock-names = "dc";
324b97ee269SEmmanuel Vadot            resets = <&tegra_car 27>;
325b97ee269SEmmanuel Vadot            reset-names = "dc";
326b97ee269SEmmanuel Vadot
327b97ee269SEmmanuel Vadot            rgb {
328b97ee269SEmmanuel Vadot            };
329b97ee269SEmmanuel Vadot        };
330b97ee269SEmmanuel Vadot
331b97ee269SEmmanuel Vadot        dc@54240000 {
332b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-dc";
333b97ee269SEmmanuel Vadot            reg = <0x54240000 0x00040000>;
334b97ee269SEmmanuel Vadot            interrupts = <0 74 0x04>;
335b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_DISP2>;
336b97ee269SEmmanuel Vadot            clock-names = "dc";
337b97ee269SEmmanuel Vadot            resets = <&tegra_car 26>;
338b97ee269SEmmanuel Vadot            reset-names = "dc";
339b97ee269SEmmanuel Vadot
340b97ee269SEmmanuel Vadot            rgb {
341b97ee269SEmmanuel Vadot            };
342b97ee269SEmmanuel Vadot        };
343b97ee269SEmmanuel Vadot
344b97ee269SEmmanuel Vadot        hdmi@54280000 {
345b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-hdmi";
346b97ee269SEmmanuel Vadot            reg = <0x54280000 0x00040000>;
347b97ee269SEmmanuel Vadot            interrupts = <0 75 0x04>;
348b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_HDMI>,
349b97ee269SEmmanuel Vadot                     <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
350b97ee269SEmmanuel Vadot            clock-names = "hdmi", "parent";
351b97ee269SEmmanuel Vadot            resets = <&tegra_car 51>;
352b97ee269SEmmanuel Vadot            reset-names = "hdmi";
353b97ee269SEmmanuel Vadot
354b97ee269SEmmanuel Vadot            hdmi-supply = <&vdd_5v0_hdmi>;
355b97ee269SEmmanuel Vadot            pll-supply = <&vdd_hdmi_pll>;
356b97ee269SEmmanuel Vadot            vdd-supply = <&vdd_3v3_hdmi>;
357b97ee269SEmmanuel Vadot
358b97ee269SEmmanuel Vadot            nvidia,ddc-i2c-bus = <&hdmi_ddc>;
359b97ee269SEmmanuel Vadot            nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
360b97ee269SEmmanuel Vadot        };
361b97ee269SEmmanuel Vadot
362b97ee269SEmmanuel Vadot        tvo@542c0000 {
363b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-tvo";
364b97ee269SEmmanuel Vadot            reg = <0x542c0000 0x00040000>;
365b97ee269SEmmanuel Vadot            interrupts = <0 76 0x04>;
366b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_TVO>;
367b97ee269SEmmanuel Vadot        };
368b97ee269SEmmanuel Vadot
369b97ee269SEmmanuel Vadot        dsi@54300000 {
370b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra20-dsi";
371b97ee269SEmmanuel Vadot            reg = <0x54300000 0x00040000>;
372b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA20_CLK_DSI>,
373b97ee269SEmmanuel Vadot                     <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
374b97ee269SEmmanuel Vadot            clock-names = "dsi", "parent";
375b97ee269SEmmanuel Vadot            resets = <&tegra_car 48>;
376b97ee269SEmmanuel Vadot            reset-names = "dsi";
377b97ee269SEmmanuel Vadot        };
378b97ee269SEmmanuel Vadot    };
379b97ee269SEmmanuel Vadot
380b97ee269SEmmanuel Vadot  - |
381b97ee269SEmmanuel Vadot    #include <dt-bindings/clock/tegra210-car.h>
382b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
383b97ee269SEmmanuel Vadot    #include <dt-bindings/memory/tegra210-mc.h>
384b97ee269SEmmanuel Vadot
385b97ee269SEmmanuel Vadot    host1x@50000000 {
386b97ee269SEmmanuel Vadot        compatible = "nvidia,tegra210-host1x";
387b97ee269SEmmanuel Vadot        reg = <0x50000000 0x00024000>;
388b97ee269SEmmanuel Vadot        interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* mpcore syncpt */
389b97ee269SEmmanuel Vadot                     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* mpcore general */
390b97ee269SEmmanuel Vadot        interrupt-names = "syncpt", "host1x";
391b97ee269SEmmanuel Vadot        clocks = <&tegra_car TEGRA210_CLK_HOST1X>;
392b97ee269SEmmanuel Vadot        clock-names = "host1x";
393b97ee269SEmmanuel Vadot        resets = <&tegra_car 28>;
394b97ee269SEmmanuel Vadot        reset-names = "host1x";
395b97ee269SEmmanuel Vadot
396b97ee269SEmmanuel Vadot        #address-cells = <1>;
397b97ee269SEmmanuel Vadot        #size-cells = <1>;
398b97ee269SEmmanuel Vadot
399b97ee269SEmmanuel Vadot        ranges = <0x54000000 0x54000000 0x01000000>;
400b97ee269SEmmanuel Vadot        iommus = <&mc TEGRA_SWGROUP_HC>;
401b97ee269SEmmanuel Vadot
402b97ee269SEmmanuel Vadot        vi@54080000 {
403b97ee269SEmmanuel Vadot            compatible = "nvidia,tegra210-vi";
404b97ee269SEmmanuel Vadot            reg = <0x54080000 0x00000700>;
405b97ee269SEmmanuel Vadot            interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
406b97ee269SEmmanuel Vadot            assigned-clocks = <&tegra_car TEGRA210_CLK_VI>;
407b97ee269SEmmanuel Vadot            assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
408b97ee269SEmmanuel Vadot
409b97ee269SEmmanuel Vadot            clocks = <&tegra_car TEGRA210_CLK_VI>;
410b97ee269SEmmanuel Vadot            power-domains = <&pd_venc>;
411b97ee269SEmmanuel Vadot
412b97ee269SEmmanuel Vadot            #address-cells = <1>;
413b97ee269SEmmanuel Vadot            #size-cells = <1>;
414b97ee269SEmmanuel Vadot
415b97ee269SEmmanuel Vadot            ranges = <0x0 0x54080000 0x2000>;
416b97ee269SEmmanuel Vadot
417b97ee269SEmmanuel Vadot            csi@838 {
418b97ee269SEmmanuel Vadot                compatible = "nvidia,tegra210-csi";
419b97ee269SEmmanuel Vadot                reg = <0x838 0x1300>;
420b97ee269SEmmanuel Vadot                assigned-clocks = <&tegra_car TEGRA210_CLK_CILAB>,
421b97ee269SEmmanuel Vadot                                  <&tegra_car TEGRA210_CLK_CILCD>,
422b97ee269SEmmanuel Vadot                                  <&tegra_car TEGRA210_CLK_CILE>,
423b97ee269SEmmanuel Vadot                                  <&tegra_car TEGRA210_CLK_CSI_TPG>;
424b97ee269SEmmanuel Vadot                assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_P>,
425b97ee269SEmmanuel Vadot                                         <&tegra_car TEGRA210_CLK_PLL_P>,
426b97ee269SEmmanuel Vadot                                         <&tegra_car TEGRA210_CLK_PLL_P>;
427b97ee269SEmmanuel Vadot                assigned-clock-rates = <102000000>,
428b97ee269SEmmanuel Vadot                                       <102000000>,
429b97ee269SEmmanuel Vadot                                       <102000000>,
430b97ee269SEmmanuel Vadot                                       <972000000>;
431b97ee269SEmmanuel Vadot
432b97ee269SEmmanuel Vadot                clocks = <&tegra_car TEGRA210_CLK_CSI>,
433b97ee269SEmmanuel Vadot                         <&tegra_car TEGRA210_CLK_CILAB>,
434b97ee269SEmmanuel Vadot                         <&tegra_car TEGRA210_CLK_CILCD>,
435b97ee269SEmmanuel Vadot                         <&tegra_car TEGRA210_CLK_CILE>,
436b97ee269SEmmanuel Vadot                         <&tegra_car TEGRA210_CLK_CSI_TPG>;
437b97ee269SEmmanuel Vadot                clock-names = "csi", "cilab", "cilcd", "cile", "csi_tpg";
438b97ee269SEmmanuel Vadot                power-domains = <&pd_sor>;
439b97ee269SEmmanuel Vadot            };
440b97ee269SEmmanuel Vadot        };
441b97ee269SEmmanuel Vadot    };
442