1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/clock/tegra210-car.h>
3#include <dt-bindings/gpio/tegra-gpio.h>
4#include <dt-bindings/memory/tegra210-mc.h>
5#include <dt-bindings/pinctrl/pinctrl-tegra.h>
6#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
7#include <dt-bindings/reset/tegra210-car.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/thermal/tegra124-soctherm.h>
10#include <dt-bindings/soc/tegra-pmc.h>
11
12/ {
13	compatible = "nvidia,tegra210";
14	interrupt-parent = <&lic>;
15	#address-cells = <2>;
16	#size-cells = <2>;
17
18	pcie@1003000 {
19		compatible = "nvidia,tegra210-pcie";
20		device_type = "pci";
21		reg = <0x0 0x01003000 0x0 0x00000800   /* PADS registers */
22		       0x0 0x01003800 0x0 0x00000800   /* AFI registers */
23		       0x0 0x02000000 0x0 0x10000000>; /* configuration space */
24		reg-names = "pads", "afi", "cs";
25		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
26			     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
27		interrupt-names = "intr", "msi";
28
29		#interrupt-cells = <1>;
30		interrupt-map-mask = <0 0 0 0>;
31		interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
32
33		bus-range = <0x00 0xff>;
34		#address-cells = <3>;
35		#size-cells = <2>;
36
37		ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000   /* port 0 configuration space */
38			  0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000   /* port 1 configuration space */
39			  0x81000000 0 0x0        0x0 0x12000000 0 0x00010000   /* downstream I/O (64 KiB) */
40			  0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000   /* non-prefetchable memory (208 MiB) */
41			  0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */
42
43		clocks = <&tegra_car TEGRA210_CLK_PCIE>,
44			 <&tegra_car TEGRA210_CLK_AFI>,
45			 <&tegra_car TEGRA210_CLK_PLL_E>,
46			 <&tegra_car TEGRA210_CLK_CML0>;
47		clock-names = "pex", "afi", "pll_e", "cml";
48		resets = <&tegra_car 70>,
49			 <&tegra_car 72>,
50			 <&tegra_car 74>;
51		reset-names = "pex", "afi", "pcie_x";
52
53		pinctrl-names = "default", "idle";
54		pinctrl-0 = <&pex_dpd_disable>;
55		pinctrl-1 = <&pex_dpd_enable>;
56
57		status = "disabled";
58
59		pci@1,0 {
60			device_type = "pci";
61			assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>;
62			reg = <0x000800 0 0 0 0>;
63			bus-range = <0x00 0xff>;
64			status = "disabled";
65
66			#address-cells = <3>;
67			#size-cells = <2>;
68			ranges;
69
70			nvidia,num-lanes = <4>;
71		};
72
73		pci@2,0 {
74			device_type = "pci";
75			assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>;
76			reg = <0x001000 0 0 0 0>;
77			bus-range = <0x00 0xff>;
78			status = "disabled";
79
80			#address-cells = <3>;
81			#size-cells = <2>;
82			ranges;
83
84			nvidia,num-lanes = <1>;
85		};
86	};
87
88	host1x@50000000 {
89		compatible = "nvidia,tegra210-host1x", "simple-bus";
90		reg = <0x0 0x50000000 0x0 0x00034000>;
91		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
92			     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
93		clocks = <&tegra_car TEGRA210_CLK_HOST1X>;
94		clock-names = "host1x";
95		resets = <&tegra_car 28>;
96		reset-names = "host1x";
97
98		#address-cells = <2>;
99		#size-cells = <2>;
100
101		ranges = <0x0 0x54000000 0x0 0x54000000 0x0 0x01000000>;
102
103		iommus = <&mc TEGRA_SWGROUP_HC>;
104
105		dpaux1: dpaux@54040000 {
106			compatible = "nvidia,tegra210-dpaux";
107			reg = <0x0 0x54040000 0x0 0x00040000>;
108			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
109			clocks = <&tegra_car TEGRA210_CLK_DPAUX1>,
110				 <&tegra_car TEGRA210_CLK_PLL_DP>;
111			clock-names = "dpaux", "parent";
112			resets = <&tegra_car 207>;
113			reset-names = "dpaux";
114			power-domains = <&pd_sor>;
115			status = "disabled";
116
117			state_dpaux1_aux: pinmux-aux {
118				groups = "dpaux-io";
119				function = "aux";
120			};
121
122			state_dpaux1_i2c: pinmux-i2c {
123				groups = "dpaux-io";
124				function = "i2c";
125			};
126
127			state_dpaux1_off: pinmux-off {
128				groups = "dpaux-io";
129				function = "off";
130			};
131
132			i2c-bus {
133				#address-cells = <1>;
134				#size-cells = <0>;
135			};
136		};
137
138		vi@54080000 {
139			compatible = "nvidia,tegra210-vi";
140			reg = <0x0 0x54080000 0x0 0x00040000>;
141			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
142			status = "disabled";
143		};
144
145		tsec@54100000 {
146			compatible = "nvidia,tegra210-tsec";
147			reg = <0x0 0x54100000 0x0 0x00040000>;
148		};
149
150		dc@54200000 {
151			compatible = "nvidia,tegra210-dc";
152			reg = <0x0 0x54200000 0x0 0x00040000>;
153			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
154			clocks = <&tegra_car TEGRA210_CLK_DISP1>,
155				 <&tegra_car TEGRA210_CLK_PLL_P>;
156			clock-names = "dc", "parent";
157			resets = <&tegra_car 27>;
158			reset-names = "dc";
159
160			iommus = <&mc TEGRA_SWGROUP_DC>;
161
162			nvidia,head = <0>;
163		};
164
165		dc@54240000 {
166			compatible = "nvidia,tegra210-dc";
167			reg = <0x0 0x54240000 0x0 0x00040000>;
168			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
169			clocks = <&tegra_car TEGRA210_CLK_DISP2>,
170				 <&tegra_car TEGRA210_CLK_PLL_P>;
171			clock-names = "dc", "parent";
172			resets = <&tegra_car 26>;
173			reset-names = "dc";
174
175			iommus = <&mc TEGRA_SWGROUP_DCB>;
176
177			nvidia,head = <1>;
178		};
179
180		dsi@54300000 {
181			compatible = "nvidia,tegra210-dsi";
182			reg = <0x0 0x54300000 0x0 0x00040000>;
183			clocks = <&tegra_car TEGRA210_CLK_DSIA>,
184				 <&tegra_car TEGRA210_CLK_DSIALP>,
185				 <&tegra_car TEGRA210_CLK_PLL_D_OUT0>;
186			clock-names = "dsi", "lp", "parent";
187			resets = <&tegra_car 48>;
188			reset-names = "dsi";
189			power-domains = <&pd_sor>;
190			nvidia,mipi-calibrate = <&mipi 0x0c0>; /* DSIA & DSIB pads */
191
192			status = "disabled";
193
194			#address-cells = <1>;
195			#size-cells = <0>;
196		};
197
198		vic@54340000 {
199			compatible = "nvidia,tegra210-vic";
200			reg = <0x0 0x54340000 0x0 0x00040000>;
201			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
202			clocks = <&tegra_car TEGRA210_CLK_VIC03>;
203			clock-names = "vic";
204			resets = <&tegra_car 178>;
205			reset-names = "vic";
206
207			iommus = <&mc TEGRA_SWGROUP_VIC>;
208			power-domains = <&pd_vic>;
209		};
210
211		nvjpg@54380000 {
212			compatible = "nvidia,tegra210-nvjpg";
213			reg = <0x0 0x54380000 0x0 0x00040000>;
214			status = "disabled";
215		};
216
217		dsi@54400000 {
218			compatible = "nvidia,tegra210-dsi";
219			reg = <0x0 0x54400000 0x0 0x00040000>;
220			clocks = <&tegra_car TEGRA210_CLK_DSIB>,
221				 <&tegra_car TEGRA210_CLK_DSIBLP>,
222				 <&tegra_car TEGRA210_CLK_PLL_D_OUT0>;
223			clock-names = "dsi", "lp", "parent";
224			resets = <&tegra_car 82>;
225			reset-names = "dsi";
226			power-domains = <&pd_sor>;
227			nvidia,mipi-calibrate = <&mipi 0x300>; /* DSIC & DSID pads */
228
229			status = "disabled";
230
231			#address-cells = <1>;
232			#size-cells = <0>;
233		};
234
235		nvdec@54480000 {
236			compatible = "nvidia,tegra210-nvdec";
237			reg = <0x0 0x54480000 0x0 0x00040000>;
238			status = "disabled";
239		};
240
241		nvenc@544c0000 {
242			compatible = "nvidia,tegra210-nvenc";
243			reg = <0x0 0x544c0000 0x0 0x00040000>;
244			status = "disabled";
245		};
246
247		tsec@54500000 {
248			compatible = "nvidia,tegra210-tsec";
249			reg = <0x0 0x54500000 0x0 0x00040000>;
250			status = "disabled";
251		};
252
253		sor@54540000 {
254			compatible = "nvidia,tegra210-sor";
255			reg = <0x0 0x54540000 0x0 0x00040000>;
256			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
257			clocks = <&tegra_car TEGRA210_CLK_SOR0>,
258				 <&tegra_car TEGRA210_CLK_SOR0_OUT>,
259				 <&tegra_car TEGRA210_CLK_PLL_D_OUT0>,
260				 <&tegra_car TEGRA210_CLK_PLL_DP>,
261				 <&tegra_car TEGRA210_CLK_SOR_SAFE>;
262			clock-names = "sor", "out", "parent", "dp", "safe";
263			resets = <&tegra_car 182>;
264			reset-names = "sor";
265			pinctrl-0 = <&state_dpaux_aux>;
266			pinctrl-1 = <&state_dpaux_i2c>;
267			pinctrl-2 = <&state_dpaux_off>;
268			pinctrl-names = "aux", "i2c", "off";
269			power-domains = <&pd_sor>;
270			status = "disabled";
271		};
272
273		sor@54580000 {
274			compatible = "nvidia,tegra210-sor1";
275			reg = <0x0 0x54580000 0x0 0x00040000>;
276			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
277			clocks = <&tegra_car TEGRA210_CLK_SOR1>,
278				 <&tegra_car TEGRA210_CLK_SOR1_OUT>,
279				 <&tegra_car TEGRA210_CLK_PLL_D2_OUT0>,
280				 <&tegra_car TEGRA210_CLK_PLL_DP>,
281				 <&tegra_car TEGRA210_CLK_SOR_SAFE>;
282			clock-names = "sor", "out", "parent", "dp", "safe";
283			resets = <&tegra_car 183>;
284			reset-names = "sor";
285			pinctrl-0 = <&state_dpaux1_aux>;
286			pinctrl-1 = <&state_dpaux1_i2c>;
287			pinctrl-2 = <&state_dpaux1_off>;
288			pinctrl-names = "aux", "i2c", "off";
289			power-domains = <&pd_sor>;
290			status = "disabled";
291		};
292
293		dpaux: dpaux@545c0000 {
294			compatible = "nvidia,tegra124-dpaux";
295			reg = <0x0 0x545c0000 0x0 0x00040000>;
296			interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
297			clocks = <&tegra_car TEGRA210_CLK_DPAUX>,
298				 <&tegra_car TEGRA210_CLK_PLL_DP>;
299			clock-names = "dpaux", "parent";
300			resets = <&tegra_car 181>;
301			reset-names = "dpaux";
302			power-domains = <&pd_sor>;
303			status = "disabled";
304
305			state_dpaux_aux: pinmux-aux {
306				groups = "dpaux-io";
307				function = "aux";
308			};
309
310			state_dpaux_i2c: pinmux-i2c {
311				groups = "dpaux-io";
312				function = "i2c";
313			};
314
315			state_dpaux_off: pinmux-off {
316				groups = "dpaux-io";
317				function = "off";
318			};
319
320			i2c-bus {
321				#address-cells = <1>;
322				#size-cells = <0>;
323			};
324		};
325
326		isp@54600000 {
327			compatible = "nvidia,tegra210-isp";
328			reg = <0x0 0x54600000 0x0 0x00040000>;
329			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
330			status = "disabled";
331		};
332
333		isp@54680000 {
334			compatible = "nvidia,tegra210-isp";
335			reg = <0x0 0x54680000 0x0 0x00040000>;
336			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
337			status = "disabled";
338		};
339
340		i2c@546c0000 {
341			compatible = "nvidia,tegra210-i2c-vi";
342			reg = <0x0 0x546c0000 0x0 0x00040000>;
343			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
344			status = "disabled";
345		};
346	};
347
348	gic: interrupt-controller@50041000 {
349		compatible = "arm,gic-400";
350		#interrupt-cells = <3>;
351		interrupt-controller;
352		reg = <0x0 0x50041000 0x0 0x1000>,
353		      <0x0 0x50042000 0x0 0x2000>,
354		      <0x0 0x50044000 0x0 0x2000>,
355		      <0x0 0x50046000 0x0 0x2000>;
356		interrupts = <GIC_PPI 9
357			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
358		interrupt-parent = <&gic>;
359	};
360
361	gpu@57000000 {
362		compatible = "nvidia,gm20b";
363		reg = <0x0 0x57000000 0x0 0x01000000>,
364		      <0x0 0x58000000 0x0 0x01000000>;
365		interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
366			     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
367		interrupt-names = "stall", "nonstall";
368		clocks = <&tegra_car TEGRA210_CLK_GPU>,
369			 <&tegra_car TEGRA210_CLK_PLL_P_OUT5>,
370			 <&tegra_car TEGRA210_CLK_PLL_G_REF>;
371		clock-names = "gpu", "pwr", "ref";
372		resets = <&tegra_car 184>;
373		reset-names = "gpu";
374
375		iommus = <&mc TEGRA_SWGROUP_GPU>;
376
377		status = "disabled";
378	};
379
380	lic: interrupt-controller@60004000 {
381		compatible = "nvidia,tegra210-ictlr";
382		reg = <0x0 0x60004000 0x0 0x40>, /* primary controller */
383		      <0x0 0x60004100 0x0 0x40>, /* secondary controller */
384		      <0x0 0x60004200 0x0 0x40>, /* tertiary controller */
385		      <0x0 0x60004300 0x0 0x40>, /* quaternary controller */
386		      <0x0 0x60004400 0x0 0x40>, /* quinary controller */
387		      <0x0 0x60004500 0x0 0x40>; /* senary controller */
388		interrupt-controller;
389		#interrupt-cells = <3>;
390		interrupt-parent = <&gic>;
391	};
392
393	timer@60005000 {
394		compatible = "nvidia,tegra210-timer";
395		reg = <0x0 0x60005000 0x0 0x400>;
396		interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
397			     <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
398			     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
399			     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
400			     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
401			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
402			     <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
403			     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
404			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
405			     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
406			     <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
407			     <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
408			     <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
409			     <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
410		clocks = <&tegra_car TEGRA210_CLK_TIMER>;
411		clock-names = "timer";
412	};
413
414	tegra_car: clock@60006000 {
415		compatible = "nvidia,tegra210-car";
416		reg = <0x0 0x60006000 0x0 0x1000>;
417		#clock-cells = <1>;
418		#reset-cells = <1>;
419	};
420
421	flow-controller@60007000 {
422		compatible = "nvidia,tegra210-flowctrl";
423		reg = <0x0 0x60007000 0x0 0x1000>;
424	};
425
426	gpio: gpio@6000d000 {
427		compatible = "nvidia,tegra210-gpio", "nvidia,tegra30-gpio";
428		reg = <0x0 0x6000d000 0x0 0x1000>;
429		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
430			     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
431			     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
432			     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
433			     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
434			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
435			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
436			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
437		#gpio-cells = <2>;
438		gpio-controller;
439		#interrupt-cells = <2>;
440		interrupt-controller;
441	};
442
443	apbdma: dma@60020000 {
444		compatible = "nvidia,tegra210-apbdma", "nvidia,tegra148-apbdma";
445		reg = <0x0 0x60020000 0x0 0x1400>;
446		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
447			     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
448			     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
449			     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
450			     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
451			     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
452			     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
453			     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
454			     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
455			     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
456			     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
457			     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
458			     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
459			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
460			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
461			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
462			     <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
463			     <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
464			     <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
465			     <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
466			     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
467			     <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
468			     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
469			     <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
470			     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
471			     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
472			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
473			     <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
474			     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
475			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
476			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
477			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
478		clocks = <&tegra_car TEGRA210_CLK_APBDMA>;
479		clock-names = "dma";
480		resets = <&tegra_car 34>;
481		reset-names = "dma";
482		#dma-cells = <1>;
483	};
484
485	apbmisc@70000800 {
486		compatible = "nvidia,tegra210-apbmisc", "nvidia,tegra20-apbmisc";
487		reg = <0x0 0x70000800 0x0 0x64>,   /* Chip revision */
488		      <0x0 0x70000008 0x0 0x04>;   /* Strapping options */
489	};
490
491	pinmux: pinmux@700008d4 {
492		compatible = "nvidia,tegra210-pinmux";
493		reg = <0x0 0x700008d4 0x0 0x29c>, /* Pad control registers */
494		      <0x0 0x70003000 0x0 0x294>; /* Mux registers */
495		sdmmc1_3v3_drv: sdmmc1-3v3-drv {
496			sdmmc1 {
497				nvidia,pins = "drive_sdmmc1";
498				nvidia,pull-down-strength = <0x8>;
499				nvidia,pull-up-strength = <0x8>;
500			};
501		};
502		sdmmc1_1v8_drv: sdmmc1-1v8-drv {
503			sdmmc1 {
504				nvidia,pins = "drive_sdmmc1";
505				nvidia,pull-down-strength = <0x4>;
506				nvidia,pull-up-strength = <0x3>;
507			};
508		};
509		sdmmc2_1v8_drv: sdmmc2-1v8-drv {
510			sdmmc2 {
511				nvidia,pins = "drive_sdmmc2";
512				nvidia,pull-down-strength = <0x10>;
513				nvidia,pull-up-strength = <0x10>;
514			};
515		};
516		sdmmc3_3v3_drv: sdmmc3-3v3-drv {
517			sdmmc3 {
518				nvidia,pins = "drive_sdmmc3";
519				nvidia,pull-down-strength = <0x8>;
520				nvidia,pull-up-strength = <0x8>;
521			};
522		};
523		sdmmc3_1v8_drv: sdmmc3-1v8-drv {
524			sdmmc3 {
525				nvidia,pins = "drive_sdmmc3";
526				nvidia,pull-down-strength = <0x4>;
527				nvidia,pull-up-strength = <0x3>;
528			};
529		};
530		sdmmc4_1v8_drv: sdmmc4-1v8-drv {
531			sdmmc4 {
532				nvidia,pins = "drive_sdmmc4";
533				nvidia,pull-down-strength = <0x10>;
534				nvidia,pull-up-strength = <0x10>;
535			};
536		};
537	};
538
539	/*
540	 * There are two serial driver i.e. 8250 based simple serial
541	 * driver and APB DMA based serial driver for higher baudrate
542	 * and performance. To enable the 8250 based driver, the compatible
543	 * is "nvidia,tegra124-uart", "nvidia,tegra20-uart" and to enable
544	 * the APB DMA based serial driver, the compatible is
545	 * "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart".
546	 */
547	uarta: serial@70006000 {
548		compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart";
549		reg = <0x0 0x70006000 0x0 0x40>;
550		reg-shift = <2>;
551		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
552		clocks = <&tegra_car TEGRA210_CLK_UARTA>;
553		clock-names = "serial";
554		resets = <&tegra_car 6>;
555		reset-names = "serial";
556		dmas = <&apbdma 8>, <&apbdma 8>;
557		dma-names = "rx", "tx";
558		status = "disabled";
559	};
560
561	uartb: serial@70006040 {
562		compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart";
563		reg = <0x0 0x70006040 0x0 0x40>;
564		reg-shift = <2>;
565		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
566		clocks = <&tegra_car TEGRA210_CLK_UARTB>;
567		clock-names = "serial";
568		resets = <&tegra_car 7>;
569		reset-names = "serial";
570		dmas = <&apbdma 9>, <&apbdma 9>;
571		dma-names = "rx", "tx";
572		status = "disabled";
573	};
574
575	uartc: serial@70006200 {
576		compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart";
577		reg = <0x0 0x70006200 0x0 0x40>;
578		reg-shift = <2>;
579		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
580		clocks = <&tegra_car TEGRA210_CLK_UARTC>;
581		clock-names = "serial";
582		resets = <&tegra_car 55>;
583		reset-names = "serial";
584		dmas = <&apbdma 10>, <&apbdma 10>;
585		dma-names = "rx", "tx";
586		status = "disabled";
587	};
588
589	uartd: serial@70006300 {
590		compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart";
591		reg = <0x0 0x70006300 0x0 0x40>;
592		reg-shift = <2>;
593		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
594		clocks = <&tegra_car TEGRA210_CLK_UARTD>;
595		clock-names = "serial";
596		resets = <&tegra_car 65>;
597		reset-names = "serial";
598		dmas = <&apbdma 19>, <&apbdma 19>;
599		dma-names = "rx", "tx";
600		status = "disabled";
601	};
602
603	pwm: pwm@7000a000 {
604		compatible = "nvidia,tegra210-pwm", "nvidia,tegra20-pwm";
605		reg = <0x0 0x7000a000 0x0 0x100>;
606		#pwm-cells = <2>;
607		clocks = <&tegra_car TEGRA210_CLK_PWM>;
608		clock-names = "pwm";
609		resets = <&tegra_car 17>;
610		reset-names = "pwm";
611		status = "disabled";
612	};
613
614	i2c@7000c000 {
615		compatible = "nvidia,tegra210-i2c", "nvidia,tegra124-i2c";
616		reg = <0x0 0x7000c000 0x0 0x100>;
617		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
618		#address-cells = <1>;
619		#size-cells = <0>;
620		clocks = <&tegra_car TEGRA210_CLK_I2C1>;
621		clock-names = "div-clk";
622		resets = <&tegra_car 12>;
623		reset-names = "i2c";
624		dmas = <&apbdma 21>, <&apbdma 21>;
625		dma-names = "rx", "tx";
626		status = "disabled";
627	};
628
629	i2c@7000c400 {
630		compatible = "nvidia,tegra210-i2c", "nvidia,tegra124-i2c";
631		reg = <0x0 0x7000c400 0x0 0x100>;
632		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
633		#address-cells = <1>;
634		#size-cells = <0>;
635		clocks = <&tegra_car TEGRA210_CLK_I2C2>;
636		clock-names = "div-clk";
637		resets = <&tegra_car 54>;
638		reset-names = "i2c";
639		dmas = <&apbdma 22>, <&apbdma 22>;
640		dma-names = "rx", "tx";
641		status = "disabled";
642	};
643
644	i2c@7000c500 {
645		compatible = "nvidia,tegra210-i2c", "nvidia,tegra124-i2c";
646		reg = <0x0 0x7000c500 0x0 0x100>;
647		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
648		#address-cells = <1>;
649		#size-cells = <0>;
650		clocks = <&tegra_car TEGRA210_CLK_I2C3>;
651		clock-names = "div-clk";
652		resets = <&tegra_car 67>;
653		reset-names = "i2c";
654		dmas = <&apbdma 23>, <&apbdma 23>;
655		dma-names = "rx", "tx";
656		status = "disabled";
657	};
658
659	i2c@7000c700 {
660		compatible = "nvidia,tegra210-i2c", "nvidia,tegra124-i2c";
661		reg = <0x0 0x7000c700 0x0 0x100>;
662		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
663		#address-cells = <1>;
664		#size-cells = <0>;
665		clocks = <&tegra_car TEGRA210_CLK_I2C4>;
666		clock-names = "div-clk";
667		resets = <&tegra_car 103>;
668		reset-names = "i2c";
669		dmas = <&apbdma 26>, <&apbdma 26>;
670		dma-names = "rx", "tx";
671		pinctrl-0 = <&state_dpaux1_i2c>;
672		pinctrl-1 = <&state_dpaux1_off>;
673		pinctrl-names = "default", "idle";
674		status = "disabled";
675	};
676
677	i2c@7000d000 {
678		compatible = "nvidia,tegra210-i2c", "nvidia,tegra124-i2c";
679		reg = <0x0 0x7000d000 0x0 0x100>;
680		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
681		#address-cells = <1>;
682		#size-cells = <0>;
683		clocks = <&tegra_car TEGRA210_CLK_I2C5>;
684		clock-names = "div-clk";
685		resets = <&tegra_car 47>;
686		reset-names = "i2c";
687		dmas = <&apbdma 24>, <&apbdma 24>;
688		dma-names = "rx", "tx";
689		status = "disabled";
690	};
691
692	i2c@7000d100 {
693		compatible = "nvidia,tegra210-i2c", "nvidia,tegra124-i2c";
694		reg = <0x0 0x7000d100 0x0 0x100>;
695		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
696		#address-cells = <1>;
697		#size-cells = <0>;
698		clocks = <&tegra_car TEGRA210_CLK_I2C6>;
699		clock-names = "div-clk";
700		resets = <&tegra_car 166>;
701		reset-names = "i2c";
702		dmas = <&apbdma 30>, <&apbdma 30>;
703		dma-names = "rx", "tx";
704		pinctrl-0 = <&state_dpaux_i2c>;
705		pinctrl-1 = <&state_dpaux_off>;
706		pinctrl-names = "default", "idle";
707		status = "disabled";
708	};
709
710	spi@7000d400 {
711		compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi";
712		reg = <0x0 0x7000d400 0x0 0x200>;
713		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
714		#address-cells = <1>;
715		#size-cells = <0>;
716		clocks = <&tegra_car TEGRA210_CLK_SBC1>;
717		clock-names = "spi";
718		resets = <&tegra_car 41>;
719		reset-names = "spi";
720		dmas = <&apbdma 15>, <&apbdma 15>;
721		dma-names = "rx", "tx";
722		status = "disabled";
723	};
724
725	spi@7000d600 {
726		compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi";
727		reg = <0x0 0x7000d600 0x0 0x200>;
728		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
729		#address-cells = <1>;
730		#size-cells = <0>;
731		clocks = <&tegra_car TEGRA210_CLK_SBC2>;
732		clock-names = "spi";
733		resets = <&tegra_car 44>;
734		reset-names = "spi";
735		dmas = <&apbdma 16>, <&apbdma 16>;
736		dma-names = "rx", "tx";
737		status = "disabled";
738	};
739
740	spi@7000d800 {
741		compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi";
742		reg = <0x0 0x7000d800 0x0 0x200>;
743		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
744		#address-cells = <1>;
745		#size-cells = <0>;
746		clocks = <&tegra_car TEGRA210_CLK_SBC3>;
747		clock-names = "spi";
748		resets = <&tegra_car 46>;
749		reset-names = "spi";
750		dmas = <&apbdma 17>, <&apbdma 17>;
751		dma-names = "rx", "tx";
752		status = "disabled";
753	};
754
755	spi@7000da00 {
756		compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi";
757		reg = <0x0 0x7000da00 0x0 0x200>;
758		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
759		#address-cells = <1>;
760		#size-cells = <0>;
761		clocks = <&tegra_car TEGRA210_CLK_SBC4>;
762		clock-names = "spi";
763		resets = <&tegra_car 68>;
764		reset-names = "spi";
765		dmas = <&apbdma 18>, <&apbdma 18>;
766		dma-names = "rx", "tx";
767		status = "disabled";
768	};
769
770	rtc@7000e000 {
771		compatible = "nvidia,tegra210-rtc", "nvidia,tegra20-rtc";
772		reg = <0x0 0x7000e000 0x0 0x100>;
773		interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
774		interrupt-parent = <&tegra_pmc>;
775		clocks = <&tegra_car TEGRA210_CLK_RTC>;
776		clock-names = "rtc";
777	};
778
779	tegra_pmc: pmc@7000e400 {
780		compatible = "nvidia,tegra210-pmc";
781		reg = <0x0 0x7000e400 0x0 0x400>;
782		clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>;
783		clock-names = "pclk", "clk32k_in";
784		#clock-cells = <1>;
785		#interrupt-cells = <2>;
786		interrupt-controller;
787
788		powergates {
789			pd_audio: aud {
790				clocks = <&tegra_car TEGRA210_CLK_APE>,
791					 <&tegra_car TEGRA210_CLK_APB2APE>;
792				resets = <&tegra_car 198>;
793				#power-domain-cells = <0>;
794			};
795
796			pd_sor: sor {
797				clocks = <&tegra_car TEGRA210_CLK_SOR0>,
798					 <&tegra_car TEGRA210_CLK_SOR1>,
799					 <&tegra_car TEGRA210_CLK_CILAB>,
800					 <&tegra_car TEGRA210_CLK_CILCD>,
801					 <&tegra_car TEGRA210_CLK_CILE>,
802					 <&tegra_car TEGRA210_CLK_DSIA>,
803					 <&tegra_car TEGRA210_CLK_DSIB>,
804					 <&tegra_car TEGRA210_CLK_DPAUX>,
805					 <&tegra_car TEGRA210_CLK_DPAUX1>,
806					 <&tegra_car TEGRA210_CLK_MIPI_CAL>;
807				resets = <&tegra_car TEGRA210_CLK_SOR0>,
808					 <&tegra_car TEGRA210_CLK_SOR1>,
809					 <&tegra_car TEGRA210_CLK_DSIA>,
810					 <&tegra_car TEGRA210_CLK_DSIB>,
811					 <&tegra_car TEGRA210_CLK_DPAUX>,
812					 <&tegra_car TEGRA210_CLK_DPAUX1>,
813					 <&tegra_car TEGRA210_CLK_MIPI_CAL>;
814				#power-domain-cells = <0>;
815			};
816
817			pd_xusbss: xusba {
818				clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
819				resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
820				#power-domain-cells = <0>;
821			};
822
823			pd_xusbdev: xusbb {
824				clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>;
825				resets = <&tegra_car 95>;
826				#power-domain-cells = <0>;
827			};
828
829			pd_xusbhost: xusbc {
830				clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
831				resets = <&tegra_car TEGRA210_CLK_XUSB_HOST>;
832				#power-domain-cells = <0>;
833			};
834
835			pd_vic: vic {
836				clocks = <&tegra_car TEGRA210_CLK_VIC03>;
837				clock-names = "vic";
838				resets = <&tegra_car 178>;
839				reset-names = "vic";
840				#power-domain-cells = <0>;
841			};
842		};
843
844		sdmmc1_3v3: sdmmc1-3v3 {
845			pins = "sdmmc1";
846			power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
847		};
848
849		sdmmc1_1v8: sdmmc1-1v8 {
850			pins = "sdmmc1";
851			power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
852		};
853
854		sdmmc3_3v3: sdmmc3-3v3 {
855			pins = "sdmmc3";
856			power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
857		};
858
859		sdmmc3_1v8: sdmmc3-1v8 {
860			pins = "sdmmc3";
861			power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
862		};
863
864		pex_dpd_disable: pex_en {
865			pex-dpd-disable {
866				pins = "pex-bias", "pex-clk1", "pex-clk2";
867				low-power-disable;
868			};
869		};
870
871		pex_dpd_enable: pex_dis {
872			pex-dpd-enable {
873				pins = "pex-bias", "pex-clk1", "pex-clk2";
874				low-power-enable;
875			};
876		};
877	};
878
879	fuse@7000f800 {
880		compatible = "nvidia,tegra210-efuse";
881		reg = <0x0 0x7000f800 0x0 0x400>;
882		clocks = <&tegra_car TEGRA210_CLK_FUSE>;
883		clock-names = "fuse";
884		resets = <&tegra_car 39>;
885		reset-names = "fuse";
886	};
887
888	mc: memory-controller@70019000 {
889		compatible = "nvidia,tegra210-mc";
890		reg = <0x0 0x70019000 0x0 0x1000>;
891		clocks = <&tegra_car TEGRA210_CLK_MC>;
892		clock-names = "mc";
893
894		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
895
896		#iommu-cells = <1>;
897		#reset-cells = <1>;
898	};
899
900	emc: external-memory-controller@7001b000 {
901		compatible = "nvidia,tegra210-emc";
902		reg = <0x0 0x7001b000 0x0 0x1000>,
903		      <0x0 0x7001e000 0x0 0x1000>,
904		      <0x0 0x7001f000 0x0 0x1000>;
905		clocks = <&tegra_car TEGRA210_CLK_EMC>;
906		clock-names = "emc";
907		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
908		nvidia,memory-controller = <&mc>;
909		#cooling-cells = <2>;
910	};
911
912	sata@70020000 {
913		compatible = "nvidia,tegra210-ahci";
914		reg = <0x0 0x70027000 0x0 0x2000>, /* AHCI */
915		      <0x0 0x70020000 0x0 0x7000>, /* SATA */
916		      <0x0 0x70001100 0x0 0x1000>; /* SATA AUX */
917		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
918		clocks = <&tegra_car TEGRA210_CLK_SATA>,
919			 <&tegra_car TEGRA210_CLK_SATA_OOB>;
920		clock-names = "sata", "sata-oob";
921		resets = <&tegra_car 124>,
922			 <&tegra_car 123>,
923			 <&tegra_car 129>;
924		reset-names = "sata", "sata-oob", "sata-cold";
925		status = "disabled";
926	};
927
928	hda@70030000 {
929		compatible = "nvidia,tegra210-hda", "nvidia,tegra30-hda";
930		reg = <0x0 0x70030000 0x0 0x10000>;
931		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
932		clocks = <&tegra_car TEGRA210_CLK_HDA>,
933		         <&tegra_car TEGRA210_CLK_HDA2HDMI>,
934			 <&tegra_car TEGRA210_CLK_HDA2CODEC_2X>;
935		clock-names = "hda", "hda2hdmi", "hda2codec_2x";
936		resets = <&tegra_car 125>, /* hda */
937			 <&tegra_car 128>, /* hda2hdmi */
938			 <&tegra_car 111>; /* hda2codec_2x */
939		reset-names = "hda", "hda2hdmi", "hda2codec_2x";
940		status = "disabled";
941	};
942
943	usb@70090000 {
944		compatible = "nvidia,tegra210-xusb";
945		reg = <0x0 0x70090000 0x0 0x8000>,
946		      <0x0 0x70098000 0x0 0x1000>,
947		      <0x0 0x70099000 0x0 0x1000>;
948		reg-names = "hcd", "fpci", "ipfs";
949
950		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
951			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
952
953		clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>,
954			 <&tegra_car TEGRA210_CLK_XUSB_HOST_SRC>,
955			 <&tegra_car TEGRA210_CLK_XUSB_FALCON_SRC>,
956			 <&tegra_car TEGRA210_CLK_XUSB_SS>,
957			 <&tegra_car TEGRA210_CLK_XUSB_SS_DIV2>,
958			 <&tegra_car TEGRA210_CLK_XUSB_SS_SRC>,
959			 <&tegra_car TEGRA210_CLK_XUSB_HS_SRC>,
960			 <&tegra_car TEGRA210_CLK_XUSB_FS_SRC>,
961			 <&tegra_car TEGRA210_CLK_PLL_U_480M>,
962			 <&tegra_car TEGRA210_CLK_CLK_M>,
963			 <&tegra_car TEGRA210_CLK_PLL_E>;
964		clock-names = "xusb_host", "xusb_host_src",
965			      "xusb_falcon_src", "xusb_ss",
966			      "xusb_ss_div2", "xusb_ss_src",
967			      "xusb_hs_src", "xusb_fs_src",
968			      "pll_u_480m", "clk_m", "pll_e";
969		resets = <&tegra_car 89>, <&tegra_car 156>,
970			 <&tegra_car 143>;
971		reset-names = "xusb_host", "xusb_ss", "xusb_src";
972		power-domains = <&pd_xusbhost>, <&pd_xusbss>;
973		power-domain-names = "xusb_host", "xusb_ss";
974
975		nvidia,xusb-padctl = <&padctl>;
976
977		status = "disabled";
978	};
979
980	padctl: padctl@7009f000 {
981		compatible = "nvidia,tegra210-xusb-padctl";
982		reg = <0x0 0x7009f000 0x0 0x1000>;
983		resets = <&tegra_car 142>;
984		reset-names = "padctl";
985
986		status = "disabled";
987
988		pads {
989			usb2 {
990				clocks = <&tegra_car TEGRA210_CLK_USB2_TRK>;
991				clock-names = "trk";
992				status = "disabled";
993
994				lanes {
995					usb2-0 {
996						status = "disabled";
997						#phy-cells = <0>;
998					};
999
1000					usb2-1 {
1001						status = "disabled";
1002						#phy-cells = <0>;
1003					};
1004
1005					usb2-2 {
1006						status = "disabled";
1007						#phy-cells = <0>;
1008					};
1009
1010					usb2-3 {
1011						status = "disabled";
1012						#phy-cells = <0>;
1013					};
1014				};
1015			};
1016
1017			hsic {
1018				clocks = <&tegra_car TEGRA210_CLK_HSIC_TRK>;
1019				clock-names = "trk";
1020				status = "disabled";
1021
1022				lanes {
1023					hsic-0 {
1024						status = "disabled";
1025						#phy-cells = <0>;
1026					};
1027
1028					hsic-1 {
1029						status = "disabled";
1030						#phy-cells = <0>;
1031					};
1032				};
1033			};
1034
1035			pcie {
1036				clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
1037				clock-names = "pll";
1038				resets = <&tegra_car 205>;
1039				reset-names = "phy";
1040				status = "disabled";
1041
1042				lanes {
1043					pcie-0 {
1044						status = "disabled";
1045						#phy-cells = <0>;
1046					};
1047
1048					pcie-1 {
1049						status = "disabled";
1050						#phy-cells = <0>;
1051					};
1052
1053					pcie-2 {
1054						status = "disabled";
1055						#phy-cells = <0>;
1056					};
1057
1058					pcie-3 {
1059						status = "disabled";
1060						#phy-cells = <0>;
1061					};
1062
1063					pcie-4 {
1064						status = "disabled";
1065						#phy-cells = <0>;
1066					};
1067
1068					pcie-5 {
1069						status = "disabled";
1070						#phy-cells = <0>;
1071					};
1072
1073					pcie-6 {
1074						status = "disabled";
1075						#phy-cells = <0>;
1076					};
1077				};
1078			};
1079
1080			sata {
1081				clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
1082				clock-names = "pll";
1083				resets = <&tegra_car 204>;
1084				reset-names = "phy";
1085				status = "disabled";
1086
1087				lanes {
1088					sata-0 {
1089						status = "disabled";
1090						#phy-cells = <0>;
1091					};
1092				};
1093			};
1094		};
1095
1096		ports {
1097			usb2-0 {
1098				status = "disabled";
1099			};
1100
1101			usb2-1 {
1102				status = "disabled";
1103			};
1104
1105			usb2-2 {
1106				status = "disabled";
1107			};
1108
1109			usb2-3 {
1110				status = "disabled";
1111			};
1112
1113			hsic-0 {
1114				status = "disabled";
1115			};
1116
1117			usb3-0 {
1118				status = "disabled";
1119			};
1120
1121			usb3-1 {
1122				status = "disabled";
1123			};
1124
1125			usb3-2 {
1126				status = "disabled";
1127			};
1128
1129			usb3-3 {
1130				status = "disabled";
1131			};
1132		};
1133	};
1134
1135	sdhci@700b0000 {
1136		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
1137		reg = <0x0 0x700b0000 0x0 0x200>;
1138		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1139		clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
1140		clock-names = "sdhci";
1141		resets = <&tegra_car 14>;
1142		reset-names = "sdhci";
1143		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
1144				"sdmmc-3v3-drv", "sdmmc-1v8-drv";
1145		pinctrl-0 = <&sdmmc1_3v3>;
1146		pinctrl-1 = <&sdmmc1_1v8>;
1147		pinctrl-2 = <&sdmmc1_3v3_drv>;
1148		pinctrl-3 = <&sdmmc1_1v8_drv>;
1149		nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
1150		nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
1151		nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
1152		nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
1153		nvidia,default-tap = <0x2>;
1154		nvidia,default-trim = <0x4>;
1155		assigned-clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
1156				  <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>,
1157				  <&tegra_car TEGRA210_CLK_PLL_C4>;
1158		assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
1159		assigned-clock-rates = <200000000>, <1000000000>, <1000000000>;
1160		status = "disabled";
1161	};
1162
1163	sdhci@700b0200 {
1164		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
1165		reg = <0x0 0x700b0200 0x0 0x200>;
1166		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1167		clocks = <&tegra_car TEGRA210_CLK_SDMMC2>;
1168		clock-names = "sdhci";
1169		resets = <&tegra_car 9>;
1170		reset-names = "sdhci";
1171		pinctrl-names = "sdmmc-1v8-drv";
1172		pinctrl-0 = <&sdmmc2_1v8_drv>;
1173		nvidia,pad-autocal-pull-up-offset-1v8 = <0x05>;
1174		nvidia,pad-autocal-pull-down-offset-1v8 = <0x05>;
1175		nvidia,default-tap = <0x8>;
1176		nvidia,default-trim = <0x0>;
1177		status = "disabled";
1178	};
1179
1180	sdhci@700b0400 {
1181		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
1182		reg = <0x0 0x700b0400 0x0 0x200>;
1183		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
1184		clocks = <&tegra_car TEGRA210_CLK_SDMMC3>;
1185		clock-names = "sdhci";
1186		resets = <&tegra_car 69>;
1187		reset-names = "sdhci";
1188		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
1189				"sdmmc-3v3-drv", "sdmmc-1v8-drv";
1190		pinctrl-0 = <&sdmmc3_3v3>;
1191		pinctrl-1 = <&sdmmc3_1v8>;
1192		pinctrl-2 = <&sdmmc3_3v3_drv>;
1193		pinctrl-3 = <&sdmmc3_1v8_drv>;
1194		nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
1195		nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
1196		nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
1197		nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
1198		nvidia,default-tap = <0x3>;
1199		nvidia,default-trim = <0x3>;
1200		status = "disabled";
1201	};
1202
1203	sdhci@700b0600 {
1204		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
1205		reg = <0x0 0x700b0600 0x0 0x200>;
1206		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
1207		clocks = <&tegra_car TEGRA210_CLK_SDMMC4>;
1208		clock-names = "sdhci";
1209		resets = <&tegra_car 15>;
1210		reset-names = "sdhci";
1211		pinctrl-names = "sdmmc-3v3-drv", "sdmmc-1v8-drv";
1212		pinctrl-0 = <&sdmmc4_1v8_drv>;
1213		pinctrl-1 = <&sdmmc4_1v8_drv>;
1214		nvidia,pad-autocal-pull-up-offset-1v8 = <0x05>;
1215		nvidia,pad-autocal-pull-down-offset-1v8 = <0x05>;
1216		nvidia,default-tap = <0x8>;
1217		nvidia,default-trim = <0x0>;
1218		assigned-clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
1219				  <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
1220		assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
1221		nvidia,dqs-trim = <40>;
1222		mmc-hs400-1_8v;
1223		status = "disabled";
1224	};
1225
1226	usb@700d0000 {
1227		compatible = "nvidia,tegra210-xudc";
1228		reg = <0x0 0x700d0000 0x0 0x8000>,
1229		      <0x0 0x700d8000 0x0 0x1000>,
1230		      <0x0 0x700d9000 0x0 0x1000>;
1231		reg-names = "base", "fpci", "ipfs";
1232		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1233		clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>,
1234			 <&tegra_car TEGRA210_CLK_XUSB_SS>,
1235			 <&tegra_car TEGRA210_CLK_XUSB_SSP_SRC>,
1236			 <&tegra_car TEGRA210_CLK_XUSB_FS_SRC>,
1237			 <&tegra_car TEGRA210_CLK_XUSB_HS_SRC>;
1238		clock-names = "dev", "ss", "ss_src", "fs_src", "hs_src";
1239		power-domains = <&pd_xusbdev>, <&pd_xusbss>;
1240		power-domain-names = "dev", "ss";
1241		nvidia,xusb-padctl = <&padctl>;
1242		status = "disabled";
1243	};
1244
1245	mipi: mipi@700e3000 {
1246		compatible = "nvidia,tegra210-mipi";
1247		reg = <0x0 0x700e3000 0x0 0x100>;
1248		clocks = <&tegra_car TEGRA210_CLK_MIPI_CAL>;
1249		clock-names = "mipi-cal";
1250		power-domains = <&pd_sor>;
1251		#nvidia,mipi-calibrate-cells = <1>;
1252	};
1253
1254	dfll: clock@70110000 {
1255		compatible = "nvidia,tegra210-dfll";
1256		reg = <0 0x70110000 0 0x100>, /* DFLL control */
1257		      <0 0x70110000 0 0x100>, /* I2C output control */
1258		      <0 0x70110100 0 0x100>, /* Integrated I2C controller */
1259		      <0 0x70110200 0 0x100>; /* Look-up table RAM */
1260		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1261		clocks = <&tegra_car TEGRA210_CLK_DFLL_SOC>,
1262			 <&tegra_car TEGRA210_CLK_DFLL_REF>,
1263			 <&tegra_car TEGRA210_CLK_I2C5>;
1264		clock-names = "soc", "ref", "i2c";
1265		resets = <&tegra_car TEGRA210_RST_DFLL_DVCO>;
1266		reset-names = "dvco";
1267		#clock-cells = <0>;
1268		clock-output-names = "dfllCPU_out";
1269		status = "disabled";
1270	};
1271
1272	aconnect@702c0000 {
1273		compatible = "nvidia,tegra210-aconnect";
1274		clocks = <&tegra_car TEGRA210_CLK_APE>,
1275			 <&tegra_car TEGRA210_CLK_APB2APE>;
1276		clock-names = "ape", "apb2ape";
1277		power-domains = <&pd_audio>;
1278		#address-cells = <1>;
1279		#size-cells = <1>;
1280		ranges = <0x702c0000 0x0 0x702c0000 0x00040000>;
1281		status = "disabled";
1282
1283		adma: dma@702e2000 {
1284			compatible = "nvidia,tegra210-adma";
1285			reg = <0x702e2000 0x2000>;
1286			interrupt-parent = <&agic>;
1287			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
1288				     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
1289				     <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
1290				     <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
1291				     <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
1292				     <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
1293				     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
1294				     <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
1295				     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
1296				     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
1297				     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
1298				     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
1299				     <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
1300				     <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
1301				     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
1302				     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
1303				     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
1304				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
1305				     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
1306				     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
1307				     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
1308				     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
1309			#dma-cells = <1>;
1310			clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
1311			clock-names = "d_audio";
1312			status = "disabled";
1313		};
1314
1315		agic: agic@702f9000 {
1316			compatible = "nvidia,tegra210-agic";
1317			#interrupt-cells = <3>;
1318			interrupt-controller;
1319			reg = <0x702f9000 0x1000>,
1320			      <0x702fa000 0x2000>;
1321			interrupts = <GIC_SPI 102 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1322			clocks = <&tegra_car TEGRA210_CLK_APE>;
1323			clock-names = "clk";
1324			status = "disabled";
1325		};
1326	};
1327
1328	spi@70410000 {
1329		compatible = "nvidia,tegra210-qspi";
1330		reg = <0x0 0x70410000 0x0 0x1000>;
1331		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1332		#address-cells = <1>;
1333		#size-cells = <0>;
1334		clocks = <&tegra_car TEGRA210_CLK_QSPI>;
1335		clock-names = "qspi";
1336		resets = <&tegra_car 211>;
1337		reset-names = "qspi";
1338		dmas = <&apbdma 5>, <&apbdma 5>;
1339		dma-names = "rx", "tx";
1340		status = "disabled";
1341	};
1342
1343	usb@7d000000 {
1344		compatible = "nvidia,tegra210-ehci", "nvidia,tegra30-ehci", "usb-ehci";
1345		reg = <0x0 0x7d000000 0x0 0x4000>;
1346		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
1347		phy_type = "utmi";
1348		clocks = <&tegra_car TEGRA210_CLK_USBD>;
1349		clock-names = "usb";
1350		resets = <&tegra_car 22>;
1351		reset-names = "usb";
1352		nvidia,phy = <&phy1>;
1353		status = "disabled";
1354	};
1355
1356	phy1: usb-phy@7d000000 {
1357		compatible = "nvidia,tegra210-usb-phy", "nvidia,tegra30-usb-phy";
1358		reg = <0x0 0x7d000000 0x0 0x4000>,
1359		      <0x0 0x7d000000 0x0 0x4000>;
1360		phy_type = "utmi";
1361		clocks = <&tegra_car TEGRA210_CLK_USBD>,
1362			 <&tegra_car TEGRA210_CLK_PLL_U>,
1363			 <&tegra_car TEGRA210_CLK_USBD>;
1364		clock-names = "reg", "pll_u", "utmi-pads";
1365		resets = <&tegra_car 22>, <&tegra_car 22>;
1366		reset-names = "usb", "utmi-pads";
1367		nvidia,hssync-start-delay = <0>;
1368		nvidia,idle-wait-delay = <17>;
1369		nvidia,elastic-limit = <16>;
1370		nvidia,term-range-adj = <6>;
1371		nvidia,xcvr-setup = <9>;
1372		nvidia,xcvr-lsfslew = <0>;
1373		nvidia,xcvr-lsrslew = <3>;
1374		nvidia,hssquelch-level = <2>;
1375		nvidia,hsdiscon-level = <5>;
1376		nvidia,xcvr-hsslew = <12>;
1377		nvidia,has-utmi-pad-registers;
1378		status = "disabled";
1379	};
1380
1381	usb@7d004000 {
1382		compatible = "nvidia,tegra210-ehci", "nvidia,tegra30-ehci", "usb-ehci";
1383		reg = <0x0 0x7d004000 0x0 0x4000>;
1384		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
1385		phy_type = "utmi";
1386		clocks = <&tegra_car TEGRA210_CLK_USB2>;
1387		clock-names = "usb";
1388		resets = <&tegra_car 58>;
1389		reset-names = "usb";
1390		nvidia,phy = <&phy2>;
1391		status = "disabled";
1392	};
1393
1394	phy2: usb-phy@7d004000 {
1395		compatible = "nvidia,tegra210-usb-phy", "nvidia,tegra30-usb-phy";
1396		reg = <0x0 0x7d004000 0x0 0x4000>,
1397		      <0x0 0x7d000000 0x0 0x4000>;
1398		phy_type = "utmi";
1399		clocks = <&tegra_car TEGRA210_CLK_USB2>,
1400			 <&tegra_car TEGRA210_CLK_PLL_U>,
1401			 <&tegra_car TEGRA210_CLK_USBD>;
1402		clock-names = "reg", "pll_u", "utmi-pads";
1403		resets = <&tegra_car 58>, <&tegra_car 22>;
1404		reset-names = "usb", "utmi-pads";
1405		nvidia,hssync-start-delay = <0>;
1406		nvidia,idle-wait-delay = <17>;
1407		nvidia,elastic-limit = <16>;
1408		nvidia,term-range-adj = <6>;
1409		nvidia,xcvr-setup = <9>;
1410		nvidia,xcvr-lsfslew = <0>;
1411		nvidia,xcvr-lsrslew = <3>;
1412		nvidia,hssquelch-level = <2>;
1413		nvidia,hsdiscon-level = <5>;
1414		nvidia,xcvr-hsslew = <12>;
1415		status = "disabled";
1416	};
1417
1418	cpus {
1419		#address-cells = <1>;
1420		#size-cells = <0>;
1421
1422		cpu@0 {
1423			device_type = "cpu";
1424			compatible = "arm,cortex-a57";
1425			reg = <0>;
1426			clocks = <&tegra_car TEGRA210_CLK_CCLK_G>,
1427				 <&tegra_car TEGRA210_CLK_PLL_X>,
1428				 <&tegra_car TEGRA210_CLK_PLL_P_OUT4>,
1429				 <&dfll>;
1430			clock-names = "cpu_g", "pll_x", "pll_p", "dfll";
1431			clock-latency = <300000>;
1432			cpu-idle-states = <&CPU_SLEEP>;
1433			next-level-cache = <&L2>;
1434		};
1435
1436		cpu@1 {
1437			device_type = "cpu";
1438			compatible = "arm,cortex-a57";
1439			reg = <1>;
1440			cpu-idle-states = <&CPU_SLEEP>;
1441			next-level-cache = <&L2>;
1442		};
1443
1444		cpu@2 {
1445			device_type = "cpu";
1446			compatible = "arm,cortex-a57";
1447			reg = <2>;
1448			cpu-idle-states = <&CPU_SLEEP>;
1449			next-level-cache = <&L2>;
1450		};
1451
1452		cpu@3 {
1453			device_type = "cpu";
1454			compatible = "arm,cortex-a57";
1455			reg = <3>;
1456			cpu-idle-states = <&CPU_SLEEP>;
1457			next-level-cache = <&L2>;
1458		};
1459
1460		idle-states {
1461			entry-method = "psci";
1462
1463			CPU_SLEEP: cpu-sleep {
1464				compatible = "arm,idle-state";
1465				arm,psci-suspend-param = <0x40000007>;
1466				entry-latency-us = <100>;
1467				exit-latency-us = <30>;
1468				min-residency-us = <1000>;
1469				wakeup-latency-us = <130>;
1470				idle-state-name = "cpu-sleep";
1471				status = "disabled";
1472			};
1473		};
1474
1475		L2: l2-cache {
1476			compatible = "cache";
1477		};
1478	};
1479
1480	pmu {
1481		compatible = "arm,armv8-pmuv3";
1482		interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
1483			     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1484			     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
1485			     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1486		interrupt-affinity = <&{/cpus/cpu@0} &{/cpus/cpu@1}
1487				      &{/cpus/cpu@2} &{/cpus/cpu@3}>;
1488	};
1489
1490	timer {
1491		compatible = "arm,armv8-timer";
1492		interrupts = <GIC_PPI 13
1493				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1494			     <GIC_PPI 14
1495				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1496			     <GIC_PPI 11
1497				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1498			     <GIC_PPI 10
1499				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1500		interrupt-parent = <&gic>;
1501		arm,no-tick-in-suspend;
1502	};
1503
1504	soctherm: thermal-sensor@700e2000 {
1505		compatible = "nvidia,tegra210-soctherm";
1506		reg = <0x0 0x700e2000 0x0 0x600 /* SOC_THERM reg_base */
1507			0x0 0x60006000 0x0 0x400>; /* CAR reg_base */
1508		reg-names = "soctherm-reg", "car-reg";
1509		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
1510			     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
1511		interrupt-names = "thermal", "edp";
1512		clocks = <&tegra_car TEGRA210_CLK_TSENSOR>,
1513			<&tegra_car TEGRA210_CLK_SOC_THERM>;
1514		clock-names = "tsensor", "soctherm";
1515		resets = <&tegra_car 78>;
1516		reset-names = "soctherm";
1517		#thermal-sensor-cells = <1>;
1518
1519		throttle-cfgs {
1520			throttle_heavy: heavy {
1521				nvidia,priority = <100>;
1522				nvidia,cpu-throt-percent = <85>;
1523
1524				#cooling-cells = <2>;
1525			};
1526		};
1527	};
1528
1529	thermal-zones {
1530		cpu {
1531			polling-delay-passive = <1000>;
1532			polling-delay = <0>;
1533
1534			thermal-sensors =
1535				<&soctherm TEGRA124_SOCTHERM_SENSOR_CPU>;
1536
1537			trips {
1538				cpu-shutdown-trip {
1539					temperature = <102500>;
1540					hysteresis = <0>;
1541					type = "critical";
1542				};
1543
1544				cpu_throttle_trip: throttle-trip {
1545					temperature = <98500>;
1546					hysteresis = <1000>;
1547					type = "hot";
1548				};
1549			};
1550
1551			cooling-maps {
1552				map0 {
1553					trip = <&cpu_throttle_trip>;
1554					cooling-device = <&throttle_heavy 1 1>;
1555				};
1556			};
1557		};
1558
1559		mem {
1560			polling-delay-passive = <0>;
1561			polling-delay = <0>;
1562
1563			thermal-sensors =
1564				<&soctherm TEGRA124_SOCTHERM_SENSOR_MEM>;
1565
1566			trips {
1567				dram_nominal: mem-nominal-trip {
1568					temperature = <50000>;
1569					hysteresis = <1000>;
1570					type = "passive";
1571				};
1572
1573				dram_throttle: mem-throttle-trip {
1574					temperature = <70000>;
1575					hysteresis = <1000>;
1576					type = "active";
1577				};
1578
1579				mem-shutdown-trip {
1580					temperature = <103000>;
1581					hysteresis = <0>;
1582					type = "critical";
1583				};
1584			};
1585
1586			cooling-maps {
1587				dram-passive {
1588					cooling-device = <&emc 0 0>;
1589					trip = <&dram_nominal>;
1590				};
1591
1592				dram-active {
1593					cooling-device = <&emc 1 1>;
1594					trip = <&dram_throttle>;
1595				};
1596			};
1597		};
1598
1599		gpu {
1600			polling-delay-passive = <1000>;
1601			polling-delay = <0>;
1602
1603			thermal-sensors =
1604				<&soctherm TEGRA124_SOCTHERM_SENSOR_GPU>;
1605
1606			trips {
1607				gpu-shutdown-trip {
1608					temperature = <103000>;
1609					hysteresis = <0>;
1610					type = "critical";
1611				};
1612
1613				gpu_throttle_trip: throttle-trip {
1614					temperature = <100000>;
1615					hysteresis = <1000>;
1616					type = "hot";
1617				};
1618			};
1619
1620			cooling-maps {
1621				map0 {
1622					trip = <&gpu_throttle_trip>;
1623					cooling-device = <&throttle_heavy 1 1>;
1624				};
1625			};
1626		};
1627
1628		pllx {
1629			polling-delay-passive = <0>;
1630			polling-delay = <0>;
1631
1632			thermal-sensors =
1633				<&soctherm TEGRA124_SOCTHERM_SENSOR_PLLX>;
1634
1635			trips {
1636				pllx-shutdown-trip {
1637					temperature = <103000>;
1638					hysteresis = <0>;
1639					type = "critical";
1640				};
1641			};
1642
1643			cooling-maps {
1644				/*
1645				 * There are currently no cooling maps,
1646				 * because there are no cooling devices.
1647				 */
1648			};
1649		};
1650	};
1651};
1652