blob: c296c2f202f74dbeebbfc0d127912895ff2d6997 [file] [log] [blame]
Stephen Warrenc7ba99c2016-05-12 13:32:55 -06001#include "skeleton.dtsi"
Stephen Warren19014202016-07-27 15:24:51 -06002#include <dt-bindings/clock/tegra186-clock.h>
Stephen Warren03886342016-07-18 12:15:03 -06003#include <dt-bindings/gpio/tegra186-gpio.h>
Stephen Warrenc7ba99c2016-05-12 13:32:55 -06004#include <dt-bindings/interrupt-controller/arm-gic.h>
Stephen Warren729c2db2016-07-27 15:24:49 -06005#include <dt-bindings/mailbox/tegra186-hsp.h>
Stephen Warren20bbde02016-07-27 15:48:19 -06006#include <dt-bindings/power/tegra186-powergate.h>
Stephen Warren19014202016-07-27 15:24:51 -06007#include <dt-bindings/reset/tegra186-reset.h>
Stephen Warrenc7ba99c2016-05-12 13:32:55 -06008
9/ {
10 compatible = "nvidia,tegra186";
Stephen Warren20bbde02016-07-27 15:48:19 -060011 interrupt-parent = <&gic>;
Stephen Warrenc7ba99c2016-05-12 13:32:55 -060012 #address-cells = <2>;
13 #size-cells = <2>;
14
Stephen Warren19014202016-07-27 15:24:51 -060015 gpio_main: gpio@2200000 {
Stephen Warrenc7ba99c2016-05-12 13:32:55 -060016 compatible = "nvidia,tegra186-gpio";
17 reg-names = "security", "gpio";
18 reg =
19 <0x0 0x2200000 0x0 0x10000>,
20 <0x0 0x2210000 0x0 0x10000>;
21 interrupts =
22 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
23 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
24 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
25 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
26 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
27 <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
28 gpio-controller;
29 #gpio-cells = <2>;
30 interrupt-controller;
31 #interrupt-cells = <2>;
32 };
33
34 uarta: serial@3100000 {
35 compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
36 reg = <0x0 0x03100000 0x0 0x10000>;
37 reg-shift = <2>;
38 status = "disabled";
39 };
40
Stephen Warren19014202016-07-27 15:24:51 -060041 sdhci@3400000 {
42 compatible = "nvidia,tegra186-sdhci";
43 reg = <0x0 0x03400000 0x0 0x200>;
44 resets = <&bpmp TEGRA186_RESET_SDMMC1>;
45 reset-names = "sdmmc";
46 clocks = <&bpmp TEGRA186_CLK_SDMMC1>;
47 clock-names = "sdmmc";
48 interrupts = <GIC_SPI 62 0x04>;
49 status = "disabled";
50 };
51
Stephen Warrenc7ba99c2016-05-12 13:32:55 -060052 sdhci@3460000 {
53 compatible = "nvidia,tegra186-sdhci";
54 reg = <0x0 0x03460000 0x0 0x200>;
Stephen Warren19014202016-07-27 15:24:51 -060055 resets = <&bpmp TEGRA186_RESET_SDMMC4>;
56 reset-names = "sdmmc";
57 clocks = <&bpmp TEGRA186_CLK_SDMMC4>;
58 clock-names = "sdmmc";
Stephen Warrenc7ba99c2016-05-12 13:32:55 -060059 interrupts = <GIC_SPI 31 0x04>;
60 status = "disabled";
61 };
62
Stephen Warren20bbde02016-07-27 15:48:19 -060063 gic: interrupt-controller@3881000 {
64 compatible = "arm,gic-400";
65 #interrupt-cells = <3>;
66 interrupt-controller;
67 reg = <0x0 0x3881000 0x0 0x1000>,
68 <0x0 0x3882000 0x0 0x2000>,
69 <0x0 0x3884000 0x0 0x2000>,
70 <0x0 0x3886000 0x0 0x2000>;
71 interrupts = <GIC_PPI 9
72 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
73 interrupt-parent = <&gic>;
74 };
75
Stephen Warren0f67e232016-06-17 09:43:57 -060076 hsp: hsp@3c00000 {
77 compatible = "nvidia,tegra186-hsp";
78 reg = <0x0 0x03c00000 0x0 0xa0000>;
79 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
Stephen Warren729c2db2016-07-27 15:24:49 -060080 interrupt-names = "doorbell";
81 #mbox-cells = <2>;
Stephen Warren0f67e232016-06-17 09:43:57 -060082 };
83
Stephen Warren19014202016-07-27 15:24:51 -060084 gpio_aon: gpio@c2f0000 {
Stephen Warrenc7ba99c2016-05-12 13:32:55 -060085 compatible = "nvidia,tegra186-gpio-aon";
86 reg-names = "security", "gpio";
87 reg =
88 <0x0 0xc2f0000 0x0 0x1000>,
89 <0x0 0xc2f1000 0x0 0x1000>;
90 interrupts =
91 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
92 gpio-controller;
93 #gpio-cells = <2>;
94 interrupt-controller;
95 #interrupt-cells = <2>;
96 };
Stephen Warren19014202016-07-27 15:24:51 -060097
Stephen Warren20bbde02016-07-27 15:48:19 -060098 pcie-controller@10003000 {
99 compatible = "nvidia,tegra186-pcie";
100 device_type = "pci";
101 reg = <0x0 0x10003000 0x0 0x00000800 /* PADS registers */
102 0x0 0x10003800 0x0 0x00000800 /* AFI registers */
103 0x0 0x40000000 0x0 0x10000000>; /* configuration space */
104 reg-names = "pads", "afi", "cs";
105 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
106 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, /* MSI interrupt */
107 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; /* Wake interrupt */
108 interrupt-names = "intr", "msi", "wake";
109
110 #interrupt-cells = <1>;
111 interrupt-map-mask = <0 0 0 0>;
112 interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
113
114 bus-range = <0x00 0xff>;
115 #address-cells = <3>;
116 #size-cells = <2>;
117
118 ranges = <0x82000000 0 0x10000000 0x0 0x10000000 0 0x00001000 /* port 0 configuration space */
119 0x82000000 0 0x10001000 0x0 0x10001000 0 0x00001000 /* port 1 configuration space */
120 0x82000000 0 0x10004000 0x0 0x10004000 0 0x00001000 /* port 2 configuration space */
121 0x81000000 0 0x0 0x0 0x50000000 0 0x00010000 /* downstream I/O (64 KiB) */
122 0x82000000 0 0x50100000 0x0 0x50100000 0 0x07f00000 /* non-prefetchable memory (127 MiB) */
123 0xc2000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */
124
125 clocks = <&bpmp TEGRA186_CLK_PCIE>,
126 <&bpmp TEGRA186_CLK_AFI>;
127 clock-names = "pex", "afi";
128 resets = <&bpmp TEGRA186_RESET_PCIE>,
129 <&bpmp TEGRA186_RESET_AFI>,
130 <&bpmp TEGRA186_RESET_PCIEXCLK>;
131 reset-names = "pex", "afi", "pcie_x";
132 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>;
133 status = "disabled";
134
135 pci@1,0 {
136 device_type = "pci";
137 assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>;
138 reg = <0x000800 0 0 0 0>;
139 status = "disabled";
140
141 #address-cells = <3>;
142 #size-cells = <2>;
143 ranges;
144
145 nvidia,num-lanes = <2>;
146 };
147
148 pci@2,0 {
149 device_type = "pci";
150 assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>;
151 reg = <0x001000 0 0 0 0>;
152 status = "disabled";
153
154 #address-cells = <3>;
155 #size-cells = <2>;
156 ranges;
157
158 nvidia,num-lanes = <1>;
159 };
160
161 pci@3,0 {
162 device_type = "pci";
163 assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>;
164 reg = <0x001800 0 0 0 0>;
165 status = "disabled";
166
167 #address-cells = <3>;
168 #size-cells = <2>;
169 ranges;
170
171 nvidia,num-lanes = <1>;
172 };
173 };
174
Stephen Warren19014202016-07-27 15:24:51 -0600175 sysram@30000000 {
176 compatible = "nvidia,tegra186-sysram", "mmio-sram";
177 reg = <0x0 0x30000000 0x0 0x50000>;
178 #address-cells = <2>;
179 #size-cells = <2>;
180 ranges = <0 0x0 0x0 0x30000000 0x0 0x50000>;
181
182 sysram_cpu_bpmp_tx: shmem@4e000 {
183 compatible = "nvidia,tegra186-bpmp-shmem";
184 reg = <0x0 0x4e000 0x0 0x1000>;
185 };
186
187 sysram_cpu_bpmp_rx: shmem@4f000 {
188 compatible = "nvidia,tegra186-bpmp-shmem";
189 reg = <0x0 0x4f000 0x0 0x1000>;
190 };
191 };
192
193 bpmp: bpmp {
194 compatible = "nvidia,tegra186-bpmp";
195 mboxes = <&hsp HSP_MBOX_TYPE_DB HSP_DB_MASTER_BPMP>;
196 /*
197 * In theory, these references, and the configuration in the
198 * node these reference point at, are board-specific, since
199 * they depend on the BCT's memory carve-out setup, the
200 * firmware that's actually loaded onto the BPMP, etc. However,
201 * in practice, all boards are likely to use identical values.
202 */
203 shmem = <&sysram_cpu_bpmp_tx &sysram_cpu_bpmp_rx>;
204 #clock-cells = <1>;
205 #power-domain-cells = <1>;
206 #reset-cells = <1>;
Stephen Warren23ab5bd2016-07-29 13:15:04 -0600207
208 bpmp_i2c: i2c {
209 compatible = "nvidia,tegra186-bpmp-i2c";
210 nvidia,bpmp = <&bpmp>;
211 nvidia,bpmp-bus-id = <5>;
212 #address-cells = <1>;
213 #size-cells = <0>;
214 status = "disabled";
215 };
Stephen Warren19014202016-07-27 15:24:51 -0600216 };
Stephen Warrenc7ba99c2016-05-12 13:32:55 -0600217};