1 # SPDX-License-Identifier: GPL-2.0-only
4 $id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-host1x.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: NVIDIA Tegra host1x controller
10 - Thierry Reding <thierry.reding@gmail.com>
11 - Jon Hunter <jonathanh@nvidia.com>
13 description: The host1x top-level node defines a number of children, each
14 representing one of the host1x client modules defined in this binding.
20 - nvidia,tegra20-host1x
21 - nvidia,tegra30-host1x
22 - nvidia,tegra114-host1x
23 - nvidia,tegra124-host1x
24 - nvidia,tegra210-host1x
25 - nvidia,tegra186-host1x
26 - nvidia,tegra194-host1x
27 - nvidia,tegra234-host1x
30 - const: nvidia,tegra132-host1x
31 - const: nvidia,tegra124-host1x
50 description: The number of cells used to represent physical base addresses
51 in the host1x address space.
55 description: The number of cells used to represent the size of an address
56 range in the host1x address space.
63 description: Must contain one entry, for the module clock. See
64 ../clocks/clock-bindings.txt for details.
71 minItems: 1 # MC reset is optional on Tegra186 and later
73 - description: module reset
74 - description: memory client hotflush reset
77 minItems: 1 # MC reset is optional on Tegra186 and later
87 - description: memory read client for host1x
91 - const: dma-mem # read
93 operating-points-v2: true
97 - description: phandle to the HEG or core power domain
110 unevaluatedProperties:
119 - nvidia,tegra20-host1x
120 - nvidia,tegra30-host1x
121 - nvidia,tegra114-host1x
122 - nvidia,tegra124-host1x
123 - nvidia,tegra210-host1x
128 - description: host1x syncpoint interrupt
129 - description: host1x general interrupt
143 - nvidia,tegra186-host1x
144 - nvidia,tegra194-host1x
154 - description: region used by the hypervisor
155 - description: region assigned to the virtual machine
165 - description: host1x syncpoint interrupt
166 - description: host1x general interrupt
174 description: Specification of stream IDs available for memory context device
175 use. Should be a mapping of IDs 0..n to IOMMU entries corresponding to
185 - nvidia,tegra194-host1x
194 - nvidia,tegra234-host1x
205 - description: region used by host1x server
206 - description: region used by the hypervisor
207 - description: region assigned to the virtual machine
211 - description: host1x syncpoint interrupt 0
212 - description: host1x syncpoint interrupt 1
213 - description: host1x syncpoint interrupt 2
214 - description: host1x syncpoint interrupt 3
215 - description: host1x syncpoint interrupt 4
216 - description: host1x syncpoint interrupt 5
217 - description: host1x syncpoint interrupt 6
218 - description: host1x syncpoint interrupt 7
219 - description: host1x general interrupt
234 description: Specification of stream IDs available for memory context device
235 use. Should be a mapping of IDs 0..n to IOMMU entries corresponding to
245 #include <dt-bindings/clock/tegra20-car.h>
246 #include <dt-bindings/gpio/tegra-gpio.h>
247 #include <dt-bindings/memory/tegra20-mc.h>
250 compatible = "nvidia,tegra20-host1x";
251 reg = <0x50000000 0x00024000>;
252 interrupts = <0 65 0x04>, /* mpcore syncpt */
253 <0 67 0x04>; /* mpcore general */
254 interrupt-names = "syncpt", "host1x";
255 clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
256 clock-names = "host1x";
257 resets = <&tegra_car 28>, <&mc TEGRA20_MC_RESET_HC>;
258 reset-names = "host1x", "mc";
260 #address-cells = <1>;
263 ranges = <0x54000000 0x54000000 0x04000000>;
266 compatible = "nvidia,tegra20-mpe";
267 reg = <0x54040000 0x00040000>;
268 interrupts = <0 68 0x04>;
269 clocks = <&tegra_car TEGRA20_CLK_MPE>;
270 resets = <&tegra_car 60>;
275 compatible = "nvidia,tegra20-vi";
276 reg = <0x54080000 0x00040000>;
277 interrupts = <0 69 0x04>;
278 clocks = <&tegra_car TEGRA20_CLK_VI>;
279 resets = <&tegra_car 100>;
284 compatible = "nvidia,tegra20-epp";
285 reg = <0x540c0000 0x00040000>;
286 interrupts = <0 70 0x04>;
287 clocks = <&tegra_car TEGRA20_CLK_EPP>;
288 resets = <&tegra_car 19>;
293 compatible = "nvidia,tegra20-isp";
294 reg = <0x54100000 0x00040000>;
295 interrupts = <0 71 0x04>;
296 clocks = <&tegra_car TEGRA20_CLK_ISP>;
297 resets = <&tegra_car 23>;
302 compatible = "nvidia,tegra20-gr2d";
303 reg = <0x54140000 0x00040000>;
304 interrupts = <0 72 0x04>;
305 clocks = <&tegra_car TEGRA20_CLK_GR2D>;
306 resets = <&tegra_car 21>, <&mc TEGRA20_MC_RESET_2D>;
307 reset-names = "2d", "mc";
311 compatible = "nvidia,tegra20-gr3d";
312 reg = <0x54180000 0x00040000>;
313 clocks = <&tegra_car TEGRA20_CLK_GR3D>;
314 resets = <&tegra_car 24>, <&mc TEGRA20_MC_RESET_3D>;
315 reset-names = "3d", "mc";
319 compatible = "nvidia,tegra20-dc";
320 reg = <0x54200000 0x00040000>;
321 interrupts = <0 73 0x04>;
322 clocks = <&tegra_car TEGRA20_CLK_DISP1>;
324 resets = <&tegra_car 27>;
332 compatible = "nvidia,tegra20-dc";
333 reg = <0x54240000 0x00040000>;
334 interrupts = <0 74 0x04>;
335 clocks = <&tegra_car TEGRA20_CLK_DISP2>;
337 resets = <&tegra_car 26>;
345 compatible = "nvidia,tegra20-hdmi";
346 reg = <0x54280000 0x00040000>;
347 interrupts = <0 75 0x04>;
348 clocks = <&tegra_car TEGRA20_CLK_HDMI>,
349 <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
350 clock-names = "hdmi", "parent";
351 resets = <&tegra_car 51>;
352 reset-names = "hdmi";
354 hdmi-supply = <&vdd_5v0_hdmi>;
355 pll-supply = <&vdd_hdmi_pll>;
356 vdd-supply = <&vdd_3v3_hdmi>;
358 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
359 nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
363 compatible = "nvidia,tegra20-tvo";
364 reg = <0x542c0000 0x00040000>;
365 interrupts = <0 76 0x04>;
366 clocks = <&tegra_car TEGRA20_CLK_TVO>;
370 compatible = "nvidia,tegra20-dsi";
371 reg = <0x54300000 0x00040000>;
372 clocks = <&tegra_car TEGRA20_CLK_DSI>,
373 <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
374 clock-names = "dsi", "parent";
375 resets = <&tegra_car 48>;
381 #include <dt-bindings/clock/tegra210-car.h>
382 #include <dt-bindings/interrupt-controller/arm-gic.h>
383 #include <dt-bindings/memory/tegra210-mc.h>
386 compatible = "nvidia,tegra210-host1x";
387 reg = <0x50000000 0x00024000>;
388 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* mpcore syncpt */
389 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* mpcore general */
390 interrupt-names = "syncpt", "host1x";
391 clocks = <&tegra_car TEGRA210_CLK_HOST1X>;
392 clock-names = "host1x";
393 resets = <&tegra_car 28>;
394 reset-names = "host1x";
396 #address-cells = <1>;
399 ranges = <0x54000000 0x54000000 0x01000000>;
400 iommus = <&mc TEGRA_SWGROUP_HC>;
403 compatible = "nvidia,tegra210-vi";
404 reg = <0x54080000 0x00000700>;
405 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
406 assigned-clocks = <&tegra_car TEGRA210_CLK_VI>;
407 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
409 clocks = <&tegra_car TEGRA210_CLK_VI>;
410 power-domains = <&pd_venc>;
412 #address-cells = <1>;
415 ranges = <0x0 0x54080000 0x2000>;
418 compatible = "nvidia,tegra210-csi";
419 reg = <0x838 0x1300>;
420 assigned-clocks = <&tegra_car TEGRA210_CLK_CILAB>,
421 <&tegra_car TEGRA210_CLK_CILCD>,
422 <&tegra_car TEGRA210_CLK_CILE>,
423 <&tegra_car TEGRA210_CLK_CSI_TPG>;
424 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_P>,
425 <&tegra_car TEGRA210_CLK_PLL_P>,
426 <&tegra_car TEGRA210_CLK_PLL_P>;
427 assigned-clock-rates = <102000000>,
432 clocks = <&tegra_car TEGRA210_CLK_CSI>,
433 <&tegra_car TEGRA210_CLK_CILAB>,
434 <&tegra_car TEGRA210_CLK_CILCD>,
435 <&tegra_car TEGRA210_CLK_CILE>,
436 <&tegra_car TEGRA210_CLK_CSI_TPG>;
437 clock-names = "csi", "cilab", "cilcd", "cile", "csi_tpg";
438 power-domains = <&pd_sor>;