xref: /linux/arch/arm/boot/dts/nvidia/tegra30.dtsi (revision 3d0fe49454652117522f60bfbefb978ba0e5300b)
1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/clock/tegra30-car.h>
3#include <dt-bindings/gpio/tegra-gpio.h>
4#include <dt-bindings/memory/tegra30-mc.h>
5#include <dt-bindings/pinctrl/pinctrl-tegra.h>
6#include <dt-bindings/interrupt-controller/arm-gic.h>
7#include <dt-bindings/soc/tegra-pmc.h>
8#include <dt-bindings/thermal/thermal.h>
9
10#include "tegra30-peripherals-opp.dtsi"
11
12/ {
13	compatible = "nvidia,tegra30";
14	interrupt-parent = <&lic>;
15	#address-cells = <1>;
16	#size-cells = <1>;
17
18	memory@80000000 {
19		device_type = "memory";
20		reg = <0x80000000 0x0>;
21	};
22
23	pcie@3000 {
24		compatible = "nvidia,tegra30-pcie";
25		device_type = "pci";
26		reg = <0x00003000 0x00000800>, /* PADS registers */
27		      <0x00003800 0x00000200>, /* AFI registers */
28		      <0x10000000 0x10000000>; /* configuration space */
29		reg-names = "pads", "afi", "cs";
30		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
31			     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
32		interrupt-names = "intr", "msi";
33
34		#interrupt-cells = <1>;
35		interrupt-map-mask = <0 0 0 0>;
36		interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
37
38		bus-range = <0x00 0xff>;
39		#address-cells = <3>;
40		#size-cells = <2>;
41
42		ranges = <0x02000000 0 0x00000000 0x00000000 0 0x00001000>, /* port 0 configuration space */
43			 <0x02000000 0 0x00001000 0x00001000 0 0x00001000>, /* port 1 configuration space */
44			 <0x02000000 0 0x00004000 0x00004000 0 0x00001000>, /* port 2 configuration space */
45			 <0x01000000 0 0          0x02000000 0 0x00010000>, /* downstream I/O */
46			 <0x02000000 0 0x20000000 0x20000000 0 0x08000000>, /* non-prefetchable memory */
47			 <0x42000000 0 0x28000000 0x28000000 0 0x18000000>; /* prefetchable memory */
48
49		clocks = <&tegra_car TEGRA30_CLK_PCIE>,
50			 <&tegra_car TEGRA30_CLK_AFI>,
51			 <&tegra_car TEGRA30_CLK_PLL_E>,
52			 <&tegra_car TEGRA30_CLK_CML0>;
53		clock-names = "pex", "afi", "pll_e", "cml";
54		resets = <&tegra_car 70>,
55			 <&tegra_car 72>,
56			 <&tegra_car 74>;
57		reset-names = "pex", "afi", "pcie_x";
58		power-domains = <&pd_core>;
59		operating-points-v2 = <&pcie_dvfs_opp_table>;
60		status = "disabled";
61
62		pci@1,0 {
63			device_type = "pci";
64			assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>;
65			reg = <0x000800 0 0 0 0>;
66			bus-range = <0x00 0xff>;
67			status = "disabled";
68
69			#address-cells = <3>;
70			#size-cells = <2>;
71			ranges;
72
73			nvidia,num-lanes = <2>;
74		};
75
76		pci@2,0 {
77			device_type = "pci";
78			assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>;
79			reg = <0x001000 0 0 0 0>;
80			bus-range = <0x00 0xff>;
81			status = "disabled";
82
83			#address-cells = <3>;
84			#size-cells = <2>;
85			ranges;
86
87			nvidia,num-lanes = <2>;
88		};
89
90		pci@3,0 {
91			device_type = "pci";
92			assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>;
93			reg = <0x001800 0 0 0 0>;
94			bus-range = <0x00 0xff>;
95			status = "disabled";
96
97			#address-cells = <3>;
98			#size-cells = <2>;
99			ranges;
100
101			nvidia,num-lanes = <2>;
102		};
103	};
104
105	sram@40000000 {
106		compatible = "mmio-sram";
107		reg = <0x40000000 0x40000>;
108		#address-cells = <1>;
109		#size-cells = <1>;
110		ranges = <0 0x40000000 0x40000>;
111
112		vde_pool: sram@400 {
113			reg = <0x400 0x3fc00>;
114			pool;
115		};
116	};
117
118	host1x@50000000 {
119		compatible = "nvidia,tegra30-host1x";
120		reg = <0x50000000 0x00024000>;
121		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
122			     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
123		interrupt-names = "syncpt", "host1x";
124		clocks = <&tegra_car TEGRA30_CLK_HOST1X>;
125		clock-names = "host1x";
126		resets = <&tegra_car 28>, <&mc TEGRA30_MC_RESET_HC>;
127		reset-names = "host1x", "mc";
128		iommus = <&mc TEGRA_SWGROUP_HC>;
129		power-domains = <&pd_heg>;
130		operating-points-v2 = <&host1x_dvfs_opp_table>;
131
132		#address-cells = <1>;
133		#size-cells = <1>;
134
135		ranges = <0x54000000 0x54000000 0x04000000>;
136
137		mpe@54040000 {
138			compatible = "nvidia,tegra30-mpe";
139			reg = <0x54040000 0x00040000>;
140			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
141			clocks = <&tegra_car TEGRA30_CLK_MPE>;
142			resets = <&tegra_car 60>;
143			reset-names = "mpe";
144			power-domains = <&pd_mpe>;
145			operating-points-v2 = <&mpe_dvfs_opp_table>;
146
147			iommus = <&mc TEGRA_SWGROUP_MPE>;
148
149			status = "disabled";
150		};
151
152		vi@54080000 {
153			compatible = "nvidia,tegra30-vi";
154			reg = <0x54080000 0x00040000>;
155			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
156			clocks = <&tegra_car TEGRA30_CLK_VI>;
157			resets = <&tegra_car 20>;
158			reset-names = "vi";
159			power-domains = <&pd_venc>;
160			operating-points-v2 = <&vi_dvfs_opp_table>;
161
162			iommus = <&mc TEGRA_SWGROUP_VI>;
163
164			status = "disabled";
165		};
166
167		epp@540c0000 {
168			compatible = "nvidia,tegra30-epp";
169			reg = <0x540c0000 0x00040000>;
170			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
171			clocks = <&tegra_car TEGRA30_CLK_EPP>;
172			resets = <&tegra_car 19>;
173			reset-names = "epp";
174			power-domains = <&pd_heg>;
175			operating-points-v2 = <&epp_dvfs_opp_table>;
176
177			iommus = <&mc TEGRA_SWGROUP_EPP>;
178
179			status = "disabled";
180		};
181
182		isp@54100000 {
183			compatible = "nvidia,tegra30-isp";
184			reg = <0x54100000 0x00040000>;
185			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
186			clocks = <&tegra_car TEGRA30_CLK_ISP>;
187			resets = <&tegra_car 23>;
188			reset-names = "isp";
189			power-domains = <&pd_venc>;
190
191			iommus = <&mc TEGRA_SWGROUP_ISP>;
192
193			status = "disabled";
194		};
195
196		gr2d@54140000 {
197			compatible = "nvidia,tegra30-gr2d";
198			reg = <0x54140000 0x00040000>;
199			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
200			clocks = <&tegra_car TEGRA30_CLK_GR2D>;
201			resets = <&tegra_car 21>, <&mc TEGRA30_MC_RESET_2D>;
202			reset-names = "2d", "mc";
203			power-domains = <&pd_heg>;
204			operating-points-v2 = <&gr2d_dvfs_opp_table>;
205
206			iommus = <&mc TEGRA_SWGROUP_G2>;
207		};
208
209		gr3d@54180000 {
210			compatible = "nvidia,tegra30-gr3d";
211			reg = <0x54180000 0x00040000>;
212			clocks = <&tegra_car TEGRA30_CLK_GR3D>,
213				 <&tegra_car TEGRA30_CLK_GR3D2>;
214			clock-names = "3d", "3d2";
215			resets = <&tegra_car 24>,
216				 <&tegra_car 98>,
217				 <&mc TEGRA30_MC_RESET_3D>,
218				 <&mc TEGRA30_MC_RESET_3D2>;
219			reset-names = "3d", "3d2", "mc", "mc2";
220			power-domains = <&pd_3d0>, <&pd_3d1>;
221			power-domain-names = "3d0", "3d1";
222			operating-points-v2 = <&gr3d_dvfs_opp_table>;
223
224			iommus = <&mc TEGRA_SWGROUP_NV>,
225				 <&mc TEGRA_SWGROUP_NV2>;
226		};
227
228		dc@54200000 {
229			compatible = "nvidia,tegra30-dc";
230			reg = <0x54200000 0x00040000>;
231			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
232			clocks = <&tegra_car TEGRA30_CLK_DISP1>,
233				 <&tegra_car TEGRA30_CLK_PLL_P>;
234			clock-names = "dc", "parent";
235			resets = <&tegra_car 27>;
236			reset-names = "dc";
237			power-domains = <&pd_core>;
238			operating-points-v2 = <&disp1_dvfs_opp_table>;
239
240			iommus = <&mc TEGRA_SWGROUP_DC>;
241
242			nvidia,head = <0>;
243
244			interconnects = <&mc TEGRA30_MC_DISPLAY0A &emc>,
245					<&mc TEGRA30_MC_DISPLAY0B &emc>,
246					<&mc TEGRA30_MC_DISPLAY1B &emc>,
247					<&mc TEGRA30_MC_DISPLAY0C &emc>,
248					<&mc TEGRA30_MC_DISPLAYHC &emc>;
249			interconnect-names = "wina",
250					     "winb",
251					     "winb-vfilter",
252					     "winc",
253					     "cursor";
254
255			rgb {
256				status = "disabled";
257			};
258		};
259
260		dc@54240000 {
261			compatible = "nvidia,tegra30-dc";
262			reg = <0x54240000 0x00040000>;
263			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
264			clocks = <&tegra_car TEGRA30_CLK_DISP2>,
265				 <&tegra_car TEGRA30_CLK_PLL_P>;
266			clock-names = "dc", "parent";
267			resets = <&tegra_car 26>;
268			reset-names = "dc";
269			power-domains = <&pd_core>;
270			operating-points-v2 = <&disp2_dvfs_opp_table>;
271
272			iommus = <&mc TEGRA_SWGROUP_DCB>;
273
274			nvidia,head = <1>;
275
276			interconnects = <&mc TEGRA30_MC_DISPLAY0AB &emc>,
277					<&mc TEGRA30_MC_DISPLAY0BB &emc>,
278					<&mc TEGRA30_MC_DISPLAY1BB &emc>,
279					<&mc TEGRA30_MC_DISPLAY0CB &emc>,
280					<&mc TEGRA30_MC_DISPLAYHCB &emc>;
281			interconnect-names = "wina",
282					     "winb",
283					     "winb-vfilter",
284					     "winc",
285					     "cursor";
286
287			rgb {
288				status = "disabled";
289			};
290		};
291
292		hdmi@54280000 {
293			compatible = "nvidia,tegra30-hdmi";
294			reg = <0x54280000 0x00040000>;
295			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
296			clocks = <&tegra_car TEGRA30_CLK_HDMI>,
297				 <&tegra_car TEGRA30_CLK_PLL_D2_OUT0>;
298			clock-names = "hdmi", "parent";
299			resets = <&tegra_car 51>;
300			reset-names = "hdmi";
301			power-domains = <&pd_core>;
302			operating-points-v2 = <&hdmi_dvfs_opp_table>;
303			status = "disabled";
304		};
305
306		tvo@542c0000 {
307			compatible = "nvidia,tegra30-tvo";
308			reg = <0x542c0000 0x00040000>;
309			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
310			clocks = <&tegra_car TEGRA30_CLK_TVO>;
311			power-domains = <&pd_core>;
312			operating-points-v2 = <&tvo_dvfs_opp_table>;
313			status = "disabled";
314		};
315
316		dsi@54300000 {
317			compatible = "nvidia,tegra30-dsi";
318			reg = <0x54300000 0x00040000>;
319			clocks = <&tegra_car TEGRA30_CLK_DSIA>,
320				 <&tegra_car TEGRA30_CLK_PLL_D_OUT0>;
321			clock-names = "dsi", "parent";
322			resets = <&tegra_car 48>;
323			reset-names = "dsi";
324			power-domains = <&pd_core>;
325			operating-points-v2 = <&dsia_dvfs_opp_table>;
326			status = "disabled";
327		};
328
329		dsi@54400000 {
330			compatible = "nvidia,tegra30-dsi";
331			reg = <0x54400000 0x00040000>;
332			clocks = <&tegra_car TEGRA30_CLK_DSIB>,
333				 <&tegra_car TEGRA30_CLK_PLL_D_OUT0>;
334			clock-names = "dsi", "parent";
335			resets = <&tegra_car 84>;
336			reset-names = "dsi";
337			power-domains = <&pd_core>;
338			operating-points-v2 = <&dsib_dvfs_opp_table>;
339			status = "disabled";
340		};
341	};
342
343	timer@50040600 {
344		compatible = "arm,cortex-a9-twd-timer";
345		reg = <0x50040600 0x20>;
346		interrupt-parent = <&intc>;
347		interrupts = <GIC_PPI 13
348			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
349		clocks = <&tegra_car TEGRA30_CLK_TWD>;
350	};
351
352	intc: interrupt-controller@50041000 {
353		compatible = "arm,cortex-a9-gic";
354		reg = <0x50041000 0x1000>,
355		      <0x50040100 0x0100>;
356		interrupt-controller;
357		#interrupt-cells = <3>;
358		interrupt-parent = <&intc>;
359	};
360
361	cache-controller@50043000 {
362		compatible = "arm,pl310-cache";
363		reg = <0x50043000 0x1000>;
364		arm,data-latency = <6 6 2>;
365		arm,tag-latency = <5 5 2>;
366		cache-unified;
367		cache-level = <2>;
368	};
369
370	lic: interrupt-controller@60004000 {
371		compatible = "nvidia,tegra30-ictlr";
372		reg = <0x60004000 0x100>,
373		      <0x60004100 0x50>,
374		      <0x60004200 0x50>,
375		      <0x60004300 0x50>,
376		      <0x60004400 0x50>;
377		interrupt-controller;
378		#interrupt-cells = <3>;
379		interrupt-parent = <&intc>;
380	};
381
382	timer@60005000 {
383		compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer";
384		reg = <0x60005000 0x400>;
385		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
386			     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
387			     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
388			     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
389			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
390			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
391		clocks = <&tegra_car TEGRA30_CLK_TIMER>;
392	};
393
394	tegra_car: clock@60006000 {
395		compatible = "nvidia,tegra30-car";
396		reg = <0x60006000 0x1000>;
397		#clock-cells = <1>;
398		#reset-cells = <1>;
399
400		pll-c {
401			compatible = "nvidia,tegra30-pllc";
402			clocks = <&tegra_car TEGRA30_CLK_PLL_C>;
403			power-domains = <&pd_core>;
404			operating-points-v2 = <&pll_c_dvfs_opp_table>;
405		};
406
407		pll-e {
408			compatible = "nvidia,tegra30-plle";
409			clocks = <&tegra_car TEGRA30_CLK_PLL_E>;
410			power-domains = <&pd_core>;
411			operating-points-v2 = <&pll_e_dvfs_opp_table>;
412		};
413
414		pll-m {
415			compatible = "nvidia,tegra30-pllm";
416			clocks = <&tegra_car TEGRA30_CLK_PLL_M>;
417			power-domains = <&pd_core>;
418			operating-points-v2 = <&pll_m_dvfs_opp_table>;
419		};
420
421		sclk {
422			compatible = "nvidia,tegra30-sclk";
423			clocks = <&tegra_car TEGRA30_CLK_SCLK>;
424			power-domains = <&pd_core>;
425			operating-points-v2 = <&sclk_dvfs_opp_table>;
426		};
427	};
428
429	flow-controller@60007000 {
430		compatible = "nvidia,tegra30-flowctrl";
431		reg = <0x60007000 0x1000>;
432	};
433
434	apbdma: dma@6000a000 {
435		compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma";
436		reg = <0x6000a000 0x1400>;
437		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
438			     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
439			     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
440			     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
441			     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
442			     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
443			     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
444			     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
445			     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
446			     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
447			     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
448			     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
449			     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
450			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
451			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
452			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
453			     <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
454			     <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
455			     <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
456			     <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
457			     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
458			     <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
459			     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
460			     <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
461			     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
462			     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
463			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
464			     <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
465			     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
466			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
467			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
468			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
469		clocks = <&tegra_car TEGRA30_CLK_APBDMA>;
470		resets = <&tegra_car 34>;
471		reset-names = "dma";
472		#dma-cells = <1>;
473	};
474
475	ahb: ahb@6000c000 {
476		compatible = "nvidia,tegra30-ahb";
477		reg = <0x6000c000 0x150>; /* AHB Arbitration + Gizmo Controller */
478	};
479
480	actmon: actmon@6000c800 {
481		compatible = "nvidia,tegra30-actmon";
482		reg = <0x6000c800 0x400>;
483		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
484		clocks = <&tegra_car TEGRA30_CLK_ACTMON>,
485			 <&tegra_car TEGRA30_CLK_EMC>;
486		clock-names = "actmon", "emc";
487		resets = <&tegra_car TEGRA30_CLK_ACTMON>;
488		reset-names = "actmon";
489		operating-points-v2 = <&emc_bw_dfs_opp_table>;
490		interconnects = <&mc TEGRA30_MC_MPCORER &emc>;
491		interconnect-names = "cpu-read";
492		#cooling-cells = <2>;
493	};
494
495	gpio: gpio@6000d000 {
496		compatible = "nvidia,tegra30-gpio";
497		reg = <0x6000d000 0x1000>;
498		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
499			     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
500			     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
501			     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
502			     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
503			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
504			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
505			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
506		#gpio-cells = <2>;
507		gpio-controller;
508		#interrupt-cells = <2>;
509		interrupt-controller;
510		gpio-ranges = <&pinmux 0 0 248>;
511	};
512
513	vde@6001a000 {
514		compatible = "nvidia,tegra30-vde", "nvidia,tegra20-vde";
515		reg = <0x6001a000 0x1000>, /* Syntax Engine */
516		      <0x6001b000 0x1000>, /* Video Bitstream Engine */
517		      <0x6001c000  0x100>, /* Macroblock Engine */
518		      <0x6001c200  0x100>, /* Post-processing Engine */
519		      <0x6001c400  0x100>, /* Motion Compensation Engine */
520		      <0x6001c600  0x100>, /* Transform Engine */
521		      <0x6001c800  0x100>, /* Pixel prediction block */
522		      <0x6001ca00  0x100>, /* Video DMA */
523		      <0x6001d800  0x400>; /* Video frame controls */
524		reg-names = "sxe", "bsev", "mbe", "ppe", "mce",
525			    "tfe", "ppb", "vdma", "frameid";
526		iram = <&vde_pool>; /* IRAM region */
527		interrupts = <GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */
528			     <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */
529			     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */
530		interrupt-names = "sync-token", "bsev", "sxe";
531		clocks = <&tegra_car TEGRA30_CLK_VDE>;
532		reset-names = "vde", "mc";
533		resets = <&tegra_car 61>, <&mc TEGRA30_MC_RESET_VDE>;
534		iommus = <&mc TEGRA_SWGROUP_VDE>;
535		power-domains = <&pd_vde>;
536		operating-points-v2 = <&vde_dvfs_opp_table>;
537	};
538
539	apbmisc@70000800 {
540		compatible = "nvidia,tegra30-apbmisc", "nvidia,tegra20-apbmisc";
541		reg = <0x70000800 0x64>, /* Chip revision */
542		      <0x70000008 0x04>; /* Strapping options */
543	};
544
545	pinmux: pinmux@70000868 {
546		compatible = "nvidia,tegra30-pinmux";
547		reg = <0x70000868 0x0d4>, /* Pad control registers */
548		      <0x70003000 0x3e4>; /* Mux registers */
549	};
550
551	/*
552	 * There are two serial driver i.e. 8250 based simple serial
553	 * driver and APB DMA based serial driver for higher baudrate
554	 * and performace. To enable the 8250 based driver, the compatible
555	 * is "nvidia,tegra30-uart", "nvidia,tegra20-uart" and to enable
556	 * the APB DMA based serial driver, the compatible is
557	 * "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart".
558	 */
559	uarta: serial@70006000 {
560		compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
561		reg = <0x70006000 0x40>;
562		reg-shift = <2>;
563		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
564		clocks = <&tegra_car TEGRA30_CLK_UARTA>;
565		resets = <&tegra_car 6>;
566		dmas = <&apbdma 8>, <&apbdma 8>;
567		dma-names = "rx", "tx";
568		status = "disabled";
569	};
570
571	uartb: serial@70006040 {
572		compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
573		reg = <0x70006040 0x40>;
574		reg-shift = <2>;
575		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
576		clocks = <&tegra_car TEGRA30_CLK_UARTB>;
577		resets = <&tegra_car 7>;
578		dmas = <&apbdma 9>, <&apbdma 9>;
579		dma-names = "rx", "tx";
580		status = "disabled";
581	};
582
583	uartc: serial@70006200 {
584		compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
585		reg = <0x70006200 0x100>;
586		reg-shift = <2>;
587		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
588		clocks = <&tegra_car TEGRA30_CLK_UARTC>;
589		resets = <&tegra_car 55>;
590		dmas = <&apbdma 10>, <&apbdma 10>;
591		dma-names = "rx", "tx";
592		status = "disabled";
593	};
594
595	uartd: serial@70006300 {
596		compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
597		reg = <0x70006300 0x100>;
598		reg-shift = <2>;
599		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
600		clocks = <&tegra_car TEGRA30_CLK_UARTD>;
601		resets = <&tegra_car 65>;
602		dmas = <&apbdma 19>, <&apbdma 19>;
603		dma-names = "rx", "tx";
604		status = "disabled";
605	};
606
607	uarte: serial@70006400 {
608		compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
609		reg = <0x70006400 0x100>;
610		reg-shift = <2>;
611		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
612		clocks = <&tegra_car TEGRA30_CLK_UARTE>;
613		resets = <&tegra_car 66>;
614		dmas = <&apbdma 20>, <&apbdma 20>;
615		dma-names = "rx", "tx";
616		status = "disabled";
617	};
618
619	gmi@70009000 {
620		compatible = "nvidia,tegra30-gmi";
621		reg = <0x70009000 0x1000>;
622		#address-cells = <2>;
623		#size-cells = <1>;
624		ranges = <0 0 0x48000000 0x7ffffff>;
625		clocks = <&tegra_car TEGRA30_CLK_NOR>;
626		clock-names = "gmi";
627		resets = <&tegra_car 42>;
628		reset-names = "gmi";
629		power-domains = <&pd_core>;
630		operating-points-v2 = <&nor_dvfs_opp_table>;
631		status = "disabled";
632	};
633
634	pwm: pwm@7000a000 {
635		compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm";
636		reg = <0x7000a000 0x100>;
637		#pwm-cells = <2>;
638		clocks = <&tegra_car TEGRA30_CLK_PWM>;
639		resets = <&tegra_car 17>;
640		reset-names = "pwm";
641		power-domains = <&pd_core>;
642		operating-points-v2 = <&pwm_dvfs_opp_table>;
643		status = "disabled";
644	};
645
646	i2c@7000c000 {
647		compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
648		reg = <0x7000c000 0x100>;
649		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
650		#address-cells = <1>;
651		#size-cells = <0>;
652		clocks = <&tegra_car TEGRA30_CLK_I2C1>,
653			 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
654		clock-names = "div-clk", "fast-clk";
655		resets = <&tegra_car 12>;
656		reset-names = "i2c";
657		dmas = <&apbdma 21>, <&apbdma 21>;
658		dma-names = "rx", "tx";
659		status = "disabled";
660	};
661
662	i2c@7000c400 {
663		compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
664		reg = <0x7000c400 0x100>;
665		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
666		#address-cells = <1>;
667		#size-cells = <0>;
668		clocks = <&tegra_car TEGRA30_CLK_I2C2>,
669			 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
670		clock-names = "div-clk", "fast-clk";
671		resets = <&tegra_car 54>;
672		reset-names = "i2c";
673		dmas = <&apbdma 22>, <&apbdma 22>;
674		dma-names = "rx", "tx";
675		status = "disabled";
676	};
677
678	i2c@7000c500 {
679		compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
680		reg = <0x7000c500 0x100>;
681		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
682		#address-cells = <1>;
683		#size-cells = <0>;
684		clocks = <&tegra_car TEGRA30_CLK_I2C3>,
685			 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
686		clock-names = "div-clk", "fast-clk";
687		resets = <&tegra_car 67>;
688		reset-names = "i2c";
689		dmas = <&apbdma 23>, <&apbdma 23>;
690		dma-names = "rx", "tx";
691		status = "disabled";
692	};
693
694	i2c@7000c700 {
695		compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
696		reg = <0x7000c700 0x100>;
697		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
698		#address-cells = <1>;
699		#size-cells = <0>;
700		clocks = <&tegra_car TEGRA30_CLK_I2C4>,
701			 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
702		resets = <&tegra_car 103>;
703		reset-names = "i2c";
704		clock-names = "div-clk", "fast-clk";
705		dmas = <&apbdma 26>, <&apbdma 26>;
706		dma-names = "rx", "tx";
707		status = "disabled";
708	};
709
710	i2c@7000d000 {
711		compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
712		reg = <0x7000d000 0x100>;
713		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
714		#address-cells = <1>;
715		#size-cells = <0>;
716		clocks = <&tegra_car TEGRA30_CLK_I2C5>,
717			 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
718		clock-names = "div-clk", "fast-clk";
719		resets = <&tegra_car 47>;
720		reset-names = "i2c";
721		dmas = <&apbdma 24>, <&apbdma 24>;
722		dma-names = "rx", "tx";
723		status = "disabled";
724	};
725
726	spi@7000d400 {
727		compatible = "nvidia,tegra30-slink";
728		reg = <0x7000d400 0x200>;
729		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
730		#address-cells = <1>;
731		#size-cells = <0>;
732		clocks = <&tegra_car TEGRA30_CLK_SBC1>;
733		resets = <&tegra_car 41>;
734		reset-names = "spi";
735		dmas = <&apbdma 15>, <&apbdma 15>;
736		dma-names = "rx", "tx";
737		power-domains = <&pd_core>;
738		operating-points-v2 = <&sbc1_dvfs_opp_table>;
739		status = "disabled";
740	};
741
742	spi@7000d600 {
743		compatible = "nvidia,tegra30-slink";
744		reg = <0x7000d600 0x200>;
745		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
746		#address-cells = <1>;
747		#size-cells = <0>;
748		clocks = <&tegra_car TEGRA30_CLK_SBC2>;
749		resets = <&tegra_car 44>;
750		reset-names = "spi";
751		dmas = <&apbdma 16>, <&apbdma 16>;
752		dma-names = "rx", "tx";
753		power-domains = <&pd_core>;
754		operating-points-v2 = <&sbc2_dvfs_opp_table>;
755		status = "disabled";
756	};
757
758	spi@7000d800 {
759		compatible = "nvidia,tegra30-slink";
760		reg = <0x7000d800 0x200>;
761		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
762		#address-cells = <1>;
763		#size-cells = <0>;
764		clocks = <&tegra_car TEGRA30_CLK_SBC3>;
765		resets = <&tegra_car 46>;
766		reset-names = "spi";
767		dmas = <&apbdma 17>, <&apbdma 17>;
768		dma-names = "rx", "tx";
769		power-domains = <&pd_core>;
770		operating-points-v2 = <&sbc3_dvfs_opp_table>;
771		status = "disabled";
772	};
773
774	spi@7000da00 {
775		compatible = "nvidia,tegra30-slink";
776		reg = <0x7000da00 0x200>;
777		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
778		#address-cells = <1>;
779		#size-cells = <0>;
780		clocks = <&tegra_car TEGRA30_CLK_SBC4>;
781		resets = <&tegra_car 68>;
782		reset-names = "spi";
783		dmas = <&apbdma 18>, <&apbdma 18>;
784		dma-names = "rx", "tx";
785		power-domains = <&pd_core>;
786		operating-points-v2 = <&sbc4_dvfs_opp_table>;
787		status = "disabled";
788	};
789
790	spi@7000dc00 {
791		compatible = "nvidia,tegra30-slink";
792		reg = <0x7000dc00 0x200>;
793		interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
794		#address-cells = <1>;
795		#size-cells = <0>;
796		clocks = <&tegra_car TEGRA30_CLK_SBC5>;
797		resets = <&tegra_car 104>;
798		reset-names = "spi";
799		dmas = <&apbdma 27>, <&apbdma 27>;
800		dma-names = "rx", "tx";
801		power-domains = <&pd_core>;
802		operating-points-v2 = <&sbc5_dvfs_opp_table>;
803		status = "disabled";
804	};
805
806	spi@7000de00 {
807		compatible = "nvidia,tegra30-slink";
808		reg = <0x7000de00 0x200>;
809		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
810		#address-cells = <1>;
811		#size-cells = <0>;
812		clocks = <&tegra_car TEGRA30_CLK_SBC6>;
813		resets = <&tegra_car 106>;
814		reset-names = "spi";
815		dmas = <&apbdma 28>, <&apbdma 28>;
816		dma-names = "rx", "tx";
817		power-domains = <&pd_core>;
818		operating-points-v2 = <&sbc6_dvfs_opp_table>;
819		status = "disabled";
820	};
821
822	rtc@7000e000 {
823		compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc";
824		reg = <0x7000e000 0x100>;
825		interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
826		clocks = <&tegra_car TEGRA30_CLK_RTC>;
827	};
828
829	kbc@7000e200 {
830		compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc";
831		reg = <0x7000e200 0x100>;
832		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
833		clocks = <&tegra_car TEGRA30_CLK_KBC>;
834		resets = <&tegra_car 36>;
835		reset-names = "kbc";
836		status = "disabled";
837	};
838
839	tegra_pmc: pmc@7000e400 {
840		compatible = "nvidia,tegra30-pmc";
841		reg = <0x7000e400 0x400>;
842		clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>;
843		clock-names = "pclk", "clk32k_in";
844		#clock-cells = <1>;
845
846		pd_core: core-domain {
847			#power-domain-cells = <0>;
848			operating-points-v2 = <&core_opp_table>;
849		};
850
851		powergates {
852			pd_heg: heg {
853				clocks = <&tegra_car TEGRA30_CLK_GR2D>,
854					 <&tegra_car TEGRA30_CLK_EPP>,
855					 <&tegra_car TEGRA30_CLK_HOST1X>;
856				resets = <&mc TEGRA30_MC_RESET_2D>,
857					 <&mc TEGRA30_MC_RESET_EPP>,
858					 <&mc TEGRA30_MC_RESET_HC>,
859					 <&tegra_car TEGRA30_CLK_GR2D>,
860					 <&tegra_car TEGRA30_CLK_EPP>,
861					 <&tegra_car TEGRA30_CLK_HOST1X>;
862				power-domains = <&pd_core>;
863				#power-domain-cells = <0>;
864			};
865
866			pd_mpe: mpe {
867				clocks = <&tegra_car TEGRA30_CLK_MPE>;
868				resets = <&mc TEGRA30_MC_RESET_MPE>,
869					 <&tegra_car TEGRA30_CLK_MPE>;
870				power-domains = <&pd_core>;
871				#power-domain-cells = <0>;
872			};
873
874			pd_3d0: td {
875				clocks = <&tegra_car TEGRA30_CLK_GR3D>;
876				resets = <&mc TEGRA30_MC_RESET_3D>,
877					 <&tegra_car TEGRA30_CLK_GR3D>;
878				power-domains = <&pd_core>;
879				#power-domain-cells = <0>;
880			};
881
882			pd_3d1: td2 {
883				clocks = <&tegra_car TEGRA30_CLK_GR3D2>;
884				resets = <&mc TEGRA30_MC_RESET_3D2>,
885					 <&tegra_car TEGRA30_CLK_GR3D2>;
886				power-domains = <&pd_core>;
887				#power-domain-cells = <0>;
888			};
889
890			pd_vde: vdec {
891				clocks = <&tegra_car TEGRA30_CLK_VDE>;
892				resets = <&mc TEGRA30_MC_RESET_VDE>,
893					 <&tegra_car TEGRA30_CLK_VDE>;
894				power-domains = <&pd_core>;
895				#power-domain-cells = <0>;
896			};
897
898			pd_venc: venc {
899				clocks = <&tegra_car TEGRA30_CLK_ISP>,
900					 <&tegra_car TEGRA30_CLK_VI>,
901					 <&tegra_car TEGRA30_CLK_CSI>;
902				resets = <&mc TEGRA30_MC_RESET_ISP>,
903					 <&mc TEGRA30_MC_RESET_VI>,
904					 <&tegra_car TEGRA30_CLK_ISP>,
905					 <&tegra_car 20 /* VI */>,
906					 <&tegra_car TEGRA30_CLK_CSI>;
907				power-domains = <&pd_core>;
908				#power-domain-cells = <0>;
909			};
910		};
911	};
912
913	mc: memory-controller@7000f000 {
914		compatible = "nvidia,tegra30-mc";
915		reg = <0x7000f000 0x400>;
916		clocks = <&tegra_car TEGRA30_CLK_MC>;
917		clock-names = "mc";
918
919		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
920
921		#iommu-cells = <1>;
922		#reset-cells = <1>;
923		#interconnect-cells = <1>;
924	};
925
926	emc: memory-controller@7000f400 {
927		compatible = "nvidia,tegra30-emc";
928		reg = <0x7000f400 0x400>;
929		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
930		clocks = <&tegra_car TEGRA30_CLK_EMC>;
931		power-domains = <&pd_core>;
932
933		nvidia,memory-controller = <&mc>;
934		operating-points-v2 = <&emc_icc_dvfs_opp_table>;
935
936		#interconnect-cells = <0>;
937	};
938
939	fuse@7000f800 {
940		compatible = "nvidia,tegra30-efuse";
941		reg = <0x7000f800 0x400>;
942		clocks = <&tegra_car TEGRA30_CLK_FUSE>;
943		clock-names = "fuse";
944		resets = <&tegra_car 39>;
945		reset-names = "fuse";
946		power-domains = <&pd_core>;
947		operating-points-v2 = <&fuse_burn_dvfs_opp_table>;
948	};
949
950	tsensor: tsensor@70014000 {
951		compatible = "nvidia,tegra30-tsensor";
952		reg = <0x70014000 0x500>;
953		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
954		clocks = <&tegra_car TEGRA30_CLK_TSENSOR>;
955		resets = <&tegra_car TEGRA30_CLK_TSENSOR>;
956
957		assigned-clocks = <&tegra_car TEGRA30_CLK_TSENSOR>;
958		assigned-clock-parents = <&tegra_car TEGRA30_CLK_CLK_M>;
959		assigned-clock-rates = <500000>;
960
961		#thermal-sensor-cells = <1>;
962	};
963
964	hda@70030000 {
965		compatible = "nvidia,tegra30-hda";
966		reg = <0x70030000 0x10000>;
967		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
968		clocks = <&tegra_car TEGRA30_CLK_HDA>,
969			 <&tegra_car TEGRA30_CLK_HDA2HDMI>,
970			 <&tegra_car TEGRA30_CLK_HDA2CODEC_2X>;
971		clock-names = "hda", "hda2hdmi", "hda2codec_2x";
972		resets = <&tegra_car 125>, /* hda */
973			 <&tegra_car 128>, /* hda2hdmi */
974			 <&tegra_car 111>; /* hda2codec_2x */
975		reset-names = "hda", "hda2hdmi", "hda2codec_2x";
976		status = "disabled";
977	};
978
979	ahub@70080000 {
980		compatible = "nvidia,tegra30-ahub";
981		reg = <0x70080000 0x200>,
982		      <0x70080200 0x100>;
983		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
984		clocks = <&tegra_car TEGRA30_CLK_D_AUDIO>,
985			 <&tegra_car TEGRA30_CLK_APBIF>;
986		clock-names = "d_audio", "apbif";
987		resets = <&tegra_car 106>, /* d_audio */
988			 <&tegra_car 107>, /* apbif */
989			 <&tegra_car 30>,  /* i2s0 */
990			 <&tegra_car 11>,  /* i2s1 */
991			 <&tegra_car 18>,  /* i2s2 */
992			 <&tegra_car 101>, /* i2s3 */
993			 <&tegra_car 102>, /* i2s4 */
994			 <&tegra_car 108>, /* dam0 */
995			 <&tegra_car 109>, /* dam1 */
996			 <&tegra_car 110>, /* dam2 */
997			 <&tegra_car 10>;  /* spdif */
998		reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
999			      "i2s3", "i2s4", "dam0", "dam1", "dam2",
1000			      "spdif";
1001		dmas = <&apbdma 1>, <&apbdma 1>,
1002		       <&apbdma 2>, <&apbdma 2>,
1003		       <&apbdma 3>, <&apbdma 3>,
1004		       <&apbdma 4>, <&apbdma 4>;
1005		dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2",
1006			    "rx3", "tx3";
1007		ranges;
1008		#address-cells = <1>;
1009		#size-cells = <1>;
1010
1011		tegra_i2s0: i2s@70080300 {
1012			compatible = "nvidia,tegra30-i2s";
1013			reg = <0x70080300 0x100>;
1014			nvidia,ahub-cif-ids = <4 4>;
1015			clocks = <&tegra_car TEGRA30_CLK_I2S0>;
1016			resets = <&tegra_car 30>;
1017			reset-names = "i2s";
1018			status = "disabled";
1019		};
1020
1021		tegra_i2s1: i2s@70080400 {
1022			compatible = "nvidia,tegra30-i2s";
1023			reg = <0x70080400 0x100>;
1024			nvidia,ahub-cif-ids = <5 5>;
1025			clocks = <&tegra_car TEGRA30_CLK_I2S1>;
1026			resets = <&tegra_car 11>;
1027			reset-names = "i2s";
1028			status = "disabled";
1029		};
1030
1031		tegra_i2s2: i2s@70080500 {
1032			compatible = "nvidia,tegra30-i2s";
1033			reg = <0x70080500 0x100>;
1034			nvidia,ahub-cif-ids = <6 6>;
1035			clocks = <&tegra_car TEGRA30_CLK_I2S2>;
1036			resets = <&tegra_car 18>;
1037			reset-names = "i2s";
1038			status = "disabled";
1039		};
1040
1041		tegra_i2s3: i2s@70080600 {
1042			compatible = "nvidia,tegra30-i2s";
1043			reg = <0x70080600 0x100>;
1044			nvidia,ahub-cif-ids = <7 7>;
1045			clocks = <&tegra_car TEGRA30_CLK_I2S3>;
1046			resets = <&tegra_car 101>;
1047			reset-names = "i2s";
1048			status = "disabled";
1049		};
1050
1051		tegra_i2s4: i2s@70080700 {
1052			compatible = "nvidia,tegra30-i2s";
1053			reg = <0x70080700 0x100>;
1054			nvidia,ahub-cif-ids = <8 8>;
1055			clocks = <&tegra_car TEGRA30_CLK_I2S4>;
1056			resets = <&tegra_car 102>;
1057			reset-names = "i2s";
1058			status = "disabled";
1059		};
1060	};
1061
1062	mmc@78000000 {
1063		compatible = "nvidia,tegra30-sdhci";
1064		reg = <0x78000000 0x200>;
1065		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1066		clocks = <&tegra_car TEGRA30_CLK_SDMMC1>;
1067		clock-names = "sdhci";
1068		resets = <&tegra_car 14>;
1069		reset-names = "sdhci";
1070		power-domains = <&pd_core>;
1071		operating-points-v2 = <&sdmmc1_dvfs_opp_table>;
1072		status = "disabled";
1073	};
1074
1075	mmc@78000200 {
1076		compatible = "nvidia,tegra30-sdhci";
1077		reg = <0x78000200 0x200>;
1078		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1079		clocks = <&tegra_car TEGRA30_CLK_SDMMC2>;
1080		clock-names = "sdhci";
1081		resets = <&tegra_car 9>;
1082		reset-names = "sdhci";
1083		status = "disabled";
1084	};
1085
1086	mmc@78000400 {
1087		compatible = "nvidia,tegra30-sdhci";
1088		reg = <0x78000400 0x200>;
1089		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
1090		clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
1091		clock-names = "sdhci";
1092		resets = <&tegra_car 69>;
1093		reset-names = "sdhci";
1094		power-domains = <&pd_core>;
1095		operating-points-v2 = <&sdmmc3_dvfs_opp_table>;
1096		status = "disabled";
1097	};
1098
1099	mmc@78000600 {
1100		compatible = "nvidia,tegra30-sdhci";
1101		reg = <0x78000600 0x200>;
1102		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
1103		clocks = <&tegra_car TEGRA30_CLK_SDMMC4>;
1104		clock-names = "sdhci";
1105		resets = <&tegra_car 15>;
1106		reset-names = "sdhci";
1107		status = "disabled";
1108	};
1109
1110	usb@7d000000 {
1111		compatible = "nvidia,tegra30-ehci";
1112		reg = <0x7d000000 0x4000>;
1113		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
1114		phy_type = "utmi";
1115		clocks = <&tegra_car TEGRA30_CLK_USBD>;
1116		resets = <&tegra_car 22>;
1117		reset-names = "usb";
1118		nvidia,needs-double-reset;
1119		nvidia,phy = <&phy1>;
1120		power-domains = <&pd_core>;
1121		operating-points-v2 = <&usbd_dvfs_opp_table>;
1122		status = "disabled";
1123	};
1124
1125	phy1: usb-phy@7d000000 {
1126		compatible = "nvidia,tegra30-usb-phy";
1127		reg = <0x7d000000 0x4000>,
1128		      <0x7d000000 0x4000>;
1129		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
1130		phy_type = "utmi";
1131		clocks = <&tegra_car TEGRA30_CLK_USBD>,
1132			 <&tegra_car TEGRA30_CLK_PLL_U>,
1133			 <&tegra_car TEGRA30_CLK_USBD>;
1134		clock-names = "reg", "pll_u", "utmi-pads";
1135		resets = <&tegra_car 22>, <&tegra_car 22>;
1136		reset-names = "usb", "utmi-pads";
1137		#phy-cells = <0>;
1138		nvidia,hssync-start-delay = <9>;
1139		nvidia,idle-wait-delay = <17>;
1140		nvidia,elastic-limit = <16>;
1141		nvidia,term-range-adj = <6>;
1142		nvidia,xcvr-setup = <51>;
1143		nvidia,xcvr-setup-use-fuses;
1144		nvidia,xcvr-lsfslew = <1>;
1145		nvidia,xcvr-lsrslew = <1>;
1146		nvidia,xcvr-hsslew = <32>;
1147		nvidia,hssquelch-level = <2>;
1148		nvidia,hsdiscon-level = <5>;
1149		nvidia,has-utmi-pad-registers;
1150		nvidia,pmc = <&tegra_pmc 0>;
1151		status = "disabled";
1152	};
1153
1154	usb@7d004000 {
1155		compatible = "nvidia,tegra30-ehci";
1156		reg = <0x7d004000 0x4000>;
1157		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
1158		phy_type = "utmi";
1159		clocks = <&tegra_car TEGRA30_CLK_USB2>;
1160		resets = <&tegra_car 58>;
1161		reset-names = "usb";
1162		nvidia,phy = <&phy2>;
1163		power-domains = <&pd_core>;
1164		operating-points-v2 = <&usb2_dvfs_opp_table>;
1165		status = "disabled";
1166	};
1167
1168	phy2: usb-phy@7d004000 {
1169		compatible = "nvidia,tegra30-usb-phy";
1170		reg = <0x7d004000 0x4000>,
1171		      <0x7d000000 0x4000>;
1172		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
1173		phy_type = "utmi";
1174		clocks = <&tegra_car TEGRA30_CLK_USB2>,
1175			 <&tegra_car TEGRA30_CLK_PLL_U>,
1176			 <&tegra_car TEGRA30_CLK_USBD>;
1177		clock-names = "reg", "pll_u", "utmi-pads";
1178		resets = <&tegra_car 58>, <&tegra_car 22>;
1179		reset-names = "usb", "utmi-pads";
1180		#phy-cells = <0>;
1181		nvidia,hssync-start-delay = <9>;
1182		nvidia,idle-wait-delay = <17>;
1183		nvidia,elastic-limit = <16>;
1184		nvidia,term-range-adj = <6>;
1185		nvidia,xcvr-setup = <51>;
1186		nvidia,xcvr-setup-use-fuses;
1187		nvidia,xcvr-lsfslew = <2>;
1188		nvidia,xcvr-lsrslew = <2>;
1189		nvidia,xcvr-hsslew = <32>;
1190		nvidia,hssquelch-level = <2>;
1191		nvidia,hsdiscon-level = <5>;
1192		nvidia,pmc = <&tegra_pmc 2>;
1193		status = "disabled";
1194	};
1195
1196	usb@7d008000 {
1197		compatible = "nvidia,tegra30-ehci";
1198		reg = <0x7d008000 0x4000>;
1199		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1200		phy_type = "utmi";
1201		clocks = <&tegra_car TEGRA30_CLK_USB3>;
1202		resets = <&tegra_car 59>;
1203		reset-names = "usb";
1204		nvidia,phy = <&phy3>;
1205		power-domains = <&pd_core>;
1206		operating-points-v2 = <&usb3_dvfs_opp_table>;
1207		status = "disabled";
1208	};
1209
1210	phy3: usb-phy@7d008000 {
1211		compatible = "nvidia,tegra30-usb-phy";
1212		reg = <0x7d008000 0x4000>,
1213		      <0x7d000000 0x4000>;
1214		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1215		phy_type = "utmi";
1216		clocks = <&tegra_car TEGRA30_CLK_USB3>,
1217			 <&tegra_car TEGRA30_CLK_PLL_U>,
1218			 <&tegra_car TEGRA30_CLK_USBD>;
1219		clock-names = "reg", "pll_u", "utmi-pads";
1220		resets = <&tegra_car 59>, <&tegra_car 22>;
1221		reset-names = "usb", "utmi-pads";
1222		#phy-cells = <0>;
1223		nvidia,hssync-start-delay = <0>;
1224		nvidia,idle-wait-delay = <17>;
1225		nvidia,elastic-limit = <16>;
1226		nvidia,term-range-adj = <6>;
1227		nvidia,xcvr-setup = <51>;
1228		nvidia,xcvr-setup-use-fuses;
1229		nvidia,xcvr-lsfslew = <2>;
1230		nvidia,xcvr-lsrslew = <2>;
1231		nvidia,xcvr-hsslew = <32>;
1232		nvidia,hssquelch-level = <2>;
1233		nvidia,hsdiscon-level = <5>;
1234		nvidia,pmc = <&tegra_pmc 1>;
1235		status = "disabled";
1236	};
1237
1238	cpus {
1239		#address-cells = <1>;
1240		#size-cells = <0>;
1241
1242		cpu0: cpu@0 {
1243			device_type = "cpu";
1244			compatible = "arm,cortex-a9";
1245			reg = <0>;
1246			clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
1247			#cooling-cells = <2>;
1248		};
1249
1250		cpu1: cpu@1 {
1251			device_type = "cpu";
1252			compatible = "arm,cortex-a9";
1253			reg = <1>;
1254			clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
1255			#cooling-cells = <2>;
1256		};
1257
1258		cpu2: cpu@2 {
1259			device_type = "cpu";
1260			compatible = "arm,cortex-a9";
1261			reg = <2>;
1262			clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
1263			#cooling-cells = <2>;
1264		};
1265
1266		cpu3: cpu@3 {
1267			device_type = "cpu";
1268			compatible = "arm,cortex-a9";
1269			reg = <3>;
1270			clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
1271			#cooling-cells = <2>;
1272		};
1273	};
1274
1275	pmu {
1276		compatible = "arm,cortex-a9-pmu";
1277		interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
1278			     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1279			     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
1280			     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1281		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
1282	};
1283
1284	thermal-zones {
1285		tsensor0-thermal {
1286			polling-delay-passive = <1000>; /* milliseconds */
1287			polling-delay = <5000>; /* milliseconds */
1288
1289			thermal-sensors = <&tsensor 0>;
1290
1291			trips {
1292				level1_trip: dvfs-alert {
1293					/* throttle at 80C until temperature drops to 79.8C */
1294					temperature = <80000>;
1295					hysteresis = <200>;
1296					type = "passive";
1297				};
1298
1299				level2_trip: cpu-div2-throttle {
1300					/* hardware CPU x2 freq throttle at 85C */
1301					temperature = <85000>;
1302					hysteresis = <200>;
1303					type = "hot";
1304				};
1305
1306				level3_trip: soc-critical {
1307					/* hardware shut down at 90C */
1308					temperature = <90000>;
1309					hysteresis = <2000>;
1310					type = "critical";
1311				};
1312			};
1313
1314			cooling-maps {
1315				map0 {
1316					trip = <&level1_trip>;
1317					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1318							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1319							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1320							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1321							 <&actmon THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1322				};
1323			};
1324		};
1325
1326		tsensor1-thermal {
1327			status = "disabled";
1328
1329			polling-delay-passive = <1000>; /* milliseconds */
1330			polling-delay = <0>; /* milliseconds */
1331
1332			thermal-sensors = <&tsensor 1>;
1333
1334			trips {
1335				dvfs-alert {
1336					temperature = <80000>;
1337					hysteresis = <200>;
1338					type = "passive";
1339				};
1340			};
1341		};
1342	};
1343};
1344