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