WIP FPC-III support
[linux/fpc-iii.git] / arch / arm64 / boot / dts / nvidia / tegra186.dtsi
blob58c51965df479e705023ea60b45bf2ff85378f21
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>
12 / {
13         compatible = "nvidia,tegra186";
14         interrupt-parent = <&gic>;
15         #address-cells = <2>;
16         #size-cells = <2>;
18         misc@100000 {
19                 compatible = "nvidia,tegra186-misc";
20                 reg = <0x0 0x00100000 0x0 0xf000>,
21                       <0x0 0x0010f000 0x0 0x1000>;
22         };
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         };
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";
69                 snps,write-requests = <1>;
70                 snps,read-requests = <3>;
71                 snps,burst-map = <0x7>;
72                 snps,txpbl = <32>;
73                 snps,rxpbl = <8>;
74         };
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";
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                 };
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                 };
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";
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                         };
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                         };
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                         };
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                         };
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                         };
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                         };
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                         };
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                         };
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                         };
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                         };
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                         };
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                         };
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         };
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";
366                 #interconnect-cells = <1>;
367                 #address-cells = <2>;
368                 #size-cells = <2>;
370                 ranges = <0x0 0x02c00000 0x0 0x02c00000 0x0 0xb0000>;
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>;
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";
385                         #interconnect-cells = <0>;
387                         nvidia,bpmp = <&bpmp>;
388                 };
389         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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>;
690                 resets = <&bpmp TEGRA186_RESET_XUSB_PADCTL>;
691                 reset-names = "padctl";
693                 status = "disabled";
695                 pads {
696                         usb2 {
697                                 clocks = <&bpmp TEGRA186_CLK_USB2_TRK>;
698                                 clock-names = "trk";
699                                 status = "disabled";
701                                 lanes {
702                                         usb2-0 {
703                                                 status = "disabled";
704                                                 #phy-cells = <0>;
705                                         };
707                                         usb2-1 {
708                                                 status = "disabled";
709                                                 #phy-cells = <0>;
710                                         };
712                                         usb2-2 {
713                                                 status = "disabled";
714                                                 #phy-cells = <0>;
715                                         };
716                                 };
717                         };
719                         hsic {
720                                 clocks = <&bpmp TEGRA186_CLK_HSIC_TRK>;
721                                 clock-names = "trk";
722                                 status = "disabled";
724                                 lanes {
725                                         hsic-0 {
726                                                 status = "disabled";
727                                                 #phy-cells = <0>;
728                                         };
729                                 };
730                         };
732                         usb3 {
733                                 status = "disabled";
735                                 lanes {
736                                         usb3-0 {
737                                                 status = "disabled";
738                                                 #phy-cells = <0>;
739                                         };
741                                         usb3-1 {
742                                                 status = "disabled";
743                                                 #phy-cells = <0>;
744                                         };
746                                         usb3-2 {
747                                                 status = "disabled";
748                                                 #phy-cells = <0>;
749                                         };
750                                 };
751                         };
752                 };
754                 ports {
755                         usb2-0 {
756                                 status = "disabled";
757                         };
759                         usb2-1 {
760                                 status = "disabled";
761                         };
763                         usb2-2 {
764                                 status = "disabled";
765                         };
767                         hsic-0 {
768                                 status = "disabled";
769                         };
771                         usb3-0 {
772                                 status = "disabled";
773                         };
775                         usb3-1 {
776                                 status = "disabled";
777                         };
779                         usb3-2 {
780                                 status = "disabled";
781                         };
782                 };
783         };
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";
815                 nvidia,xusb-padctl = <&padctl>;
816         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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         };
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";
955                 #interrupt-cells = <2>;
956                 interrupt-controller;
958                 sdmmc1_3v3: sdmmc1-3v3 {
959                         pins = "sdmmc1-hv";
960                         power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
961                 };
963                 sdmmc1_1v8: sdmmc1-1v8 {
964                         pins = "sdmmc1-hv";
965                         power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
966                 };
968                 sdmmc2_3v3: sdmmc2-3v3 {
969                         pins = "sdmmc2-hv";
970                         power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
971                 };
973                 sdmmc2_1v8: sdmmc2-1v8 {
974                         pins = "sdmmc2-hv";
975                         power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
976                 };
978                 sdmmc3_3v3: sdmmc3-3v3 {
979                         pins = "sdmmc3-hv";
980                         power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
981                 };
983                 sdmmc3_1v8: sdmmc3-1v8 {
984                         pins = "sdmmc3-hv";
985                         power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
986                 };
987         };
989         ccplex@e000000 {
990                 compatible = "nvidia,tegra186-ccplex-cluster";
991                 reg = <0x0 0x0e000000 0x0 0x3fffff>;
993                 nvidia,bpmp = <&bpmp>;
994         };
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";
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";
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>;
1013                 bus-range = <0x00 0xff>;
1014                 #address-cells = <3>;
1015                 #size-cells = <2>;
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) */
1024                 clocks = <&bpmp TEGRA186_CLK_PCIE>,
1025                          <&bpmp TEGRA186_CLK_AFI>,
1026                          <&bpmp TEGRA186_CLK_PLLE>;
1027                 clock-names = "pex", "afi", "pll_e";
1029                 resets = <&bpmp TEGRA186_RESET_PCIE>,
1030                          <&bpmp TEGRA186_RESET_AFI>,
1031                          <&bpmp TEGRA186_RESET_PCIEXCLK>;
1032                 reset-names = "pex", "afi", "pcie_x";
1034                 interconnects = <&mc TEGRA186_MEMORY_CLIENT_AFIR &emc>,
1035                                 <&mc TEGRA186_MEMORY_CLIENT_AFIW &emc>;
1036                 interconnect-names = "dma-mem", "write";
1038                 iommus = <&smmu TEGRA186_SID_AFI>;
1039                 iommu-map = <0x0 &smmu TEGRA186_SID_AFI 0x1000>;
1040                 iommu-map-mask = <0x0>;
1042                 status = "disabled";
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";
1050                         #address-cells = <3>;
1051                         #size-cells = <2>;
1052                         ranges;
1054                         nvidia,num-lanes = <2>;
1055                 };
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";
1063                         #address-cells = <3>;
1064                         #size-cells = <2>;
1065                         ranges;
1067                         nvidia,num-lanes = <1>;
1068                 };
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";
1076                         #address-cells = <3>;
1077                         #size-cells = <2>;
1078                         ranges;
1080                         nvidia,num-lanes = <1>;
1081                 };
1082         };
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         };
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";
1170                 #address-cells = <1>;
1171                 #size-cells = <1>;
1173                 ranges = <0x15000000 0x0 0x15000000 0x01000000>;
1175                 interconnects = <&mc TEGRA186_MEMORY_CLIENT_HOST1XDMAR &emc>;
1176                 interconnect-names = "dma-mem";
1178                 iommus = <&smmu TEGRA186_SID_HOST1X>;
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";
1191                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1193                         state_dpaux1_aux: pinmux-aux {
1194                                 groups = "dpaux-io";
1195                                 function = "aux";
1196                         };
1198                         state_dpaux1_i2c: pinmux-i2c {
1199                                 groups = "dpaux-io";
1200                                 function = "i2c";
1201                         };
1203                         state_dpaux1_off: pinmux-off {
1204                                 groups = "dpaux-io";
1205                                 function = "off";
1206                         };
1208                         i2c-bus {
1209                                 #address-cells = <1>;
1210                                 #size-cells = <0>;
1211                         };
1212                 };
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";
1232                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1234                         #address-cells = <1>;
1235                         #size-cells = <1>;
1237                         ranges = <0x15200000 0x15200000 0x40000>;
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";
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>;
1254                                 nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
1255                                 nvidia,head = <0>;
1256                         };
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";
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>;
1273                                 nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
1274                                 nvidia,head = <1>;
1275                         };
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";
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>;
1292                                 nvidia,outputs = <&sor0 &sor1>;
1293                                 nvidia,head = <2>;
1294                         };
1295                 };
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";
1309                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1310                 };
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";
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                 };
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";
1340                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1341                 };
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";
1363                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1364                         nvidia,interface = <0>;
1365                 };
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";
1387                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1388                         nvidia,interface = <1>;
1389                 };
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";
1402                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1404                         state_dpaux_aux: pinmux-aux {
1405                                 groups = "dpaux-io";
1406                                 function = "aux";
1407                         };
1409                         state_dpaux_i2c: pinmux-i2c {
1410                                 groups = "dpaux-io";
1411                                 function = "i2c";
1412                         };
1414                         state_dpaux_off: pinmux-off {
1415                                 groups = "dpaux-io";
1416                                 function = "off";
1417                         };
1419                         i2c-bus {
1420                                 #address-cells = <1>;
1421                                 #size-cells = <0>;
1422                         };
1423                 };
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                 };
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";
1445                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1446                 };
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";
1460                         power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
1461                 };
1462         };
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";
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";
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         };
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>;
1494                 cpu_bpmp_tx: sram@4e000 {
1495                         reg = <0x4e000 0x1000>;
1496                         label = "cpu-bpmp-tx";
1497                         pool;
1498                 };
1500                 cpu_bpmp_rx: sram@4f000 {
1501                         reg = <0x4f000 0x1000>;
1502                         label = "cpu-bpmp-rx";
1503                         pool;
1504                 };
1505         };
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>;
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>;
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         };
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>;
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                 };
1558                 bpmp_thermal: thermal {
1559                         compatible = "nvidia,tegra186-bpmp-thermal";
1560                         #thermal-sensor-cells = <1>;
1561                 };
1562         };
1564         cpus {
1565                 #address-cells = <1>;
1566                 #size-cells = <0>;
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                 };
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                 };
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                 };
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                 };
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                 };
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                 };
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                 };
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         };
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         };
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         };
1681         thermal-zones {
1682                 a57 {
1683                         polling-delay = <0>;
1684                         polling-delay-passive = <1000>;
1686                         thermal-sensors =
1687                                 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_CPU>;
1689                         trips {
1690                                 critical {
1691                                         temperature = <101000>;
1692                                         hysteresis = <0>;
1693                                         type = "critical";
1694                                 };
1695                         };
1697                         cooling-maps {
1698                         };
1699                 };
1701                 denver {
1702                         polling-delay = <0>;
1703                         polling-delay-passive = <1000>;
1705                         thermal-sensors =
1706                                 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AUX>;
1708                         trips {
1709                                 critical {
1710                                         temperature = <101000>;
1711                                         hysteresis = <0>;
1712                                         type = "critical";
1713                                 };
1714                         };
1716                         cooling-maps {
1717                         };
1718                 };
1720                 gpu {
1721                         polling-delay = <0>;
1722                         polling-delay-passive = <1000>;
1724                         thermal-sensors =
1725                                 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_GPU>;
1727                         trips {
1728                                 critical {
1729                                         temperature = <101000>;
1730                                         hysteresis = <0>;
1731                                         type = "critical";
1732                                 };
1733                         };
1735                         cooling-maps {
1736                         };
1737                 };
1739                 pll {
1740                         polling-delay = <0>;
1741                         polling-delay-passive = <1000>;
1743                         thermal-sensors =
1744                                 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_PLLX>;
1746                         trips {
1747                                 critical {
1748                                         temperature = <101000>;
1749                                         hysteresis = <0>;
1750                                         type = "critical";
1751                                 };
1752                         };
1754                         cooling-maps {
1755                         };
1756                 };
1758                 always_on {
1759                         polling-delay = <0>;
1760                         polling-delay-passive = <1000>;
1762                         thermal-sensors =
1763                                 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AO>;
1765                         trips {
1766                                 critical {
1767                                         temperature = <101000>;
1768                                         hysteresis = <0>;
1769                                         type = "critical";
1770                                 };
1771                         };
1773                         cooling-maps {
1774                         };
1775                 };
1776         };
1778         timer {
1779                 compatible = "arm,armv8-timer";
1780                 interrupts = <GIC_PPI 13
1781                                 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1782                              <GIC_PPI 14
1783                                 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1784                              <GIC_PPI 11
1785                                 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1786                              <GIC_PPI 10
1787                                 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1788                 interrupt-parent = <&gic>;
1789                 always-on;
1790         };