1// SPDX-License-Identifier: GPL-2.0 2#include <dt-bindings/clock/tegra20-car.h> 3#include <dt-bindings/gpio/tegra-gpio.h> 4#include <dt-bindings/memory/tegra20-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,tegra20"; 11 interrupt-parent = <&lic>; 12 #address-cells = <1>; 13 #size-cells = <1>; 14 15 memory@0 { 16 device_type = "memory"; 17 reg = <0 0>; 18 }; 19 20 sram@40000000 { 21 compatible = "mmio-sram"; 22 reg = <0x40000000 0x40000>; 23 #address-cells = <1>; 24 #size-cells = <1>; 25 ranges = <0 0x40000000 0x40000>; 26 27 vde_pool: sram@400 { 28 reg = <0x400 0x3fc00>; 29 pool; 30 }; 31 }; 32 33 host1x@50000000 { 34 compatible = "nvidia,tegra20-host1x"; 35 reg = <0x50000000 0x00024000>; 36 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ 37 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */ 38 interrupt-names = "syncpt", "host1x"; 39 clocks = <&tegra_car TEGRA20_CLK_HOST1X>; 40 clock-names = "host1x"; 41 resets = <&tegra_car 28>; 42 reset-names = "host1x"; 43 44 #address-cells = <1>; 45 #size-cells = <1>; 46 47 ranges = <0x54000000 0x54000000 0x04000000>; 48 49 mpe@54040000 { 50 compatible = "nvidia,tegra20-mpe"; 51 reg = <0x54040000 0x00040000>; 52 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 53 clocks = <&tegra_car TEGRA20_CLK_MPE>; 54 resets = <&tegra_car 60>; 55 reset-names = "mpe"; 56 }; 57 58 vi@54080000 { 59 compatible = "nvidia,tegra20-vi"; 60 reg = <0x54080000 0x00040000>; 61 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 62 clocks = <&tegra_car TEGRA20_CLK_VI>; 63 resets = <&tegra_car 20>; 64 reset-names = "vi"; 65 }; 66 67 epp@540c0000 { 68 compatible = "nvidia,tegra20-epp"; 69 reg = <0x540c0000 0x00040000>; 70 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 71 clocks = <&tegra_car TEGRA20_CLK_EPP>; 72 resets = <&tegra_car 19>; 73 reset-names = "epp"; 74 }; 75 76 isp@54100000 { 77 compatible = "nvidia,tegra20-isp"; 78 reg = <0x54100000 0x00040000>; 79 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 80 clocks = <&tegra_car TEGRA20_CLK_ISP>; 81 resets = <&tegra_car 23>; 82 reset-names = "isp"; 83 }; 84 85 gr2d@54140000 { 86 compatible = "nvidia,tegra20-gr2d"; 87 reg = <0x54140000 0x00040000>; 88 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 89 clocks = <&tegra_car TEGRA20_CLK_GR2D>; 90 resets = <&tegra_car 21>; 91 reset-names = "2d"; 92 }; 93 94 gr3d@54180000 { 95 compatible = "nvidia,tegra20-gr3d"; 96 reg = <0x54180000 0x00040000>; 97 clocks = <&tegra_car TEGRA20_CLK_GR3D>; 98 resets = <&tegra_car 24>; 99 reset-names = "3d"; 100 }; 101 102 dc@54200000 { 103 compatible = "nvidia,tegra20-dc"; 104 reg = <0x54200000 0x00040000>; 105 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 106 clocks = <&tegra_car TEGRA20_CLK_DISP1>, 107 <&tegra_car TEGRA20_CLK_PLL_P>; 108 clock-names = "dc", "parent"; 109 resets = <&tegra_car 27>; 110 reset-names = "dc"; 111 112 nvidia,head = <0>; 113 114 rgb { 115 status = "disabled"; 116 }; 117 }; 118 119 dc@54240000 { 120 compatible = "nvidia,tegra20-dc"; 121 reg = <0x54240000 0x00040000>; 122 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 123 clocks = <&tegra_car TEGRA20_CLK_DISP2>, 124 <&tegra_car TEGRA20_CLK_PLL_P>; 125 clock-names = "dc", "parent"; 126 resets = <&tegra_car 26>; 127 reset-names = "dc"; 128 129 nvidia,head = <1>; 130 131 rgb { 132 status = "disabled"; 133 }; 134 }; 135 136 hdmi@54280000 { 137 compatible = "nvidia,tegra20-hdmi"; 138 reg = <0x54280000 0x00040000>; 139 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 140 clocks = <&tegra_car TEGRA20_CLK_HDMI>, 141 <&tegra_car TEGRA20_CLK_PLL_D_OUT0>; 142 clock-names = "hdmi", "parent"; 143 resets = <&tegra_car 51>; 144 reset-names = "hdmi"; 145 status = "disabled"; 146 }; 147 148 tvo@542c0000 { 149 compatible = "nvidia,tegra20-tvo"; 150 reg = <0x542c0000 0x00040000>; 151 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 152 clocks = <&tegra_car TEGRA20_CLK_TVO>; 153 status = "disabled"; 154 }; 155 156 dsi@54300000 { 157 compatible = "nvidia,tegra20-dsi"; 158 reg = <0x54300000 0x00040000>; 159 clocks = <&tegra_car TEGRA20_CLK_DSI>, 160 <&tegra_car TEGRA20_CLK_PLL_D_OUT0>; 161 clock-names = "dsi", "parent"; 162 resets = <&tegra_car 48>; 163 reset-names = "dsi"; 164 status = "disabled"; 165 }; 166 }; 167 168 timer@50040600 { 169 compatible = "arm,cortex-a9-twd-timer"; 170 interrupt-parent = <&intc>; 171 reg = <0x50040600 0x20>; 172 interrupts = <GIC_PPI 13 173 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>; 174 clocks = <&tegra_car TEGRA20_CLK_TWD>; 175 }; 176 177 intc: interrupt-controller@50041000 { 178 compatible = "arm,cortex-a9-gic"; 179 reg = <0x50041000 0x1000>, 180 <0x50040100 0x0100>; 181 interrupt-controller; 182 #interrupt-cells = <3>; 183 interrupt-parent = <&intc>; 184 }; 185 186 cache-controller@50043000 { 187 compatible = "arm,pl310-cache"; 188 reg = <0x50043000 0x1000>; 189 arm,data-latency = <5 5 2>; 190 arm,tag-latency = <4 4 2>; 191 cache-unified; 192 cache-level = <2>; 193 }; 194 195 lic: interrupt-controller@60004000 { 196 compatible = "nvidia,tegra20-ictlr"; 197 reg = <0x60004000 0x100>, 198 <0x60004100 0x50>, 199 <0x60004200 0x50>, 200 <0x60004300 0x50>; 201 interrupt-controller; 202 #interrupt-cells = <3>; 203 interrupt-parent = <&intc>; 204 }; 205 206 timer@60005000 { 207 compatible = "nvidia,tegra20-timer"; 208 reg = <0x60005000 0x60>; 209 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 210 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 211 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 212 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 213 clocks = <&tegra_car TEGRA20_CLK_TIMER>; 214 }; 215 216 tegra_car: clock@60006000 { 217 compatible = "nvidia,tegra20-car"; 218 reg = <0x60006000 0x1000>; 219 #clock-cells = <1>; 220 #reset-cells = <1>; 221 }; 222 223 flow-controller@60007000 { 224 compatible = "nvidia,tegra20-flowctrl"; 225 reg = <0x60007000 0x1000>; 226 }; 227 228 apbdma: dma@6000a000 { 229 compatible = "nvidia,tegra20-apbdma"; 230 reg = <0x6000a000 0x1200>; 231 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 232 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 233 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 234 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, 235 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, 236 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, 237 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, 238 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, 239 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, 240 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, 241 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, 242 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 243 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 244 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 245 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 246 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 247 clocks = <&tegra_car TEGRA20_CLK_APBDMA>; 248 resets = <&tegra_car 34>; 249 reset-names = "dma"; 250 #dma-cells = <1>; 251 }; 252 253 ahb@6000c000 { 254 compatible = "nvidia,tegra20-ahb"; 255 reg = <0x6000c000 0x110>; /* AHB Arbitration + Gizmo Controller */ 256 }; 257 258 gpio: gpio@6000d000 { 259 compatible = "nvidia,tegra20-gpio"; 260 reg = <0x6000d000 0x1000>; 261 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 262 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 263 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 264 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 265 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 266 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 267 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 268 #gpio-cells = <2>; 269 gpio-controller; 270 #interrupt-cells = <2>; 271 interrupt-controller; 272 /* 273 gpio-ranges = <&pinmux 0 0 224>; 274 */ 275 }; 276 277 vde@6001a000 { 278 compatible = "nvidia,tegra20-vde"; 279 reg = <0x6001a000 0x1000>, /* Syntax Engine */ 280 <0x6001b000 0x1000>, /* Video Bitstream Engine */ 281 <0x6001c000 0x100>, /* Macroblock Engine */ 282 <0x6001c200 0x100>, /* Post-processing Engine */ 283 <0x6001c400 0x100>, /* Motion Compensation Engine */ 284 <0x6001c600 0x100>, /* Transform Engine */ 285 <0x6001c800 0x100>, /* Pixel prediction block */ 286 <0x6001ca00 0x100>, /* Video DMA */ 287 <0x6001d800 0x300>; /* Video frame controls */ 288 reg-names = "sxe", "bsev", "mbe", "ppe", "mce", 289 "tfe", "ppb", "vdma", "frameid"; 290 iram = <&vde_pool>; /* IRAM region */ 291 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */ 292 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */ 293 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */ 294 interrupt-names = "sync-token", "bsev", "sxe"; 295 clocks = <&tegra_car TEGRA20_CLK_VDE>; 296 reset-names = "vde", "mc"; 297 resets = <&tegra_car 61>, <&mc TEGRA20_MC_RESET_VDE>; 298 }; 299 300 apbmisc@70000800 { 301 compatible = "nvidia,tegra20-apbmisc"; 302 reg = <0x70000800 0x64>, /* Chip revision */ 303 <0x70000008 0x04>; /* Strapping options */ 304 }; 305 306 pinmux: pinmux@70000014 { 307 compatible = "nvidia,tegra20-pinmux"; 308 reg = <0x70000014 0x10>, /* Tri-state registers */ 309 <0x70000080 0x20>, /* Mux registers */ 310 <0x700000a0 0x14>, /* Pull-up/down registers */ 311 <0x70000868 0xa8>; /* Pad control registers */ 312 }; 313 314 das@70000c00 { 315 compatible = "nvidia,tegra20-das"; 316 reg = <0x70000c00 0x80>; 317 }; 318 319 tegra_ac97: ac97@70002000 { 320 compatible = "nvidia,tegra20-ac97"; 321 reg = <0x70002000 0x200>; 322 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 323 clocks = <&tegra_car TEGRA20_CLK_AC97>; 324 resets = <&tegra_car 3>; 325 reset-names = "ac97"; 326 dmas = <&apbdma 12>, <&apbdma 12>; 327 dma-names = "rx", "tx"; 328 status = "disabled"; 329 }; 330 331 tegra_i2s1: i2s@70002800 { 332 compatible = "nvidia,tegra20-i2s"; 333 reg = <0x70002800 0x200>; 334 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 335 clocks = <&tegra_car TEGRA20_CLK_I2S1>; 336 resets = <&tegra_car 11>; 337 reset-names = "i2s"; 338 dmas = <&apbdma 2>, <&apbdma 2>; 339 dma-names = "rx", "tx"; 340 status = "disabled"; 341 }; 342 343 tegra_i2s2: i2s@70002a00 { 344 compatible = "nvidia,tegra20-i2s"; 345 reg = <0x70002a00 0x200>; 346 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 347 clocks = <&tegra_car TEGRA20_CLK_I2S2>; 348 resets = <&tegra_car 18>; 349 reset-names = "i2s"; 350 dmas = <&apbdma 1>, <&apbdma 1>; 351 dma-names = "rx", "tx"; 352 status = "disabled"; 353 }; 354 355 /* 356 * There are two serial driver i.e. 8250 based simple serial 357 * driver and APB DMA based serial driver for higher baudrate 358 * and performace. To enable the 8250 based driver, the compatible 359 * is "nvidia,tegra20-uart" and to enable the APB DMA based serial 360 * driver, the compatible is "nvidia,tegra20-hsuart". 361 */ 362 uarta: serial@70006000 { 363 compatible = "nvidia,tegra20-uart"; 364 reg = <0x70006000 0x40>; 365 reg-shift = <2>; 366 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 367 clocks = <&tegra_car TEGRA20_CLK_UARTA>; 368 resets = <&tegra_car 6>; 369 reset-names = "serial"; 370 dmas = <&apbdma 8>, <&apbdma 8>; 371 dma-names = "rx", "tx"; 372 status = "disabled"; 373 }; 374 375 uartb: serial@70006040 { 376 compatible = "nvidia,tegra20-uart"; 377 reg = <0x70006040 0x40>; 378 reg-shift = <2>; 379 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 380 clocks = <&tegra_car TEGRA20_CLK_UARTB>; 381 resets = <&tegra_car 7>; 382 reset-names = "serial"; 383 dmas = <&apbdma 9>, <&apbdma 9>; 384 dma-names = "rx", "tx"; 385 status = "disabled"; 386 }; 387 388 uartc: serial@70006200 { 389 compatible = "nvidia,tegra20-uart"; 390 reg = <0x70006200 0x100>; 391 reg-shift = <2>; 392 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 393 clocks = <&tegra_car TEGRA20_CLK_UARTC>; 394 resets = <&tegra_car 55>; 395 reset-names = "serial"; 396 dmas = <&apbdma 10>, <&apbdma 10>; 397 dma-names = "rx", "tx"; 398 status = "disabled"; 399 }; 400 401 uartd: serial@70006300 { 402 compatible = "nvidia,tegra20-uart"; 403 reg = <0x70006300 0x100>; 404 reg-shift = <2>; 405 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 406 clocks = <&tegra_car TEGRA20_CLK_UARTD>; 407 resets = <&tegra_car 65>; 408 reset-names = "serial"; 409 dmas = <&apbdma 19>, <&apbdma 19>; 410 dma-names = "rx", "tx"; 411 status = "disabled"; 412 }; 413 414 uarte: serial@70006400 { 415 compatible = "nvidia,tegra20-uart"; 416 reg = <0x70006400 0x100>; 417 reg-shift = <2>; 418 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 419 clocks = <&tegra_car TEGRA20_CLK_UARTE>; 420 resets = <&tegra_car 66>; 421 reset-names = "serial"; 422 dmas = <&apbdma 20>, <&apbdma 20>; 423 dma-names = "rx", "tx"; 424 status = "disabled"; 425 }; 426 427 nand-controller@70008000 { 428 compatible = "nvidia,tegra20-nand"; 429 reg = <0x70008000 0x100>; 430 #address-cells = <1>; 431 #size-cells = <0>; 432 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 433 clocks = <&tegra_car TEGRA20_CLK_NDFLASH>; 434 clock-names = "nand"; 435 resets = <&tegra_car 13>; 436 reset-names = "nand"; 437 assigned-clocks = <&tegra_car TEGRA20_CLK_NDFLASH>; 438 assigned-clock-rates = <150000000>; 439 status = "disabled"; 440 }; 441 442 gmi@70009000 { 443 compatible = "nvidia,tegra20-gmi"; 444 reg = <0x70009000 0x1000>; 445 #address-cells = <2>; 446 #size-cells = <1>; 447 ranges = <0 0 0xd0000000 0xfffffff>; 448 clocks = <&tegra_car TEGRA20_CLK_NOR>; 449 clock-names = "gmi"; 450 resets = <&tegra_car 42>; 451 reset-names = "gmi"; 452 status = "disabled"; 453 }; 454 455 pwm: pwm@7000a000 { 456 compatible = "nvidia,tegra20-pwm"; 457 reg = <0x7000a000 0x100>; 458 #pwm-cells = <2>; 459 clocks = <&tegra_car TEGRA20_CLK_PWM>; 460 resets = <&tegra_car 17>; 461 reset-names = "pwm"; 462 status = "disabled"; 463 }; 464 465 rtc@7000e000 { 466 compatible = "nvidia,tegra20-rtc"; 467 reg = <0x7000e000 0x100>; 468 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 469 clocks = <&tegra_car TEGRA20_CLK_RTC>; 470 }; 471 472 i2c@7000c000 { 473 compatible = "nvidia,tegra20-i2c"; 474 reg = <0x7000c000 0x100>; 475 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 476 #address-cells = <1>; 477 #size-cells = <0>; 478 clocks = <&tegra_car TEGRA20_CLK_I2C1>, 479 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>; 480 clock-names = "div-clk", "fast-clk"; 481 resets = <&tegra_car 12>; 482 reset-names = "i2c"; 483 dmas = <&apbdma 21>, <&apbdma 21>; 484 dma-names = "rx", "tx"; 485 status = "disabled"; 486 }; 487 488 spi@7000c380 { 489 compatible = "nvidia,tegra20-sflash"; 490 reg = <0x7000c380 0x80>; 491 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 492 #address-cells = <1>; 493 #size-cells = <0>; 494 clocks = <&tegra_car TEGRA20_CLK_SPI>; 495 resets = <&tegra_car 43>; 496 reset-names = "spi"; 497 dmas = <&apbdma 11>, <&apbdma 11>; 498 dma-names = "rx", "tx"; 499 status = "disabled"; 500 }; 501 502 i2c@7000c400 { 503 compatible = "nvidia,tegra20-i2c"; 504 reg = <0x7000c400 0x100>; 505 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 506 #address-cells = <1>; 507 #size-cells = <0>; 508 clocks = <&tegra_car TEGRA20_CLK_I2C2>, 509 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>; 510 clock-names = "div-clk", "fast-clk"; 511 resets = <&tegra_car 54>; 512 reset-names = "i2c"; 513 dmas = <&apbdma 22>, <&apbdma 22>; 514 dma-names = "rx", "tx"; 515 status = "disabled"; 516 }; 517 518 i2c@7000c500 { 519 compatible = "nvidia,tegra20-i2c"; 520 reg = <0x7000c500 0x100>; 521 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 522 #address-cells = <1>; 523 #size-cells = <0>; 524 clocks = <&tegra_car TEGRA20_CLK_I2C3>, 525 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>; 526 clock-names = "div-clk", "fast-clk"; 527 resets = <&tegra_car 67>; 528 reset-names = "i2c"; 529 dmas = <&apbdma 23>, <&apbdma 23>; 530 dma-names = "rx", "tx"; 531 status = "disabled"; 532 }; 533 534 i2c@7000d000 { 535 compatible = "nvidia,tegra20-i2c-dvc"; 536 reg = <0x7000d000 0x200>; 537 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 538 #address-cells = <1>; 539 #size-cells = <0>; 540 clocks = <&tegra_car TEGRA20_CLK_DVC>, 541 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>; 542 clock-names = "div-clk", "fast-clk"; 543 resets = <&tegra_car 47>; 544 reset-names = "i2c"; 545 dmas = <&apbdma 24>, <&apbdma 24>; 546 dma-names = "rx", "tx"; 547 status = "disabled"; 548 }; 549 550 spi@7000d400 { 551 compatible = "nvidia,tegra20-slink"; 552 reg = <0x7000d400 0x200>; 553 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 554 #address-cells = <1>; 555 #size-cells = <0>; 556 clocks = <&tegra_car TEGRA20_CLK_SBC1>; 557 resets = <&tegra_car 41>; 558 reset-names = "spi"; 559 dmas = <&apbdma 15>, <&apbdma 15>; 560 dma-names = "rx", "tx"; 561 status = "disabled"; 562 }; 563 564 spi@7000d600 { 565 compatible = "nvidia,tegra20-slink"; 566 reg = <0x7000d600 0x200>; 567 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 568 #address-cells = <1>; 569 #size-cells = <0>; 570 clocks = <&tegra_car TEGRA20_CLK_SBC2>; 571 resets = <&tegra_car 44>; 572 reset-names = "spi"; 573 dmas = <&apbdma 16>, <&apbdma 16>; 574 dma-names = "rx", "tx"; 575 status = "disabled"; 576 }; 577 578 spi@7000d800 { 579 compatible = "nvidia,tegra20-slink"; 580 reg = <0x7000d800 0x200>; 581 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 582 #address-cells = <1>; 583 #size-cells = <0>; 584 clocks = <&tegra_car TEGRA20_CLK_SBC3>; 585 resets = <&tegra_car 46>; 586 reset-names = "spi"; 587 dmas = <&apbdma 17>, <&apbdma 17>; 588 dma-names = "rx", "tx"; 589 status = "disabled"; 590 }; 591 592 spi@7000da00 { 593 compatible = "nvidia,tegra20-slink"; 594 reg = <0x7000da00 0x200>; 595 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 596 #address-cells = <1>; 597 #size-cells = <0>; 598 clocks = <&tegra_car TEGRA20_CLK_SBC4>; 599 resets = <&tegra_car 68>; 600 reset-names = "spi"; 601 dmas = <&apbdma 18>, <&apbdma 18>; 602 dma-names = "rx", "tx"; 603 status = "disabled"; 604 }; 605 606 kbc@7000e200 { 607 compatible = "nvidia,tegra20-kbc"; 608 reg = <0x7000e200 0x100>; 609 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 610 clocks = <&tegra_car TEGRA20_CLK_KBC>; 611 resets = <&tegra_car 36>; 612 reset-names = "kbc"; 613 status = "disabled"; 614 }; 615 616 tegra_pmc: pmc@7000e400 { 617 compatible = "nvidia,tegra20-pmc"; 618 reg = <0x7000e400 0x400>; 619 clocks = <&tegra_car TEGRA20_CLK_PCLK>, <&clk32k_in>; 620 clock-names = "pclk", "clk32k_in"; 621 #clock-cells = <1>; 622 }; 623 624 mc: memory-controller@7000f000 { 625 compatible = "nvidia,tegra20-mc-gart"; 626 reg = <0x7000f000 0x00000400>, /* controller registers */ 627 <0x58000000 0x02000000>; /* GART aperture */ 628 clocks = <&tegra_car TEGRA20_CLK_MC>; 629 clock-names = "mc"; 630 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 631 #reset-cells = <1>; 632 #iommu-cells = <0>; 633 }; 634 635 memory-controller@7000f400 { 636 compatible = "nvidia,tegra20-emc"; 637 reg = <0x7000f400 0x200>; 638 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 639 clocks = <&tegra_car TEGRA20_CLK_EMC>; 640 #address-cells = <1>; 641 #size-cells = <0>; 642 }; 643 644 fuse@7000f800 { 645 compatible = "nvidia,tegra20-efuse"; 646 reg = <0x7000f800 0x400>; 647 clocks = <&tegra_car TEGRA20_CLK_FUSE>; 648 clock-names = "fuse"; 649 resets = <&tegra_car 39>; 650 reset-names = "fuse"; 651 }; 652 653 pcie@80003000 { 654 compatible = "nvidia,tegra20-pcie"; 655 device_type = "pci"; 656 reg = <0x80003000 0x00000800>, /* PADS registers */ 657 <0x80003800 0x00000200>, /* AFI registers */ 658 <0x90000000 0x10000000>; /* configuration space */ 659 reg-names = "pads", "afi", "cs"; 660 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ 661 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ 662 interrupt-names = "intr", "msi"; 663 664 #interrupt-cells = <1>; 665 interrupt-map-mask = <0 0 0 0>; 666 interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 667 668 bus-range = <0x00 0xff>; 669 #address-cells = <3>; 670 #size-cells = <2>; 671 672 ranges = <0x02000000 0 0x80000000 0x80000000 0 0x00001000>, /* port 0 registers */ 673 <0x02000000 0 0x80001000 0x80001000 0 0x00001000>, /* port 1 registers */ 674 <0x01000000 0 0 0x82000000 0 0x00010000>, /* downstream I/O */ 675 <0x02000000 0 0xa0000000 0xa0000000 0 0x08000000>, /* non-prefetchable memory */ 676 <0x42000000 0 0xa8000000 0xa8000000 0 0x18000000>; /* prefetchable memory */ 677 678 clocks = <&tegra_car TEGRA20_CLK_PEX>, 679 <&tegra_car TEGRA20_CLK_AFI>, 680 <&tegra_car TEGRA20_CLK_PLL_E>; 681 clock-names = "pex", "afi", "pll_e"; 682 resets = <&tegra_car 70>, 683 <&tegra_car 72>, 684 <&tegra_car 74>; 685 reset-names = "pex", "afi", "pcie_x"; 686 status = "disabled"; 687 688 pci@1,0 { 689 device_type = "pci"; 690 assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>; 691 reg = <0x000800 0 0 0 0>; 692 bus-range = <0x00 0xff>; 693 status = "disabled"; 694 695 #address-cells = <3>; 696 #size-cells = <2>; 697 ranges; 698 699 nvidia,num-lanes = <2>; 700 }; 701 702 pci@2,0 { 703 device_type = "pci"; 704 assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>; 705 reg = <0x001000 0 0 0 0>; 706 bus-range = <0x00 0xff>; 707 status = "disabled"; 708 709 #address-cells = <3>; 710 #size-cells = <2>; 711 ranges; 712 713 nvidia,num-lanes = <2>; 714 }; 715 }; 716 717 usb@c5000000 { 718 compatible = "nvidia,tegra20-ehci", "usb-ehci"; 719 reg = <0xc5000000 0x4000>; 720 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 721 phy_type = "utmi"; 722 nvidia,has-legacy-mode; 723 clocks = <&tegra_car TEGRA20_CLK_USBD>; 724 resets = <&tegra_car 22>; 725 reset-names = "usb"; 726 nvidia,needs-double-reset; 727 nvidia,phy = <&phy1>; 728 status = "disabled"; 729 }; 730 731 phy1: usb-phy@c5000000 { 732 compatible = "nvidia,tegra20-usb-phy"; 733 reg = <0xc5000000 0x4000>, 734 <0xc5000000 0x4000>; 735 phy_type = "utmi"; 736 clocks = <&tegra_car TEGRA20_CLK_USBD>, 737 <&tegra_car TEGRA20_CLK_PLL_U>, 738 <&tegra_car TEGRA20_CLK_CLK_M>, 739 <&tegra_car TEGRA20_CLK_USBD>; 740 clock-names = "reg", "pll_u", "timer", "utmi-pads"; 741 resets = <&tegra_car 22>, <&tegra_car 22>; 742 reset-names = "usb", "utmi-pads"; 743 #phy-cells = <0>; 744 nvidia,has-legacy-mode; 745 nvidia,hssync-start-delay = <9>; 746 nvidia,idle-wait-delay = <17>; 747 nvidia,elastic-limit = <16>; 748 nvidia,term-range-adj = <6>; 749 nvidia,xcvr-setup = <9>; 750 nvidia,xcvr-lsfslew = <1>; 751 nvidia,xcvr-lsrslew = <1>; 752 nvidia,has-utmi-pad-registers; 753 status = "disabled"; 754 }; 755 756 usb@c5004000 { 757 compatible = "nvidia,tegra20-ehci", "usb-ehci"; 758 reg = <0xc5004000 0x4000>; 759 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 760 phy_type = "ulpi"; 761 clocks = <&tegra_car TEGRA20_CLK_USB2>; 762 resets = <&tegra_car 58>; 763 reset-names = "usb"; 764 nvidia,phy = <&phy2>; 765 status = "disabled"; 766 }; 767 768 phy2: usb-phy@c5004000 { 769 compatible = "nvidia,tegra20-usb-phy"; 770 reg = <0xc5004000 0x4000>; 771 phy_type = "ulpi"; 772 clocks = <&tegra_car TEGRA20_CLK_USB2>, 773 <&tegra_car TEGRA20_CLK_PLL_U>, 774 <&tegra_car TEGRA20_CLK_CDEV2>; 775 clock-names = "reg", "pll_u", "ulpi-link"; 776 resets = <&tegra_car 58>, <&tegra_car 22>; 777 reset-names = "usb", "utmi-pads"; 778 #phy-cells = <0>; 779 status = "disabled"; 780 }; 781 782 usb@c5008000 { 783 compatible = "nvidia,tegra20-ehci", "usb-ehci"; 784 reg = <0xc5008000 0x4000>; 785 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 786 phy_type = "utmi"; 787 clocks = <&tegra_car TEGRA20_CLK_USB3>; 788 resets = <&tegra_car 59>; 789 reset-names = "usb"; 790 nvidia,phy = <&phy3>; 791 status = "disabled"; 792 }; 793 794 phy3: usb-phy@c5008000 { 795 compatible = "nvidia,tegra20-usb-phy"; 796 reg = <0xc5008000 0x4000>, 797 <0xc5000000 0x4000>; 798 phy_type = "utmi"; 799 clocks = <&tegra_car TEGRA20_CLK_USB3>, 800 <&tegra_car TEGRA20_CLK_PLL_U>, 801 <&tegra_car TEGRA20_CLK_CLK_M>, 802 <&tegra_car TEGRA20_CLK_USBD>; 803 clock-names = "reg", "pll_u", "timer", "utmi-pads"; 804 resets = <&tegra_car 59>, <&tegra_car 22>; 805 reset-names = "usb", "utmi-pads"; 806 #phy-cells = <0>; 807 nvidia,hssync-start-delay = <9>; 808 nvidia,idle-wait-delay = <17>; 809 nvidia,elastic-limit = <16>; 810 nvidia,term-range-adj = <6>; 811 nvidia,xcvr-setup = <9>; 812 nvidia,xcvr-lsfslew = <2>; 813 nvidia,xcvr-lsrslew = <2>; 814 status = "disabled"; 815 }; 816 817 mmc@c8000000 { 818 compatible = "nvidia,tegra20-sdhci"; 819 reg = <0xc8000000 0x200>; 820 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 821 clocks = <&tegra_car TEGRA20_CLK_SDMMC1>; 822 clock-names = "sdhci"; 823 resets = <&tegra_car 14>; 824 reset-names = "sdhci"; 825 status = "disabled"; 826 }; 827 828 mmc@c8000200 { 829 compatible = "nvidia,tegra20-sdhci"; 830 reg = <0xc8000200 0x200>; 831 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 832 clocks = <&tegra_car TEGRA20_CLK_SDMMC2>; 833 clock-names = "sdhci"; 834 resets = <&tegra_car 9>; 835 reset-names = "sdhci"; 836 status = "disabled"; 837 }; 838 839 mmc@c8000400 { 840 compatible = "nvidia,tegra20-sdhci"; 841 reg = <0xc8000400 0x200>; 842 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 843 clocks = <&tegra_car TEGRA20_CLK_SDMMC3>; 844 clock-names = "sdhci"; 845 resets = <&tegra_car 69>; 846 reset-names = "sdhci"; 847 status = "disabled"; 848 }; 849 850 mmc@c8000600 { 851 compatible = "nvidia,tegra20-sdhci"; 852 reg = <0xc8000600 0x200>; 853 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 854 clocks = <&tegra_car TEGRA20_CLK_SDMMC4>; 855 clock-names = "sdhci"; 856 resets = <&tegra_car 15>; 857 reset-names = "sdhci"; 858 status = "disabled"; 859 }; 860 861 cpus { 862 #address-cells = <1>; 863 #size-cells = <0>; 864 865 cpu@0 { 866 device_type = "cpu"; 867 compatible = "arm,cortex-a9"; 868 reg = <0>; 869 clocks = <&tegra_car TEGRA20_CLK_CCLK>; 870 }; 871 872 cpu@1 { 873 device_type = "cpu"; 874 compatible = "arm,cortex-a9"; 875 reg = <1>; 876 clocks = <&tegra_car TEGRA20_CLK_CCLK>; 877 }; 878 }; 879 880 pmu { 881 compatible = "arm,cortex-a9-pmu"; 882 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 883 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 884 interrupt-affinity = <&{/cpus/cpu@0}>, 885 <&{/cpus/cpu@1}>; 886 }; 887}; 888