139cb62cbSJoseph Lo#include <dt-bindings/interrupt-controller/arm-gic.h>
239cb62cbSJoseph Lo
339cb62cbSJoseph Lo/ {
439cb62cbSJoseph Lo	compatible = "nvidia,tegra186";
539cb62cbSJoseph Lo	interrupt-parent = <&gic>;
639cb62cbSJoseph Lo	#address-cells = <2>;
739cb62cbSJoseph Lo	#size-cells = <2>;
839cb62cbSJoseph Lo
939cb62cbSJoseph Lo	uarta: serial@3100000 {
1039cb62cbSJoseph Lo		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
1139cb62cbSJoseph Lo		reg = <0x0 0x03100000 0x0 0x40>;
1239cb62cbSJoseph Lo		reg-shift = <2>;
1339cb62cbSJoseph Lo		interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
14a7a77e2eSThierry Reding		clocks = <&bpmp 55>;
15a7a77e2eSThierry Reding		clock-names = "serial";
16a7a77e2eSThierry Reding		resets = <&bpmp 47>;
17a7a77e2eSThierry Reding		reset-names = "serial";
18a7a77e2eSThierry Reding		status = "disabled";
19a7a77e2eSThierry Reding	};
20a7a77e2eSThierry Reding
21a7a77e2eSThierry Reding	uartb: serial@3110000 {
22a7a77e2eSThierry Reding		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
23a7a77e2eSThierry Reding		reg = <0x0 0x03110000 0x0 0x40>;
24a7a77e2eSThierry Reding		reg-shift = <2>;
25a7a77e2eSThierry Reding		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
26a7a77e2eSThierry Reding		clocks = <&bpmp 56>;
27a7a77e2eSThierry Reding		clock-names = "serial";
28a7a77e2eSThierry Reding		resets = <&bpmp 48>;
29a7a77e2eSThierry Reding		reset-names = "serial";
30a7a77e2eSThierry Reding		status = "disabled";
31a7a77e2eSThierry Reding	};
32a7a77e2eSThierry Reding
33a7a77e2eSThierry Reding	uartd: serial@3130000 {
34a7a77e2eSThierry Reding		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
35a7a77e2eSThierry Reding		reg = <0x0 0x03130000 0x0 0x40>;
36a7a77e2eSThierry Reding		reg-shift = <2>;
37a7a77e2eSThierry Reding		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
38a7a77e2eSThierry Reding		clocks = <&bpmp 77>;
39a7a77e2eSThierry Reding		clock-names = "serial";
40a7a77e2eSThierry Reding		resets = <&bpmp 50>;
41a7a77e2eSThierry Reding		reset-names = "serial";
42a7a77e2eSThierry Reding		status = "disabled";
43a7a77e2eSThierry Reding	};
44a7a77e2eSThierry Reding
45a7a77e2eSThierry Reding	uarte: serial@3140000 {
46a7a77e2eSThierry Reding		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
47a7a77e2eSThierry Reding		reg = <0x0 0x03140000 0x0 0x40>;
48a7a77e2eSThierry Reding		reg-shift = <2>;
49a7a77e2eSThierry Reding		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
50a7a77e2eSThierry Reding		clocks = <&bpmp 194>;
51a7a77e2eSThierry Reding		clock-names = "serial";
52a7a77e2eSThierry Reding		resets = <&bpmp 132>;
53a7a77e2eSThierry Reding		reset-names = "serial";
54a7a77e2eSThierry Reding		status = "disabled";
55a7a77e2eSThierry Reding	};
56a7a77e2eSThierry Reding
57a7a77e2eSThierry Reding	uartf: serial@3150000 {
58a7a77e2eSThierry Reding		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
59a7a77e2eSThierry Reding		reg = <0x0 0x03150000 0x0 0x40>;
60a7a77e2eSThierry Reding		reg-shift = <2>;
61a7a77e2eSThierry Reding		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
62a7a77e2eSThierry Reding		clocks = <&bpmp 195>;
63a7a77e2eSThierry Reding		clock-names = "serial";
64a7a77e2eSThierry Reding		resets = <&bpmp 111>;
65a7a77e2eSThierry Reding		reset-names = "serial";
6639cb62cbSJoseph Lo		status = "disabled";
6739cb62cbSJoseph Lo	};
6839cb62cbSJoseph Lo
6940cc83b3SThierry Reding	gen1_i2c: i2c@3160000 {
7040cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
7140cc83b3SThierry Reding		reg = <0x0 0x03160000 0x0 0x10000>;
7240cc83b3SThierry Reding		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
7340cc83b3SThierry Reding		#address-cells = <1>;
7440cc83b3SThierry Reding		#size-cells = <0>;
7540cc83b3SThierry Reding		clocks = <&bpmp 47>;
7640cc83b3SThierry Reding		clock-names = "div-clk";
7740cc83b3SThierry Reding		resets = <&bpmp 19>;
7840cc83b3SThierry Reding		reset-names = "i2c";
7940cc83b3SThierry Reding		status = "disabled";
8040cc83b3SThierry Reding	};
8140cc83b3SThierry Reding
8240cc83b3SThierry Reding	cam_i2c: i2c@3180000 {
8340cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
8440cc83b3SThierry Reding		reg = <0x0 0x03180000 0x0 0x10000>;
8540cc83b3SThierry Reding		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
8640cc83b3SThierry Reding		#address-cells = <1>;
8740cc83b3SThierry Reding		#size-cells = <0>;
8840cc83b3SThierry Reding		clocks = <&bpmp 75>;
8940cc83b3SThierry Reding		clock-names = "div-clk";
9040cc83b3SThierry Reding		resets = <&bpmp 21>;
9140cc83b3SThierry Reding		reset-names = "i2c";
9240cc83b3SThierry Reding		status = "disabled";
9340cc83b3SThierry Reding	};
9440cc83b3SThierry Reding
9540cc83b3SThierry Reding	/* shares pads with dpaux1 */
9640cc83b3SThierry Reding	dp_aux_ch1_i2c: i2c@3190000 {
9740cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
9840cc83b3SThierry Reding		reg = <0x0 0x03190000 0x0 0x10000>;
9940cc83b3SThierry Reding		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
10040cc83b3SThierry Reding		#address-cells = <1>;
10140cc83b3SThierry Reding		#size-cells = <0>;
10240cc83b3SThierry Reding		clocks = <&bpmp 86>;
10340cc83b3SThierry Reding		clock-names = "div-clk";
10440cc83b3SThierry Reding		resets = <&bpmp 22>;
10540cc83b3SThierry Reding		reset-names = "i2c";
10640cc83b3SThierry Reding		status = "disabled";
10740cc83b3SThierry Reding	};
10840cc83b3SThierry Reding
10940cc83b3SThierry Reding	/* controlled by BPMP, should not be enabled */
11040cc83b3SThierry Reding	pwr_i2c: i2c@31a0000 {
11140cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
11240cc83b3SThierry Reding		reg = <0x0 0x031a0000 0x0 0x10000>;
11340cc83b3SThierry Reding		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
11440cc83b3SThierry Reding		#address-cells = <1>;
11540cc83b3SThierry Reding		#size-cells = <0>;
11640cc83b3SThierry Reding		clocks = <&bpmp 48>;
11740cc83b3SThierry Reding		clock-names = "div-clk";
11840cc83b3SThierry Reding		resets = <&bpmp 23>;
11940cc83b3SThierry Reding		reset-names = "i2c";
12040cc83b3SThierry Reding		status = "disabled";
12140cc83b3SThierry Reding	};
12240cc83b3SThierry Reding
12340cc83b3SThierry Reding	/* shares pads with dpaux0 */
12440cc83b3SThierry Reding	dp_aux_ch0_i2c: i2c@31b0000 {
12540cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
12640cc83b3SThierry Reding		reg = <0x0 0x031b0000 0x0 0x10000>;
12740cc83b3SThierry Reding		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
12840cc83b3SThierry Reding		#address-cells = <1>;
12940cc83b3SThierry Reding		#size-cells = <0>;
13040cc83b3SThierry Reding		clocks = <&bpmp 125>;
13140cc83b3SThierry Reding		clock-names = "div-clk";
13240cc83b3SThierry Reding		resets = <&bpmp 24>;
13340cc83b3SThierry Reding		reset-names = "i2c";
13440cc83b3SThierry Reding		status = "disabled";
13540cc83b3SThierry Reding	};
13640cc83b3SThierry Reding
13740cc83b3SThierry Reding	gen7_i2c: i2c@31c0000 {
13840cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
13940cc83b3SThierry Reding		reg = <0x0 0x031c0000 0x0 0x10000>;
14040cc83b3SThierry Reding		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
14140cc83b3SThierry Reding		#address-cells = <1>;
14240cc83b3SThierry Reding		#size-cells = <0>;
14340cc83b3SThierry Reding		clocks = <&bpmp 182>;
14440cc83b3SThierry Reding		clock-names = "div-clk";
14540cc83b3SThierry Reding		resets = <&bpmp 81>;
14640cc83b3SThierry Reding		reset-names = "i2c";
14740cc83b3SThierry Reding		status = "disabled";
14840cc83b3SThierry Reding	};
14940cc83b3SThierry Reding
15040cc83b3SThierry Reding	gen9_i2c: i2c@31e0000 {
15140cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
15240cc83b3SThierry Reding		reg = <0x0 0x031e0000 0x0 0x10000>;
15340cc83b3SThierry Reding		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
15440cc83b3SThierry Reding		#address-cells = <1>;
15540cc83b3SThierry Reding		#size-cells = <0>;
15640cc83b3SThierry Reding		clocks = <&bpmp 183>;
15740cc83b3SThierry Reding		clock-names = "div-clk";
15840cc83b3SThierry Reding		resets = <&bpmp 83>;
15940cc83b3SThierry Reding		reset-names = "i2c";
16040cc83b3SThierry Reding		status = "disabled";
16140cc83b3SThierry Reding	};
16240cc83b3SThierry Reding
16339cb62cbSJoseph Lo	gic: interrupt-controller@3881000 {
16439cb62cbSJoseph Lo		compatible = "arm,gic-400";
16539cb62cbSJoseph Lo		#interrupt-cells = <3>;
16639cb62cbSJoseph Lo		interrupt-controller;
16739cb62cbSJoseph Lo		reg = <0x0 0x03881000 0x0 0x1000>,
16839cb62cbSJoseph Lo		      <0x0 0x03882000 0x0 0x2000>;
16939cb62cbSJoseph Lo		interrupts = <GIC_PPI 9
17039cb62cbSJoseph Lo			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
17139cb62cbSJoseph Lo		interrupt-parent = <&gic>;
17239cb62cbSJoseph Lo	};
17339cb62cbSJoseph Lo
17439cb62cbSJoseph Lo	hsp_top0: hsp@3c00000 {
17539cb62cbSJoseph Lo		compatible = "nvidia,tegra186-hsp";
17639cb62cbSJoseph Lo		reg = <0x0 0x03c00000 0x0 0xa0000>;
17739cb62cbSJoseph Lo		interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
17839cb62cbSJoseph Lo		interrupt-names = "doorbell";
17939cb62cbSJoseph Lo		#mbox-cells = <2>;
18039cb62cbSJoseph Lo		status = "disabled";
18139cb62cbSJoseph Lo	};
18239cb62cbSJoseph Lo
18340cc83b3SThierry Reding	gen2_i2c: i2c@c240000 {
18440cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
18540cc83b3SThierry Reding		reg = <0x0 0x0c240000 0x0 0x10000>;
18640cc83b3SThierry Reding		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
18740cc83b3SThierry Reding		#address-cells = <1>;
18840cc83b3SThierry Reding		#size-cells = <0>;
18940cc83b3SThierry Reding		clocks = <&bpmp 218>;
19040cc83b3SThierry Reding		clock-names = "div-clk";
19140cc83b3SThierry Reding		resets = <&bpmp 20>;
19240cc83b3SThierry Reding		reset-names = "i2c";
19340cc83b3SThierry Reding		status = "disabled";
19440cc83b3SThierry Reding	};
19540cc83b3SThierry Reding
19640cc83b3SThierry Reding	gen8_i2c: i2c@c250000 {
19740cc83b3SThierry Reding		compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
19840cc83b3SThierry Reding		reg = <0x0 0x0c250000 0x0 0x10000>;
19940cc83b3SThierry Reding		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
20040cc83b3SThierry Reding		#address-cells = <1>;
20140cc83b3SThierry Reding		#size-cells = <0>;
20240cc83b3SThierry Reding		clocks = <&bpmp 219>;
20340cc83b3SThierry Reding		clock-names = "div-clk";
20440cc83b3SThierry Reding		resets = <&bpmp 82>;
20540cc83b3SThierry Reding		reset-names = "i2c";
20640cc83b3SThierry Reding		status = "disabled";
20740cc83b3SThierry Reding	};
20840cc83b3SThierry Reding
209a7a77e2eSThierry Reding	uartc: serial@c280000 {
210a7a77e2eSThierry Reding		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
211a7a77e2eSThierry Reding		reg = <0x0 0x0c280000 0x0 0x40>;
212a7a77e2eSThierry Reding		reg-shift = <2>;
213a7a77e2eSThierry Reding		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
214a7a77e2eSThierry Reding		clocks = <&bpmp 215>;
215a7a77e2eSThierry Reding		clock-names = "serial";
216a7a77e2eSThierry Reding		resets = <&bpmp 49>;
217a7a77e2eSThierry Reding		reset-names = "serial";
218a7a77e2eSThierry Reding		status = "disabled";
219a7a77e2eSThierry Reding	};
220a7a77e2eSThierry Reding
221a7a77e2eSThierry Reding	uartg: serial@c290000 {
222a7a77e2eSThierry Reding		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
223a7a77e2eSThierry Reding		reg = <0x0 0x0c290000 0x0 0x40>;
224a7a77e2eSThierry Reding		reg-shift = <2>;
225a7a77e2eSThierry Reding		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
226a7a77e2eSThierry Reding		clocks = <&bpmp 216>;
227a7a77e2eSThierry Reding		clock-names = "serial";
228a7a77e2eSThierry Reding		resets = <&bpmp 112>;
229a7a77e2eSThierry Reding		reset-names = "serial";
230a7a77e2eSThierry Reding		status = "disabled";
231a7a77e2eSThierry Reding	};
232a7a77e2eSThierry Reding
23339cb62cbSJoseph Lo	sysram@30000000 {
23439cb62cbSJoseph Lo		compatible = "nvidia,tegra186-sysram", "mmio-sram";
23539cb62cbSJoseph Lo		reg = <0x0 0x30000000 0x0 0x50000>;
23639cb62cbSJoseph Lo		#address-cells = <2>;
23739cb62cbSJoseph Lo		#size-cells = <2>;
23839cb62cbSJoseph Lo		ranges = <0 0x0 0x0 0x30000000 0x0 0x50000>;
23939cb62cbSJoseph Lo
24039cb62cbSJoseph Lo		cpu_bpmp_tx: shmem@4e000 {
24139cb62cbSJoseph Lo			compatible = "nvidia,tegra186-bpmp-shmem";
24239cb62cbSJoseph Lo			reg = <0x0 0x4e000 0x0 0x1000>;
24339cb62cbSJoseph Lo			label = "cpu-bpmp-tx";
24439cb62cbSJoseph Lo			pool;
24539cb62cbSJoseph Lo		};
24639cb62cbSJoseph Lo
24739cb62cbSJoseph Lo		cpu_bpmp_rx: shmem@4f000 {
24839cb62cbSJoseph Lo			compatible = "nvidia,tegra186-bpmp-shmem";
24939cb62cbSJoseph Lo			reg = <0x0 0x4f000 0x0 0x1000>;
25039cb62cbSJoseph Lo			label = "cpu-bpmp-rx";
25139cb62cbSJoseph Lo			pool;
25239cb62cbSJoseph Lo		};
25339cb62cbSJoseph Lo	};
25439cb62cbSJoseph Lo
255cd6fe32eSThierry Reding	cpus {
256cd6fe32eSThierry Reding		#address-cells = <1>;
257cd6fe32eSThierry Reding		#size-cells = <0>;
258cd6fe32eSThierry Reding
259cd6fe32eSThierry Reding		cpu@0 {
260cd6fe32eSThierry Reding			compatible = "nvidia,tegra186-denver", "arm,armv8";
261cd6fe32eSThierry Reding			device_type = "cpu";
262cd6fe32eSThierry Reding			reg = <0x000>;
263cd6fe32eSThierry Reding		};
264cd6fe32eSThierry Reding
265cd6fe32eSThierry Reding		cpu@1 {
266cd6fe32eSThierry Reding			compatible = "nvidia,tegra186-denver", "arm,armv8";
267cd6fe32eSThierry Reding			device_type = "cpu";
268cd6fe32eSThierry Reding			reg = <0x001>;
269cd6fe32eSThierry Reding		};
270cd6fe32eSThierry Reding
271cd6fe32eSThierry Reding		cpu@2 {
272cd6fe32eSThierry Reding			compatible = "arm,cortex-a57", "arm,armv8";
273cd6fe32eSThierry Reding			device_type = "cpu";
274cd6fe32eSThierry Reding			reg = <0x100>;
275cd6fe32eSThierry Reding		};
276cd6fe32eSThierry Reding
277cd6fe32eSThierry Reding		cpu@3 {
278cd6fe32eSThierry Reding			compatible = "arm,cortex-a57", "arm,armv8";
279cd6fe32eSThierry Reding			device_type = "cpu";
280cd6fe32eSThierry Reding			reg = <0x101>;
281cd6fe32eSThierry Reding		};
282cd6fe32eSThierry Reding
283cd6fe32eSThierry Reding		cpu@4 {
284cd6fe32eSThierry Reding			compatible = "arm,cortex-a57", "arm,armv8";
285cd6fe32eSThierry Reding			device_type = "cpu";
286cd6fe32eSThierry Reding			reg = <0x102>;
287cd6fe32eSThierry Reding		};
288cd6fe32eSThierry Reding
289cd6fe32eSThierry Reding		cpu@5 {
290cd6fe32eSThierry Reding			compatible = "arm,cortex-a57", "arm,armv8";
291cd6fe32eSThierry Reding			device_type = "cpu";
292cd6fe32eSThierry Reding			reg = <0x103>;
293cd6fe32eSThierry Reding		};
294cd6fe32eSThierry Reding	};
295cd6fe32eSThierry Reding
29639cb62cbSJoseph Lo	bpmp: bpmp {
29739cb62cbSJoseph Lo		compatible = "nvidia,tegra186-bpmp";
29839cb62cbSJoseph Lo		mboxes = <&hsp_top0 0 19>;
29939cb62cbSJoseph Lo		shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
30039cb62cbSJoseph Lo		#clock-cells = <1>;
30139cb62cbSJoseph Lo		#reset-cells = <1>;
30239cb62cbSJoseph Lo
30339cb62cbSJoseph Lo		bpmp_i2c: i2c {
30439cb62cbSJoseph Lo			compatible = "nvidia,tegra186-bpmp-i2c";
30539cb62cbSJoseph Lo			nvidia,bpmp-bus-id = <5>;
30639cb62cbSJoseph Lo			#address-cells = <1>;
30739cb62cbSJoseph Lo			#size-cells = <0>;
30839cb62cbSJoseph Lo			status = "disabled";
30939cb62cbSJoseph Lo		};
31039cb62cbSJoseph Lo	};
31139cb62cbSJoseph Lo
31239cb62cbSJoseph Lo	timer {
31339cb62cbSJoseph Lo		compatible = "arm,armv8-timer";
31439cb62cbSJoseph Lo		interrupts = <GIC_PPI 13
31539cb62cbSJoseph Lo				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
31639cb62cbSJoseph Lo			     <GIC_PPI 14
31739cb62cbSJoseph Lo				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
31839cb62cbSJoseph Lo			     <GIC_PPI 11
31939cb62cbSJoseph Lo				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
32039cb62cbSJoseph Lo			     <GIC_PPI 10
32139cb62cbSJoseph Lo				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
32239cb62cbSJoseph Lo		interrupt-parent = <&gic>;
32339cb62cbSJoseph Lo	};
32439cb62cbSJoseph Lo};
325