1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/clock/tegra186-clock.h>
3#include <dt-bindings/gpio/tegra186-gpio.h>
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/mailbox/tegra186-hsp.h>
6#include <dt-bindings/memory/tegra186-mc.h>
7#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
8#include <dt-bindings/power/tegra186-powergate.h>
9#include <dt-bindings/reset/tegra186-reset.h>
10#include <dt-bindings/thermal/tegra186-bpmp-thermal.h>
11
12/ {
13	compatible = "nvidia,tegra186";
14	interrupt-parent = <&gic>;
15	#address-cells = <2>;
16	#size-cells = <2>;
17
18	misc@100000 {
19		compatible = "nvidia,tegra186-misc";
20		reg = <0x0 0x00100000 0x0 0xf000>,
21		      <0x0 0x0010f000 0x0 0x1000>;
22	};
23
24	gpio: gpio@2200000 {
25		compatible = "nvidia,tegra186-gpio";
26		reg-names = "security", "gpio";
27		reg = <0x0 0x2200000 0x0 0x10000>,
28		      <0x0 0x2210000 0x0 0x10000>;
29		interrupts = <GIC_SPI  47 IRQ_TYPE_LEVEL_HIGH>,
30			     <GIC_SPI  50 IRQ_TYPE_LEVEL_HIGH>,
31			     <GIC_SPI  53 IRQ_TYPE_LEVEL_HIGH>,
32			     <GIC_SPI  56 IRQ_TYPE_LEVEL_HIGH>,
33			     <GIC_SPI  59 IRQ_TYPE_LEVEL_HIGH>,
34			     <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
35		#interrupt-cells = <2>;
36		interrupt-controller;
37		#gpio-cells = <2>;
38		gpio-controller;
39	};
40
41	ethernet@2490000 {
42		compatible = "nvidia,tegra186-eqos",
43			     "snps,dwc-qos-ethernet-4.10";
44		reg = <0x0 0x02490000 0x0 0x10000>;
45		interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, /* common */
46			     <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>, /* power */
47			     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, /* rx0 */
48			     <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>, /* tx0 */
49			     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, /* rx1 */
50			     <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>, /* tx1 */
51			     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>, /* rx2 */
52			     <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* tx2 */
53			     <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>, /* rx3 */
54			     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; /* tx3 */
55		clocks = <&bpmp TEGRA186_CLK_AXI_CBB>,
56			 <&bpmp TEGRA186_CLK_EQOS_AXI>,
57			 <&bpmp TEGRA186_CLK_EQOS_RX>,
58			 <&bpmp TEGRA186_CLK_EQOS_TX>,
59			 <&bpmp TEGRA186_CLK_EQOS_PTP_REF>;
60		clock-names = "master_bus", "slave_bus", "rx", "tx", "ptp_ref";
61		resets = <&bpmp TEGRA186_RESET_EQOS>;
62		reset-names = "eqos";
63		interconnects = <&mc TEGRA186_MEMORY_CLIENT_EQOSR &emc>,
64				<&mc TEGRA186_MEMORY_CLIENT_EQOSW &emc>;
65		interconnect-names = "dma-mem", "write";
66		iommus = <&smmu TEGRA186_SID_EQOS>;
67		status = "disabled";
68
69		snps,write-requests = <1>;
70		snps,read-requests = <3>;
71		snps,burst-map = <0x7>;
72		snps,txpbl = <32>;
73		snps,rxpbl = <8>;
74	};
75
76	aconnect@2900000 {
77		compatible = "nvidia,tegra186-aconnect",
78			     "nvidia,tegra210-aconnect";
79		clocks = <&bpmp TEGRA186_CLK_APE>,
80			 <&bpmp TEGRA186_CLK_APB2APE>;
81		clock-names = "ape", "apb2ape";
82		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_AUD>;
83		#address-cells = <1>;
84		#size-cells = <1>;
85		ranges = <0x02900000 0x0 0x02900000 0x200000>;
86		status = "disabled";
87
88		adma: dma-controller@2930000 {
89			compatible = "nvidia,tegra186-adma";
90			reg = <0x02930000 0x20000>;
91			interrupt-parent = <&agic>;
92			interrupts =  <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
93				      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
94				      <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
95				      <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
96				      <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
97				      <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
98				      <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
99				      <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
100				      <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
101				      <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
102				      <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
103				      <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
104				      <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
105				      <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
106				      <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
107				      <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
108				      <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
109				      <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
110				      <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
111				      <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
112				      <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
113				      <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
114				      <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
115				      <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
116				      <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
117				      <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
118				      <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
119				      <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
120				      <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
121				      <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
122				      <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
123				      <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
124			#dma-cells = <1>;
125			clocks = <&bpmp TEGRA186_CLK_AHUB>;
126			clock-names = "d_audio";
127			status = "disabled";
128		};
129
130		agic: interrupt-controller@2a40000 {
131			compatible = "nvidia,tegra186-agic",
132				     "nvidia,tegra210-agic";
133			#interrupt-cells = <3>;
134			interrupt-controller;
135			reg = <0x02a41000 0x1000>,
136			      <0x02a42000 0x2000>;
137			interrupts = <GIC_SPI 145
138				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
139			clocks = <&bpmp TEGRA186_CLK_APE>;
140			clock-names = "clk";
141			status = "disabled";
142		};
143
144		tegra_ahub: ahub@2900800 {
145			compatible = "nvidia,tegra186-ahub";
146			reg = <0x02900800 0x800>;
147			clocks = <&bpmp TEGRA186_CLK_AHUB>;
148			clock-names = "ahub";
149			assigned-clocks = <&bpmp TEGRA186_CLK_AHUB>;
150			assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
151			#address-cells = <1>;
152			#size-cells = <1>;
153			ranges = <0x02900800 0x02900800 0x11800>;
154			status = "disabled";
155
156			tegra_admaif: admaif@290f000 {
157				compatible = "nvidia,tegra186-admaif";
158				reg = <0x0290f000 0x1000>;
159				dmas = <&adma 1>, <&adma 1>,
160				       <&adma 2>, <&adma 2>,
161				       <&adma 3>, <&adma 3>,
162				       <&adma 4>, <&adma 4>,
163				       <&adma 5>, <&adma 5>,
164				       <&adma 6>, <&adma 6>,
165				       <&adma 7>, <&adma 7>,
166				       <&adma 8>, <&adma 8>,
167				       <&adma 9>, <&adma 9>,
168				       <&adma 10>, <&adma 10>,
169				       <&adma 11>, <&adma 11>,
170				       <&adma 12>, <&adma 12>,
171				       <&adma 13>, <&adma 13>,
172				       <&adma 14>, <&adma 14>,
173				       <&adma 15>, <&adma 15>,
174				       <&adma 16>, <&adma 16>,
175				       <&adma 17>, <&adma 17>,
176				       <&adma 18>, <&adma 18>,
177				       <&adma 19>, <&adma 19>,
178				       <&adma 20>, <&adma 20>;
179				dma-names = "rx1", "tx1",
180					    "rx2", "tx2",
181					    "rx3", "tx3",
182					    "rx4", "tx4",
183					    "rx5", "tx5",
184					    "rx6", "tx6",
185					    "rx7", "tx7",
186					    "rx8", "tx8",
187					    "rx9", "tx9",
188					    "rx10", "tx10",
189					    "rx11", "tx11",
190					    "rx12", "tx12",
191					    "rx13", "tx13",
192					    "rx14", "tx14",
193					    "rx15", "tx15",
194					    "rx16", "tx16",
195					    "rx17", "tx17",
196					    "rx18", "tx18",
197					    "rx19", "tx19",
198					    "rx20", "tx20";
199				status = "disabled";
200			};
201
202			tegra_i2s1: i2s@2901000 {
203				compatible = "nvidia,tegra186-i2s",
204					     "nvidia,tegra210-i2s";
205				reg = <0x2901000 0x100>;
206				clocks = <&bpmp TEGRA186_CLK_I2S1>,
207					 <&bpmp TEGRA186_CLK_I2S1_SYNC_INPUT>;
208				clock-names = "i2s", "sync_input";
209				assigned-clocks = <&bpmp TEGRA186_CLK_I2S1>;
210				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
211				assigned-clock-rates = <1536000>;
212				sound-name-prefix = "I2S1";
213				status = "disabled";
214			};
215
216			tegra_i2s2: i2s@2901100 {
217				compatible = "nvidia,tegra186-i2s",
218					     "nvidia,tegra210-i2s";
219				reg = <0x2901100 0x100>;
220				clocks = <&bpmp TEGRA186_CLK_I2S2>,
221					 <&bpmp TEGRA186_CLK_I2S2_SYNC_INPUT>;
222				clock-names = "i2s", "sync_input";
223				assigned-clocks = <&bpmp TEGRA186_CLK_I2S2>;
224				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
225				assigned-clock-rates = <1536000>;
226				sound-name-prefix = "I2S2";
227				status = "disabled";
228			};
229
230			tegra_i2s3: i2s@2901200 {
231				compatible = "nvidia,tegra186-i2s",
232					     "nvidia,tegra210-i2s";
233				reg = <0x2901200 0x100>;
234				clocks = <&bpmp TEGRA186_CLK_I2S3>,
235					 <&bpmp TEGRA186_CLK_I2S3_SYNC_INPUT>;
236				clock-names = "i2s", "sync_input";
237				assigned-clocks = <&bpmp TEGRA186_CLK_I2S3>;
238				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
239				assigned-clock-rates = <1536000>;
240				sound-name-prefix = "I2S3";
241				status = "disabled";
242			};
243
244			tegra_i2s4: i2s@2901300 {
245				compatible = "nvidia,tegra186-i2s",
246					     "nvidia,tegra210-i2s";
247				reg = <0x2901300 0x100>;
248				clocks = <&bpmp TEGRA186_CLK_I2S4>,
249					 <&bpmp TEGRA186_CLK_I2S4_SYNC_INPUT>;
250				clock-names = "i2s", "sync_input";
251				assigned-clocks = <&bpmp TEGRA186_CLK_I2S4>;
252				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
253				assigned-clock-rates = <1536000>;
254				sound-name-prefix = "I2S4";
255				status = "disabled";
256			};
257
258			tegra_i2s5: i2s@2901400 {
259				compatible = "nvidia,tegra186-i2s",
260					     "nvidia,tegra210-i2s";
261				reg = <0x2901400 0x100>;
262				clocks = <&bpmp TEGRA186_CLK_I2S5>,
263					 <&bpmp TEGRA186_CLK_I2S5_SYNC_INPUT>;
264				clock-names = "i2s", "sync_input";
265				assigned-clocks = <&bpmp TEGRA186_CLK_I2S5>;
266				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
267				assigned-clock-rates = <1536000>;
268				sound-name-prefix = "I2S5";
269				status = "disabled";
270			};
271
272			tegra_i2s6: i2s@2901500 {
273				compatible = "nvidia,tegra186-i2s",
274					     "nvidia,tegra210-i2s";
275				reg = <0x2901500 0x100>;
276				clocks = <&bpmp TEGRA186_CLK_I2S6>,
277					 <&bpmp TEGRA186_CLK_I2S6_SYNC_INPUT>;
278				clock-names = "i2s", "sync_input";
279				assigned-clocks = <&bpmp TEGRA186_CLK_I2S6>;
280				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
281				assigned-clock-rates = <1536000>;
282				sound-name-prefix = "I2S6";
283				status = "disabled";
284			};
285
286			tegra_dmic1: dmic@2904000 {
287				compatible = "nvidia,tegra210-dmic";
288				reg = <0x2904000 0x100>;
289				clocks = <&bpmp TEGRA186_CLK_DMIC1>;
290				clock-names = "dmic";
291				assigned-clocks = <&bpmp TEGRA186_CLK_DMIC1>;
292				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
293				assigned-clock-rates = <3072000>;
294				sound-name-prefix = "DMIC1";
295				status = "disabled";
296			};
297
298			tegra_dmic2: dmic@2904100 {
299				compatible = "nvidia,tegra210-dmic";
300				reg = <0x2904100 0x100>;
301				clocks = <&bpmp TEGRA186_CLK_DMIC2>;
302				clock-names = "dmic";
303				assigned-clocks = <&bpmp TEGRA186_CLK_DMIC2>;
304				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
305				assigned-clock-rates = <3072000>;
306				sound-name-prefix = "DMIC2";
307				status = "disabled";
308			};
309
310			tegra_dmic3: dmic@2904200 {
311				compatible = "nvidia,tegra210-dmic";
312				reg = <0x2904200 0x100>;
313				clocks = <&bpmp TEGRA186_CLK_DMIC3>;
314				clock-names = "dmic";
315				assigned-clocks = <&bpmp TEGRA186_CLK_DMIC3>;
316				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
317				assigned-clock-rates = <3072000>;
318				sound-name-prefix = "DMIC3";
319				status = "disabled";
320			};
321
322			tegra_dmic4: dmic@2904300 {
323				compatible = "nvidia,tegra210-dmic";
324				reg = <0x2904300 0x100>;
325				clocks = <&bpmp TEGRA186_CLK_DMIC4>;
326				clock-names = "dmic";
327				assigned-clocks = <&bpmp TEGRA186_CLK_DMIC4>;
328				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
329				assigned-clock-rates = <3072000>;
330				sound-name-prefix = "DMIC4";
331				status = "disabled";
332			};
333
334			tegra_dspk1: dspk@2905000 {
335				compatible = "nvidia,tegra186-dspk";
336				reg = <0x2905000 0x100>;
337				clocks = <&bpmp TEGRA186_CLK_DSPK1>;
338				clock-names = "dspk";
339				assigned-clocks = <&bpmp TEGRA186_CLK_DSPK1>;
340				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
341				assigned-clock-rates = <12288000>;
342				sound-name-prefix = "DSPK1";
343				status = "disabled";
344			};
345
346			tegra_dspk2: dspk@2905100 {
347				compatible = "nvidia,tegra186-dspk";
348				reg = <0x2905100 0x100>;
349				clocks = <&bpmp TEGRA186_CLK_DSPK2>;
350				clock-names = "dspk";
351				assigned-clocks = <&bpmp TEGRA186_CLK_DSPK2>;
352				assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
353				assigned-clock-rates = <12288000>;
354				sound-name-prefix = "DSPK2";
355				status = "disabled";
356			};
357
358			tegra_sfc1: sfc@2902000 {
359				compatible = "nvidia,tegra186-sfc",
360					     "nvidia,tegra210-sfc";
361				reg = <0x2902000 0x200>;
362				sound-name-prefix = "SFC1";
363				status = "disabled";
364			};
365
366			tegra_sfc2: sfc@2902200 {
367				compatible = "nvidia,tegra186-sfc",
368					     "nvidia,tegra210-sfc";
369				reg = <0x2902200 0x200>;
370				sound-name-prefix = "SFC2";
371				status = "disabled";
372			};
373
374			tegra_sfc3: sfc@2902400 {
375				compatible = "nvidia,tegra186-sfc",
376					     "nvidia,tegra210-sfc";
377				reg = <0x2902400 0x200>;
378				sound-name-prefix = "SFC3";
379				status = "disabled";
380			};
381
382			tegra_sfc4: sfc@2902600 {
383				compatible = "nvidia,tegra186-sfc",
384					     "nvidia,tegra210-sfc";
385				reg = <0x2902600 0x200>;
386				sound-name-prefix = "SFC4";
387				status = "disabled";
388			};
389
390			tegra_mvc1: mvc@290a000 {
391				compatible = "nvidia,tegra186-mvc",
392					     "nvidia,tegra210-mvc";
393				reg = <0x290a000 0x200>;
394				sound-name-prefix = "MVC1";
395				status = "disabled";
396			};
397
398			tegra_mvc2: mvc@290a200 {
399				compatible = "nvidia,tegra186-mvc",
400					     "nvidia,tegra210-mvc";
401				reg = <0x290a200 0x200>;
402				sound-name-prefix = "MVC2";
403				status = "disabled";
404			};
405
406			tegra_amx1: amx@2903000 {
407				compatible = "nvidia,tegra186-amx",
408					     "nvidia,tegra210-amx";
409				reg = <0x2903000 0x100>;
410				sound-name-prefix = "AMX1";
411				status = "disabled";
412			};
413
414			tegra_amx2: amx@2903100 {
415				compatible = "nvidia,tegra186-amx",
416					     "nvidia,tegra210-amx";
417				reg = <0x2903100 0x100>;
418				sound-name-prefix = "AMX2";
419				status = "disabled";
420			};
421
422			tegra_amx3: amx@2903200 {
423				compatible = "nvidia,tegra186-amx",
424					     "nvidia,tegra210-amx";
425				reg = <0x2903200 0x100>;
426				sound-name-prefix = "AMX3";
427				status = "disabled";
428			};
429
430			tegra_amx4: amx@2903300 {
431				compatible = "nvidia,tegra186-amx",
432					     "nvidia,tegra210-amx";
433				reg = <0x2903300 0x100>;
434				sound-name-prefix = "AMX4";
435				status = "disabled";
436			};
437
438			tegra_adx1: adx@2903800 {
439				compatible = "nvidia,tegra186-adx",
440					     "nvidia,tegra210-adx";
441				reg = <0x2903800 0x100>;
442				sound-name-prefix = "ADX1";
443				status = "disabled";
444			};
445
446			tegra_adx2: adx@2903900 {
447				compatible = "nvidia,tegra186-adx",
448					     "nvidia,tegra210-adx";
449				reg = <0x2903900 0x100>;
450				sound-name-prefix = "ADX2";
451				status = "disabled";
452			};
453
454			tegra_adx3: adx@2903a00 {
455				compatible = "nvidia,tegra186-adx",
456					     "nvidia,tegra210-adx";
457				reg = <0x2903a00 0x100>;
458				sound-name-prefix = "ADX3";
459				status = "disabled";
460			};
461
462			tegra_adx4: adx@2903b00 {
463				compatible = "nvidia,tegra186-adx",
464					     "nvidia,tegra210-adx";
465				reg = <0x2903b00 0x100>;
466				sound-name-prefix = "ADX4";
467				status = "disabled";
468			};
469
470			tegra_amixer: amixer@290bb00 {
471				compatible = "nvidia,tegra186-amixer",
472					     "nvidia,tegra210-amixer";
473				reg = <0x290bb00 0x800>;
474				sound-name-prefix = "MIXER1";
475				status = "disabled";
476			};
477		};
478	};
479
480	mc: memory-controller@2c00000 {
481		compatible = "nvidia,tegra186-mc";
482		reg = <0x0 0x02c00000 0x0 0xb0000>;
483		interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
484		status = "disabled";
485
486		#interconnect-cells = <1>;
487		#address-cells = <2>;
488		#size-cells = <2>;
489
490		ranges = <0x0 0x02c00000 0x0 0x02c00000 0x0 0xb0000>;
491
492		/*
493		 * Memory clients have access to all 40 bits that the memory
494		 * controller can address.
495		 */
496		dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
497
498		emc: external-memory-controller@2c60000 {
499			compatible = "nvidia,tegra186-emc";
500			reg = <0x0 0x02c60000 0x0 0x50000>;
501			interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
502			clocks = <&bpmp TEGRA186_CLK_EMC>;
503			clock-names = "emc";
504
505			#interconnect-cells = <0>;
506
507			nvidia,bpmp = <&bpmp>;
508		};
509	};
510
511	uarta: serial@3100000 {
512		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
513		reg = <0x0 0x03100000 0x0 0x40>;
514		reg-shift = <2>;
515		interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
516		clocks = <&bpmp TEGRA186_CLK_UARTA>;
517		clock-names = "serial";
518		resets = <&bpmp TEGRA186_RESET_UARTA>;
519		reset-names = "serial";
520		status = "disabled";
521	};
522
523	uartb: serial@3110000 {
524		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
525		reg = <0x0 0x03110000 0x0 0x40>;
526		reg-shift = <2>;
527		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
528		clocks = <&bpmp TEGRA186_CLK_UARTB>;
529		clock-names = "serial";
530		resets = <&bpmp TEGRA186_RESET_UARTB>;
531		reset-names = "serial";
532		status = "disabled";
533	};
534
535	uartd: serial@3130000 {
536		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
537		reg = <0x0 0x03130000 0x0 0x40>;
538		reg-shift = <2>;
539		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
540		clocks = <&bpmp TEGRA186_CLK_UARTD>;
541		clock-names = "serial";
542		resets = <&bpmp TEGRA186_RESET_UARTD>;
543		reset-names = "serial";
544		status = "disabled";
545	};
546
547	uarte: serial@3140000 {
548		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
549		reg = <0x0 0x03140000 0x0 0x40>;
550		reg-shift = <2>;
551		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
552		clocks = <&bpmp TEGRA186_CLK_UARTE>;
553		clock-names = "serial";
554		resets = <&bpmp TEGRA186_RESET_UARTE>;
555		reset-names = "serial";
556		status = "disabled";
557	};
558
559	uartf: serial@3150000 {
560		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
561		reg = <0x0 0x03150000 0x0 0x40>;
562		reg-shift = <2>;
563		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
564		clocks = <&bpmp TEGRA186_CLK_UARTF>;
565		clock-names = "serial";
566		resets = <&bpmp TEGRA186_RESET_UARTF>;
567		reset-names = "serial";
568		status = "disabled";
569	};
570
571	gen1_i2c: i2c@3160000 {
572		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
573		reg = <0x0 0x03160000 0x0 0x10000>;
574		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
575		#address-cells = <1>;
576		#size-cells = <0>;
577		clocks = <&bpmp TEGRA186_CLK_I2C1>;
578		clock-names = "div-clk";
579		resets = <&bpmp TEGRA186_RESET_I2C1>;
580		reset-names = "i2c";
581		status = "disabled";
582	};
583
584	cam_i2c: i2c@3180000 {
585		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
586		reg = <0x0 0x03180000 0x0 0x10000>;
587		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
588		#address-cells = <1>;
589		#size-cells = <0>;
590		clocks = <&bpmp TEGRA186_CLK_I2C3>;
591		clock-names = "div-clk";
592		resets = <&bpmp TEGRA186_RESET_I2C3>;
593		reset-names = "i2c";
594		status = "disabled";
595	};
596
597	/* shares pads with dpaux1 */
598	dp_aux_ch1_i2c: i2c@3190000 {
599		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
600		reg = <0x0 0x03190000 0x0 0x10000>;
601		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
602		#address-cells = <1>;
603		#size-cells = <0>;
604		clocks = <&bpmp TEGRA186_CLK_I2C4>;
605		clock-names = "div-clk";
606		resets = <&bpmp TEGRA186_RESET_I2C4>;
607		reset-names = "i2c";
608		pinctrl-names = "default", "idle";
609		pinctrl-0 = <&state_dpaux1_i2c>;
610		pinctrl-1 = <&state_dpaux1_off>;
611		status = "disabled";
612	};
613
614	/* controlled by BPMP, should not be enabled */
615	pwr_i2c: i2c@31a0000 {
616		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
617		reg = <0x0 0x031a0000 0x0 0x10000>;
618		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
619		#address-cells = <1>;
620		#size-cells = <0>;
621		clocks = <&bpmp TEGRA186_CLK_I2C5>;
622		clock-names = "div-clk";
623		resets = <&bpmp TEGRA186_RESET_I2C5>;
624		reset-names = "i2c";
625		status = "disabled";
626	};
627
628	/* shares pads with dpaux0 */
629	dp_aux_ch0_i2c: i2c@31b0000 {
630		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
631		reg = <0x0 0x031b0000 0x0 0x10000>;
632		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
633		#address-cells = <1>;
634		#size-cells = <0>;
635		clocks = <&bpmp TEGRA186_CLK_I2C6>;
636		clock-names = "div-clk";
637		resets = <&bpmp TEGRA186_RESET_I2C6>;
638		reset-names = "i2c";
639		pinctrl-names = "default", "idle";
640		pinctrl-0 = <&state_dpaux_i2c>;
641		pinctrl-1 = <&state_dpaux_off>;
642		status = "disabled";
643	};
644
645	gen7_i2c: i2c@31c0000 {
646		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
647		reg = <0x0 0x031c0000 0x0 0x10000>;
648		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
649		#address-cells = <1>;
650		#size-cells = <0>;
651		clocks = <&bpmp TEGRA186_CLK_I2C7>;
652		clock-names = "div-clk";
653		resets = <&bpmp TEGRA186_RESET_I2C7>;
654		reset-names = "i2c";
655		status = "disabled";
656	};
657
658	gen9_i2c: i2c@31e0000 {
659		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
660		reg = <0x0 0x031e0000 0x0 0x10000>;
661		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
662		#address-cells = <1>;
663		#size-cells = <0>;
664		clocks = <&bpmp TEGRA186_CLK_I2C9>;
665		clock-names = "div-clk";
666		resets = <&bpmp TEGRA186_RESET_I2C9>;
667		reset-names = "i2c";
668		status = "disabled";
669	};
670
671	pwm1: pwm@3280000 {
672		compatible = "nvidia,tegra186-pwm";
673		reg = <0x0 0x3280000 0x0 0x10000>;
674		clocks = <&bpmp TEGRA186_CLK_PWM1>;
675		clock-names = "pwm";
676		resets = <&bpmp TEGRA186_RESET_PWM1>;
677		reset-names = "pwm";
678		status = "disabled";
679		#pwm-cells = <2>;
680	};
681
682	pwm2: pwm@3290000 {
683		compatible = "nvidia,tegra186-pwm";
684		reg = <0x0 0x3290000 0x0 0x10000>;
685		clocks = <&bpmp TEGRA186_CLK_PWM2>;
686		clock-names = "pwm";
687		resets = <&bpmp TEGRA186_RESET_PWM2>;
688		reset-names = "pwm";
689		status = "disabled";
690		#pwm-cells = <2>;
691	};
692
693	pwm3: pwm@32a0000 {
694		compatible = "nvidia,tegra186-pwm";
695		reg = <0x0 0x32a0000 0x0 0x10000>;
696		clocks = <&bpmp TEGRA186_CLK_PWM3>;
697		clock-names = "pwm";
698		resets = <&bpmp TEGRA186_RESET_PWM3>;
699		reset-names = "pwm";
700		status = "disabled";
701		#pwm-cells = <2>;
702	};
703
704	pwm5: pwm@32c0000 {
705		compatible = "nvidia,tegra186-pwm";
706		reg = <0x0 0x32c0000 0x0 0x10000>;
707		clocks = <&bpmp TEGRA186_CLK_PWM5>;
708		clock-names = "pwm";
709		resets = <&bpmp TEGRA186_RESET_PWM5>;
710		reset-names = "pwm";
711		status = "disabled";
712		#pwm-cells = <2>;
713	};
714
715	pwm6: pwm@32d0000 {
716		compatible = "nvidia,tegra186-pwm";
717		reg = <0x0 0x32d0000 0x0 0x10000>;
718		clocks = <&bpmp TEGRA186_CLK_PWM6>;
719		clock-names = "pwm";
720		resets = <&bpmp TEGRA186_RESET_PWM6>;
721		reset-names = "pwm";
722		status = "disabled";
723		#pwm-cells = <2>;
724	};
725
726	pwm7: pwm@32e0000 {
727		compatible = "nvidia,tegra186-pwm";
728		reg = <0x0 0x32e0000 0x0 0x10000>;
729		clocks = <&bpmp TEGRA186_CLK_PWM7>;
730		clock-names = "pwm";
731		resets = <&bpmp TEGRA186_RESET_PWM7>;
732		reset-names = "pwm";
733		status = "disabled";
734		#pwm-cells = <2>;
735	};
736
737	pwm8: pwm@32f0000 {
738		compatible = "nvidia,tegra186-pwm";
739		reg = <0x0 0x32f0000 0x0 0x10000>;
740		clocks = <&bpmp TEGRA186_CLK_PWM8>;
741		clock-names = "pwm";
742		resets = <&bpmp TEGRA186_RESET_PWM8>;
743		reset-names = "pwm";
744		status = "disabled";
745		#pwm-cells = <2>;
746	};
747
748	sdmmc1: mmc@3400000 {
749		compatible = "nvidia,tegra186-sdhci";
750		reg = <0x0 0x03400000 0x0 0x10000>;
751		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
752		clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
753			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
754		clock-names = "sdhci", "tmclk";
755		resets = <&bpmp TEGRA186_RESET_SDMMC1>;
756		reset-names = "sdhci";
757		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRA &emc>,
758				<&mc TEGRA186_MEMORY_CLIENT_SDMMCWA &emc>;
759		interconnect-names = "dma-mem", "write";
760		iommus = <&smmu TEGRA186_SID_SDMMC1>;
761		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
762		pinctrl-0 = <&sdmmc1_3v3>;
763		pinctrl-1 = <&sdmmc1_1v8>;
764		nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
765		nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
766		nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
767		nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
768		nvidia,pad-autocal-pull-up-offset-sdr104 = <0x03>;
769		nvidia,pad-autocal-pull-down-offset-sdr104 = <0x05>;
770		nvidia,default-tap = <0x5>;
771		nvidia,default-trim = <0xb>;
772		assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
773				  <&bpmp TEGRA186_CLK_PLLP_OUT0>;
774		assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLP_OUT0>;
775		status = "disabled";
776	};
777
778	sdmmc2: mmc@3420000 {
779		compatible = "nvidia,tegra186-sdhci";
780		reg = <0x0 0x03420000 0x0 0x10000>;
781		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
782		clocks = <&bpmp TEGRA186_CLK_SDMMC2>,
783			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
784		clock-names = "sdhci", "tmclk";
785		resets = <&bpmp TEGRA186_RESET_SDMMC2>;
786		reset-names = "sdhci";
787		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRAA &emc>,
788				<&mc TEGRA186_MEMORY_CLIENT_SDMMCWAA &emc>;
789		interconnect-names = "dma-mem", "write";
790		iommus = <&smmu TEGRA186_SID_SDMMC2>;
791		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
792		pinctrl-0 = <&sdmmc2_3v3>;
793		pinctrl-1 = <&sdmmc2_1v8>;
794		nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
795		nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
796		nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
797		nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
798		nvidia,default-tap = <0x5>;
799		nvidia,default-trim = <0xb>;
800		status = "disabled";
801	};
802
803	sdmmc3: mmc@3440000 {
804		compatible = "nvidia,tegra186-sdhci";
805		reg = <0x0 0x03440000 0x0 0x10000>;
806		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
807		clocks = <&bpmp TEGRA186_CLK_SDMMC3>,
808			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
809		clock-names = "sdhci", "tmclk";
810		resets = <&bpmp TEGRA186_RESET_SDMMC3>;
811		reset-names = "sdhci";
812		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCR &emc>,
813				<&mc TEGRA186_MEMORY_CLIENT_SDMMCW &emc>;
814		interconnect-names = "dma-mem", "write";
815		iommus = <&smmu TEGRA186_SID_SDMMC3>;
816		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
817		pinctrl-0 = <&sdmmc3_3v3>;
818		pinctrl-1 = <&sdmmc3_1v8>;
819		nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
820		nvidia,pad-autocal-pull-down-offset-1v8 = <0x7a>;
821		nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
822		nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
823		nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
824		nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
825		nvidia,default-tap = <0x5>;
826		nvidia,default-trim = <0xb>;
827		status = "disabled";
828	};
829
830	sdmmc4: mmc@3460000 {
831		compatible = "nvidia,tegra186-sdhci";
832		reg = <0x0 0x03460000 0x0 0x10000>;
833		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
834		clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
835			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
836		clock-names = "sdhci", "tmclk";
837		assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
838				  <&bpmp TEGRA186_CLK_PLLC4_VCO>;
839		assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>;
840		resets = <&bpmp TEGRA186_RESET_SDMMC4>;
841		reset-names = "sdhci";
842		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRAB &emc>,
843				<&mc TEGRA186_MEMORY_CLIENT_SDMMCWAB &emc>;
844		interconnect-names = "dma-mem", "write";
845		iommus = <&smmu TEGRA186_SID_SDMMC4>;
846		nvidia,pad-autocal-pull-up-offset-hs400 = <0x05>;
847		nvidia,pad-autocal-pull-down-offset-hs400 = <0x05>;
848		nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>;
849		nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x0a>;
850		nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x0a>;
851		nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x0a>;
852		nvidia,default-tap = <0x9>;
853		nvidia,default-trim = <0x5>;
854		nvidia,dqs-trim = <63>;
855		mmc-hs400-1_8v;
856		supports-cqe;
857		status = "disabled";
858	};
859
860	hda@3510000 {
861		compatible = "nvidia,tegra186-hda", "nvidia,tegra30-hda";
862		reg = <0x0 0x03510000 0x0 0x10000>;
863		interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
864		clocks = <&bpmp TEGRA186_CLK_HDA>,
865			 <&bpmp TEGRA186_CLK_HDA2HDMICODEC>,
866			 <&bpmp TEGRA186_CLK_HDA2CODEC_2X>;
867		clock-names = "hda", "hda2hdmi", "hda2codec_2x";
868		resets = <&bpmp TEGRA186_RESET_HDA>,
869			 <&bpmp TEGRA186_RESET_HDA2HDMICODEC>,
870			 <&bpmp TEGRA186_RESET_HDA2CODEC_2X>;
871		reset-names = "hda", "hda2hdmi", "hda2codec_2x";
872		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
873		interconnects = <&mc TEGRA186_MEMORY_CLIENT_HDAR &emc>,
874				<&mc TEGRA186_MEMORY_CLIENT_HDAW &emc>;
875		interconnect-names = "dma-mem", "write";
876		iommus = <&smmu TEGRA186_SID_HDA>;
877		status = "disabled";
878	};
879
880	padctl: padctl@3520000 {
881		compatible = "nvidia,tegra186-xusb-padctl";
882		reg = <0x0 0x03520000 0x0 0x1000>,
883		      <0x0 0x03540000 0x0 0x1000>;
884		reg-names = "padctl", "ao";
885		interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
886
887		resets = <&bpmp TEGRA186_RESET_XUSB_PADCTL>;
888		reset-names = "padctl";
889
890		status = "disabled";
891
892		pads {
893			usb2 {
894				clocks = <&bpmp TEGRA186_CLK_USB2_TRK>;
895				clock-names = "trk";
896				status = "disabled";
897
898				lanes {
899					usb2-0 {
900						status = "disabled";
901						#phy-cells = <0>;
902					};
903
904					usb2-1 {
905						status = "disabled";
906						#phy-cells = <0>;
907					};
908
909					usb2-2 {
910						status = "disabled";
911						#phy-cells = <0>;
912					};
913				};
914			};
915
916			hsic {
917				clocks = <&bpmp TEGRA186_CLK_HSIC_TRK>;
918				clock-names = "trk";
919				status = "disabled";
920
921				lanes {
922					hsic-0 {
923						status = "disabled";
924						#phy-cells = <0>;
925					};
926				};
927			};
928
929			usb3 {
930				status = "disabled";
931
932				lanes {
933					usb3-0 {
934						status = "disabled";
935						#phy-cells = <0>;
936					};
937
938					usb3-1 {
939						status = "disabled";
940						#phy-cells = <0>;
941					};
942
943					usb3-2 {
944						status = "disabled";
945						#phy-cells = <0>;
946					};
947				};
948			};
949		};
950
951		ports {
952			usb2-0 {
953				status = "disabled";
954			};
955
956			usb2-1 {
957				status = "disabled";
958			};
959
960			usb2-2 {
961				status = "disabled";
962			};
963
964			hsic-0 {
965				status = "disabled";
966			};
967
968			usb3-0 {
969				status = "disabled";
970			};
971
972			usb3-1 {
973				status = "disabled";
974			};
975
976			usb3-2 {
977				status = "disabled";
978			};
979		};
980	};
981
982	usb@3530000 {
983		compatible = "nvidia,tegra186-xusb";
984		reg = <0x0 0x03530000 0x0 0x8000>,
985		      <0x0 0x03538000 0x0 0x1000>;
986		reg-names = "hcd", "fpci";
987		interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
988			     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
989		clocks = <&bpmp TEGRA186_CLK_XUSB_HOST>,
990			 <&bpmp TEGRA186_CLK_XUSB_FALCON>,
991			 <&bpmp TEGRA186_CLK_XUSB_SS>,
992			 <&bpmp TEGRA186_CLK_XUSB_CORE_SS>,
993			 <&bpmp TEGRA186_CLK_CLK_M>,
994			 <&bpmp TEGRA186_CLK_XUSB_FS>,
995			 <&bpmp TEGRA186_CLK_PLLU>,
996			 <&bpmp TEGRA186_CLK_CLK_M>,
997			 <&bpmp TEGRA186_CLK_PLLE>;
998		clock-names = "xusb_host", "xusb_falcon_src", "xusb_ss",
999			      "xusb_ss_src", "xusb_hs_src", "xusb_fs_src",
1000			      "pll_u_480m", "clk_m", "pll_e";
1001		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_XUSBC>,
1002				<&bpmp TEGRA186_POWER_DOMAIN_XUSBA>;
1003		power-domain-names = "xusb_host", "xusb_ss";
1004		interconnects = <&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTR &emc>,
1005				<&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTW &emc>;
1006		interconnect-names = "dma-mem", "write";
1007		iommus = <&smmu TEGRA186_SID_XUSB_HOST>;
1008		#address-cells = <1>;
1009		#size-cells = <0>;
1010		status = "disabled";
1011
1012		nvidia,xusb-padctl = <&padctl>;
1013	};
1014
1015	usb@3550000 {
1016		compatible = "nvidia,tegra186-xudc";
1017		reg = <0x0 0x03550000 0x0 0x8000>,
1018		      <0x0 0x03558000 0x0 0x1000>;
1019		reg-names = "base", "fpci";
1020		interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
1021		clocks = <&bpmp TEGRA186_CLK_XUSB_CORE_DEV>,
1022			 <&bpmp TEGRA186_CLK_XUSB_SS>,
1023			 <&bpmp TEGRA186_CLK_XUSB_CORE_SS>,
1024			 <&bpmp TEGRA186_CLK_XUSB_FS>;
1025		clock-names = "dev", "ss", "ss_src", "fs_src";
1026		interconnects = <&mc TEGRA186_MEMORY_CLIENT_XUSB_DEVR &emc>,
1027				<&mc TEGRA186_MEMORY_CLIENT_XUSB_DEVW &emc>;
1028		interconnect-names = "dma-mem", "write";
1029		iommus = <&smmu TEGRA186_SID_XUSB_DEV>;
1030		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_XUSBB>,
1031				<&bpmp TEGRA186_POWER_DOMAIN_XUSBA>;
1032		power-domain-names = "dev", "ss";
1033		nvidia,xusb-padctl = <&padctl>;
1034		status = "disabled";
1035	};
1036
1037	fuse@3820000 {
1038		compatible = "nvidia,tegra186-efuse";
1039		reg = <0x0 0x03820000 0x0 0x10000>;
1040		clocks = <&bpmp TEGRA186_CLK_FUSE>;
1041		clock-names = "fuse";
1042	};
1043
1044	gic: interrupt-controller@3881000 {
1045		compatible = "arm,gic-400";
1046		#interrupt-cells = <3>;
1047		interrupt-controller;
1048		reg = <0x0 0x03881000 0x0 0x1000>,
1049		      <0x0 0x03882000 0x0 0x2000>,
1050		      <0x0 0x03884000 0x0 0x2000>,
1051		      <0x0 0x03886000 0x0 0x2000>;
1052		interrupts = <GIC_PPI 9
1053			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1054		interrupt-parent = <&gic>;
1055	};
1056
1057	cec@3960000 {
1058		compatible = "nvidia,tegra186-cec";
1059		reg = <0x0 0x03960000 0x0 0x10000>;
1060		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
1061		clocks = <&bpmp TEGRA186_CLK_CEC>;
1062		clock-names = "cec";
1063		status = "disabled";
1064	};
1065
1066	hsp_top0: hsp@3c00000 {
1067		compatible = "nvidia,tegra186-hsp";
1068		reg = <0x0 0x03c00000 0x0 0xa0000>;
1069		interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
1070		interrupt-names = "doorbell";
1071		#mbox-cells = <2>;
1072		status = "disabled";
1073	};
1074
1075	gen2_i2c: i2c@c240000 {
1076		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
1077		reg = <0x0 0x0c240000 0x0 0x10000>;
1078		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
1079		#address-cells = <1>;
1080		#size-cells = <0>;
1081		clocks = <&bpmp TEGRA186_CLK_I2C2>;
1082		clock-names = "div-clk";
1083		resets = <&bpmp TEGRA186_RESET_I2C2>;
1084		reset-names = "i2c";
1085		status = "disabled";
1086	};
1087
1088	gen8_i2c: i2c@c250000 {
1089		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
1090		reg = <0x0 0x0c250000 0x0 0x10000>;
1091		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1092		#address-cells = <1>;
1093		#size-cells = <0>;
1094		clocks = <&bpmp TEGRA186_CLK_I2C8>;
1095		clock-names = "div-clk";
1096		resets = <&bpmp TEGRA186_RESET_I2C8>;
1097		reset-names = "i2c";
1098		status = "disabled";
1099	};
1100
1101	uartc: serial@c280000 {
1102		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
1103		reg = <0x0 0x0c280000 0x0 0x40>;
1104		reg-shift = <2>;
1105		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
1106		clocks = <&bpmp TEGRA186_CLK_UARTC>;
1107		clock-names = "serial";
1108		resets = <&bpmp TEGRA186_RESET_UARTC>;
1109		reset-names = "serial";
1110		status = "disabled";
1111	};
1112
1113	uartg: serial@c290000 {
1114		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
1115		reg = <0x0 0x0c290000 0x0 0x40>;
1116		reg-shift = <2>;
1117		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
1118		clocks = <&bpmp TEGRA186_CLK_UARTG>;
1119		clock-names = "serial";
1120		resets = <&bpmp TEGRA186_RESET_UARTG>;
1121		reset-names = "serial";
1122		status = "disabled";
1123	};
1124
1125	rtc: rtc@c2a0000 {
1126		compatible = "nvidia,tegra186-rtc", "nvidia,tegra20-rtc";
1127		reg = <0 0x0c2a0000 0 0x10000>;
1128		interrupt-parent = <&pmc>;
1129		interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
1130		clocks = <&bpmp TEGRA186_CLK_CLK_32K>;
1131		clock-names = "rtc";
1132		status = "disabled";
1133	};
1134
1135	gpio_aon: gpio@c2f0000 {
1136		compatible = "nvidia,tegra186-gpio-aon";
1137		reg-names = "security", "gpio";
1138		reg = <0x0 0xc2f0000 0x0 0x1000>,
1139		      <0x0 0xc2f1000 0x0 0x1000>;
1140		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
1141		gpio-controller;
1142		#gpio-cells = <2>;
1143		interrupt-controller;
1144		#interrupt-cells = <2>;
1145	};
1146
1147	pwm4: pwm@c340000 {
1148		compatible = "nvidia,tegra186-pwm";
1149		reg = <0x0 0xc340000 0x0 0x10000>;
1150		clocks = <&bpmp TEGRA186_CLK_PWM4>;
1151		clock-names = "pwm";
1152		resets = <&bpmp TEGRA186_RESET_PWM4>;
1153		reset-names = "pwm";
1154		status = "disabled";
1155		#pwm-cells = <2>;
1156	};
1157
1158	pmc: pmc@c360000 {
1159		compatible = "nvidia,tegra186-pmc";
1160		reg = <0 0x0c360000 0 0x10000>,
1161		      <0 0x0c370000 0 0x10000>,
1162		      <0 0x0c380000 0 0x10000>,
1163		      <0 0x0c390000 0 0x10000>;
1164		reg-names = "pmc", "wake", "aotag", "scratch";
1165
1166		#interrupt-cells = <2>;
1167		interrupt-controller;
1168
1169		sdmmc1_3v3: sdmmc1-3v3 {
1170			pins = "sdmmc1-hv";
1171			power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
1172		};
1173
1174		sdmmc1_1v8: sdmmc1-1v8 {
1175			pins = "sdmmc1-hv";
1176			power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
1177		};
1178
1179		sdmmc2_3v3: sdmmc2-3v3 {
1180			pins = "sdmmc2-hv";
1181			power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
1182		};
1183
1184		sdmmc2_1v8: sdmmc2-1v8 {
1185			pins = "sdmmc2-hv";
1186			power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
1187		};
1188
1189		sdmmc3_3v3: sdmmc3-3v3 {
1190			pins = "sdmmc3-hv";
1191			power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
1192		};
1193
1194		sdmmc3_1v8: sdmmc3-1v8 {
1195			pins = "sdmmc3-hv";
1196			power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
1197		};
1198	};
1199
1200	ccplex@e000000 {
1201		compatible = "nvidia,tegra186-ccplex-cluster";
1202		reg = <0x0 0x0e000000 0x0 0x3fffff>;
1203
1204		nvidia,bpmp = <&bpmp>;
1205	};
1206
1207	pcie@10003000 {
1208		compatible = "nvidia,tegra186-pcie";
1209		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>;
1210		device_type = "pci";
1211		reg = <0x0 0x10003000 0x0 0x00000800>, /* PADS registers */
1212		      <0x0 0x10003800 0x0 0x00000800>, /* AFI registers */
1213		      <0x0 0x40000000 0x0 0x10000000>; /* configuration space */
1214		reg-names = "pads", "afi", "cs";
1215
1216		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
1217			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
1218		interrupt-names = "intr", "msi";
1219
1220		#interrupt-cells = <1>;
1221		interrupt-map-mask = <0 0 0 0>;
1222		interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1223
1224		bus-range = <0x00 0xff>;
1225		#address-cells = <3>;
1226		#size-cells = <2>;
1227
1228		ranges = <0x02000000 0 0x10000000 0x0 0x10000000 0 0x00001000>, /* port 0 configuration space */
1229			 <0x02000000 0 0x10001000 0x0 0x10001000 0 0x00001000>,/* port 1 configuration space */
1230			 <0x02000000 0 0x10004000 0x0 0x10004000 0 0x00001000>, /* port 2 configuration space */
1231			 <0x01000000 0 0x0        0x0 0x50000000 0 0x00010000>, /* downstream I/O (64 KiB) */
1232			 <0x02000000 0 0x50100000 0x0 0x50100000 0 0x07f00000>, /* non-prefetchable memory (127 MiB) */
1233			 <0x42000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */
1234
1235		clocks = <&bpmp TEGRA186_CLK_PCIE>,
1236			 <&bpmp TEGRA186_CLK_AFI>,
1237			 <&bpmp TEGRA186_CLK_PLLE>;
1238		clock-names = "pex", "afi", "pll_e";
1239
1240		resets = <&bpmp TEGRA186_RESET_PCIE>,
1241			 <&bpmp TEGRA186_RESET_AFI>,
1242			 <&bpmp TEGRA186_RESET_PCIEXCLK>;
1243		reset-names = "pex", "afi", "pcie_x";
1244
1245		interconnects = <&mc TEGRA186_MEMORY_CLIENT_AFIR &emc>,
1246				<&mc TEGRA186_MEMORY_CLIENT_AFIW &emc>;
1247		interconnect-names = "dma-mem", "write";
1248
1249		iommus = <&smmu TEGRA186_SID_AFI>;
1250		iommu-map = <0x0 &smmu TEGRA186_SID_AFI 0x1000>;
1251		iommu-map-mask = <0x0>;
1252
1253		status = "disabled";
1254
1255		pci@1,0 {
1256			device_type = "pci";
1257			assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>;
1258			reg = <0x000800 0 0 0 0>;
1259			status = "disabled";
1260
1261			#address-cells = <3>;
1262			#size-cells = <2>;
1263			ranges;
1264
1265			nvidia,num-lanes = <2>;
1266		};
1267
1268		pci@2,0 {
1269			device_type = "pci";
1270			assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>;
1271			reg = <0x001000 0 0 0 0>;
1272			status = "disabled";
1273
1274			#address-cells = <3>;
1275			#size-cells = <2>;
1276			ranges;
1277
1278			nvidia,num-lanes = <1>;
1279		};
1280
1281		pci@3,0 {
1282			device_type = "pci";
1283			assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>;
1284			reg = <0x001800 0 0 0 0>;
1285			status = "disabled";
1286
1287			#address-cells = <3>;
1288			#size-cells = <2>;
1289			ranges;
1290
1291			nvidia,num-lanes = <1>;
1292		};
1293	};
1294
1295	smmu: iommu@12000000 {
1296		compatible = "nvidia,tegra186-smmu", "nvidia,smmu-500";
1297		reg = <0 0x12000000 0 0x800000>;
1298		interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1299			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1300			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1301			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1302			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1303			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1304			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1305			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1306			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1307			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1308			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1309			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1310			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1311			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1312			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1313			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1314			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1315			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1316			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1317			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1318			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1319			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1320			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1321			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1322			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1323			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1324			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1325			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1326			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1327			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1328			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1329			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1330			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1331			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1332			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1333			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1334			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1335			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1336			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1337			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1338			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1339			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1340			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1341			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1342			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1343			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1344			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1345			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1346			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1347			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1348			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1349			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1350			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1351			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1352			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1353			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1354			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1355			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1356			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1357			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1358			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1359			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1360			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1361			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1362			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
1363		stream-match-mask = <0x7f80>;
1364		#global-interrupts = <1>;
1365		#iommu-cells = <1>;
1366
1367		nvidia,memory-controller = <&mc>;
1368	};
1369
1370	host1x@13e00000 {
1371		compatible = "nvidia,tegra186-host1x";
1372		reg = <0x0 0x13e00000 0x0 0x10000>,
1373		      <0x0 0x13e10000 0x0 0x10000>;
1374		reg-names = "hypervisor", "vm";
1375		interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
1376		             <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
1377		interrupt-names = "syncpt", "host1x";
1378		clocks = <&bpmp TEGRA186_CLK_HOST1X>;
1379		clock-names = "host1x";
1380		resets = <&bpmp TEGRA186_RESET_HOST1X>;
1381		reset-names = "host1x";
1382
1383		#address-cells = <1>;
1384		#size-cells = <1>;
1385
1386		ranges = <0x15000000 0x0 0x15000000 0x01000000>;
1387
1388		interconnects = <&mc TEGRA186_MEMORY_CLIENT_HOST1XDMAR &emc>;
1389		interconnect-names = "dma-mem";
1390
1391		iommus = <&smmu TEGRA186_SID_HOST1X>;
1392
1393		dpaux1: dpaux@15040000 {
1394			compatible = "nvidia,tegra186-dpaux";
1395			reg = <0x15040000 0x10000>;
1396			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
1397			clocks = <&bpmp TEGRA186_CLK_DPAUX1>,
1398				 <&bpmp TEGRA186_CLK_PLLDP>;
1399			clock-names = "dpaux", "parent";
1400			resets = <&bpmp TEGRA186_RESET_DPAUX1>;
1401			reset-names = "dpaux";
1402			status = "disabled";
1403
1404			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1405
1406			state_dpaux1_aux: pinmux-aux {
1407				groups = "dpaux-io";
1408				function = "aux";
1409			};
1410
1411			state_dpaux1_i2c: pinmux-i2c {
1412				groups = "dpaux-io";
1413				function = "i2c";
1414			};
1415
1416			state_dpaux1_off: pinmux-off {
1417				groups = "dpaux-io";
1418				function = "off";
1419			};
1420
1421			i2c-bus {
1422				#address-cells = <1>;
1423				#size-cells = <0>;
1424			};
1425		};
1426
1427		display-hub@15200000 {
1428			compatible = "nvidia,tegra186-display";
1429			reg = <0x15200000 0x00040000>;
1430			resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_MISC>,
1431				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP0>,
1432				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP1>,
1433				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP2>,
1434				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP3>,
1435				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP4>,
1436				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP5>;
1437			reset-names = "misc", "wgrp0", "wgrp1", "wgrp2",
1438				      "wgrp3", "wgrp4", "wgrp5";
1439			clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_DISP>,
1440				 <&bpmp TEGRA186_CLK_NVDISPLAY_DSC>,
1441				 <&bpmp TEGRA186_CLK_NVDISPLAYHUB>;
1442			clock-names = "disp", "dsc", "hub";
1443			status = "disabled";
1444
1445			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1446
1447			#address-cells = <1>;
1448			#size-cells = <1>;
1449
1450			ranges = <0x15200000 0x15200000 0x40000>;
1451
1452			display@15200000 {
1453				compatible = "nvidia,tegra186-dc";
1454				reg = <0x15200000 0x10000>;
1455				interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
1456				clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P0>;
1457				clock-names = "dc";
1458				resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD0>;
1459				reset-names = "dc";
1460
1461				power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1462				interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
1463						<&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
1464				interconnect-names = "dma-mem", "read-1";
1465				iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
1466
1467				nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
1468				nvidia,head = <0>;
1469			};
1470
1471			display@15210000 {
1472				compatible = "nvidia,tegra186-dc";
1473				reg = <0x15210000 0x10000>;
1474				interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
1475				clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P1>;
1476				clock-names = "dc";
1477				resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD1>;
1478				reset-names = "dc";
1479
1480				power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISPB>;
1481				interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
1482						<&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
1483				interconnect-names = "dma-mem", "read-1";
1484				iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
1485
1486				nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
1487				nvidia,head = <1>;
1488			};
1489
1490			display@15220000 {
1491				compatible = "nvidia,tegra186-dc";
1492				reg = <0x15220000 0x10000>;
1493				interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
1494				clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P2>;
1495				clock-names = "dc";
1496				resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD2>;
1497				reset-names = "dc";
1498
1499				power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISPC>;
1500				interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
1501						<&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
1502				interconnect-names = "dma-mem", "read-1";
1503				iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
1504
1505				nvidia,outputs = <&sor0 &sor1>;
1506				nvidia,head = <2>;
1507			};
1508		};
1509
1510		dsia: dsi@15300000 {
1511			compatible = "nvidia,tegra186-dsi";
1512			reg = <0x15300000 0x10000>;
1513			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
1514			clocks = <&bpmp TEGRA186_CLK_DSI>,
1515				 <&bpmp TEGRA186_CLK_DSIA_LP>,
1516				 <&bpmp TEGRA186_CLK_PLLD>;
1517			clock-names = "dsi", "lp", "parent";
1518			resets = <&bpmp TEGRA186_RESET_DSI>;
1519			reset-names = "dsi";
1520			status = "disabled";
1521
1522			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1523		};
1524
1525		vic@15340000 {
1526			compatible = "nvidia,tegra186-vic";
1527			reg = <0x15340000 0x40000>;
1528			interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
1529			clocks = <&bpmp TEGRA186_CLK_VIC>;
1530			clock-names = "vic";
1531			resets = <&bpmp TEGRA186_RESET_VIC>;
1532			reset-names = "vic";
1533
1534			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_VIC>;
1535			interconnects = <&mc TEGRA186_MEMORY_CLIENT_VICSRD &emc>,
1536					<&mc TEGRA186_MEMORY_CLIENT_VICSWR &emc>;
1537			interconnect-names = "dma-mem", "write";
1538			iommus = <&smmu TEGRA186_SID_VIC>;
1539		};
1540
1541		dsib: dsi@15400000 {
1542			compatible = "nvidia,tegra186-dsi";
1543			reg = <0x15400000 0x10000>;
1544			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
1545			clocks = <&bpmp TEGRA186_CLK_DSIB>,
1546				 <&bpmp TEGRA186_CLK_DSIB_LP>,
1547				 <&bpmp TEGRA186_CLK_PLLD>;
1548			clock-names = "dsi", "lp", "parent";
1549			resets = <&bpmp TEGRA186_RESET_DSIB>;
1550			reset-names = "dsi";
1551			status = "disabled";
1552
1553			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1554		};
1555
1556		nvdec@15480000 {
1557			compatible = "nvidia,tegra186-nvdec";
1558			reg = <0x15480000 0x40000>;
1559			clocks = <&bpmp TEGRA186_CLK_NVDEC>;
1560			clock-names = "nvdec";
1561			resets = <&bpmp TEGRA186_RESET_NVDEC>;
1562			reset-names = "nvdec";
1563
1564			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_NVDEC>;
1565			interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDECSRD &emc>,
1566					<&mc TEGRA186_MEMORY_CLIENT_NVDECSRD1 &emc>,
1567					<&mc TEGRA186_MEMORY_CLIENT_NVDECSWR &emc>;
1568			interconnect-names = "dma-mem", "read-1", "write";
1569			iommus = <&smmu TEGRA186_SID_NVDEC>;
1570		};
1571
1572		sor0: sor@15540000 {
1573			compatible = "nvidia,tegra186-sor";
1574			reg = <0x15540000 0x10000>;
1575			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1576			clocks = <&bpmp TEGRA186_CLK_SOR0>,
1577				 <&bpmp TEGRA186_CLK_SOR0_OUT>,
1578				 <&bpmp TEGRA186_CLK_PLLD2>,
1579				 <&bpmp TEGRA186_CLK_PLLDP>,
1580				 <&bpmp TEGRA186_CLK_SOR_SAFE>,
1581				 <&bpmp TEGRA186_CLK_SOR0_PAD_CLKOUT>;
1582			clock-names = "sor", "out", "parent", "dp", "safe",
1583				      "pad";
1584			resets = <&bpmp TEGRA186_RESET_SOR0>;
1585			reset-names = "sor";
1586			pinctrl-0 = <&state_dpaux_aux>;
1587			pinctrl-1 = <&state_dpaux_i2c>;
1588			pinctrl-2 = <&state_dpaux_off>;
1589			pinctrl-names = "aux", "i2c", "off";
1590			status = "disabled";
1591
1592			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1593			nvidia,interface = <0>;
1594		};
1595
1596		sor1: sor@15580000 {
1597			compatible = "nvidia,tegra186-sor";
1598			reg = <0x15580000 0x10000>;
1599			interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1600			clocks = <&bpmp TEGRA186_CLK_SOR1>,
1601				 <&bpmp TEGRA186_CLK_SOR1_OUT>,
1602				 <&bpmp TEGRA186_CLK_PLLD3>,
1603				 <&bpmp TEGRA186_CLK_PLLDP>,
1604				 <&bpmp TEGRA186_CLK_SOR_SAFE>,
1605				 <&bpmp TEGRA186_CLK_SOR1_PAD_CLKOUT>;
1606			clock-names = "sor", "out", "parent", "dp", "safe",
1607				      "pad";
1608			resets = <&bpmp TEGRA186_RESET_SOR1>;
1609			reset-names = "sor";
1610			pinctrl-0 = <&state_dpaux1_aux>;
1611			pinctrl-1 = <&state_dpaux1_i2c>;
1612			pinctrl-2 = <&state_dpaux1_off>;
1613			pinctrl-names = "aux", "i2c", "off";
1614			status = "disabled";
1615
1616			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1617			nvidia,interface = <1>;
1618		};
1619
1620		dpaux: dpaux@155c0000 {
1621			compatible = "nvidia,tegra186-dpaux";
1622			reg = <0x155c0000 0x10000>;
1623			interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
1624			clocks = <&bpmp TEGRA186_CLK_DPAUX>,
1625				 <&bpmp TEGRA186_CLK_PLLDP>;
1626			clock-names = "dpaux", "parent";
1627			resets = <&bpmp TEGRA186_RESET_DPAUX>;
1628			reset-names = "dpaux";
1629			status = "disabled";
1630
1631			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1632
1633			state_dpaux_aux: pinmux-aux {
1634				groups = "dpaux-io";
1635				function = "aux";
1636			};
1637
1638			state_dpaux_i2c: pinmux-i2c {
1639				groups = "dpaux-io";
1640				function = "i2c";
1641			};
1642
1643			state_dpaux_off: pinmux-off {
1644				groups = "dpaux-io";
1645				function = "off";
1646			};
1647
1648			i2c-bus {
1649				#address-cells = <1>;
1650				#size-cells = <0>;
1651			};
1652		};
1653
1654		padctl@15880000 {
1655			compatible = "nvidia,tegra186-dsi-padctl";
1656			reg = <0x15880000 0x10000>;
1657			resets = <&bpmp TEGRA186_RESET_DSI>;
1658			reset-names = "dsi";
1659			status = "disabled";
1660		};
1661
1662		dsic: dsi@15900000 {
1663			compatible = "nvidia,tegra186-dsi";
1664			reg = <0x15900000 0x10000>;
1665			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
1666			clocks = <&bpmp TEGRA186_CLK_DSIC>,
1667				 <&bpmp TEGRA186_CLK_DSIC_LP>,
1668				 <&bpmp TEGRA186_CLK_PLLD>;
1669			clock-names = "dsi", "lp", "parent";
1670			resets = <&bpmp TEGRA186_RESET_DSIC>;
1671			reset-names = "dsi";
1672			status = "disabled";
1673
1674			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1675		};
1676
1677		dsid: dsi@15940000 {
1678			compatible = "nvidia,tegra186-dsi";
1679			reg = <0x15940000 0x10000>;
1680			interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
1681			clocks = <&bpmp TEGRA186_CLK_DSID>,
1682				 <&bpmp TEGRA186_CLK_DSID_LP>,
1683				 <&bpmp TEGRA186_CLK_PLLD>;
1684			clock-names = "dsi", "lp", "parent";
1685			resets = <&bpmp TEGRA186_RESET_DSID>;
1686			reset-names = "dsi";
1687			status = "disabled";
1688
1689			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1690		};
1691	};
1692
1693	gpu@17000000 {
1694		compatible = "nvidia,gp10b";
1695		reg = <0x0 0x17000000 0x0 0x1000000>,
1696		      <0x0 0x18000000 0x0 0x1000000>;
1697		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
1698			     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
1699		interrupt-names = "stall", "nonstall";
1700
1701		clocks = <&bpmp TEGRA186_CLK_GPCCLK>,
1702			 <&bpmp TEGRA186_CLK_GPU>;
1703		clock-names = "gpu", "pwr";
1704		resets = <&bpmp TEGRA186_RESET_GPU>;
1705		reset-names = "gpu";
1706		status = "disabled";
1707
1708		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
1709		interconnects = <&mc TEGRA186_MEMORY_CLIENT_GPUSRD &emc>,
1710				<&mc TEGRA186_MEMORY_CLIENT_GPUSWR &emc>,
1711				<&mc TEGRA186_MEMORY_CLIENT_GPUSRD2 &emc>,
1712				<&mc TEGRA186_MEMORY_CLIENT_GPUSWR2 &emc>;
1713		interconnect-names = "dma-mem", "write-0", "read-1", "write-1";
1714	};
1715
1716	sram@30000000 {
1717		compatible = "nvidia,tegra186-sysram", "mmio-sram";
1718		reg = <0x0 0x30000000 0x0 0x50000>;
1719		#address-cells = <1>;
1720		#size-cells = <1>;
1721		ranges = <0x0 0x0 0x30000000 0x50000>;
1722
1723		cpu_bpmp_tx: sram@4e000 {
1724			reg = <0x4e000 0x1000>;
1725			label = "cpu-bpmp-tx";
1726			pool;
1727		};
1728
1729		cpu_bpmp_rx: sram@4f000 {
1730			reg = <0x4f000 0x1000>;
1731			label = "cpu-bpmp-rx";
1732			pool;
1733		};
1734	};
1735
1736	sata@3507000 {
1737		compatible = "nvidia,tegra186-ahci";
1738		reg = <0x0 0x03507000 0x0 0x00002000>, /* AHCI */
1739		      <0x0 0x03500000 0x0 0x00007000>, /* SATA */
1740		      <0x0 0x03A90000 0x0 0x00010000>; /* SATA AUX */
1741		interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
1742
1743		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_SAX>;
1744		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SATAR &emc>,
1745				<&mc TEGRA186_MEMORY_CLIENT_SATAW &emc>;
1746		interconnect-names = "dma-mem", "write";
1747		iommus = <&smmu TEGRA186_SID_SATA>;
1748
1749		clocks = <&bpmp TEGRA186_CLK_SATA>,
1750			 <&bpmp TEGRA186_CLK_SATA_OOB>;
1751		clock-names = "sata", "sata-oob";
1752		assigned-clocks = <&bpmp TEGRA186_CLK_SATA>,
1753				  <&bpmp TEGRA186_CLK_SATA_OOB>;
1754		assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLP_OUT0>,
1755					 <&bpmp TEGRA186_CLK_PLLP>;
1756		assigned-clock-rates = <102000000>,
1757				       <204000000>;
1758		resets = <&bpmp TEGRA186_RESET_SATA>,
1759			<&bpmp TEGRA186_RESET_SATACOLD>;
1760		reset-names = "sata", "sata-cold";
1761		status = "disabled";
1762	};
1763
1764	bpmp: bpmp {
1765		compatible = "nvidia,tegra186-bpmp";
1766		interconnects = <&mc TEGRA186_MEMORY_CLIENT_BPMPR &emc>,
1767				<&mc TEGRA186_MEMORY_CLIENT_BPMPW &emc>,
1768				<&mc TEGRA186_MEMORY_CLIENT_BPMPDMAR &emc>,
1769				<&mc TEGRA186_MEMORY_CLIENT_BPMPDMAW &emc>;
1770		interconnect-names = "read", "write", "dma-mem", "dma-write";
1771		iommus = <&smmu TEGRA186_SID_BPMP>;
1772		mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB
1773				    TEGRA_HSP_DB_MASTER_BPMP>;
1774		shmem = <&cpu_bpmp_tx>, <&cpu_bpmp_rx>;
1775		#clock-cells = <1>;
1776		#reset-cells = <1>;
1777		#power-domain-cells = <1>;
1778
1779		bpmp_i2c: i2c {
1780			compatible = "nvidia,tegra186-bpmp-i2c";
1781			nvidia,bpmp-bus-id = <5>;
1782			#address-cells = <1>;
1783			#size-cells = <0>;
1784			status = "disabled";
1785		};
1786
1787		bpmp_thermal: thermal {
1788			compatible = "nvidia,tegra186-bpmp-thermal";
1789			#thermal-sensor-cells = <1>;
1790		};
1791	};
1792
1793	cpus {
1794		#address-cells = <1>;
1795		#size-cells = <0>;
1796
1797		denver_0: cpu@0 {
1798			compatible = "nvidia,tegra186-denver";
1799			device_type = "cpu";
1800			i-cache-size = <0x20000>;
1801			i-cache-line-size = <64>;
1802			i-cache-sets = <512>;
1803			d-cache-size = <0x10000>;
1804			d-cache-line-size = <64>;
1805			d-cache-sets = <256>;
1806			next-level-cache = <&L2_DENVER>;
1807			reg = <0x000>;
1808		};
1809
1810		denver_1: cpu@1 {
1811			compatible = "nvidia,tegra186-denver";
1812			device_type = "cpu";
1813			i-cache-size = <0x20000>;
1814			i-cache-line-size = <64>;
1815			i-cache-sets = <512>;
1816			d-cache-size = <0x10000>;
1817			d-cache-line-size = <64>;
1818			d-cache-sets = <256>;
1819			next-level-cache = <&L2_DENVER>;
1820			reg = <0x001>;
1821		};
1822
1823		ca57_0: cpu@2 {
1824			compatible = "arm,cortex-a57";
1825			device_type = "cpu";
1826			i-cache-size = <0xC000>;
1827			i-cache-line-size = <64>;
1828			i-cache-sets = <256>;
1829			d-cache-size = <0x8000>;
1830			d-cache-line-size = <64>;
1831			d-cache-sets = <256>;
1832			next-level-cache = <&L2_A57>;
1833			reg = <0x100>;
1834		};
1835
1836		ca57_1: cpu@3 {
1837			compatible = "arm,cortex-a57";
1838			device_type = "cpu";
1839			i-cache-size = <0xC000>;
1840			i-cache-line-size = <64>;
1841			i-cache-sets = <256>;
1842			d-cache-size = <0x8000>;
1843			d-cache-line-size = <64>;
1844			d-cache-sets = <256>;
1845			next-level-cache = <&L2_A57>;
1846			reg = <0x101>;
1847		};
1848
1849		ca57_2: cpu@4 {
1850			compatible = "arm,cortex-a57";
1851			device_type = "cpu";
1852			i-cache-size = <0xC000>;
1853			i-cache-line-size = <64>;
1854			i-cache-sets = <256>;
1855			d-cache-size = <0x8000>;
1856			d-cache-line-size = <64>;
1857			d-cache-sets = <256>;
1858			next-level-cache = <&L2_A57>;
1859			reg = <0x102>;
1860		};
1861
1862		ca57_3: cpu@5 {
1863			compatible = "arm,cortex-a57";
1864			device_type = "cpu";
1865			i-cache-size = <0xC000>;
1866			i-cache-line-size = <64>;
1867			i-cache-sets = <256>;
1868			d-cache-size = <0x8000>;
1869			d-cache-line-size = <64>;
1870			d-cache-sets = <256>;
1871			next-level-cache = <&L2_A57>;
1872			reg = <0x103>;
1873		};
1874
1875		L2_DENVER: l2-cache0 {
1876			compatible = "cache";
1877			cache-unified;
1878			cache-level = <2>;
1879			cache-size = <0x200000>;
1880			cache-line-size = <64>;
1881			cache-sets = <2048>;
1882		};
1883
1884		L2_A57: l2-cache1 {
1885			compatible = "cache";
1886			cache-unified;
1887			cache-level = <2>;
1888			cache-size = <0x200000>;
1889			cache-line-size = <64>;
1890			cache-sets = <2048>;
1891		};
1892	};
1893
1894	pmu_denver {
1895		compatible = "nvidia,denver-pmu", "arm,armv8-pmuv3";
1896		interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
1897			     <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>;
1898		interrupt-affinity = <&denver_0 &denver_1>;
1899	};
1900
1901	pmu_a57 {
1902		compatible = "arm,cortex-a57-pmu", "arm,armv8-pmuv3";
1903		interrupts = <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
1904			     <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
1905			     <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
1906			     <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
1907		interrupt-affinity = <&ca57_0 &ca57_1 &ca57_2 &ca57_3>;
1908	};
1909
1910	sound {
1911		status = "disabled";
1912
1913		clocks = <&bpmp TEGRA186_CLK_PLLA>,
1914			 <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
1915		clock-names = "pll_a", "plla_out0";
1916		assigned-clocks = <&bpmp TEGRA186_CLK_PLLA>,
1917				  <&bpmp TEGRA186_CLK_PLL_A_OUT0>,
1918				  <&bpmp TEGRA186_CLK_AUD_MCLK>;
1919		assigned-clock-parents = <0>,
1920					 <&bpmp TEGRA186_CLK_PLLA>,
1921					 <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
1922		/*
1923		 * PLLA supports dynamic ramp. Below initial rate is chosen
1924		 * for this to work and oscillate between base rates required
1925		 * for 8x and 11.025x sample rate streams.
1926		 */
1927		assigned-clock-rates = <258000000>;
1928
1929		iommus = <&smmu TEGRA186_SID_APE>;
1930	};
1931
1932	thermal-zones {
1933		a57 {
1934			polling-delay = <0>;
1935			polling-delay-passive = <1000>;
1936
1937			thermal-sensors =
1938				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_CPU>;
1939
1940			trips {
1941				critical {
1942					temperature = <101000>;
1943					hysteresis = <0>;
1944					type = "critical";
1945				};
1946			};
1947
1948			cooling-maps {
1949			};
1950		};
1951
1952		denver {
1953			polling-delay = <0>;
1954			polling-delay-passive = <1000>;
1955
1956			thermal-sensors =
1957				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AUX>;
1958
1959			trips {
1960				critical {
1961					temperature = <101000>;
1962					hysteresis = <0>;
1963					type = "critical";
1964				};
1965			};
1966
1967			cooling-maps {
1968			};
1969		};
1970
1971		gpu {
1972			polling-delay = <0>;
1973			polling-delay-passive = <1000>;
1974
1975			thermal-sensors =
1976				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_GPU>;
1977
1978			trips {
1979				critical {
1980					temperature = <101000>;
1981					hysteresis = <0>;
1982					type = "critical";
1983				};
1984			};
1985
1986			cooling-maps {
1987			};
1988		};
1989
1990		pll {
1991			polling-delay = <0>;
1992			polling-delay-passive = <1000>;
1993
1994			thermal-sensors =
1995				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_PLLX>;
1996
1997			trips {
1998				critical {
1999					temperature = <101000>;
2000					hysteresis = <0>;
2001					type = "critical";
2002				};
2003			};
2004
2005			cooling-maps {
2006			};
2007		};
2008
2009		always_on {
2010			polling-delay = <0>;
2011			polling-delay-passive = <1000>;
2012
2013			thermal-sensors =
2014				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AO>;
2015
2016			trips {
2017				critical {
2018					temperature = <101000>;
2019					hysteresis = <0>;
2020					type = "critical";
2021				};
2022			};
2023
2024			cooling-maps {
2025			};
2026		};
2027	};
2028
2029	timer {
2030		compatible = "arm,armv8-timer";
2031		interrupts = <GIC_PPI 13
2032				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2033			     <GIC_PPI 14
2034				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2035			     <GIC_PPI 11
2036				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2037			     <GIC_PPI 10
2038				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
2039		interrupt-parent = <&gic>;
2040		always-on;
2041	};
2042};
2043