xref: /rk3399_rockchip-uboot/arch/arm/dts/tegra186.dtsi (revision 20bbde0628b30e5ac720e097cb00c36287ca4e38)
1c7ba99c8SStephen Warren#include "skeleton.dtsi"
219014203SStephen Warren#include <dt-bindings/clock/tegra186-clock.h>
30388634aSStephen Warren#include <dt-bindings/gpio/tegra186-gpio.h>
4c7ba99c8SStephen Warren#include <dt-bindings/interrupt-controller/arm-gic.h>
5729c2db7SStephen Warren#include <dt-bindings/mailbox/tegra186-hsp.h>
6*20bbde06SStephen Warren#include <dt-bindings/power/tegra186-powergate.h>
719014203SStephen Warren#include <dt-bindings/reset/tegra186-reset.h>
8c7ba99c8SStephen Warren
9c7ba99c8SStephen Warren/ {
10c7ba99c8SStephen Warren	compatible = "nvidia,tegra186";
11*20bbde06SStephen Warren	interrupt-parent = <&gic>;
12c7ba99c8SStephen Warren	#address-cells = <2>;
13c7ba99c8SStephen Warren	#size-cells = <2>;
14c7ba99c8SStephen Warren
1519014203SStephen Warren	gpio_main: gpio@2200000 {
16c7ba99c8SStephen Warren		compatible = "nvidia,tegra186-gpio";
17c7ba99c8SStephen Warren		reg-names = "security", "gpio";
18c7ba99c8SStephen Warren		reg =
19c7ba99c8SStephen Warren			<0x0 0x2200000 0x0 0x10000>,
20c7ba99c8SStephen Warren			<0x0 0x2210000 0x0 0x10000>;
21c7ba99c8SStephen Warren		interrupts =
22c7ba99c8SStephen Warren			<GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
23c7ba99c8SStephen Warren			<GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
24c7ba99c8SStephen Warren			<GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
25c7ba99c8SStephen Warren			<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
26c7ba99c8SStephen Warren			<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
27c7ba99c8SStephen Warren			<GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
28c7ba99c8SStephen Warren		gpio-controller;
29c7ba99c8SStephen Warren		#gpio-cells = <2>;
30c7ba99c8SStephen Warren		interrupt-controller;
31c7ba99c8SStephen Warren		#interrupt-cells = <2>;
32c7ba99c8SStephen Warren	};
33c7ba99c8SStephen Warren
34c7ba99c8SStephen Warren	uarta: serial@3100000 {
35c7ba99c8SStephen Warren		compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
36c7ba99c8SStephen Warren		reg = <0x0 0x03100000 0x0 0x10000>;
37c7ba99c8SStephen Warren		reg-shift = <2>;
38c7ba99c8SStephen Warren		status = "disabled";
39c7ba99c8SStephen Warren	};
40c7ba99c8SStephen Warren
4119014203SStephen Warren	sdhci@3400000 {
4219014203SStephen Warren		compatible = "nvidia,tegra186-sdhci";
4319014203SStephen Warren		reg = <0x0 0x03400000 0x0 0x200>;
4419014203SStephen Warren		resets = <&bpmp TEGRA186_RESET_SDMMC1>;
4519014203SStephen Warren		reset-names = "sdmmc";
4619014203SStephen Warren		clocks = <&bpmp TEGRA186_CLK_SDMMC1>;
4719014203SStephen Warren		clock-names = "sdmmc";
4819014203SStephen Warren		interrupts = <GIC_SPI 62 0x04>;
4919014203SStephen Warren		status = "disabled";
5019014203SStephen Warren	};
5119014203SStephen Warren
52c7ba99c8SStephen Warren	sdhci@3460000 {
53c7ba99c8SStephen Warren		compatible = "nvidia,tegra186-sdhci";
54c7ba99c8SStephen Warren		reg = <0x0 0x03460000 0x0 0x200>;
5519014203SStephen Warren		resets = <&bpmp TEGRA186_RESET_SDMMC4>;
5619014203SStephen Warren		reset-names = "sdmmc";
5719014203SStephen Warren		clocks = <&bpmp TEGRA186_CLK_SDMMC4>;
5819014203SStephen Warren		clock-names = "sdmmc";
59c7ba99c8SStephen Warren		interrupts = <GIC_SPI 31 0x04>;
60c7ba99c8SStephen Warren		status = "disabled";
61c7ba99c8SStephen Warren	};
62c7ba99c8SStephen Warren
63*20bbde06SStephen Warren	gic: interrupt-controller@3881000 {
64*20bbde06SStephen Warren		compatible = "arm,gic-400";
65*20bbde06SStephen Warren		#interrupt-cells = <3>;
66*20bbde06SStephen Warren		interrupt-controller;
67*20bbde06SStephen Warren		reg = <0x0 0x3881000 0x0 0x1000>,
68*20bbde06SStephen Warren		      <0x0 0x3882000 0x0 0x2000>,
69*20bbde06SStephen Warren		      <0x0 0x3884000 0x0 0x2000>,
70*20bbde06SStephen Warren		      <0x0 0x3886000 0x0 0x2000>;
71*20bbde06SStephen Warren		interrupts = <GIC_PPI 9
72*20bbde06SStephen Warren			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
73*20bbde06SStephen Warren		interrupt-parent = <&gic>;
74*20bbde06SStephen Warren	};
75*20bbde06SStephen Warren
760f67e239SStephen Warren	hsp: hsp@3c00000 {
770f67e239SStephen Warren		compatible = "nvidia,tegra186-hsp";
780f67e239SStephen Warren		reg = <0x0 0x03c00000 0x0 0xa0000>;
790f67e239SStephen Warren		interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
80729c2db7SStephen Warren		interrupt-names = "doorbell";
81729c2db7SStephen Warren		#mbox-cells = <2>;
820f67e239SStephen Warren	};
830f67e239SStephen Warren
8419014203SStephen Warren	gpio_aon: gpio@c2f0000 {
85c7ba99c8SStephen Warren		compatible = "nvidia,tegra186-gpio-aon";
86c7ba99c8SStephen Warren		reg-names = "security", "gpio";
87c7ba99c8SStephen Warren		reg =
88c7ba99c8SStephen Warren			<0x0 0xc2f0000 0x0 0x1000>,
89c7ba99c8SStephen Warren			<0x0 0xc2f1000 0x0 0x1000>;
90c7ba99c8SStephen Warren		interrupts =
91c7ba99c8SStephen Warren			<GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
92c7ba99c8SStephen Warren		gpio-controller;
93c7ba99c8SStephen Warren		#gpio-cells = <2>;
94c7ba99c8SStephen Warren		interrupt-controller;
95c7ba99c8SStephen Warren		#interrupt-cells = <2>;
96c7ba99c8SStephen Warren	};
9719014203SStephen Warren
98*20bbde06SStephen Warren	pcie-controller@10003000 {
99*20bbde06SStephen Warren		compatible = "nvidia,tegra186-pcie";
100*20bbde06SStephen Warren		device_type = "pci";
101*20bbde06SStephen Warren		reg = <0x0 0x10003000 0x0 0x00000800   /* PADS registers */
102*20bbde06SStephen Warren		       0x0 0x10003800 0x0 0x00000800   /* AFI registers */
103*20bbde06SStephen Warren		       0x0 0x40000000 0x0 0x10000000>; /* configuration space */
104*20bbde06SStephen Warren		reg-names = "pads", "afi", "cs";
105*20bbde06SStephen Warren		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
106*20bbde06SStephen Warren			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, /* MSI interrupt */
107*20bbde06SStephen Warren			     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; /* Wake interrupt */
108*20bbde06SStephen Warren		interrupt-names = "intr", "msi", "wake";
109*20bbde06SStephen Warren
110*20bbde06SStephen Warren		#interrupt-cells = <1>;
111*20bbde06SStephen Warren		interrupt-map-mask = <0 0 0 0>;
112*20bbde06SStephen Warren		interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
113*20bbde06SStephen Warren
114*20bbde06SStephen Warren		bus-range = <0x00 0xff>;
115*20bbde06SStephen Warren		#address-cells = <3>;
116*20bbde06SStephen Warren		#size-cells = <2>;
117*20bbde06SStephen Warren
118*20bbde06SStephen Warren		ranges = <0x82000000 0 0x10000000 0x0 0x10000000 0 0x00001000   /* port 0 configuration space */
119*20bbde06SStephen Warren			  0x82000000 0 0x10001000 0x0 0x10001000 0 0x00001000   /* port 1 configuration space */
120*20bbde06SStephen Warren			  0x82000000 0 0x10004000 0x0 0x10004000 0 0x00001000   /* port 2 configuration space */
121*20bbde06SStephen Warren			  0x81000000 0 0x0        0x0 0x50000000 0 0x00010000   /* downstream I/O (64 KiB) */
122*20bbde06SStephen Warren			  0x82000000 0 0x50100000 0x0 0x50100000 0 0x07f00000   /* non-prefetchable memory (127 MiB) */
123*20bbde06SStephen Warren			  0xc2000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */
124*20bbde06SStephen Warren
125*20bbde06SStephen Warren		clocks = <&bpmp TEGRA186_CLK_PCIE>,
126*20bbde06SStephen Warren			 <&bpmp TEGRA186_CLK_AFI>;
127*20bbde06SStephen Warren		clock-names = "pex", "afi";
128*20bbde06SStephen Warren		resets = <&bpmp TEGRA186_RESET_PCIE>,
129*20bbde06SStephen Warren			 <&bpmp TEGRA186_RESET_AFI>,
130*20bbde06SStephen Warren			 <&bpmp TEGRA186_RESET_PCIEXCLK>;
131*20bbde06SStephen Warren		reset-names = "pex", "afi", "pcie_x";
132*20bbde06SStephen Warren		power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>;
133*20bbde06SStephen Warren		status = "disabled";
134*20bbde06SStephen Warren
135*20bbde06SStephen Warren		pci@1,0 {
136*20bbde06SStephen Warren			device_type = "pci";
137*20bbde06SStephen Warren			assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>;
138*20bbde06SStephen Warren			reg = <0x000800 0 0 0 0>;
139*20bbde06SStephen Warren			status = "disabled";
140*20bbde06SStephen Warren
141*20bbde06SStephen Warren			#address-cells = <3>;
142*20bbde06SStephen Warren			#size-cells = <2>;
143*20bbde06SStephen Warren			ranges;
144*20bbde06SStephen Warren
145*20bbde06SStephen Warren			nvidia,num-lanes = <2>;
146*20bbde06SStephen Warren		};
147*20bbde06SStephen Warren
148*20bbde06SStephen Warren		pci@2,0 {
149*20bbde06SStephen Warren			device_type = "pci";
150*20bbde06SStephen Warren			assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>;
151*20bbde06SStephen Warren			reg = <0x001000 0 0 0 0>;
152*20bbde06SStephen Warren			status = "disabled";
153*20bbde06SStephen Warren
154*20bbde06SStephen Warren			#address-cells = <3>;
155*20bbde06SStephen Warren			#size-cells = <2>;
156*20bbde06SStephen Warren			ranges;
157*20bbde06SStephen Warren
158*20bbde06SStephen Warren			nvidia,num-lanes = <1>;
159*20bbde06SStephen Warren		};
160*20bbde06SStephen Warren
161*20bbde06SStephen Warren		pci@3,0 {
162*20bbde06SStephen Warren			device_type = "pci";
163*20bbde06SStephen Warren			assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>;
164*20bbde06SStephen Warren			reg = <0x001800 0 0 0 0>;
165*20bbde06SStephen Warren			status = "disabled";
166*20bbde06SStephen Warren
167*20bbde06SStephen Warren			#address-cells = <3>;
168*20bbde06SStephen Warren			#size-cells = <2>;
169*20bbde06SStephen Warren			ranges;
170*20bbde06SStephen Warren
171*20bbde06SStephen Warren			nvidia,num-lanes = <1>;
172*20bbde06SStephen Warren		};
173*20bbde06SStephen Warren	};
174*20bbde06SStephen Warren
17519014203SStephen Warren	sysram@30000000 {
17619014203SStephen Warren		compatible = "nvidia,tegra186-sysram", "mmio-sram";
17719014203SStephen Warren		reg = <0x0 0x30000000 0x0 0x50000>;
17819014203SStephen Warren		#address-cells = <2>;
17919014203SStephen Warren		#size-cells = <2>;
18019014203SStephen Warren		ranges = <0 0x0 0x0 0x30000000 0x0 0x50000>;
18119014203SStephen Warren
18219014203SStephen Warren		sysram_cpu_bpmp_tx: shmem@4e000 {
18319014203SStephen Warren			compatible = "nvidia,tegra186-bpmp-shmem";
18419014203SStephen Warren			reg = <0x0 0x4e000 0x0 0x1000>;
18519014203SStephen Warren		};
18619014203SStephen Warren
18719014203SStephen Warren		sysram_cpu_bpmp_rx: shmem@4f000 {
18819014203SStephen Warren			compatible = "nvidia,tegra186-bpmp-shmem";
18919014203SStephen Warren			reg = <0x0 0x4f000 0x0 0x1000>;
19019014203SStephen Warren		};
19119014203SStephen Warren	};
19219014203SStephen Warren
19319014203SStephen Warren	bpmp: bpmp {
19419014203SStephen Warren		compatible = "nvidia,tegra186-bpmp";
19519014203SStephen Warren		mboxes = <&hsp HSP_MBOX_TYPE_DB HSP_DB_MASTER_BPMP>;
19619014203SStephen Warren		/*
19719014203SStephen Warren		 * In theory, these references, and the configuration in the
19819014203SStephen Warren		 * node these reference point at, are board-specific, since
19919014203SStephen Warren		 * they depend on the BCT's memory carve-out setup, the
20019014203SStephen Warren		 * firmware that's actually loaded onto the BPMP, etc. However,
20119014203SStephen Warren		 * in practice, all boards are likely to use identical values.
20219014203SStephen Warren		 */
20319014203SStephen Warren		shmem = <&sysram_cpu_bpmp_tx &sysram_cpu_bpmp_rx>;
20419014203SStephen Warren		#clock-cells = <1>;
20519014203SStephen Warren		#power-domain-cells = <1>;
20619014203SStephen Warren		#reset-cells = <1>;
20723ab5bdaSStephen Warren
20823ab5bdaSStephen Warren		bpmp_i2c: i2c {
20923ab5bdaSStephen Warren			compatible = "nvidia,tegra186-bpmp-i2c";
21023ab5bdaSStephen Warren			nvidia,bpmp = <&bpmp>;
21123ab5bdaSStephen Warren			nvidia,bpmp-bus-id = <5>;
21223ab5bdaSStephen Warren			#address-cells = <1>;
21323ab5bdaSStephen Warren			#size-cells = <0>;
21423ab5bdaSStephen Warren			status = "disabled";
21523ab5bdaSStephen Warren		};
21619014203SStephen Warren	};
217c7ba99c8SStephen Warren};
218