| .. | .. |
|---|
| 3 | 3 | #include <dt-bindings/clock/bcm2835-aux.h> |
|---|
| 4 | 4 | #include <dt-bindings/gpio/gpio.h> |
|---|
| 5 | 5 | #include <dt-bindings/interrupt-controller/irq.h> |
|---|
| 6 | +#include <dt-bindings/soc/bcm2835-pm.h> |
|---|
| 6 | 7 | |
|---|
| 7 | 8 | /* firmware-provided startup stubs live here, where the secondary CPUs are |
|---|
| 8 | 9 | * spinning. |
|---|
| .. | .. |
|---|
| 17 | 18 | / { |
|---|
| 18 | 19 | compatible = "brcm,bcm2835"; |
|---|
| 19 | 20 | model = "BCM2835"; |
|---|
| 20 | | - interrupt-parent = <&intc>; |
|---|
| 21 | 21 | #address-cells = <1>; |
|---|
| 22 | 22 | #size-cells = <1>; |
|---|
| 23 | 23 | |
|---|
| .. | .. |
|---|
| 30 | 30 | stdout-path = "serial0:115200n8"; |
|---|
| 31 | 31 | }; |
|---|
| 32 | 32 | |
|---|
| 33 | + rmem: reserved-memory { |
|---|
| 34 | + #address-cells = <1>; |
|---|
| 35 | + #size-cells = <1>; |
|---|
| 36 | + ranges; |
|---|
| 37 | + |
|---|
| 38 | + cma: linux,cma { |
|---|
| 39 | + compatible = "shared-dma-pool"; |
|---|
| 40 | + size = <0x4000000>; /* 64MB */ |
|---|
| 41 | + reusable; |
|---|
| 42 | + linux,cma-default; |
|---|
| 43 | + }; |
|---|
| 44 | + }; |
|---|
| 45 | + |
|---|
| 33 | 46 | thermal-zones { |
|---|
| 34 | 47 | cpu_thermal: cpu-thermal { |
|---|
| 35 | 48 | polling-delay-passive = <0>; |
|---|
| 36 | 49 | polling-delay = <1000>; |
|---|
| 37 | | - |
|---|
| 38 | | - thermal-sensors = <&thermal>; |
|---|
| 39 | 50 | |
|---|
| 40 | 51 | trips { |
|---|
| 41 | 52 | cpu-crit { |
|---|
| .. | .. |
|---|
| 55 | 66 | #address-cells = <1>; |
|---|
| 56 | 67 | #size-cells = <1>; |
|---|
| 57 | 68 | |
|---|
| 58 | | - timer@7e003000 { |
|---|
| 69 | + system_timer: timer@7e003000 { |
|---|
| 59 | 70 | compatible = "brcm,bcm2835-system-timer"; |
|---|
| 60 | 71 | reg = <0x7e003000 0x1000>; |
|---|
| 61 | 72 | interrupts = <1 0>, <1 1>, <1 2>, <1 3>; |
|---|
| .. | .. |
|---|
| 66 | 77 | clock-frequency = <1000000>; |
|---|
| 67 | 78 | }; |
|---|
| 68 | 79 | |
|---|
| 69 | | - txp@7e004000 { |
|---|
| 80 | + txp: txp@7e004000 { |
|---|
| 70 | 81 | compatible = "brcm,bcm2835-txp"; |
|---|
| 71 | 82 | reg = <0x7e004000 0x20>; |
|---|
| 72 | 83 | interrupts = <1 11>; |
|---|
| 73 | | - }; |
|---|
| 74 | | - |
|---|
| 75 | | - dma: dma@7e007000 { |
|---|
| 76 | | - compatible = "brcm,bcm2835-dma"; |
|---|
| 77 | | - reg = <0x7e007000 0xf00>; |
|---|
| 78 | | - interrupts = <1 16>, |
|---|
| 79 | | - <1 17>, |
|---|
| 80 | | - <1 18>, |
|---|
| 81 | | - <1 19>, |
|---|
| 82 | | - <1 20>, |
|---|
| 83 | | - <1 21>, |
|---|
| 84 | | - <1 22>, |
|---|
| 85 | | - <1 23>, |
|---|
| 86 | | - <1 24>, |
|---|
| 87 | | - <1 25>, |
|---|
| 88 | | - <1 26>, |
|---|
| 89 | | - /* dma channel 11-14 share one irq */ |
|---|
| 90 | | - <1 27>, |
|---|
| 91 | | - <1 27>, |
|---|
| 92 | | - <1 27>, |
|---|
| 93 | | - <1 27>, |
|---|
| 94 | | - /* unused shared irq for all channels */ |
|---|
| 95 | | - <1 28>; |
|---|
| 96 | | - interrupt-names = "dma0", |
|---|
| 97 | | - "dma1", |
|---|
| 98 | | - "dma2", |
|---|
| 99 | | - "dma3", |
|---|
| 100 | | - "dma4", |
|---|
| 101 | | - "dma5", |
|---|
| 102 | | - "dma6", |
|---|
| 103 | | - "dma7", |
|---|
| 104 | | - "dma8", |
|---|
| 105 | | - "dma9", |
|---|
| 106 | | - "dma10", |
|---|
| 107 | | - "dma11", |
|---|
| 108 | | - "dma12", |
|---|
| 109 | | - "dma13", |
|---|
| 110 | | - "dma14", |
|---|
| 111 | | - "dma-shared-all"; |
|---|
| 112 | | - #dma-cells = <1>; |
|---|
| 113 | | - brcm,dma-channel-mask = <0x7f35>; |
|---|
| 114 | | - }; |
|---|
| 115 | | - |
|---|
| 116 | | - intc: interrupt-controller@7e00b200 { |
|---|
| 117 | | - compatible = "brcm,bcm2835-armctrl-ic"; |
|---|
| 118 | | - reg = <0x7e00b200 0x200>; |
|---|
| 119 | | - interrupt-controller; |
|---|
| 120 | | - #interrupt-cells = <2>; |
|---|
| 121 | | - }; |
|---|
| 122 | | - |
|---|
| 123 | | - watchdog@7e100000 { |
|---|
| 124 | | - compatible = "brcm,bcm2835-pm-wdt"; |
|---|
| 125 | | - reg = <0x7e100000 0x28>; |
|---|
| 126 | 84 | }; |
|---|
| 127 | 85 | |
|---|
| 128 | 86 | clocks: cprman@7e101000 { |
|---|
| .. | .. |
|---|
| 137 | 95 | clocks = <&clk_osc>, |
|---|
| 138 | 96 | <&dsi0 0>, <&dsi0 1>, <&dsi0 2>, |
|---|
| 139 | 97 | <&dsi1 0>, <&dsi1 1>, <&dsi1 2>; |
|---|
| 140 | | - }; |
|---|
| 141 | | - |
|---|
| 142 | | - rng@7e104000 { |
|---|
| 143 | | - compatible = "brcm,bcm2835-rng"; |
|---|
| 144 | | - reg = <0x7e104000 0x10>; |
|---|
| 145 | | - interrupts = <2 29>; |
|---|
| 146 | 98 | }; |
|---|
| 147 | 99 | |
|---|
| 148 | 100 | mailbox: mailbox@7e00b880 { |
|---|
| .. | .. |
|---|
| 174 | 126 | interrupt-controller; |
|---|
| 175 | 127 | #interrupt-cells = <2>; |
|---|
| 176 | 128 | |
|---|
| 177 | | - /* Defines pin muxing groups according to |
|---|
| 178 | | - * BCM2835-ARM-Peripherals.pdf page 102. |
|---|
| 129 | + gpio-ranges = <&gpio 0 0 54>; |
|---|
| 130 | + |
|---|
| 131 | + /* Defines common pin muxing groups |
|---|
| 179 | 132 | * |
|---|
| 180 | 133 | * While each pin can have its mux selected |
|---|
| 181 | 134 | * for various functions individually, some |
|---|
| .. | .. |
|---|
| 253 | 206 | brcm,pins = <44 45>; |
|---|
| 254 | 207 | brcm,function = <BCM2835_FSEL_ALT2>; |
|---|
| 255 | 208 | }; |
|---|
| 256 | | - i2c_slave_gpio18: i2c_slave_gpio18 { |
|---|
| 257 | | - brcm,pins = <18 19 20 21>; |
|---|
| 258 | | - brcm,function = <BCM2835_FSEL_ALT3>; |
|---|
| 259 | | - }; |
|---|
| 260 | 209 | |
|---|
| 261 | | - jtag_gpio4: jtag_gpio4 { |
|---|
| 262 | | - brcm,pins = <4 5 6 12 13>; |
|---|
| 263 | | - brcm,function = <BCM2835_FSEL_ALT5>; |
|---|
| 264 | | - }; |
|---|
| 265 | 210 | jtag_gpio22: jtag_gpio22 { |
|---|
| 266 | 211 | brcm,pins = <22 23 24 25 26 27>; |
|---|
| 267 | 212 | brcm,function = <BCM2835_FSEL_ALT4>; |
|---|
| .. | .. |
|---|
| 274 | 219 | pcm_gpio28: pcm_gpio28 { |
|---|
| 275 | 220 | brcm,pins = <28 29 30 31>; |
|---|
| 276 | 221 | brcm,function = <BCM2835_FSEL_ALT2>; |
|---|
| 277 | | - }; |
|---|
| 278 | | - |
|---|
| 279 | | - pwm0_gpio12: pwm0_gpio12 { |
|---|
| 280 | | - brcm,pins = <12>; |
|---|
| 281 | | - brcm,function = <BCM2835_FSEL_ALT0>; |
|---|
| 282 | | - }; |
|---|
| 283 | | - pwm0_gpio18: pwm0_gpio18 { |
|---|
| 284 | | - brcm,pins = <18>; |
|---|
| 285 | | - brcm,function = <BCM2835_FSEL_ALT5>; |
|---|
| 286 | | - }; |
|---|
| 287 | | - pwm0_gpio40: pwm0_gpio40 { |
|---|
| 288 | | - brcm,pins = <40>; |
|---|
| 289 | | - brcm,function = <BCM2835_FSEL_ALT0>; |
|---|
| 290 | | - }; |
|---|
| 291 | | - pwm1_gpio13: pwm1_gpio13 { |
|---|
| 292 | | - brcm,pins = <13>; |
|---|
| 293 | | - brcm,function = <BCM2835_FSEL_ALT0>; |
|---|
| 294 | | - }; |
|---|
| 295 | | - pwm1_gpio19: pwm1_gpio19 { |
|---|
| 296 | | - brcm,pins = <19>; |
|---|
| 297 | | - brcm,function = <BCM2835_FSEL_ALT5>; |
|---|
| 298 | | - }; |
|---|
| 299 | | - pwm1_gpio41: pwm1_gpio41 { |
|---|
| 300 | | - brcm,pins = <41>; |
|---|
| 301 | | - brcm,function = <BCM2835_FSEL_ALT0>; |
|---|
| 302 | | - }; |
|---|
| 303 | | - pwm1_gpio45: pwm1_gpio45 { |
|---|
| 304 | | - brcm,pins = <45>; |
|---|
| 305 | | - brcm,function = <BCM2835_FSEL_ALT0>; |
|---|
| 306 | 222 | }; |
|---|
| 307 | 223 | |
|---|
| 308 | 224 | sdhost_gpio48: sdhost_gpio48 { |
|---|
| .. | .. |
|---|
| 386 | 302 | }; |
|---|
| 387 | 303 | |
|---|
| 388 | 304 | uart0: serial@7e201000 { |
|---|
| 389 | | - compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; |
|---|
| 390 | | - reg = <0x7e201000 0x1000>; |
|---|
| 305 | + compatible = "arm,pl011", "arm,primecell"; |
|---|
| 306 | + reg = <0x7e201000 0x200>; |
|---|
| 391 | 307 | interrupts = <2 25>; |
|---|
| 392 | 308 | clocks = <&clocks BCM2835_CLOCK_UART>, |
|---|
| 393 | 309 | <&clocks BCM2835_CLOCK_VPU>; |
|---|
| .. | .. |
|---|
| 400 | 316 | reg = <0x7e202000 0x100>; |
|---|
| 401 | 317 | interrupts = <2 24>; |
|---|
| 402 | 318 | clocks = <&clocks BCM2835_CLOCK_VPU>; |
|---|
| 403 | | - dmas = <&dma 13>; |
|---|
| 404 | | - dma-names = "rx-tx"; |
|---|
| 405 | 319 | status = "disabled"; |
|---|
| 406 | 320 | }; |
|---|
| 407 | 321 | |
|---|
| .. | .. |
|---|
| 409 | 323 | compatible = "brcm,bcm2835-i2s"; |
|---|
| 410 | 324 | reg = <0x7e203000 0x24>; |
|---|
| 411 | 325 | clocks = <&clocks BCM2835_CLOCK_PCM>; |
|---|
| 412 | | - |
|---|
| 413 | | - dmas = <&dma 2>, |
|---|
| 414 | | - <&dma 3>; |
|---|
| 415 | | - dma-names = "tx", "rx"; |
|---|
| 416 | 326 | status = "disabled"; |
|---|
| 417 | 327 | }; |
|---|
| 418 | 328 | |
|---|
| 419 | 329 | spi: spi@7e204000 { |
|---|
| 420 | 330 | compatible = "brcm,bcm2835-spi"; |
|---|
| 421 | | - reg = <0x7e204000 0x1000>; |
|---|
| 331 | + reg = <0x7e204000 0x200>; |
|---|
| 422 | 332 | interrupts = <2 22>; |
|---|
| 423 | 333 | clocks = <&clocks BCM2835_CLOCK_VPU>; |
|---|
| 424 | 334 | #address-cells = <1>; |
|---|
| .. | .. |
|---|
| 428 | 338 | |
|---|
| 429 | 339 | i2c0: i2c@7e205000 { |
|---|
| 430 | 340 | compatible = "brcm,bcm2835-i2c"; |
|---|
| 431 | | - reg = <0x7e205000 0x1000>; |
|---|
| 341 | + reg = <0x7e205000 0x200>; |
|---|
| 432 | 342 | interrupts = <2 21>; |
|---|
| 433 | 343 | clocks = <&clocks BCM2835_CLOCK_VPU>; |
|---|
| 434 | 344 | #address-cells = <1>; |
|---|
| 435 | 345 | #size-cells = <0>; |
|---|
| 436 | 346 | status = "disabled"; |
|---|
| 437 | | - }; |
|---|
| 438 | | - |
|---|
| 439 | | - pixelvalve@7e206000 { |
|---|
| 440 | | - compatible = "brcm,bcm2835-pixelvalve0"; |
|---|
| 441 | | - reg = <0x7e206000 0x100>; |
|---|
| 442 | | - interrupts = <2 13>; /* pwa0 */ |
|---|
| 443 | | - }; |
|---|
| 444 | | - |
|---|
| 445 | | - pixelvalve@7e207000 { |
|---|
| 446 | | - compatible = "brcm,bcm2835-pixelvalve1"; |
|---|
| 447 | | - reg = <0x7e207000 0x100>; |
|---|
| 448 | | - interrupts = <2 14>; /* pwa1 */ |
|---|
| 449 | 347 | }; |
|---|
| 450 | 348 | |
|---|
| 451 | 349 | dpi: dpi@7e208000 { |
|---|
| .. | .. |
|---|
| 476 | 374 | "dsi0_ddr2", |
|---|
| 477 | 375 | "dsi0_ddr"; |
|---|
| 478 | 376 | |
|---|
| 479 | | - status = "disabled"; |
|---|
| 480 | | - }; |
|---|
| 481 | | - |
|---|
| 482 | | - thermal: thermal@7e212000 { |
|---|
| 483 | | - compatible = "brcm,bcm2835-thermal"; |
|---|
| 484 | | - reg = <0x7e212000 0x8>; |
|---|
| 485 | | - clocks = <&clocks BCM2835_CLOCK_TSENS>; |
|---|
| 486 | | - #thermal-sensor-cells = <0>; |
|---|
| 487 | 377 | status = "disabled"; |
|---|
| 488 | 378 | }; |
|---|
| 489 | 379 | |
|---|
| .. | .. |
|---|
| 532 | 422 | status = "disabled"; |
|---|
| 533 | 423 | }; |
|---|
| 534 | 424 | |
|---|
| 535 | | - sdhci: sdhci@7e300000 { |
|---|
| 425 | + sdhci: mmc@7e300000 { |
|---|
| 536 | 426 | compatible = "brcm,bcm2835-sdhci"; |
|---|
| 537 | 427 | reg = <0x7e300000 0x100>; |
|---|
| 538 | 428 | interrupts = <2 30>; |
|---|
| .. | .. |
|---|
| 576 | 466 | status = "disabled"; |
|---|
| 577 | 467 | }; |
|---|
| 578 | 468 | |
|---|
| 579 | | - i2c2: i2c@7e805000 { |
|---|
| 580 | | - compatible = "brcm,bcm2835-i2c"; |
|---|
| 581 | | - reg = <0x7e805000 0x1000>; |
|---|
| 582 | | - interrupts = <2 21>; |
|---|
| 583 | | - clocks = <&clocks BCM2835_CLOCK_VPU>; |
|---|
| 584 | | - #address-cells = <1>; |
|---|
| 585 | | - #size-cells = <0>; |
|---|
| 586 | | - status = "disabled"; |
|---|
| 587 | | - }; |
|---|
| 588 | | - |
|---|
| 589 | 469 | vec: vec@7e806000 { |
|---|
| 590 | 470 | compatible = "brcm,bcm2835-vec"; |
|---|
| 591 | 471 | reg = <0x7e806000 0x1000>; |
|---|
| 592 | 472 | clocks = <&clocks BCM2835_CLOCK_VEC>; |
|---|
| 593 | 473 | interrupts = <2 27>; |
|---|
| 594 | | - status = "disabled"; |
|---|
| 595 | | - }; |
|---|
| 596 | | - |
|---|
| 597 | | - pixelvalve@7e807000 { |
|---|
| 598 | | - compatible = "brcm,bcm2835-pixelvalve2"; |
|---|
| 599 | | - reg = <0x7e807000 0x100>; |
|---|
| 600 | | - interrupts = <2 10>; /* pixelvalve */ |
|---|
| 601 | | - }; |
|---|
| 602 | | - |
|---|
| 603 | | - hdmi: hdmi@7e902000 { |
|---|
| 604 | | - compatible = "brcm,bcm2835-hdmi"; |
|---|
| 605 | | - reg = <0x7e902000 0x600>, |
|---|
| 606 | | - <0x7e808000 0x100>; |
|---|
| 607 | | - interrupts = <2 8>, <2 9>; |
|---|
| 608 | | - ddc = <&i2c2>; |
|---|
| 609 | | - clocks = <&clocks BCM2835_PLLH_PIX>, |
|---|
| 610 | | - <&clocks BCM2835_CLOCK_HSM>; |
|---|
| 611 | | - clock-names = "pixel", "hdmi"; |
|---|
| 612 | | - dmas = <&dma 17>; |
|---|
| 613 | | - dma-names = "audio-rx"; |
|---|
| 614 | 474 | status = "disabled"; |
|---|
| 615 | 475 | }; |
|---|
| 616 | 476 | |
|---|
| .. | .. |
|---|
| 625 | 485 | phys = <&usbphy>; |
|---|
| 626 | 486 | phy-names = "usb2-phy"; |
|---|
| 627 | 487 | }; |
|---|
| 628 | | - |
|---|
| 629 | | - v3d: v3d@7ec00000 { |
|---|
| 630 | | - compatible = "brcm,bcm2835-v3d"; |
|---|
| 631 | | - reg = <0x7ec00000 0x1000>; |
|---|
| 632 | | - interrupts = <1 10>; |
|---|
| 633 | | - }; |
|---|
| 634 | | - |
|---|
| 635 | | - vc4: gpu { |
|---|
| 636 | | - compatible = "brcm,bcm2835-vc4"; |
|---|
| 637 | | - }; |
|---|
| 638 | 488 | }; |
|---|
| 639 | 489 | |
|---|
| 640 | 490 | clocks { |
|---|
| 641 | | - compatible = "simple-bus"; |
|---|
| 642 | | - #address-cells = <1>; |
|---|
| 643 | | - #size-cells = <0>; |
|---|
| 644 | | - |
|---|
| 645 | 491 | /* The oscillator is the root of the clock tree. */ |
|---|
| 646 | | - clk_osc: clock@3 { |
|---|
| 492 | + clk_osc: clk-osc { |
|---|
| 647 | 493 | compatible = "fixed-clock"; |
|---|
| 648 | | - reg = <3>; |
|---|
| 649 | 494 | #clock-cells = <0>; |
|---|
| 650 | 495 | clock-output-names = "osc"; |
|---|
| 651 | 496 | clock-frequency = <19200000>; |
|---|
| 652 | 497 | }; |
|---|
| 653 | 498 | |
|---|
| 654 | | - clk_usb: clock@4 { |
|---|
| 499 | + clk_usb: clk-usb { |
|---|
| 655 | 500 | compatible = "fixed-clock"; |
|---|
| 656 | | - reg = <4>; |
|---|
| 657 | 501 | #clock-cells = <0>; |
|---|
| 658 | 502 | clock-output-names = "otg"; |
|---|
| 659 | 503 | clock-frequency = <480000000>; |
|---|