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 {
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	};
359
360	mc: memory-controller@2c00000 {
361		compatible = "nvidia,tegra186-mc";
362		reg = <0x0 0x02c00000 0x0 0xb0000>;
363		interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
364		status = "disabled";
365
366		#interconnect-cells = <1>;
367		#address-cells = <2>;
368		#size-cells = <2>;
369
370		ranges = <0x0 0x02c00000 0x0 0x02c00000 0x0 0xb0000>;
371
372		/*
373		 * Memory clients have access to all 40 bits that the memory
374		 * controller can address.
375		 */
376		dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
377
378		emc: external-memory-controller@2c60000 {
379			compatible = "nvidia,tegra186-emc";
380			reg = <0x0 0x02c60000 0x0 0x50000>;
381			interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
382			clocks = <&bpmp TEGRA186_CLK_EMC>;
383			clock-names = "emc";
384
385			#interconnect-cells = <0>;
386
387			nvidia,bpmp = <&bpmp>;
388		};
389	};
390
391	uarta: serial@3100000 {
392		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
393		reg = <0x0 0x03100000 0x0 0x40>;
394		reg-shift = <2>;
395		interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
396		clocks = <&bpmp TEGRA186_CLK_UARTA>;
397		clock-names = "serial";
398		resets = <&bpmp TEGRA186_RESET_UARTA>;
399		reset-names = "serial";
400		status = "disabled";
401	};
402
403	uartb: serial@3110000 {
404		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
405		reg = <0x0 0x03110000 0x0 0x40>;
406		reg-shift = <2>;
407		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
408		clocks = <&bpmp TEGRA186_CLK_UARTB>;
409		clock-names = "serial";
410		resets = <&bpmp TEGRA186_RESET_UARTB>;
411		reset-names = "serial";
412		status = "disabled";
413	};
414
415	uartd: serial@3130000 {
416		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
417		reg = <0x0 0x03130000 0x0 0x40>;
418		reg-shift = <2>;
419		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
420		clocks = <&bpmp TEGRA186_CLK_UARTD>;
421		clock-names = "serial";
422		resets = <&bpmp TEGRA186_RESET_UARTD>;
423		reset-names = "serial";
424		status = "disabled";
425	};
426
427	uarte: serial@3140000 {
428		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
429		reg = <0x0 0x03140000 0x0 0x40>;
430		reg-shift = <2>;
431		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
432		clocks = <&bpmp TEGRA186_CLK_UARTE>;
433		clock-names = "serial";
434		resets = <&bpmp TEGRA186_RESET_UARTE>;
435		reset-names = "serial";
436		status = "disabled";
437	};
438
439	uartf: serial@3150000 {
440		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
441		reg = <0x0 0x03150000 0x0 0x40>;
442		reg-shift = <2>;
443		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
444		clocks = <&bpmp TEGRA186_CLK_UARTF>;
445		clock-names = "serial";
446		resets = <&bpmp TEGRA186_RESET_UARTF>;
447		reset-names = "serial";
448		status = "disabled";
449	};
450
451	gen1_i2c: i2c@3160000 {
452		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
453		reg = <0x0 0x03160000 0x0 0x10000>;
454		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
455		#address-cells = <1>;
456		#size-cells = <0>;
457		clocks = <&bpmp TEGRA186_CLK_I2C1>;
458		clock-names = "div-clk";
459		resets = <&bpmp TEGRA186_RESET_I2C1>;
460		reset-names = "i2c";
461		status = "disabled";
462	};
463
464	cam_i2c: i2c@3180000 {
465		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
466		reg = <0x0 0x03180000 0x0 0x10000>;
467		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
468		#address-cells = <1>;
469		#size-cells = <0>;
470		clocks = <&bpmp TEGRA186_CLK_I2C3>;
471		clock-names = "div-clk";
472		resets = <&bpmp TEGRA186_RESET_I2C3>;
473		reset-names = "i2c";
474		status = "disabled";
475	};
476
477	/* shares pads with dpaux1 */
478	dp_aux_ch1_i2c: i2c@3190000 {
479		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
480		reg = <0x0 0x03190000 0x0 0x10000>;
481		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
482		#address-cells = <1>;
483		#size-cells = <0>;
484		clocks = <&bpmp TEGRA186_CLK_I2C4>;
485		clock-names = "div-clk";
486		resets = <&bpmp TEGRA186_RESET_I2C4>;
487		reset-names = "i2c";
488		pinctrl-names = "default", "idle";
489		pinctrl-0 = <&state_dpaux1_i2c>;
490		pinctrl-1 = <&state_dpaux1_off>;
491		status = "disabled";
492	};
493
494	/* controlled by BPMP, should not be enabled */
495	pwr_i2c: i2c@31a0000 {
496		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
497		reg = <0x0 0x031a0000 0x0 0x10000>;
498		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
499		#address-cells = <1>;
500		#size-cells = <0>;
501		clocks = <&bpmp TEGRA186_CLK_I2C5>;
502		clock-names = "div-clk";
503		resets = <&bpmp TEGRA186_RESET_I2C5>;
504		reset-names = "i2c";
505		status = "disabled";
506	};
507
508	/* shares pads with dpaux0 */
509	dp_aux_ch0_i2c: i2c@31b0000 {
510		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
511		reg = <0x0 0x031b0000 0x0 0x10000>;
512		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
513		#address-cells = <1>;
514		#size-cells = <0>;
515		clocks = <&bpmp TEGRA186_CLK_I2C6>;
516		clock-names = "div-clk";
517		resets = <&bpmp TEGRA186_RESET_I2C6>;
518		reset-names = "i2c";
519		pinctrl-names = "default", "idle";
520		pinctrl-0 = <&state_dpaux_i2c>;
521		pinctrl-1 = <&state_dpaux_off>;
522		status = "disabled";
523	};
524
525	gen7_i2c: i2c@31c0000 {
526		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
527		reg = <0x0 0x031c0000 0x0 0x10000>;
528		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
529		#address-cells = <1>;
530		#size-cells = <0>;
531		clocks = <&bpmp TEGRA186_CLK_I2C7>;
532		clock-names = "div-clk";
533		resets = <&bpmp TEGRA186_RESET_I2C7>;
534		reset-names = "i2c";
535		status = "disabled";
536	};
537
538	gen9_i2c: i2c@31e0000 {
539		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
540		reg = <0x0 0x031e0000 0x0 0x10000>;
541		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
542		#address-cells = <1>;
543		#size-cells = <0>;
544		clocks = <&bpmp TEGRA186_CLK_I2C9>;
545		clock-names = "div-clk";
546		resets = <&bpmp TEGRA186_RESET_I2C9>;
547		reset-names = "i2c";
548		status = "disabled";
549	};
550
551	sdmmc1: mmc@3400000 {
552		compatible = "nvidia,tegra186-sdhci";
553		reg = <0x0 0x03400000 0x0 0x10000>;
554		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
555		clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
556			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
557		clock-names = "sdhci", "tmclk";
558		resets = <&bpmp TEGRA186_RESET_SDMMC1>;
559		reset-names = "sdhci";
560		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRA &emc>,
561				<&mc TEGRA186_MEMORY_CLIENT_SDMMCWA &emc>;
562		interconnect-names = "dma-mem", "write";
563		iommus = <&smmu TEGRA186_SID_SDMMC1>;
564		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
565		pinctrl-0 = <&sdmmc1_3v3>;
566		pinctrl-1 = <&sdmmc1_1v8>;
567		nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
568		nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
569		nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
570		nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
571		nvidia,pad-autocal-pull-up-offset-sdr104 = <0x03>;
572		nvidia,pad-autocal-pull-down-offset-sdr104 = <0x05>;
573		nvidia,default-tap = <0x5>;
574		nvidia,default-trim = <0xb>;
575		assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
576				  <&bpmp TEGRA186_CLK_PLLP_OUT0>;
577		assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLP_OUT0>;
578		status = "disabled";
579	};
580
581	sdmmc2: mmc@3420000 {
582		compatible = "nvidia,tegra186-sdhci";
583		reg = <0x0 0x03420000 0x0 0x10000>;
584		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
585		clocks = <&bpmp TEGRA186_CLK_SDMMC2>,
586			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
587		clock-names = "sdhci", "tmclk";
588		resets = <&bpmp TEGRA186_RESET_SDMMC2>;
589		reset-names = "sdhci";
590		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRAA &emc>,
591				<&mc TEGRA186_MEMORY_CLIENT_SDMMCWAA &emc>;
592		interconnect-names = "dma-mem", "write";
593		iommus = <&smmu TEGRA186_SID_SDMMC2>;
594		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
595		pinctrl-0 = <&sdmmc2_3v3>;
596		pinctrl-1 = <&sdmmc2_1v8>;
597		nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
598		nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
599		nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
600		nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
601		nvidia,default-tap = <0x5>;
602		nvidia,default-trim = <0xb>;
603		status = "disabled";
604	};
605
606	sdmmc3: mmc@3440000 {
607		compatible = "nvidia,tegra186-sdhci";
608		reg = <0x0 0x03440000 0x0 0x10000>;
609		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
610		clocks = <&bpmp TEGRA186_CLK_SDMMC3>,
611			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
612		clock-names = "sdhci", "tmclk";
613		resets = <&bpmp TEGRA186_RESET_SDMMC3>;
614		reset-names = "sdhci";
615		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCR &emc>,
616				<&mc TEGRA186_MEMORY_CLIENT_SDMMCW &emc>;
617		interconnect-names = "dma-mem", "write";
618		iommus = <&smmu TEGRA186_SID_SDMMC3>;
619		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
620		pinctrl-0 = <&sdmmc3_3v3>;
621		pinctrl-1 = <&sdmmc3_1v8>;
622		nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
623		nvidia,pad-autocal-pull-down-offset-1v8 = <0x7a>;
624		nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
625		nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
626		nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
627		nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
628		nvidia,default-tap = <0x5>;
629		nvidia,default-trim = <0xb>;
630		status = "disabled";
631	};
632
633	sdmmc4: mmc@3460000 {
634		compatible = "nvidia,tegra186-sdhci";
635		reg = <0x0 0x03460000 0x0 0x10000>;
636		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
637		clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
638			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
639		clock-names = "sdhci", "tmclk";
640		assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
641				  <&bpmp TEGRA186_CLK_PLLC4_VCO>;
642		assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>;
643		resets = <&bpmp TEGRA186_RESET_SDMMC4>;
644		reset-names = "sdhci";
645		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRAB &emc>,
646				<&mc TEGRA186_MEMORY_CLIENT_SDMMCWAB &emc>;
647		interconnect-names = "dma-mem", "write";
648		iommus = <&smmu TEGRA186_SID_SDMMC4>;
649		nvidia,pad-autocal-pull-up-offset-hs400 = <0x05>;
650		nvidia,pad-autocal-pull-down-offset-hs400 = <0x05>;
651		nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>;
652		nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x0a>;
653		nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x0a>;
654		nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x0a>;
655		nvidia,default-tap = <0x9>;
656		nvidia,default-trim = <0x5>;
657		nvidia,dqs-trim = <63>;
658		mmc-hs400-1_8v;
659		supports-cqe;
660		status = "disabled";
661	};
662
663	hda@3510000 {
664		compatible = "nvidia,tegra186-hda", "nvidia,tegra30-hda";
665		reg = <0x0 0x03510000 0x0 0x10000>;
666		interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
667		clocks = <&bpmp TEGRA186_CLK_HDA>,
668			 <&bpmp TEGRA186_CLK_HDA2HDMICODEC>,
669			 <&bpmp TEGRA186_CLK_HDA2CODEC_2X>;
670		clock-names = "hda", "hda2hdmi", "hda2codec_2x";
671		resets = <&bpmp TEGRA186_RESET_HDA>,
672			 <&bpmp TEGRA186_RESET_HDA2HDMICODEC>,
673			 <&bpmp TEGRA186_RESET_HDA2CODEC_2X>;
674		reset-names = "hda", "hda2hdmi", "hda2codec_2x";
675		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
676		interconnects = <&mc TEGRA186_MEMORY_CLIENT_HDAR &emc>,
677				<&mc TEGRA186_MEMORY_CLIENT_HDAW &emc>;
678		interconnect-names = "dma-mem", "write";
679		iommus = <&smmu TEGRA186_SID_HDA>;
680		status = "disabled";
681	};
682
683	padctl: padctl@3520000 {
684		compatible = "nvidia,tegra186-xusb-padctl";
685		reg = <0x0 0x03520000 0x0 0x1000>,
686		      <0x0 0x03540000 0x0 0x1000>;
687		reg-names = "padctl", "ao";
688		interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
689
690		resets = <&bpmp TEGRA186_RESET_XUSB_PADCTL>;
691		reset-names = "padctl";
692
693		status = "disabled";
694
695		pads {
696			usb2 {
697				clocks = <&bpmp TEGRA186_CLK_USB2_TRK>;
698				clock-names = "trk";
699				status = "disabled";
700
701				lanes {
702					usb2-0 {
703						status = "disabled";
704						#phy-cells = <0>;
705					};
706
707					usb2-1 {
708						status = "disabled";
709						#phy-cells = <0>;
710					};
711
712					usb2-2 {
713						status = "disabled";
714						#phy-cells = <0>;
715					};
716				};
717			};
718
719			hsic {
720				clocks = <&bpmp TEGRA186_CLK_HSIC_TRK>;
721				clock-names = "trk";
722				status = "disabled";
723
724				lanes {
725					hsic-0 {
726						status = "disabled";
727						#phy-cells = <0>;
728					};
729				};
730			};
731
732			usb3 {
733				status = "disabled";
734
735				lanes {
736					usb3-0 {
737						status = "disabled";
738						#phy-cells = <0>;
739					};
740
741					usb3-1 {
742						status = "disabled";
743						#phy-cells = <0>;
744					};
745
746					usb3-2 {
747						status = "disabled";
748						#phy-cells = <0>;
749					};
750				};
751			};
752		};
753
754		ports {
755			usb2-0 {
756				status = "disabled";
757			};
758
759			usb2-1 {
760				status = "disabled";
761			};
762
763			usb2-2 {
764				status = "disabled";
765			};
766
767			hsic-0 {
768				status = "disabled";
769			};
770
771			usb3-0 {
772				status = "disabled";
773			};
774
775			usb3-1 {
776				status = "disabled";
777			};
778
779			usb3-2 {
780				status = "disabled";
781			};
782		};
783	};
784
785	usb@3530000 {
786		compatible = "nvidia,tegra186-xusb";
787		reg = <0x0 0x03530000 0x0 0x8000>,
788		      <0x0 0x03538000 0x0 0x1000>;
789		reg-names = "hcd", "fpci";
790		interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
791			     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
792		clocks = <&bpmp TEGRA186_CLK_XUSB_HOST>,
793			 <&bpmp TEGRA186_CLK_XUSB_FALCON>,
794			 <&bpmp TEGRA186_CLK_XUSB_SS>,
795			 <&bpmp TEGRA186_CLK_XUSB_CORE_SS>,
796			 <&bpmp TEGRA186_CLK_CLK_M>,
797			 <&bpmp TEGRA186_CLK_XUSB_FS>,
798			 <&bpmp TEGRA186_CLK_PLLU>,
799			 <&bpmp TEGRA186_CLK_CLK_M>,
800			 <&bpmp TEGRA186_CLK_PLLE>;
801		clock-names = "xusb_host", "xusb_falcon_src", "xusb_ss",
802			      "xusb_ss_src", "xusb_hs_src", "xusb_fs_src",
803			      "pll_u_480m", "clk_m", "pll_e";
804		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_XUSBC>,
805				<&bpmp TEGRA186_POWER_DOMAIN_XUSBA>;
806		power-domain-names = "xusb_host", "xusb_ss";
807		interconnects = <&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTR &emc>,
808				<&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTW &emc>;
809		interconnect-names = "dma-mem", "write";
810		iommus = <&smmu TEGRA186_SID_XUSB_HOST>;
811		#address-cells = <1>;
812		#size-cells = <0>;
813		status = "disabled";
814
815		nvidia,xusb-padctl = <&padctl>;
816	};
817
818	usb@3550000 {
819		compatible = "nvidia,tegra186-xudc";
820		reg = <0x0 0x03550000 0x0 0x8000>,
821		      <0x0 0x03558000 0x0 0x1000>;
822		reg-names = "base", "fpci";
823		interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
824		clocks = <&bpmp TEGRA186_CLK_XUSB_CORE_DEV>,
825			 <&bpmp TEGRA186_CLK_XUSB_SS>,
826			 <&bpmp TEGRA186_CLK_XUSB_CORE_SS>,
827			 <&bpmp TEGRA186_CLK_XUSB_FS>;
828		clock-names = "dev", "ss", "ss_src", "fs_src";
829		iommus = <&smmu TEGRA186_SID_XUSB_DEV>;
830		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_XUSBB>,
831				<&bpmp TEGRA186_POWER_DOMAIN_XUSBA>;
832		power-domain-names = "dev", "ss";
833		nvidia,xusb-padctl = <&padctl>;
834		status = "disabled";
835	};
836
837	fuse@3820000 {
838		compatible = "nvidia,tegra186-efuse";
839		reg = <0x0 0x03820000 0x0 0x10000>;
840		clocks = <&bpmp TEGRA186_CLK_FUSE>;
841		clock-names = "fuse";
842	};
843
844	gic: interrupt-controller@3881000 {
845		compatible = "arm,gic-400";
846		#interrupt-cells = <3>;
847		interrupt-controller;
848		reg = <0x0 0x03881000 0x0 0x1000>,
849		      <0x0 0x03882000 0x0 0x2000>,
850		      <0x0 0x03884000 0x0 0x2000>,
851		      <0x0 0x03886000 0x0 0x2000>;
852		interrupts = <GIC_PPI 9
853			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
854		interrupt-parent = <&gic>;
855	};
856
857	cec@3960000 {
858		compatible = "nvidia,tegra186-cec";
859		reg = <0x0 0x03960000 0x0 0x10000>;
860		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
861		clocks = <&bpmp TEGRA186_CLK_CEC>;
862		clock-names = "cec";
863		status = "disabled";
864	};
865
866	hsp_top0: hsp@3c00000 {
867		compatible = "nvidia,tegra186-hsp";
868		reg = <0x0 0x03c00000 0x0 0xa0000>;
869		interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
870		interrupt-names = "doorbell";
871		#mbox-cells = <2>;
872		status = "disabled";
873	};
874
875	gen2_i2c: i2c@c240000 {
876		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
877		reg = <0x0 0x0c240000 0x0 0x10000>;
878		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
879		#address-cells = <1>;
880		#size-cells = <0>;
881		clocks = <&bpmp TEGRA186_CLK_I2C2>;
882		clock-names = "div-clk";
883		resets = <&bpmp TEGRA186_RESET_I2C2>;
884		reset-names = "i2c";
885		status = "disabled";
886	};
887
888	gen8_i2c: i2c@c250000 {
889		compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
890		reg = <0x0 0x0c250000 0x0 0x10000>;
891		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
892		#address-cells = <1>;
893		#size-cells = <0>;
894		clocks = <&bpmp TEGRA186_CLK_I2C8>;
895		clock-names = "div-clk";
896		resets = <&bpmp TEGRA186_RESET_I2C8>;
897		reset-names = "i2c";
898		status = "disabled";
899	};
900
901	uartc: serial@c280000 {
902		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
903		reg = <0x0 0x0c280000 0x0 0x40>;
904		reg-shift = <2>;
905		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
906		clocks = <&bpmp TEGRA186_CLK_UARTC>;
907		clock-names = "serial";
908		resets = <&bpmp TEGRA186_RESET_UARTC>;
909		reset-names = "serial";
910		status = "disabled";
911	};
912
913	uartg: serial@c290000 {
914		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
915		reg = <0x0 0x0c290000 0x0 0x40>;
916		reg-shift = <2>;
917		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
918		clocks = <&bpmp TEGRA186_CLK_UARTG>;
919		clock-names = "serial";
920		resets = <&bpmp TEGRA186_RESET_UARTG>;
921		reset-names = "serial";
922		status = "disabled";
923	};
924
925	rtc: rtc@c2a0000 {
926		compatible = "nvidia,tegra186-rtc", "nvidia,tegra20-rtc";
927		reg = <0 0x0c2a0000 0 0x10000>;
928		interrupt-parent = <&pmc>;
929		interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
930		clocks = <&bpmp TEGRA186_CLK_CLK_32K>;
931		clock-names = "rtc";
932		status = "disabled";
933	};
934
935	gpio_aon: gpio@c2f0000 {
936		compatible = "nvidia,tegra186-gpio-aon";
937		reg-names = "security", "gpio";
938		reg = <0x0 0xc2f0000 0x0 0x1000>,
939		      <0x0 0xc2f1000 0x0 0x1000>;
940		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
941		gpio-controller;
942		#gpio-cells = <2>;
943		interrupt-controller;
944		#interrupt-cells = <2>;
945	};
946
947	pmc: pmc@c360000 {
948		compatible = "nvidia,tegra186-pmc";
949		reg = <0 0x0c360000 0 0x10000>,
950		      <0 0x0c370000 0 0x10000>,
951		      <0 0x0c380000 0 0x10000>,
952		      <0 0x0c390000 0 0x10000>;
953		reg-names = "pmc", "wake", "aotag", "scratch";
954
955		#interrupt-cells = <2>;
956		interrupt-controller;
957
958		sdmmc1_3v3: sdmmc1-3v3 {
959			pins = "sdmmc1-hv";
960			power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
961		};
962
963		sdmmc1_1v8: sdmmc1-1v8 {
964			pins = "sdmmc1-hv";
965			power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
966		};
967
968		sdmmc2_3v3: sdmmc2-3v3 {
969			pins = "sdmmc2-hv";
970			power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
971		};
972
973		sdmmc2_1v8: sdmmc2-1v8 {
974			pins = "sdmmc2-hv";
975			power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
976		};
977
978		sdmmc3_3v3: sdmmc3-3v3 {
979			pins = "sdmmc3-hv";
980			power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
981		};
982
983		sdmmc3_1v8: sdmmc3-1v8 {
984			pins = "sdmmc3-hv";
985			power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
986		};
987	};
988
989	ccplex@e000000 {
990		compatible = "nvidia,tegra186-ccplex-cluster";
991		reg = <0x0 0x0e000000 0x0 0x3fffff>;
992
993		nvidia,bpmp = <&bpmp>;
994	};
995
996	pcie@10003000 {
997		compatible = "nvidia,tegra186-pcie";
998		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>;
999		device_type = "pci";
1000		reg = <0x0 0x10003000 0x0 0x00000800>, /* PADS registers */
1001		      <0x0 0x10003800 0x0 0x00000800>, /* AFI registers */
1002		      <0x0 0x40000000 0x0 0x10000000>; /* configuration space */
1003		reg-names = "pads", "afi", "cs";
1004
1005		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
1006			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
1007		interrupt-names = "intr", "msi";
1008
1009		#interrupt-cells = <1>;
1010		interrupt-map-mask = <0 0 0 0>;
1011		interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1012
1013		bus-range = <0x00 0xff>;
1014		#address-cells = <3>;
1015		#size-cells = <2>;
1016
1017		ranges = <0x02000000 0 0x10000000 0x0 0x10000000 0 0x00001000>, /* port 0 configuration space */
1018			 <0x02000000 0 0x10001000 0x0 0x10001000 0 0x00001000>,/* port 1 configuration space */
1019			 <0x02000000 0 0x10004000 0x0 0x10004000 0 0x00001000>, /* port 2 configuration space */
1020			 <0x01000000 0 0x0        0x0 0x50000000 0 0x00010000>, /* downstream I/O (64 KiB) */
1021			 <0x02000000 0 0x50100000 0x0 0x50100000 0 0x07f00000>, /* non-prefetchable memory (127 MiB) */
1022			 <0x42000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */
1023
1024		clocks = <&bpmp TEGRA186_CLK_PCIE>,
1025			 <&bpmp TEGRA186_CLK_AFI>,
1026			 <&bpmp TEGRA186_CLK_PLLE>;
1027		clock-names = "pex", "afi", "pll_e";
1028
1029		resets = <&bpmp TEGRA186_RESET_PCIE>,
1030			 <&bpmp TEGRA186_RESET_AFI>,
1031			 <&bpmp TEGRA186_RESET_PCIEXCLK>;
1032		reset-names = "pex", "afi", "pcie_x";
1033
1034		interconnects = <&mc TEGRA186_MEMORY_CLIENT_AFIR &emc>,
1035				<&mc TEGRA186_MEMORY_CLIENT_AFIW &emc>;
1036		interconnect-names = "dma-mem", "write";
1037
1038		iommus = <&smmu TEGRA186_SID_AFI>;
1039		iommu-map = <0x0 &smmu TEGRA186_SID_AFI 0x1000>;
1040		iommu-map-mask = <0x0>;
1041
1042		status = "disabled";
1043
1044		pci@1,0 {
1045			device_type = "pci";
1046			assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>;
1047			reg = <0x000800 0 0 0 0>;
1048			status = "disabled";
1049
1050			#address-cells = <3>;
1051			#size-cells = <2>;
1052			ranges;
1053
1054			nvidia,num-lanes = <2>;
1055		};
1056
1057		pci@2,0 {
1058			device_type = "pci";
1059			assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>;
1060			reg = <0x001000 0 0 0 0>;
1061			status = "disabled";
1062
1063			#address-cells = <3>;
1064			#size-cells = <2>;
1065			ranges;
1066
1067			nvidia,num-lanes = <1>;
1068		};
1069
1070		pci@3,0 {
1071			device_type = "pci";
1072			assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>;
1073			reg = <0x001800 0 0 0 0>;
1074			status = "disabled";
1075
1076			#address-cells = <3>;
1077			#size-cells = <2>;
1078			ranges;
1079
1080			nvidia,num-lanes = <1>;
1081		};
1082	};
1083
1084	smmu: iommu@12000000 {
1085		compatible = "arm,mmu-500";
1086		reg = <0 0x12000000 0 0x800000>;
1087		interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1088			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1089			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1090			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1091			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1092			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1093			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1094			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1095			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1096			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1097			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1098			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1099			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1100			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1101			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1102			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1103			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1104			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1105			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1106			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1107			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1108			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1109			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1110			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1111			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1112			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1113			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1114			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1115			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1116			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1117			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1118			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1119			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1120			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1121			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1122			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1123			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1124			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1125			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1126			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1127			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1128			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1129			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1130			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1131			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1132			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1133			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1134			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1135			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1136			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1137			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1138			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1139			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1140			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1141			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1142			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1143			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1144			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1145			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1146			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1147			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1148			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1149			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1150			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1151			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
1152		stream-match-mask = <0x7f80>;
1153		#global-interrupts = <1>;
1154		#iommu-cells = <1>;
1155	};
1156
1157	host1x@13e00000 {
1158		compatible = "nvidia,tegra186-host1x";
1159		reg = <0x0 0x13e00000 0x0 0x10000>,
1160		      <0x0 0x13e10000 0x0 0x10000>;
1161		reg-names = "hypervisor", "vm";
1162		interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
1163		             <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
1164		interrupt-names = "syncpt", "host1x";
1165		clocks = <&bpmp TEGRA186_CLK_HOST1X>;
1166		clock-names = "host1x";
1167		resets = <&bpmp TEGRA186_RESET_HOST1X>;
1168		reset-names = "host1x";
1169
1170		#address-cells = <1>;
1171		#size-cells = <1>;
1172
1173		ranges = <0x15000000 0x0 0x15000000 0x01000000>;
1174
1175		interconnects = <&mc TEGRA186_MEMORY_CLIENT_HOST1XDMAR &emc>;
1176		interconnect-names = "dma-mem";
1177
1178		iommus = <&smmu TEGRA186_SID_HOST1X>;
1179
1180		dpaux1: dpaux@15040000 {
1181			compatible = "nvidia,tegra186-dpaux";
1182			reg = <0x15040000 0x10000>;
1183			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
1184			clocks = <&bpmp TEGRA186_CLK_DPAUX1>,
1185				 <&bpmp TEGRA186_CLK_PLLDP>;
1186			clock-names = "dpaux", "parent";
1187			resets = <&bpmp TEGRA186_RESET_DPAUX1>;
1188			reset-names = "dpaux";
1189			status = "disabled";
1190
1191			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1192
1193			state_dpaux1_aux: pinmux-aux {
1194				groups = "dpaux-io";
1195				function = "aux";
1196			};
1197
1198			state_dpaux1_i2c: pinmux-i2c {
1199				groups = "dpaux-io";
1200				function = "i2c";
1201			};
1202
1203			state_dpaux1_off: pinmux-off {
1204				groups = "dpaux-io";
1205				function = "off";
1206			};
1207
1208			i2c-bus {
1209				#address-cells = <1>;
1210				#size-cells = <0>;
1211			};
1212		};
1213
1214		display-hub@15200000 {
1215			compatible = "nvidia,tegra186-display";
1216			reg = <0x15200000 0x00040000>;
1217			resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_MISC>,
1218				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP0>,
1219				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP1>,
1220				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP2>,
1221				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP3>,
1222				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP4>,
1223				 <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP5>;
1224			reset-names = "misc", "wgrp0", "wgrp1", "wgrp2",
1225				      "wgrp3", "wgrp4", "wgrp5";
1226			clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_DISP>,
1227				 <&bpmp TEGRA186_CLK_NVDISPLAY_DSC>,
1228				 <&bpmp TEGRA186_CLK_NVDISPLAYHUB>;
1229			clock-names = "disp", "dsc", "hub";
1230			status = "disabled";
1231
1232			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1233
1234			#address-cells = <1>;
1235			#size-cells = <1>;
1236
1237			ranges = <0x15200000 0x15200000 0x40000>;
1238
1239			display@15200000 {
1240				compatible = "nvidia,tegra186-dc";
1241				reg = <0x15200000 0x10000>;
1242				interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
1243				clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P0>;
1244				clock-names = "dc";
1245				resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD0>;
1246				reset-names = "dc";
1247
1248				power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1249				interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
1250						<&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
1251				interconnect-names = "dma-mem", "read-1";
1252				iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
1253
1254				nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
1255				nvidia,head = <0>;
1256			};
1257
1258			display@15210000 {
1259				compatible = "nvidia,tegra186-dc";
1260				reg = <0x15210000 0x10000>;
1261				interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
1262				clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P1>;
1263				clock-names = "dc";
1264				resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD1>;
1265				reset-names = "dc";
1266
1267				power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISPB>;
1268				interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
1269						<&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
1270				interconnect-names = "dma-mem", "read-1";
1271				iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
1272
1273				nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
1274				nvidia,head = <1>;
1275			};
1276
1277			display@15220000 {
1278				compatible = "nvidia,tegra186-dc";
1279				reg = <0x15220000 0x10000>;
1280				interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
1281				clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P2>;
1282				clock-names = "dc";
1283				resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD2>;
1284				reset-names = "dc";
1285
1286				power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISPC>;
1287				interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR &emc>,
1288						<&mc TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 &emc>;
1289				interconnect-names = "dma-mem", "read-1";
1290				iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
1291
1292				nvidia,outputs = <&sor0 &sor1>;
1293				nvidia,head = <2>;
1294			};
1295		};
1296
1297		dsia: dsi@15300000 {
1298			compatible = "nvidia,tegra186-dsi";
1299			reg = <0x15300000 0x10000>;
1300			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
1301			clocks = <&bpmp TEGRA186_CLK_DSI>,
1302				 <&bpmp TEGRA186_CLK_DSIA_LP>,
1303				 <&bpmp TEGRA186_CLK_PLLD>;
1304			clock-names = "dsi", "lp", "parent";
1305			resets = <&bpmp TEGRA186_RESET_DSI>;
1306			reset-names = "dsi";
1307			status = "disabled";
1308
1309			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1310		};
1311
1312		vic@15340000 {
1313			compatible = "nvidia,tegra186-vic";
1314			reg = <0x15340000 0x40000>;
1315			interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
1316			clocks = <&bpmp TEGRA186_CLK_VIC>;
1317			clock-names = "vic";
1318			resets = <&bpmp TEGRA186_RESET_VIC>;
1319			reset-names = "vic";
1320
1321			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_VIC>;
1322			interconnects = <&mc TEGRA186_MEMORY_CLIENT_VICSRD &emc>,
1323					<&mc TEGRA186_MEMORY_CLIENT_VICSWR &emc>;
1324			interconnect-names = "dma-mem", "write";
1325			iommus = <&smmu TEGRA186_SID_VIC>;
1326		};
1327
1328		dsib: dsi@15400000 {
1329			compatible = "nvidia,tegra186-dsi";
1330			reg = <0x15400000 0x10000>;
1331			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
1332			clocks = <&bpmp TEGRA186_CLK_DSIB>,
1333				 <&bpmp TEGRA186_CLK_DSIB_LP>,
1334				 <&bpmp TEGRA186_CLK_PLLD>;
1335			clock-names = "dsi", "lp", "parent";
1336			resets = <&bpmp TEGRA186_RESET_DSIB>;
1337			reset-names = "dsi";
1338			status = "disabled";
1339
1340			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1341		};
1342
1343		sor0: sor@15540000 {
1344			compatible = "nvidia,tegra186-sor";
1345			reg = <0x15540000 0x10000>;
1346			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1347			clocks = <&bpmp TEGRA186_CLK_SOR0>,
1348				 <&bpmp TEGRA186_CLK_SOR0_OUT>,
1349				 <&bpmp TEGRA186_CLK_PLLD2>,
1350				 <&bpmp TEGRA186_CLK_PLLDP>,
1351				 <&bpmp TEGRA186_CLK_SOR_SAFE>,
1352				 <&bpmp TEGRA186_CLK_SOR0_PAD_CLKOUT>;
1353			clock-names = "sor", "out", "parent", "dp", "safe",
1354				      "pad";
1355			resets = <&bpmp TEGRA186_RESET_SOR0>;
1356			reset-names = "sor";
1357			pinctrl-0 = <&state_dpaux_aux>;
1358			pinctrl-1 = <&state_dpaux_i2c>;
1359			pinctrl-2 = <&state_dpaux_off>;
1360			pinctrl-names = "aux", "i2c", "off";
1361			status = "disabled";
1362
1363			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1364			nvidia,interface = <0>;
1365		};
1366
1367		sor1: sor@15580000 {
1368			compatible = "nvidia,tegra186-sor";
1369			reg = <0x15580000 0x10000>;
1370			interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1371			clocks = <&bpmp TEGRA186_CLK_SOR1>,
1372				 <&bpmp TEGRA186_CLK_SOR1_OUT>,
1373				 <&bpmp TEGRA186_CLK_PLLD3>,
1374				 <&bpmp TEGRA186_CLK_PLLDP>,
1375				 <&bpmp TEGRA186_CLK_SOR_SAFE>,
1376				 <&bpmp TEGRA186_CLK_SOR1_PAD_CLKOUT>;
1377			clock-names = "sor", "out", "parent", "dp", "safe",
1378				      "pad";
1379			resets = <&bpmp TEGRA186_RESET_SOR1>;
1380			reset-names = "sor";
1381			pinctrl-0 = <&state_dpaux1_aux>;
1382			pinctrl-1 = <&state_dpaux1_i2c>;
1383			pinctrl-2 = <&state_dpaux1_off>;
1384			pinctrl-names = "aux", "i2c", "off";
1385			status = "disabled";
1386
1387			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1388			nvidia,interface = <1>;
1389		};
1390
1391		dpaux: dpaux@155c0000 {
1392			compatible = "nvidia,tegra186-dpaux";
1393			reg = <0x155c0000 0x10000>;
1394			interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
1395			clocks = <&bpmp TEGRA186_CLK_DPAUX>,
1396				 <&bpmp TEGRA186_CLK_PLLDP>;
1397			clock-names = "dpaux", "parent";
1398			resets = <&bpmp TEGRA186_RESET_DPAUX>;
1399			reset-names = "dpaux";
1400			status = "disabled";
1401
1402			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1403
1404			state_dpaux_aux: pinmux-aux {
1405				groups = "dpaux-io";
1406				function = "aux";
1407			};
1408
1409			state_dpaux_i2c: pinmux-i2c {
1410				groups = "dpaux-io";
1411				function = "i2c";
1412			};
1413
1414			state_dpaux_off: pinmux-off {
1415				groups = "dpaux-io";
1416				function = "off";
1417			};
1418
1419			i2c-bus {
1420				#address-cells = <1>;
1421				#size-cells = <0>;
1422			};
1423		};
1424
1425		padctl@15880000 {
1426			compatible = "nvidia,tegra186-dsi-padctl";
1427			reg = <0x15880000 0x10000>;
1428			resets = <&bpmp TEGRA186_RESET_DSI>;
1429			reset-names = "dsi";
1430			status = "disabled";
1431		};
1432
1433		dsic: dsi@15900000 {
1434			compatible = "nvidia,tegra186-dsi";
1435			reg = <0x15900000 0x10000>;
1436			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
1437			clocks = <&bpmp TEGRA186_CLK_DSIC>,
1438				 <&bpmp TEGRA186_CLK_DSIC_LP>,
1439				 <&bpmp TEGRA186_CLK_PLLD>;
1440			clock-names = "dsi", "lp", "parent";
1441			resets = <&bpmp TEGRA186_RESET_DSIC>;
1442			reset-names = "dsi";
1443			status = "disabled";
1444
1445			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1446		};
1447
1448		dsid: dsi@15940000 {
1449			compatible = "nvidia,tegra186-dsi";
1450			reg = <0x15940000 0x10000>;
1451			interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
1452			clocks = <&bpmp TEGRA186_CLK_DSID>,
1453				 <&bpmp TEGRA186_CLK_DSID_LP>,
1454				 <&bpmp TEGRA186_CLK_PLLD>;
1455			clock-names = "dsi", "lp", "parent";
1456			resets = <&bpmp TEGRA186_RESET_DSID>;
1457			reset-names = "dsi";
1458			status = "disabled";
1459
1460			power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1461		};
1462	};
1463
1464	gpu@17000000 {
1465		compatible = "nvidia,gp10b";
1466		reg = <0x0 0x17000000 0x0 0x1000000>,
1467		      <0x0 0x18000000 0x0 0x1000000>;
1468		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
1469			     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
1470		interrupt-names = "stall", "nonstall";
1471
1472		clocks = <&bpmp TEGRA186_CLK_GPCCLK>,
1473			 <&bpmp TEGRA186_CLK_GPU>;
1474		clock-names = "gpu", "pwr";
1475		resets = <&bpmp TEGRA186_RESET_GPU>;
1476		reset-names = "gpu";
1477		status = "disabled";
1478
1479		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
1480		interconnects = <&mc TEGRA186_MEMORY_CLIENT_GPUSRD &emc>,
1481				<&mc TEGRA186_MEMORY_CLIENT_GPUSWR &emc>,
1482				<&mc TEGRA186_MEMORY_CLIENT_GPUSRD2 &emc>,
1483				<&mc TEGRA186_MEMORY_CLIENT_GPUSWR2 &emc>;
1484		interconnect-names = "dma-mem", "write-0", "read-1", "write-1";
1485	};
1486
1487	sram@30000000 {
1488		compatible = "nvidia,tegra186-sysram", "mmio-sram";
1489		reg = <0x0 0x30000000 0x0 0x50000>;
1490		#address-cells = <1>;
1491		#size-cells = <1>;
1492		ranges = <0x0 0x0 0x30000000 0x50000>;
1493
1494		cpu_bpmp_tx: sram@4e000 {
1495			reg = <0x4e000 0x1000>;
1496			label = "cpu-bpmp-tx";
1497			pool;
1498		};
1499
1500		cpu_bpmp_rx: sram@4f000 {
1501			reg = <0x4f000 0x1000>;
1502			label = "cpu-bpmp-rx";
1503			pool;
1504		};
1505	};
1506
1507	sata@3507000 {
1508		compatible = "nvidia,tegra186-ahci";
1509		reg = <0x0 0x03507000 0x0 0x00002000>, /* AHCI */
1510		      <0x0 0x03500000 0x0 0x00007000>, /* SATA */
1511		      <0x0 0x03A90000 0x0 0x00010000>; /* SATA AUX */
1512		interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
1513
1514		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_SAX>;
1515		interconnects = <&mc TEGRA186_MEMORY_CLIENT_SATAR &emc>,
1516				<&mc TEGRA186_MEMORY_CLIENT_SATAW &emc>;
1517		interconnect-names = "dma-mem", "write";
1518		iommus = <&smmu TEGRA186_SID_SATA>;
1519
1520		clocks = <&bpmp TEGRA186_CLK_SATA>,
1521			 <&bpmp TEGRA186_CLK_SATA_OOB>;
1522		clock-names = "sata", "sata-oob";
1523		assigned-clocks = <&bpmp TEGRA186_CLK_SATA>,
1524				  <&bpmp TEGRA186_CLK_SATA_OOB>;
1525		assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLP_OUT0>,
1526					 <&bpmp TEGRA186_CLK_PLLP>;
1527		assigned-clock-rates = <102000000>,
1528				       <204000000>;
1529		resets = <&bpmp TEGRA186_RESET_SATA>,
1530			<&bpmp TEGRA186_RESET_SATACOLD>;
1531		reset-names = "sata", "sata-cold";
1532		status = "disabled";
1533	};
1534
1535	bpmp: bpmp {
1536		compatible = "nvidia,tegra186-bpmp";
1537		interconnects = <&mc TEGRA186_MEMORY_CLIENT_BPMPR &emc>,
1538				<&mc TEGRA186_MEMORY_CLIENT_BPMPW &emc>,
1539				<&mc TEGRA186_MEMORY_CLIENT_BPMPDMAR &emc>,
1540				<&mc TEGRA186_MEMORY_CLIENT_BPMPDMAW &emc>;
1541		interconnect-names = "read", "write", "dma-mem", "dma-write";
1542		iommus = <&smmu TEGRA186_SID_BPMP>;
1543		mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB
1544				    TEGRA_HSP_DB_MASTER_BPMP>;
1545		shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
1546		#clock-cells = <1>;
1547		#reset-cells = <1>;
1548		#power-domain-cells = <1>;
1549
1550		bpmp_i2c: i2c {
1551			compatible = "nvidia,tegra186-bpmp-i2c";
1552			nvidia,bpmp-bus-id = <5>;
1553			#address-cells = <1>;
1554			#size-cells = <0>;
1555			status = "disabled";
1556		};
1557
1558		bpmp_thermal: thermal {
1559			compatible = "nvidia,tegra186-bpmp-thermal";
1560			#thermal-sensor-cells = <1>;
1561		};
1562	};
1563
1564	cpus {
1565		#address-cells = <1>;
1566		#size-cells = <0>;
1567
1568		denver_0: cpu@0 {
1569			compatible = "nvidia,tegra186-denver";
1570			device_type = "cpu";
1571			i-cache-size = <0x20000>;
1572			i-cache-line-size = <64>;
1573			i-cache-sets = <512>;
1574			d-cache-size = <0x10000>;
1575			d-cache-line-size = <64>;
1576			d-cache-sets = <256>;
1577			next-level-cache = <&L2_DENVER>;
1578			reg = <0x000>;
1579		};
1580
1581		denver_1: cpu@1 {
1582			compatible = "nvidia,tegra186-denver";
1583			device_type = "cpu";
1584			i-cache-size = <0x20000>;
1585			i-cache-line-size = <64>;
1586			i-cache-sets = <512>;
1587			d-cache-size = <0x10000>;
1588			d-cache-line-size = <64>;
1589			d-cache-sets = <256>;
1590			next-level-cache = <&L2_DENVER>;
1591			reg = <0x001>;
1592		};
1593
1594		ca57_0: cpu@2 {
1595			compatible = "arm,cortex-a57";
1596			device_type = "cpu";
1597			i-cache-size = <0xC000>;
1598			i-cache-line-size = <64>;
1599			i-cache-sets = <256>;
1600			d-cache-size = <0x8000>;
1601			d-cache-line-size = <64>;
1602			d-cache-sets = <256>;
1603			next-level-cache = <&L2_A57>;
1604			reg = <0x100>;
1605		};
1606
1607		ca57_1: cpu@3 {
1608			compatible = "arm,cortex-a57";
1609			device_type = "cpu";
1610			i-cache-size = <0xC000>;
1611			i-cache-line-size = <64>;
1612			i-cache-sets = <256>;
1613			d-cache-size = <0x8000>;
1614			d-cache-line-size = <64>;
1615			d-cache-sets = <256>;
1616			next-level-cache = <&L2_A57>;
1617			reg = <0x101>;
1618		};
1619
1620		ca57_2: cpu@4 {
1621			compatible = "arm,cortex-a57";
1622			device_type = "cpu";
1623			i-cache-size = <0xC000>;
1624			i-cache-line-size = <64>;
1625			i-cache-sets = <256>;
1626			d-cache-size = <0x8000>;
1627			d-cache-line-size = <64>;
1628			d-cache-sets = <256>;
1629			next-level-cache = <&L2_A57>;
1630			reg = <0x102>;
1631		};
1632
1633		ca57_3: cpu@5 {
1634			compatible = "arm,cortex-a57";
1635			device_type = "cpu";
1636			i-cache-size = <0xC000>;
1637			i-cache-line-size = <64>;
1638			i-cache-sets = <256>;
1639			d-cache-size = <0x8000>;
1640			d-cache-line-size = <64>;
1641			d-cache-sets = <256>;
1642			next-level-cache = <&L2_A57>;
1643			reg = <0x103>;
1644		};
1645
1646		L2_DENVER: l2-cache0 {
1647			compatible = "cache";
1648			cache-unified;
1649			cache-level = <2>;
1650			cache-size = <0x200000>;
1651			cache-line-size = <64>;
1652			cache-sets = <2048>;
1653		};
1654
1655		L2_A57: l2-cache1 {
1656			compatible = "cache";
1657			cache-unified;
1658			cache-level = <2>;
1659			cache-size = <0x200000>;
1660			cache-line-size = <64>;
1661			cache-sets = <2048>;
1662		};
1663	};
1664
1665	pmu_denver {
1666		compatible = "nvidia,denver-pmu", "arm,armv8-pmuv3";
1667		interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
1668			     <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>;
1669		interrupt-affinity = <&denver_0 &denver_1>;
1670	};
1671
1672	pmu_a57 {
1673		compatible = "arm,cortex-a57-pmu", "arm,armv8-pmuv3";
1674		interrupts = <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
1675			     <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
1676			     <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
1677			     <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
1678		interrupt-affinity = <&ca57_0 &ca57_1 &ca57_2 &ca57_3>;
1679	};
1680
1681	sound {
1682		status = "disabled";
1683
1684		clocks = <&bpmp TEGRA186_CLK_PLLA>,
1685			 <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
1686		clock-names = "pll_a", "plla_out0";
1687		assigned-clocks = <&bpmp TEGRA186_CLK_PLLA>,
1688				  <&bpmp TEGRA186_CLK_PLL_A_OUT0>,
1689				  <&bpmp TEGRA186_CLK_AUD_MCLK>;
1690		assigned-clock-parents = <0>,
1691					 <&bpmp TEGRA186_CLK_PLLA>,
1692					 <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
1693		/*
1694		 * PLLA supports dynamic ramp. Below initial rate is chosen
1695		 * for this to work and oscillate between base rates required
1696		 * for 8x and 11.025x sample rate streams.
1697		 */
1698		assigned-clock-rates = <258000000>;
1699
1700		iommus = <&smmu TEGRA186_SID_APE>;
1701	};
1702
1703	thermal-zones {
1704		a57 {
1705			polling-delay = <0>;
1706			polling-delay-passive = <1000>;
1707
1708			thermal-sensors =
1709				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_CPU>;
1710
1711			trips {
1712				critical {
1713					temperature = <101000>;
1714					hysteresis = <0>;
1715					type = "critical";
1716				};
1717			};
1718
1719			cooling-maps {
1720			};
1721		};
1722
1723		denver {
1724			polling-delay = <0>;
1725			polling-delay-passive = <1000>;
1726
1727			thermal-sensors =
1728				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AUX>;
1729
1730			trips {
1731				critical {
1732					temperature = <101000>;
1733					hysteresis = <0>;
1734					type = "critical";
1735				};
1736			};
1737
1738			cooling-maps {
1739			};
1740		};
1741
1742		gpu {
1743			polling-delay = <0>;
1744			polling-delay-passive = <1000>;
1745
1746			thermal-sensors =
1747				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_GPU>;
1748
1749			trips {
1750				critical {
1751					temperature = <101000>;
1752					hysteresis = <0>;
1753					type = "critical";
1754				};
1755			};
1756
1757			cooling-maps {
1758			};
1759		};
1760
1761		pll {
1762			polling-delay = <0>;
1763			polling-delay-passive = <1000>;
1764
1765			thermal-sensors =
1766				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_PLLX>;
1767
1768			trips {
1769				critical {
1770					temperature = <101000>;
1771					hysteresis = <0>;
1772					type = "critical";
1773				};
1774			};
1775
1776			cooling-maps {
1777			};
1778		};
1779
1780		always_on {
1781			polling-delay = <0>;
1782			polling-delay-passive = <1000>;
1783
1784			thermal-sensors =
1785				<&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AO>;
1786
1787			trips {
1788				critical {
1789					temperature = <101000>;
1790					hysteresis = <0>;
1791					type = "critical";
1792				};
1793			};
1794
1795			cooling-maps {
1796			};
1797		};
1798	};
1799
1800	timer {
1801		compatible = "arm,armv8-timer";
1802		interrupts = <GIC_PPI 13
1803				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1804			     <GIC_PPI 14
1805				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1806			     <GIC_PPI 11
1807				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1808			     <GIC_PPI 10
1809				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1810		interrupt-parent = <&gic>;
1811		always-on;
1812	};
1813};
1814