1// SPDX-License-Identifier: GPL-2.0 2#include <dt-bindings/clock/tegra30-car.h> 3#include <dt-bindings/gpio/tegra-gpio.h> 4#include <dt-bindings/memory/tegra30-mc.h> 5#include <dt-bindings/pinctrl/pinctrl-tegra.h> 6#include <dt-bindings/interrupt-controller/arm-gic.h> 7#include <dt-bindings/soc/tegra-pmc.h> 8 9/ { 10 compatible = "nvidia,tegra30"; 11 interrupt-parent = <&lic>; 12 #address-cells = <1>; 13 #size-cells = <1>; 14 15 memory@80000000 { 16 device_type = "memory"; 17 reg = <0x80000000 0x0>; 18 }; 19 20 pcie@3000 { 21 compatible = "nvidia,tegra30-pcie"; 22 device_type = "pci"; 23 reg = <0x00003000 0x00000800>, /* PADS registers */ 24 <0x00003800 0x00000200>, /* AFI registers */ 25 <0x10000000 0x10000000>; /* configuration space */ 26 reg-names = "pads", "afi", "cs"; 27 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ 28 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ 29 interrupt-names = "intr", "msi"; 30 31 #interrupt-cells = <1>; 32 interrupt-map-mask = <0 0 0 0>; 33 interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 34 35 bus-range = <0x00 0xff>; 36 #address-cells = <3>; 37 #size-cells = <2>; 38 39 ranges = <0x02000000 0 0x00000000 0x00000000 0 0x00001000>, /* port 0 configuration space */ 40 <0x02000000 0 0x00001000 0x00001000 0 0x00001000>, /* port 1 configuration space */ 41 <0x02000000 0 0x00004000 0x00004000 0 0x00001000>, /* port 2 configuration space */ 42 <0x01000000 0 0 0x02000000 0 0x00010000>, /* downstream I/O */ 43 <0x02000000 0 0x20000000 0x20000000 0 0x08000000>, /* non-prefetchable memory */ 44 <0x42000000 0 0x28000000 0x28000000 0 0x18000000>; /* prefetchable memory */ 45 46 clocks = <&tegra_car TEGRA30_CLK_PCIE>, 47 <&tegra_car TEGRA30_CLK_AFI>, 48 <&tegra_car TEGRA30_CLK_PLL_E>, 49 <&tegra_car TEGRA30_CLK_CML0>; 50 clock-names = "pex", "afi", "pll_e", "cml"; 51 resets = <&tegra_car 70>, 52 <&tegra_car 72>, 53 <&tegra_car 74>; 54 reset-names = "pex", "afi", "pcie_x"; 55 status = "disabled"; 56 57 pci@1,0 { 58 device_type = "pci"; 59 assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>; 60 reg = <0x000800 0 0 0 0>; 61 bus-range = <0x00 0xff>; 62 status = "disabled"; 63 64 #address-cells = <3>; 65 #size-cells = <2>; 66 ranges; 67 68 nvidia,num-lanes = <2>; 69 }; 70 71 pci@2,0 { 72 device_type = "pci"; 73 assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>; 74 reg = <0x001000 0 0 0 0>; 75 bus-range = <0x00 0xff>; 76 status = "disabled"; 77 78 #address-cells = <3>; 79 #size-cells = <2>; 80 ranges; 81 82 nvidia,num-lanes = <2>; 83 }; 84 85 pci@3,0 { 86 device_type = "pci"; 87 assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>; 88 reg = <0x001800 0 0 0 0>; 89 bus-range = <0x00 0xff>; 90 status = "disabled"; 91 92 #address-cells = <3>; 93 #size-cells = <2>; 94 ranges; 95 96 nvidia,num-lanes = <2>; 97 }; 98 }; 99 100 sram@40000000 { 101 compatible = "mmio-sram"; 102 reg = <0x40000000 0x40000>; 103 #address-cells = <1>; 104 #size-cells = <1>; 105 ranges = <0 0x40000000 0x40000>; 106 107 vde_pool: sram@400 { 108 reg = <0x400 0x3fc00>; 109 pool; 110 }; 111 }; 112 113 host1x@50000000 { 114 compatible = "nvidia,tegra30-host1x"; 115 reg = <0x50000000 0x00024000>; 116 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ 117 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */ 118 interrupt-names = "syncpt", "host1x"; 119 clocks = <&tegra_car TEGRA30_CLK_HOST1X>; 120 clock-names = "host1x"; 121 resets = <&tegra_car 28>; 122 reset-names = "host1x"; 123 iommus = <&mc TEGRA_SWGROUP_HC>; 124 125 #address-cells = <1>; 126 #size-cells = <1>; 127 128 ranges = <0x54000000 0x54000000 0x04000000>; 129 130 mpe@54040000 { 131 compatible = "nvidia,tegra30-mpe"; 132 reg = <0x54040000 0x00040000>; 133 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 134 clocks = <&tegra_car TEGRA30_CLK_MPE>; 135 resets = <&tegra_car 60>; 136 reset-names = "mpe"; 137 138 iommus = <&mc TEGRA_SWGROUP_MPE>; 139 }; 140 141 vi@54080000 { 142 compatible = "nvidia,tegra30-vi"; 143 reg = <0x54080000 0x00040000>; 144 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 145 clocks = <&tegra_car TEGRA30_CLK_VI>; 146 resets = <&tegra_car 20>; 147 reset-names = "vi"; 148 149 iommus = <&mc TEGRA_SWGROUP_VI>; 150 }; 151 152 epp@540c0000 { 153 compatible = "nvidia,tegra30-epp"; 154 reg = <0x540c0000 0x00040000>; 155 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 156 clocks = <&tegra_car TEGRA30_CLK_EPP>; 157 resets = <&tegra_car 19>; 158 reset-names = "epp"; 159 160 iommus = <&mc TEGRA_SWGROUP_EPP>; 161 }; 162 163 isp@54100000 { 164 compatible = "nvidia,tegra30-isp"; 165 reg = <0x54100000 0x00040000>; 166 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 167 clocks = <&tegra_car TEGRA30_CLK_ISP>; 168 resets = <&tegra_car 23>; 169 reset-names = "isp"; 170 171 iommus = <&mc TEGRA_SWGROUP_ISP>; 172 }; 173 174 gr2d@54140000 { 175 compatible = "nvidia,tegra30-gr2d"; 176 reg = <0x54140000 0x00040000>; 177 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 178 clocks = <&tegra_car TEGRA30_CLK_GR2D>; 179 resets = <&tegra_car 21>; 180 reset-names = "2d"; 181 182 iommus = <&mc TEGRA_SWGROUP_G2>; 183 }; 184 185 gr3d@54180000 { 186 compatible = "nvidia,tegra30-gr3d"; 187 reg = <0x54180000 0x00040000>; 188 clocks = <&tegra_car TEGRA30_CLK_GR3D>, 189 <&tegra_car TEGRA30_CLK_GR3D2>; 190 clock-names = "3d", "3d2"; 191 resets = <&tegra_car 24>, 192 <&tegra_car 98>; 193 reset-names = "3d", "3d2"; 194 195 iommus = <&mc TEGRA_SWGROUP_NV>, 196 <&mc TEGRA_SWGROUP_NV2>; 197 }; 198 199 dc@54200000 { 200 compatible = "nvidia,tegra30-dc"; 201 reg = <0x54200000 0x00040000>; 202 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 203 clocks = <&tegra_car TEGRA30_CLK_DISP1>, 204 <&tegra_car TEGRA30_CLK_PLL_P>; 205 clock-names = "dc", "parent"; 206 resets = <&tegra_car 27>; 207 reset-names = "dc"; 208 209 iommus = <&mc TEGRA_SWGROUP_DC>; 210 211 nvidia,head = <0>; 212 213 rgb { 214 status = "disabled"; 215 }; 216 }; 217 218 dc@54240000 { 219 compatible = "nvidia,tegra30-dc"; 220 reg = <0x54240000 0x00040000>; 221 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 222 clocks = <&tegra_car TEGRA30_CLK_DISP2>, 223 <&tegra_car TEGRA30_CLK_PLL_P>; 224 clock-names = "dc", "parent"; 225 resets = <&tegra_car 26>; 226 reset-names = "dc"; 227 228 iommus = <&mc TEGRA_SWGROUP_DCB>; 229 230 nvidia,head = <1>; 231 232 rgb { 233 status = "disabled"; 234 }; 235 }; 236 237 hdmi@54280000 { 238 compatible = "nvidia,tegra30-hdmi"; 239 reg = <0x54280000 0x00040000>; 240 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 241 clocks = <&tegra_car TEGRA30_CLK_HDMI>, 242 <&tegra_car TEGRA30_CLK_PLL_D2_OUT0>; 243 clock-names = "hdmi", "parent"; 244 resets = <&tegra_car 51>; 245 reset-names = "hdmi"; 246 status = "disabled"; 247 }; 248 249 tvo@542c0000 { 250 compatible = "nvidia,tegra30-tvo"; 251 reg = <0x542c0000 0x00040000>; 252 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 253 clocks = <&tegra_car TEGRA30_CLK_TVO>; 254 status = "disabled"; 255 }; 256 257 dsi@54300000 { 258 compatible = "nvidia,tegra30-dsi"; 259 reg = <0x54300000 0x00040000>; 260 clocks = <&tegra_car TEGRA30_CLK_DSIA>, 261 <&tegra_car TEGRA30_CLK_PLL_D_OUT0>; 262 clock-names = "dsi", "parent"; 263 resets = <&tegra_car 48>; 264 reset-names = "dsi"; 265 status = "disabled"; 266 }; 267 268 dsi@54400000 { 269 compatible = "nvidia,tegra30-dsi"; 270 reg = <0x54400000 0x00040000>; 271 clocks = <&tegra_car TEGRA30_CLK_DSIB>, 272 <&tegra_car TEGRA30_CLK_PLL_D_OUT0>; 273 clock-names = "dsi", "parent"; 274 resets = <&tegra_car 84>; 275 reset-names = "dsi"; 276 status = "disabled"; 277 }; 278 }; 279 280 timer@50040600 { 281 compatible = "arm,cortex-a9-twd-timer"; 282 reg = <0x50040600 0x20>; 283 interrupt-parent = <&intc>; 284 interrupts = <GIC_PPI 13 285 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 286 clocks = <&tegra_car TEGRA30_CLK_TWD>; 287 }; 288 289 intc: interrupt-controller@50041000 { 290 compatible = "arm,cortex-a9-gic"; 291 reg = <0x50041000 0x1000>, 292 <0x50040100 0x0100>; 293 interrupt-controller; 294 #interrupt-cells = <3>; 295 interrupt-parent = <&intc>; 296 }; 297 298 cache-controller@50043000 { 299 compatible = "arm,pl310-cache"; 300 reg = <0x50043000 0x1000>; 301 arm,data-latency = <6 6 2>; 302 arm,tag-latency = <5 5 2>; 303 cache-unified; 304 cache-level = <2>; 305 }; 306 307 lic: interrupt-controller@60004000 { 308 compatible = "nvidia,tegra30-ictlr"; 309 reg = <0x60004000 0x100>, 310 <0x60004100 0x50>, 311 <0x60004200 0x50>, 312 <0x60004300 0x50>, 313 <0x60004400 0x50>; 314 interrupt-controller; 315 #interrupt-cells = <3>; 316 interrupt-parent = <&intc>; 317 }; 318 319 timer@60005000 { 320 compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer"; 321 reg = <0x60005000 0x400>; 322 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 323 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 324 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 325 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 326 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 327 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 328 clocks = <&tegra_car TEGRA30_CLK_TIMER>; 329 }; 330 331 tegra_car: clock@60006000 { 332 compatible = "nvidia,tegra30-car"; 333 reg = <0x60006000 0x1000>; 334 #clock-cells = <1>; 335 #reset-cells = <1>; 336 }; 337 338 flow-controller@60007000 { 339 compatible = "nvidia,tegra30-flowctrl"; 340 reg = <0x60007000 0x1000>; 341 }; 342 343 apbdma: dma@6000a000 { 344 compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma"; 345 reg = <0x6000a000 0x1400>; 346 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 347 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 348 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 349 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, 350 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, 351 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, 352 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, 353 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, 354 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, 355 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, 356 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, 357 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 358 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 359 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 360 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 361 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 362 <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, 363 <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>, 364 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>, 365 <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, 366 <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>, 367 <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>, 368 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 369 <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, 370 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, 371 <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 372 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 373 <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>, 374 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, 375 <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 376 <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 377 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 378 clocks = <&tegra_car TEGRA30_CLK_APBDMA>; 379 resets = <&tegra_car 34>; 380 reset-names = "dma"; 381 #dma-cells = <1>; 382 }; 383 384 ahb: ahb@6000c000 { 385 compatible = "nvidia,tegra30-ahb"; 386 reg = <0x6000c000 0x150>; /* AHB Arbitration + Gizmo Controller */ 387 }; 388 389 actmon@6000c800 { 390 compatible = "nvidia,tegra30-actmon"; 391 reg = <0x6000c800 0x400>; 392 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 393 clocks = <&tegra_car TEGRA30_CLK_ACTMON>, 394 <&tegra_car TEGRA30_CLK_EMC>; 395 clock-names = "actmon", "emc"; 396 resets = <&tegra_car TEGRA30_CLK_ACTMON>; 397 reset-names = "actmon"; 398 }; 399 400 gpio: gpio@6000d000 { 401 compatible = "nvidia,tegra30-gpio"; 402 reg = <0x6000d000 0x1000>; 403 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 404 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 405 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 406 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 407 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 408 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 409 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, 410 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; 411 #gpio-cells = <2>; 412 gpio-controller; 413 #interrupt-cells = <2>; 414 interrupt-controller; 415 /* 416 gpio-ranges = <&pinmux 0 0 248>; 417 */ 418 }; 419 420 vde@6001a000 { 421 compatible = "nvidia,tegra30-vde", "nvidia,tegra20-vde"; 422 reg = <0x6001a000 0x1000>, /* Syntax Engine */ 423 <0x6001b000 0x1000>, /* Video Bitstream Engine */ 424 <0x6001c000 0x100>, /* Macroblock Engine */ 425 <0x6001c200 0x100>, /* Post-processing Engine */ 426 <0x6001c400 0x100>, /* Motion Compensation Engine */ 427 <0x6001c600 0x100>, /* Transform Engine */ 428 <0x6001c800 0x100>, /* Pixel prediction block */ 429 <0x6001ca00 0x100>, /* Video DMA */ 430 <0x6001d800 0x400>; /* Video frame controls */ 431 reg-names = "sxe", "bsev", "mbe", "ppe", "mce", 432 "tfe", "ppb", "vdma", "frameid"; 433 iram = <&vde_pool>; /* IRAM region */ 434 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */ 435 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */ 436 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */ 437 interrupt-names = "sync-token", "bsev", "sxe"; 438 clocks = <&tegra_car TEGRA30_CLK_VDE>; 439 reset-names = "vde", "mc"; 440 resets = <&tegra_car 61>, <&mc TEGRA30_MC_RESET_VDE>; 441 iommus = <&mc TEGRA_SWGROUP_VDE>; 442 }; 443 444 apbmisc@70000800 { 445 compatible = "nvidia,tegra30-apbmisc", "nvidia,tegra20-apbmisc"; 446 reg = <0x70000800 0x64>, /* Chip revision */ 447 <0x70000008 0x04>; /* Strapping options */ 448 }; 449 450 pinmux: pinmux@70000868 { 451 compatible = "nvidia,tegra30-pinmux"; 452 reg = <0x70000868 0x0d4>, /* Pad control registers */ 453 <0x70003000 0x3e4>; /* Mux registers */ 454 }; 455 456 /* 457 * There are two serial driver i.e. 8250 based simple serial 458 * driver and APB DMA based serial driver for higher baudrate 459 * and performace. To enable the 8250 based driver, the compatible 460 * is "nvidia,tegra30-uart", "nvidia,tegra20-uart" and to enable 461 * the APB DMA based serial driver, the compatible is 462 * "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart". 463 */ 464 uarta: serial@70006000 { 465 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart"; 466 reg = <0x70006000 0x40>; 467 reg-shift = <2>; 468 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 469 clocks = <&tegra_car TEGRA30_CLK_UARTA>; 470 resets = <&tegra_car 6>; 471 reset-names = "serial"; 472 dmas = <&apbdma 8>, <&apbdma 8>; 473 dma-names = "rx", "tx"; 474 status = "disabled"; 475 }; 476 477 uartb: serial@70006040 { 478 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart"; 479 reg = <0x70006040 0x40>; 480 reg-shift = <2>; 481 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 482 clocks = <&tegra_car TEGRA30_CLK_UARTB>; 483 resets = <&tegra_car 7>; 484 reset-names = "serial"; 485 dmas = <&apbdma 9>, <&apbdma 9>; 486 dma-names = "rx", "tx"; 487 status = "disabled"; 488 }; 489 490 uartc: serial@70006200 { 491 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart"; 492 reg = <0x70006200 0x100>; 493 reg-shift = <2>; 494 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 495 clocks = <&tegra_car TEGRA30_CLK_UARTC>; 496 resets = <&tegra_car 55>; 497 reset-names = "serial"; 498 dmas = <&apbdma 10>, <&apbdma 10>; 499 dma-names = "rx", "tx"; 500 status = "disabled"; 501 }; 502 503 uartd: serial@70006300 { 504 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart"; 505 reg = <0x70006300 0x100>; 506 reg-shift = <2>; 507 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 508 clocks = <&tegra_car TEGRA30_CLK_UARTD>; 509 resets = <&tegra_car 65>; 510 reset-names = "serial"; 511 dmas = <&apbdma 19>, <&apbdma 19>; 512 dma-names = "rx", "tx"; 513 status = "disabled"; 514 }; 515 516 uarte: serial@70006400 { 517 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart"; 518 reg = <0x70006400 0x100>; 519 reg-shift = <2>; 520 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 521 clocks = <&tegra_car TEGRA30_CLK_UARTE>; 522 resets = <&tegra_car 66>; 523 reset-names = "serial"; 524 dmas = <&apbdma 20>, <&apbdma 20>; 525 dma-names = "rx", "tx"; 526 status = "disabled"; 527 }; 528 529 gmi@70009000 { 530 compatible = "nvidia,tegra30-gmi"; 531 reg = <0x70009000 0x1000>; 532 #address-cells = <2>; 533 #size-cells = <1>; 534 ranges = <0 0 0x48000000 0x7ffffff>; 535 clocks = <&tegra_car TEGRA30_CLK_NOR>; 536 clock-names = "gmi"; 537 resets = <&tegra_car 42>; 538 reset-names = "gmi"; 539 status = "disabled"; 540 }; 541 542 pwm: pwm@7000a000 { 543 compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm"; 544 reg = <0x7000a000 0x100>; 545 #pwm-cells = <2>; 546 clocks = <&tegra_car TEGRA30_CLK_PWM>; 547 resets = <&tegra_car 17>; 548 reset-names = "pwm"; 549 status = "disabled"; 550 }; 551 552 rtc@7000e000 { 553 compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc"; 554 reg = <0x7000e000 0x100>; 555 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 556 clocks = <&tegra_car TEGRA30_CLK_RTC>; 557 }; 558 559 i2c@7000c000 { 560 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c"; 561 reg = <0x7000c000 0x100>; 562 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 563 #address-cells = <1>; 564 #size-cells = <0>; 565 clocks = <&tegra_car TEGRA30_CLK_I2C1>, 566 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>; 567 clock-names = "div-clk", "fast-clk"; 568 resets = <&tegra_car 12>; 569 reset-names = "i2c"; 570 dmas = <&apbdma 21>, <&apbdma 21>; 571 dma-names = "rx", "tx"; 572 status = "disabled"; 573 }; 574 575 i2c@7000c400 { 576 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c"; 577 reg = <0x7000c400 0x100>; 578 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 579 #address-cells = <1>; 580 #size-cells = <0>; 581 clocks = <&tegra_car TEGRA30_CLK_I2C2>, 582 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>; 583 clock-names = "div-clk", "fast-clk"; 584 resets = <&tegra_car 54>; 585 reset-names = "i2c"; 586 dmas = <&apbdma 22>, <&apbdma 22>; 587 dma-names = "rx", "tx"; 588 status = "disabled"; 589 }; 590 591 i2c@7000c500 { 592 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c"; 593 reg = <0x7000c500 0x100>; 594 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 595 #address-cells = <1>; 596 #size-cells = <0>; 597 clocks = <&tegra_car TEGRA30_CLK_I2C3>, 598 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>; 599 clock-names = "div-clk", "fast-clk"; 600 resets = <&tegra_car 67>; 601 reset-names = "i2c"; 602 dmas = <&apbdma 23>, <&apbdma 23>; 603 dma-names = "rx", "tx"; 604 status = "disabled"; 605 }; 606 607 i2c@7000c700 { 608 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c"; 609 reg = <0x7000c700 0x100>; 610 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 611 #address-cells = <1>; 612 #size-cells = <0>; 613 clocks = <&tegra_car TEGRA30_CLK_I2C4>, 614 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>; 615 resets = <&tegra_car 103>; 616 reset-names = "i2c"; 617 clock-names = "div-clk", "fast-clk"; 618 dmas = <&apbdma 26>, <&apbdma 26>; 619 dma-names = "rx", "tx"; 620 status = "disabled"; 621 }; 622 623 i2c@7000d000 { 624 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c"; 625 reg = <0x7000d000 0x100>; 626 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 627 #address-cells = <1>; 628 #size-cells = <0>; 629 clocks = <&tegra_car TEGRA30_CLK_I2C5>, 630 <&tegra_car TEGRA30_CLK_PLL_P_OUT3>; 631 clock-names = "div-clk", "fast-clk"; 632 resets = <&tegra_car 47>; 633 reset-names = "i2c"; 634 dmas = <&apbdma 24>, <&apbdma 24>; 635 dma-names = "rx", "tx"; 636 status = "disabled"; 637 }; 638 639 spi@7000d400 { 640 compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; 641 reg = <0x7000d400 0x200>; 642 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 643 #address-cells = <1>; 644 #size-cells = <0>; 645 clocks = <&tegra_car TEGRA30_CLK_SBC1>; 646 resets = <&tegra_car 41>; 647 reset-names = "spi"; 648 dmas = <&apbdma 15>, <&apbdma 15>; 649 dma-names = "rx", "tx"; 650 status = "disabled"; 651 }; 652 653 spi@7000d600 { 654 compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; 655 reg = <0x7000d600 0x200>; 656 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 657 #address-cells = <1>; 658 #size-cells = <0>; 659 clocks = <&tegra_car TEGRA30_CLK_SBC2>; 660 resets = <&tegra_car 44>; 661 reset-names = "spi"; 662 dmas = <&apbdma 16>, <&apbdma 16>; 663 dma-names = "rx", "tx"; 664 status = "disabled"; 665 }; 666 667 spi@7000d800 { 668 compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; 669 reg = <0x7000d800 0x200>; 670 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 671 #address-cells = <1>; 672 #size-cells = <0>; 673 clocks = <&tegra_car TEGRA30_CLK_SBC3>; 674 resets = <&tegra_car 46>; 675 reset-names = "spi"; 676 dmas = <&apbdma 17>, <&apbdma 17>; 677 dma-names = "rx", "tx"; 678 status = "disabled"; 679 }; 680 681 spi@7000da00 { 682 compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; 683 reg = <0x7000da00 0x200>; 684 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 685 #address-cells = <1>; 686 #size-cells = <0>; 687 clocks = <&tegra_car TEGRA30_CLK_SBC4>; 688 resets = <&tegra_car 68>; 689 reset-names = "spi"; 690 dmas = <&apbdma 18>, <&apbdma 18>; 691 dma-names = "rx", "tx"; 692 status = "disabled"; 693 }; 694 695 spi@7000dc00 { 696 compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; 697 reg = <0x7000dc00 0x200>; 698 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 699 #address-cells = <1>; 700 #size-cells = <0>; 701 clocks = <&tegra_car TEGRA30_CLK_SBC5>; 702 resets = <&tegra_car 104>; 703 reset-names = "spi"; 704 dmas = <&apbdma 27>, <&apbdma 27>; 705 dma-names = "rx", "tx"; 706 status = "disabled"; 707 }; 708 709 spi@7000de00 { 710 compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; 711 reg = <0x7000de00 0x200>; 712 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 713 #address-cells = <1>; 714 #size-cells = <0>; 715 clocks = <&tegra_car TEGRA30_CLK_SBC6>; 716 resets = <&tegra_car 106>; 717 reset-names = "spi"; 718 dmas = <&apbdma 28>, <&apbdma 28>; 719 dma-names = "rx", "tx"; 720 status = "disabled"; 721 }; 722 723 kbc@7000e200 { 724 compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc"; 725 reg = <0x7000e200 0x100>; 726 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 727 clocks = <&tegra_car TEGRA30_CLK_KBC>; 728 resets = <&tegra_car 36>; 729 reset-names = "kbc"; 730 status = "disabled"; 731 }; 732 733 tegra_pmc: pmc@7000e400 { 734 compatible = "nvidia,tegra30-pmc"; 735 reg = <0x7000e400 0x400>; 736 clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>; 737 clock-names = "pclk", "clk32k_in"; 738 #clock-cells = <1>; 739 }; 740 741 mc: memory-controller@7000f000 { 742 compatible = "nvidia,tegra30-mc"; 743 reg = <0x7000f000 0x400>; 744 clocks = <&tegra_car TEGRA30_CLK_MC>; 745 clock-names = "mc"; 746 747 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 748 749 #iommu-cells = <1>; 750 #reset-cells = <1>; 751 }; 752 753 memory-controller@7000f400 { 754 compatible = "nvidia,tegra30-emc"; 755 reg = <0x7000f400 0x400>; 756 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 757 clocks = <&tegra_car TEGRA30_CLK_EMC>; 758 759 nvidia,memory-controller = <&mc>; 760 }; 761 762 fuse@7000f800 { 763 compatible = "nvidia,tegra30-efuse"; 764 reg = <0x7000f800 0x400>; 765 clocks = <&tegra_car TEGRA30_CLK_FUSE>; 766 clock-names = "fuse"; 767 resets = <&tegra_car 39>; 768 reset-names = "fuse"; 769 }; 770 771 hda@70030000 { 772 compatible = "nvidia,tegra30-hda"; 773 reg = <0x70030000 0x10000>; 774 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 775 clocks = <&tegra_car TEGRA30_CLK_HDA>, 776 <&tegra_car TEGRA30_CLK_HDA2HDMI>, 777 <&tegra_car TEGRA30_CLK_HDA2CODEC_2X>; 778 clock-names = "hda", "hda2hdmi", "hda2codec_2x"; 779 resets = <&tegra_car 125>, /* hda */ 780 <&tegra_car 128>, /* hda2hdmi */ 781 <&tegra_car 111>; /* hda2codec_2x */ 782 reset-names = "hda", "hda2hdmi", "hda2codec_2x"; 783 status = "disabled"; 784 }; 785 786 ahub@70080000 { 787 compatible = "nvidia,tegra30-ahub"; 788 reg = <0x70080000 0x200>, 789 <0x70080200 0x100>; 790 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 791 clocks = <&tegra_car TEGRA30_CLK_D_AUDIO>, 792 <&tegra_car TEGRA30_CLK_APBIF>; 793 clock-names = "d_audio", "apbif"; 794 resets = <&tegra_car 106>, /* d_audio */ 795 <&tegra_car 107>, /* apbif */ 796 <&tegra_car 30>, /* i2s0 */ 797 <&tegra_car 11>, /* i2s1 */ 798 <&tegra_car 18>, /* i2s2 */ 799 <&tegra_car 101>, /* i2s3 */ 800 <&tegra_car 102>, /* i2s4 */ 801 <&tegra_car 108>, /* dam0 */ 802 <&tegra_car 109>, /* dam1 */ 803 <&tegra_car 110>, /* dam2 */ 804 <&tegra_car 10>; /* spdif */ 805 reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2", 806 "i2s3", "i2s4", "dam0", "dam1", "dam2", 807 "spdif"; 808 dmas = <&apbdma 1>, <&apbdma 1>, 809 <&apbdma 2>, <&apbdma 2>, 810 <&apbdma 3>, <&apbdma 3>, 811 <&apbdma 4>, <&apbdma 4>; 812 dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2", 813 "rx3", "tx3"; 814 ranges; 815 #address-cells = <1>; 816 #size-cells = <1>; 817 818 tegra_i2s0: i2s@70080300 { 819 compatible = "nvidia,tegra30-i2s"; 820 reg = <0x70080300 0x100>; 821 nvidia,ahub-cif-ids = <4 4>; 822 clocks = <&tegra_car TEGRA30_CLK_I2S0>; 823 resets = <&tegra_car 30>; 824 reset-names = "i2s"; 825 status = "disabled"; 826 }; 827 828 tegra_i2s1: i2s@70080400 { 829 compatible = "nvidia,tegra30-i2s"; 830 reg = <0x70080400 0x100>; 831 nvidia,ahub-cif-ids = <5 5>; 832 clocks = <&tegra_car TEGRA30_CLK_I2S1>; 833 resets = <&tegra_car 11>; 834 reset-names = "i2s"; 835 status = "disabled"; 836 }; 837 838 tegra_i2s2: i2s@70080500 { 839 compatible = "nvidia,tegra30-i2s"; 840 reg = <0x70080500 0x100>; 841 nvidia,ahub-cif-ids = <6 6>; 842 clocks = <&tegra_car TEGRA30_CLK_I2S2>; 843 resets = <&tegra_car 18>; 844 reset-names = "i2s"; 845 status = "disabled"; 846 }; 847 848 tegra_i2s3: i2s@70080600 { 849 compatible = "nvidia,tegra30-i2s"; 850 reg = <0x70080600 0x100>; 851 nvidia,ahub-cif-ids = <7 7>; 852 clocks = <&tegra_car TEGRA30_CLK_I2S3>; 853 resets = <&tegra_car 101>; 854 reset-names = "i2s"; 855 status = "disabled"; 856 }; 857 858 tegra_i2s4: i2s@70080700 { 859 compatible = "nvidia,tegra30-i2s"; 860 reg = <0x70080700 0x100>; 861 nvidia,ahub-cif-ids = <8 8>; 862 clocks = <&tegra_car TEGRA30_CLK_I2S4>; 863 resets = <&tegra_car 102>; 864 reset-names = "i2s"; 865 status = "disabled"; 866 }; 867 }; 868 869 mmc@78000000 { 870 compatible = "nvidia,tegra30-sdhci"; 871 reg = <0x78000000 0x200>; 872 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 873 clocks = <&tegra_car TEGRA30_CLK_SDMMC1>; 874 clock-names = "sdhci"; 875 resets = <&tegra_car 14>; 876 reset-names = "sdhci"; 877 status = "disabled"; 878 }; 879 880 mmc@78000200 { 881 compatible = "nvidia,tegra30-sdhci"; 882 reg = <0x78000200 0x200>; 883 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 884 clocks = <&tegra_car TEGRA30_CLK_SDMMC2>; 885 clock-names = "sdhci"; 886 resets = <&tegra_car 9>; 887 reset-names = "sdhci"; 888 status = "disabled"; 889 }; 890 891 mmc@78000400 { 892 compatible = "nvidia,tegra30-sdhci"; 893 reg = <0x78000400 0x200>; 894 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 895 clocks = <&tegra_car TEGRA30_CLK_SDMMC3>; 896 clock-names = "sdhci"; 897 resets = <&tegra_car 69>; 898 reset-names = "sdhci"; 899 status = "disabled"; 900 }; 901 902 mmc@78000600 { 903 compatible = "nvidia,tegra30-sdhci"; 904 reg = <0x78000600 0x200>; 905 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 906 clocks = <&tegra_car TEGRA30_CLK_SDMMC4>; 907 clock-names = "sdhci"; 908 resets = <&tegra_car 15>; 909 reset-names = "sdhci"; 910 status = "disabled"; 911 }; 912 913 usb@7d000000 { 914 compatible = "nvidia,tegra30-ehci", "usb-ehci"; 915 reg = <0x7d000000 0x4000>; 916 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 917 phy_type = "utmi"; 918 clocks = <&tegra_car TEGRA30_CLK_USBD>; 919 resets = <&tegra_car 22>; 920 reset-names = "usb"; 921 nvidia,needs-double-reset; 922 nvidia,phy = <&phy1>; 923 status = "disabled"; 924 }; 925 926 phy1: usb-phy@7d000000 { 927 compatible = "nvidia,tegra30-usb-phy"; 928 reg = <0x7d000000 0x4000>, 929 <0x7d000000 0x4000>; 930 phy_type = "utmi"; 931 clocks = <&tegra_car TEGRA30_CLK_USBD>, 932 <&tegra_car TEGRA30_CLK_PLL_U>, 933 <&tegra_car TEGRA30_CLK_USBD>; 934 clock-names = "reg", "pll_u", "utmi-pads"; 935 resets = <&tegra_car 22>, <&tegra_car 22>; 936 reset-names = "usb", "utmi-pads"; 937 #phy-cells = <0>; 938 nvidia,hssync-start-delay = <9>; 939 nvidia,idle-wait-delay = <17>; 940 nvidia,elastic-limit = <16>; 941 nvidia,term-range-adj = <6>; 942 nvidia,xcvr-setup = <51>; 943 nvidia,xcvr-setup-use-fuses; 944 nvidia,xcvr-lsfslew = <1>; 945 nvidia,xcvr-lsrslew = <1>; 946 nvidia,xcvr-hsslew = <32>; 947 nvidia,hssquelch-level = <2>; 948 nvidia,hsdiscon-level = <5>; 949 nvidia,has-utmi-pad-registers; 950 status = "disabled"; 951 }; 952 953 usb@7d004000 { 954 compatible = "nvidia,tegra30-ehci", "usb-ehci"; 955 reg = <0x7d004000 0x4000>; 956 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 957 phy_type = "utmi"; 958 clocks = <&tegra_car TEGRA30_CLK_USB2>; 959 resets = <&tegra_car 58>; 960 reset-names = "usb"; 961 nvidia,phy = <&phy2>; 962 status = "disabled"; 963 }; 964 965 phy2: usb-phy@7d004000 { 966 compatible = "nvidia,tegra30-usb-phy"; 967 reg = <0x7d004000 0x4000>, 968 <0x7d000000 0x4000>; 969 phy_type = "utmi"; 970 clocks = <&tegra_car TEGRA30_CLK_USB2>, 971 <&tegra_car TEGRA30_CLK_PLL_U>, 972 <&tegra_car TEGRA30_CLK_USBD>; 973 clock-names = "reg", "pll_u", "utmi-pads"; 974 resets = <&tegra_car 58>, <&tegra_car 22>; 975 reset-names = "usb", "utmi-pads"; 976 #phy-cells = <0>; 977 nvidia,hssync-start-delay = <9>; 978 nvidia,idle-wait-delay = <17>; 979 nvidia,elastic-limit = <16>; 980 nvidia,term-range-adj = <6>; 981 nvidia,xcvr-setup = <51>; 982 nvidia,xcvr-setup-use-fuses; 983 nvidia,xcvr-lsfslew = <2>; 984 nvidia,xcvr-lsrslew = <2>; 985 nvidia,xcvr-hsslew = <32>; 986 nvidia,hssquelch-level = <2>; 987 nvidia,hsdiscon-level = <5>; 988 status = "disabled"; 989 }; 990 991 usb@7d008000 { 992 compatible = "nvidia,tegra30-ehci", "usb-ehci"; 993 reg = <0x7d008000 0x4000>; 994 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 995 phy_type = "utmi"; 996 clocks = <&tegra_car TEGRA30_CLK_USB3>; 997 resets = <&tegra_car 59>; 998 reset-names = "usb"; 999 nvidia,phy = <&phy3>; 1000 status = "disabled"; 1001 }; 1002 1003 phy3: usb-phy@7d008000 { 1004 compatible = "nvidia,tegra30-usb-phy"; 1005 reg = <0x7d008000 0x4000>, 1006 <0x7d000000 0x4000>; 1007 phy_type = "utmi"; 1008 clocks = <&tegra_car TEGRA30_CLK_USB3>, 1009 <&tegra_car TEGRA30_CLK_PLL_U>, 1010 <&tegra_car TEGRA30_CLK_USBD>; 1011 clock-names = "reg", "pll_u", "utmi-pads"; 1012 resets = <&tegra_car 59>, <&tegra_car 22>; 1013 reset-names = "usb", "utmi-pads"; 1014 #phy-cells = <0>; 1015 nvidia,hssync-start-delay = <0>; 1016 nvidia,idle-wait-delay = <17>; 1017 nvidia,elastic-limit = <16>; 1018 nvidia,term-range-adj = <6>; 1019 nvidia,xcvr-setup = <51>; 1020 nvidia,xcvr-setup-use-fuses; 1021 nvidia,xcvr-lsfslew = <2>; 1022 nvidia,xcvr-lsrslew = <2>; 1023 nvidia,xcvr-hsslew = <32>; 1024 nvidia,hssquelch-level = <2>; 1025 nvidia,hsdiscon-level = <5>; 1026 status = "disabled"; 1027 }; 1028 1029 cpus { 1030 #address-cells = <1>; 1031 #size-cells = <0>; 1032 1033 cpu@0 { 1034 device_type = "cpu"; 1035 compatible = "arm,cortex-a9"; 1036 reg = <0>; 1037 clocks = <&tegra_car TEGRA30_CLK_CCLK_G>; 1038 }; 1039 1040 cpu@1 { 1041 device_type = "cpu"; 1042 compatible = "arm,cortex-a9"; 1043 reg = <1>; 1044 clocks = <&tegra_car TEGRA30_CLK_CCLK_G>; 1045 }; 1046 1047 cpu@2 { 1048 device_type = "cpu"; 1049 compatible = "arm,cortex-a9"; 1050 reg = <2>; 1051 clocks = <&tegra_car TEGRA30_CLK_CCLK_G>; 1052 }; 1053 1054 cpu@3 { 1055 device_type = "cpu"; 1056 compatible = "arm,cortex-a9"; 1057 reg = <3>; 1058 clocks = <&tegra_car TEGRA30_CLK_CCLK_G>; 1059 }; 1060 }; 1061 1062 pmu { 1063 compatible = "arm,cortex-a9-pmu"; 1064 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, 1065 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 1066 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 1067 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 1068 interrupt-affinity = <&{/cpus/cpu@0}>, 1069 <&{/cpus/cpu@1}>, 1070 <&{/cpus/cpu@2}>, 1071 <&{/cpus/cpu@3}>; 1072 }; 1073}; 1074