1f126890aSEmmanuel Vadot#include <dt-bindings/pinctrl/bcm2835.h> 2f126890aSEmmanuel Vadot#include <dt-bindings/clock/bcm2835.h> 3f126890aSEmmanuel Vadot#include <dt-bindings/clock/bcm2835-aux.h> 4f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 5f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 6f126890aSEmmanuel Vadot#include <dt-bindings/soc/bcm2835-pm.h> 7f126890aSEmmanuel Vadot 8f126890aSEmmanuel Vadot/* firmware-provided startup stubs live here, where the secondary CPUs are 9f126890aSEmmanuel Vadot * spinning. 10f126890aSEmmanuel Vadot */ 11f126890aSEmmanuel Vadot/memreserve/ 0x00000000 0x00001000; 12f126890aSEmmanuel Vadot 13f126890aSEmmanuel Vadot/* This include file covers the common peripherals and configuration between 14f126890aSEmmanuel Vadot * bcm2835 and bcm2836 implementations, leaving the CPU configuration to 15f126890aSEmmanuel Vadot * bcm2835.dtsi and bcm2836.dtsi. 16f126890aSEmmanuel Vadot */ 17f126890aSEmmanuel Vadot 18f126890aSEmmanuel Vadot/ { 19f126890aSEmmanuel Vadot compatible = "brcm,bcm2835"; 20f126890aSEmmanuel Vadot model = "BCM2835"; 21f126890aSEmmanuel Vadot #address-cells = <1>; 22f126890aSEmmanuel Vadot #size-cells = <1>; 23f126890aSEmmanuel Vadot 24f126890aSEmmanuel Vadot aliases { 25f126890aSEmmanuel Vadot serial0 = &uart0; 26f126890aSEmmanuel Vadot serial1 = &uart1; 27f126890aSEmmanuel Vadot }; 28f126890aSEmmanuel Vadot 29f126890aSEmmanuel Vadot chosen { 30f126890aSEmmanuel Vadot stdout-path = "serial0:115200n8"; 31f126890aSEmmanuel Vadot }; 32f126890aSEmmanuel Vadot 33f126890aSEmmanuel Vadot rmem: reserved-memory { 34f126890aSEmmanuel Vadot #address-cells = <1>; 35f126890aSEmmanuel Vadot #size-cells = <1>; 36f126890aSEmmanuel Vadot ranges; 37f126890aSEmmanuel Vadot 38f126890aSEmmanuel Vadot cma: linux,cma { 39f126890aSEmmanuel Vadot compatible = "shared-dma-pool"; 40f126890aSEmmanuel Vadot size = <0x4000000>; /* 64MB */ 41f126890aSEmmanuel Vadot reusable; 42f126890aSEmmanuel Vadot linux,cma-default; 43f126890aSEmmanuel Vadot }; 44f126890aSEmmanuel Vadot }; 45f126890aSEmmanuel Vadot 46f126890aSEmmanuel Vadot thermal-zones { 47f126890aSEmmanuel Vadot cpu_thermal: cpu-thermal { 48f126890aSEmmanuel Vadot polling-delay-passive = <0>; 49f126890aSEmmanuel Vadot polling-delay = <1000>; 50f126890aSEmmanuel Vadot 51f126890aSEmmanuel Vadot trips { 52f126890aSEmmanuel Vadot cpu-crit { 53f126890aSEmmanuel Vadot temperature = <90000>; 54f126890aSEmmanuel Vadot hysteresis = <0>; 55f126890aSEmmanuel Vadot type = "critical"; 56f126890aSEmmanuel Vadot }; 57f126890aSEmmanuel Vadot }; 58f126890aSEmmanuel Vadot 59f126890aSEmmanuel Vadot cooling-maps { 60f126890aSEmmanuel Vadot }; 61f126890aSEmmanuel Vadot }; 62f126890aSEmmanuel Vadot }; 63f126890aSEmmanuel Vadot 64f126890aSEmmanuel Vadot soc { 65f126890aSEmmanuel Vadot compatible = "simple-bus"; 66f126890aSEmmanuel Vadot #address-cells = <1>; 67f126890aSEmmanuel Vadot #size-cells = <1>; 68f126890aSEmmanuel Vadot 69f126890aSEmmanuel Vadot system_timer: timer@7e003000 { 70f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-system-timer"; 71f126890aSEmmanuel Vadot reg = <0x7e003000 0x1000>; 72f126890aSEmmanuel Vadot interrupts = <1 0>, <1 1>, <1 2>, <1 3>; 73f126890aSEmmanuel Vadot /* This could be a reference to BCM2835_CLOCK_TIMER, 74f126890aSEmmanuel Vadot * but we don't have the driver using the common clock 75f126890aSEmmanuel Vadot * support yet. 76f126890aSEmmanuel Vadot */ 77f126890aSEmmanuel Vadot clock-frequency = <1000000>; 78f126890aSEmmanuel Vadot }; 79f126890aSEmmanuel Vadot 80f126890aSEmmanuel Vadot txp: txp@7e004000 { 81f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-txp"; 82f126890aSEmmanuel Vadot reg = <0x7e004000 0x20>; 83f126890aSEmmanuel Vadot interrupts = <1 11>; 84f126890aSEmmanuel Vadot }; 85f126890aSEmmanuel Vadot 86f126890aSEmmanuel Vadot clocks: cprman@7e101000 { 87f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-cprman"; 88f126890aSEmmanuel Vadot #clock-cells = <1>; 89f126890aSEmmanuel Vadot reg = <0x7e101000 0x2000>; 90f126890aSEmmanuel Vadot 91f126890aSEmmanuel Vadot /* CPRMAN derives almost everything from the 92f126890aSEmmanuel Vadot * platform's oscillator. However, the DSI 93f126890aSEmmanuel Vadot * pixel clocks come from the DSI analog PHY. 94f126890aSEmmanuel Vadot */ 95f126890aSEmmanuel Vadot clocks = <&clk_osc>, 96f126890aSEmmanuel Vadot <&dsi0 0>, <&dsi0 1>, <&dsi0 2>, 97f126890aSEmmanuel Vadot <&dsi1 0>, <&dsi1 1>, <&dsi1 2>; 98f126890aSEmmanuel Vadot }; 99f126890aSEmmanuel Vadot 100f126890aSEmmanuel Vadot mailbox: mailbox@7e00b880 { 101f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-mbox"; 102f126890aSEmmanuel Vadot reg = <0x7e00b880 0x40>; 103f126890aSEmmanuel Vadot interrupts = <0 1>; 104f126890aSEmmanuel Vadot #mbox-cells = <0>; 105f126890aSEmmanuel Vadot }; 106f126890aSEmmanuel Vadot 107f126890aSEmmanuel Vadot gpio: gpio@7e200000 { 108f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-gpio"; 109f126890aSEmmanuel Vadot reg = <0x7e200000 0xb4>; 110f126890aSEmmanuel Vadot /* 111f126890aSEmmanuel Vadot * The GPIO IP block is designed for 3 banks of GPIOs. 112f126890aSEmmanuel Vadot * Each bank has a GPIO interrupt for itself. 113f126890aSEmmanuel Vadot * There is an overall "any bank" interrupt. 114f126890aSEmmanuel Vadot * In order, these are GIC interrupts 17, 18, 19, 20. 115f126890aSEmmanuel Vadot * Since the BCM2835 only has 2 banks, the 2nd bank 116f126890aSEmmanuel Vadot * interrupt output appears to be mirrored onto the 117f126890aSEmmanuel Vadot * 3rd bank's interrupt signal. 118f126890aSEmmanuel Vadot * So, a bank0 interrupt shows up on 17, 20, and 119f126890aSEmmanuel Vadot * a bank1 interrupt shows up on 18, 19, 20! 120f126890aSEmmanuel Vadot */ 121f126890aSEmmanuel Vadot interrupts = <2 17>, <2 18>, <2 19>, <2 20>; 122f126890aSEmmanuel Vadot 123f126890aSEmmanuel Vadot gpio-controller; 124f126890aSEmmanuel Vadot #gpio-cells = <2>; 125f126890aSEmmanuel Vadot 126f126890aSEmmanuel Vadot interrupt-controller; 127f126890aSEmmanuel Vadot #interrupt-cells = <2>; 128f126890aSEmmanuel Vadot 129f126890aSEmmanuel Vadot gpio-ranges = <&gpio 0 0 54>; 130f126890aSEmmanuel Vadot 131f126890aSEmmanuel Vadot /* Defines common pin muxing groups 132f126890aSEmmanuel Vadot * 133f126890aSEmmanuel Vadot * While each pin can have its mux selected 134f126890aSEmmanuel Vadot * for various functions individually, some 135f126890aSEmmanuel Vadot * groups only make sense to switch to a 136f126890aSEmmanuel Vadot * particular function together. 137f126890aSEmmanuel Vadot */ 138f126890aSEmmanuel Vadot dpi_gpio0: dpi-gpio0 { 139f126890aSEmmanuel Vadot brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 140f126890aSEmmanuel Vadot 12 13 14 15 16 17 18 19 141f126890aSEmmanuel Vadot 20 21 22 23 24 25 26 27>; 142f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT2>; 143f126890aSEmmanuel Vadot }; 144f126890aSEmmanuel Vadot emmc_gpio22: emmc-gpio22 { 145f126890aSEmmanuel Vadot brcm,pins = <22 23 24 25 26 27>; 146f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT3>; 147f126890aSEmmanuel Vadot }; 148f126890aSEmmanuel Vadot emmc_gpio34: emmc-gpio34 { 149f126890aSEmmanuel Vadot brcm,pins = <34 35 36 37 38 39>; 150f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT3>; 151f126890aSEmmanuel Vadot brcm,pull = <BCM2835_PUD_OFF 152f126890aSEmmanuel Vadot BCM2835_PUD_UP 153f126890aSEmmanuel Vadot BCM2835_PUD_UP 154f126890aSEmmanuel Vadot BCM2835_PUD_UP 155f126890aSEmmanuel Vadot BCM2835_PUD_UP 156f126890aSEmmanuel Vadot BCM2835_PUD_UP>; 157f126890aSEmmanuel Vadot }; 158f126890aSEmmanuel Vadot emmc_gpio48: emmc-gpio48 { 159f126890aSEmmanuel Vadot brcm,pins = <48 49 50 51 52 53>; 160f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT3>; 161f126890aSEmmanuel Vadot }; 162f126890aSEmmanuel Vadot 163f126890aSEmmanuel Vadot gpclk0_gpio4: gpclk0-gpio4 { 164f126890aSEmmanuel Vadot brcm,pins = <4>; 165f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 166f126890aSEmmanuel Vadot }; 167f126890aSEmmanuel Vadot gpclk1_gpio5: gpclk1-gpio5 { 168f126890aSEmmanuel Vadot brcm,pins = <5>; 169f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 170f126890aSEmmanuel Vadot }; 171f126890aSEmmanuel Vadot gpclk1_gpio42: gpclk1-gpio42 { 172f126890aSEmmanuel Vadot brcm,pins = <42>; 173f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 174f126890aSEmmanuel Vadot }; 175f126890aSEmmanuel Vadot gpclk1_gpio44: gpclk1-gpio44 { 176f126890aSEmmanuel Vadot brcm,pins = <44>; 177f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 178f126890aSEmmanuel Vadot }; 179f126890aSEmmanuel Vadot gpclk2_gpio6: gpclk2-gpio6 { 180f126890aSEmmanuel Vadot brcm,pins = <6>; 181f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 182f126890aSEmmanuel Vadot }; 183f126890aSEmmanuel Vadot gpclk2_gpio43: gpclk2-gpio43 { 184f126890aSEmmanuel Vadot brcm,pins = <43>; 185f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 186f126890aSEmmanuel Vadot brcm,pull = <BCM2835_PUD_OFF>; 187f126890aSEmmanuel Vadot }; 188f126890aSEmmanuel Vadot 189f126890aSEmmanuel Vadot i2c0_gpio0: i2c0-gpio0 { 190f126890aSEmmanuel Vadot brcm,pins = <0 1>; 191f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 192f126890aSEmmanuel Vadot }; 193f126890aSEmmanuel Vadot i2c0_gpio28: i2c0-gpio28 { 194f126890aSEmmanuel Vadot brcm,pins = <28 29>; 195f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 196f126890aSEmmanuel Vadot }; 197f126890aSEmmanuel Vadot i2c0_gpio44: i2c0-gpio44 { 198f126890aSEmmanuel Vadot brcm,pins = <44 45>; 199f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT1>; 200f126890aSEmmanuel Vadot }; 201f126890aSEmmanuel Vadot i2c1_gpio2: i2c1-gpio2 { 202f126890aSEmmanuel Vadot brcm,pins = <2 3>; 203f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 204f126890aSEmmanuel Vadot }; 205f126890aSEmmanuel Vadot i2c1_gpio44: i2c1-gpio44 { 206f126890aSEmmanuel Vadot brcm,pins = <44 45>; 207f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT2>; 208f126890aSEmmanuel Vadot }; 209f126890aSEmmanuel Vadot 210f126890aSEmmanuel Vadot jtag_gpio22: jtag-gpio22 { 211f126890aSEmmanuel Vadot brcm,pins = <22 23 24 25 26 27>; 212f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT4>; 213f126890aSEmmanuel Vadot }; 214f126890aSEmmanuel Vadot 215f126890aSEmmanuel Vadot pcm_gpio18: pcm-gpio18 { 216f126890aSEmmanuel Vadot brcm,pins = <18 19 20 21>; 217f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 218f126890aSEmmanuel Vadot }; 219f126890aSEmmanuel Vadot pcm_gpio28: pcm-gpio28 { 220f126890aSEmmanuel Vadot brcm,pins = <28 29 30 31>; 221f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT2>; 222f126890aSEmmanuel Vadot }; 223f126890aSEmmanuel Vadot 224f126890aSEmmanuel Vadot sdhost_gpio48: sdhost-gpio48 { 225f126890aSEmmanuel Vadot brcm,pins = <48 49 50 51 52 53>; 226f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 227f126890aSEmmanuel Vadot }; 228f126890aSEmmanuel Vadot 229f126890aSEmmanuel Vadot spi0_gpio7: spi0-gpio7 { 230f126890aSEmmanuel Vadot brcm,pins = <7 8 9 10 11>; 231f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 232f126890aSEmmanuel Vadot }; 233f126890aSEmmanuel Vadot spi0_gpio35: spi0-gpio35 { 234f126890aSEmmanuel Vadot brcm,pins = <35 36 37 38 39>; 235f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 236f126890aSEmmanuel Vadot }; 237f126890aSEmmanuel Vadot spi1_gpio16: spi1-gpio16 { 238f126890aSEmmanuel Vadot brcm,pins = <16 17 18 19 20 21>; 239f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT4>; 240f126890aSEmmanuel Vadot }; 241f126890aSEmmanuel Vadot spi2_gpio40: spi2-gpio40 { 242f126890aSEmmanuel Vadot brcm,pins = <40 41 42 43 44 45>; 243f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT4>; 244f126890aSEmmanuel Vadot }; 245f126890aSEmmanuel Vadot 246f126890aSEmmanuel Vadot uart0_gpio14: uart0-gpio14 { 247f126890aSEmmanuel Vadot brcm,pins = <14 15>; 248f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT0>; 249f126890aSEmmanuel Vadot }; 250f126890aSEmmanuel Vadot /* Separate from the uart0_gpio14 group 251f126890aSEmmanuel Vadot * because it conflicts with spi1_gpio16, and 252f126890aSEmmanuel Vadot * people often run uart0 on the two pins 253f126890aSEmmanuel Vadot * without flow control. 254f126890aSEmmanuel Vadot */ 255f126890aSEmmanuel Vadot uart0_ctsrts_gpio16: uart0-ctsrts-gpio16 { 256f126890aSEmmanuel Vadot brcm,pins = <16 17>; 257f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT3>; 258f126890aSEmmanuel Vadot }; 259f126890aSEmmanuel Vadot uart0_ctsrts_gpio30: uart0-ctsrts-gpio30 { 260f126890aSEmmanuel Vadot brcm,pins = <30 31>; 261f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT3>; 262f126890aSEmmanuel Vadot brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>; 263f126890aSEmmanuel Vadot }; 264f126890aSEmmanuel Vadot uart0_gpio32: uart0-gpio32 { 265f126890aSEmmanuel Vadot brcm,pins = <32 33>; 266f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT3>; 267f126890aSEmmanuel Vadot brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>; 268f126890aSEmmanuel Vadot }; 269f126890aSEmmanuel Vadot uart0_gpio36: uart0-gpio36 { 270f126890aSEmmanuel Vadot brcm,pins = <36 37>; 271f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT2>; 272f126890aSEmmanuel Vadot }; 273f126890aSEmmanuel Vadot uart0_ctsrts_gpio38: uart0-ctsrts-gpio38 { 274f126890aSEmmanuel Vadot brcm,pins = <38 39>; 275f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT2>; 276f126890aSEmmanuel Vadot }; 277f126890aSEmmanuel Vadot 278f126890aSEmmanuel Vadot uart1_gpio14: uart1-gpio14 { 279f126890aSEmmanuel Vadot brcm,pins = <14 15>; 280f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT5>; 281f126890aSEmmanuel Vadot }; 282f126890aSEmmanuel Vadot uart1_ctsrts_gpio16: uart1-ctsrts-gpio16 { 283f126890aSEmmanuel Vadot brcm,pins = <16 17>; 284f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT5>; 285f126890aSEmmanuel Vadot }; 286f126890aSEmmanuel Vadot uart1_gpio32: uart1-gpio32 { 287f126890aSEmmanuel Vadot brcm,pins = <32 33>; 288f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT5>; 289f126890aSEmmanuel Vadot }; 290f126890aSEmmanuel Vadot uart1_ctsrts_gpio30: uart1-ctsrts-gpio30 { 291f126890aSEmmanuel Vadot brcm,pins = <30 31>; 292f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT5>; 293f126890aSEmmanuel Vadot }; 294f126890aSEmmanuel Vadot uart1_gpio40: uart1-gpio40 { 295f126890aSEmmanuel Vadot brcm,pins = <40 41>; 296f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT5>; 297f126890aSEmmanuel Vadot }; 298f126890aSEmmanuel Vadot uart1_ctsrts_gpio42: uart1-ctsrts-gpio42 { 299f126890aSEmmanuel Vadot brcm,pins = <42 43>; 300f126890aSEmmanuel Vadot brcm,function = <BCM2835_FSEL_ALT5>; 301f126890aSEmmanuel Vadot }; 302f126890aSEmmanuel Vadot }; 303f126890aSEmmanuel Vadot 304f126890aSEmmanuel Vadot uart0: serial@7e201000 { 305f126890aSEmmanuel Vadot compatible = "arm,pl011", "arm,primecell"; 306f126890aSEmmanuel Vadot reg = <0x7e201000 0x200>; 307f126890aSEmmanuel Vadot interrupts = <2 25>; 308f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_UART>, 309f126890aSEmmanuel Vadot <&clocks BCM2835_CLOCK_VPU>; 310f126890aSEmmanuel Vadot clock-names = "uartclk", "apb_pclk"; 311f126890aSEmmanuel Vadot arm,primecell-periphid = <0x00241011>; 312f126890aSEmmanuel Vadot }; 313f126890aSEmmanuel Vadot 314f126890aSEmmanuel Vadot sdhost: mmc@7e202000 { 315f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-sdhost"; 316f126890aSEmmanuel Vadot reg = <0x7e202000 0x100>; 317f126890aSEmmanuel Vadot interrupts = <2 24>; 318f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_VPU>; 319f126890aSEmmanuel Vadot status = "disabled"; 320f126890aSEmmanuel Vadot }; 321f126890aSEmmanuel Vadot 322f126890aSEmmanuel Vadot i2s: i2s@7e203000 { 323f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-i2s"; 324f126890aSEmmanuel Vadot reg = <0x7e203000 0x24>; 325f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_PCM>; 326f126890aSEmmanuel Vadot status = "disabled"; 327f126890aSEmmanuel Vadot }; 328f126890aSEmmanuel Vadot 329f126890aSEmmanuel Vadot spi: spi@7e204000 { 330f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-spi"; 331f126890aSEmmanuel Vadot reg = <0x7e204000 0x200>; 332f126890aSEmmanuel Vadot interrupts = <2 22>; 333f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_VPU>; 334f126890aSEmmanuel Vadot #address-cells = <1>; 335f126890aSEmmanuel Vadot #size-cells = <0>; 336f126890aSEmmanuel Vadot status = "disabled"; 337f126890aSEmmanuel Vadot }; 338f126890aSEmmanuel Vadot 339f126890aSEmmanuel Vadot i2c0: i2c@7e205000 { 340f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-i2c"; 341f126890aSEmmanuel Vadot reg = <0x7e205000 0x200>; 342f126890aSEmmanuel Vadot interrupts = <2 21>; 343f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_VPU>; 344f126890aSEmmanuel Vadot #address-cells = <1>; 345f126890aSEmmanuel Vadot #size-cells = <0>; 346f126890aSEmmanuel Vadot status = "disabled"; 347f126890aSEmmanuel Vadot }; 348f126890aSEmmanuel Vadot 349f126890aSEmmanuel Vadot dpi: dpi@7e208000 { 350f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-dpi"; 351f126890aSEmmanuel Vadot reg = <0x7e208000 0x8c>; 352f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_VPU>, 353f126890aSEmmanuel Vadot <&clocks BCM2835_CLOCK_DPI>; 354f126890aSEmmanuel Vadot clock-names = "core", "pixel"; 355f126890aSEmmanuel Vadot status = "disabled"; 356f126890aSEmmanuel Vadot }; 357f126890aSEmmanuel Vadot 358f126890aSEmmanuel Vadot dsi0: dsi@7e209000 { 359f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-dsi0"; 360f126890aSEmmanuel Vadot reg = <0x7e209000 0x78>; 361f126890aSEmmanuel Vadot interrupts = <2 4>; 362f126890aSEmmanuel Vadot #address-cells = <1>; 363f126890aSEmmanuel Vadot #size-cells = <0>; 364f126890aSEmmanuel Vadot #clock-cells = <1>; 365f126890aSEmmanuel Vadot 366f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_PLLA_DSI0>, 367f126890aSEmmanuel Vadot <&clocks BCM2835_CLOCK_DSI0E>, 368f126890aSEmmanuel Vadot <&clocks BCM2835_CLOCK_DSI0P>; 369f126890aSEmmanuel Vadot clock-names = "phy", "escape", "pixel"; 370f126890aSEmmanuel Vadot 371f126890aSEmmanuel Vadot clock-output-names = "dsi0_byte", 372f126890aSEmmanuel Vadot "dsi0_ddr2", 373f126890aSEmmanuel Vadot "dsi0_ddr"; 374f126890aSEmmanuel Vadot 375f126890aSEmmanuel Vadot status = "disabled"; 376f126890aSEmmanuel Vadot }; 377f126890aSEmmanuel Vadot 378f126890aSEmmanuel Vadot aux: aux@7e215000 { 379f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-aux"; 380f126890aSEmmanuel Vadot #clock-cells = <1>; 381f126890aSEmmanuel Vadot reg = <0x7e215000 0x8>; 382f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_VPU>; 383f126890aSEmmanuel Vadot }; 384f126890aSEmmanuel Vadot 385f126890aSEmmanuel Vadot uart1: serial@7e215040 { 386f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-aux-uart"; 387f126890aSEmmanuel Vadot reg = <0x7e215040 0x40>; 388f126890aSEmmanuel Vadot interrupts = <1 29>; 389f126890aSEmmanuel Vadot clocks = <&aux BCM2835_AUX_CLOCK_UART>; 390f126890aSEmmanuel Vadot status = "disabled"; 391f126890aSEmmanuel Vadot }; 392f126890aSEmmanuel Vadot 393f126890aSEmmanuel Vadot spi1: spi@7e215080 { 394f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-aux-spi"; 395f126890aSEmmanuel Vadot reg = <0x7e215080 0x40>; 396f126890aSEmmanuel Vadot interrupts = <1 29>; 397f126890aSEmmanuel Vadot clocks = <&aux BCM2835_AUX_CLOCK_SPI1>; 398f126890aSEmmanuel Vadot #address-cells = <1>; 399f126890aSEmmanuel Vadot #size-cells = <0>; 400f126890aSEmmanuel Vadot status = "disabled"; 401f126890aSEmmanuel Vadot }; 402f126890aSEmmanuel Vadot 403f126890aSEmmanuel Vadot spi2: spi@7e2150c0 { 404f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-aux-spi"; 405f126890aSEmmanuel Vadot reg = <0x7e2150c0 0x40>; 406f126890aSEmmanuel Vadot interrupts = <1 29>; 407f126890aSEmmanuel Vadot clocks = <&aux BCM2835_AUX_CLOCK_SPI2>; 408f126890aSEmmanuel Vadot #address-cells = <1>; 409f126890aSEmmanuel Vadot #size-cells = <0>; 410f126890aSEmmanuel Vadot status = "disabled"; 411f126890aSEmmanuel Vadot }; 412f126890aSEmmanuel Vadot 413f126890aSEmmanuel Vadot pwm: pwm@7e20c000 { 414f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-pwm"; 415f126890aSEmmanuel Vadot reg = <0x7e20c000 0x28>; 416f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_PWM>; 417f126890aSEmmanuel Vadot assigned-clocks = <&clocks BCM2835_CLOCK_PWM>; 418f126890aSEmmanuel Vadot assigned-clock-rates = <10000000>; 419aa1a8ff2SEmmanuel Vadot #pwm-cells = <3>; 420f126890aSEmmanuel Vadot status = "disabled"; 421f126890aSEmmanuel Vadot }; 422f126890aSEmmanuel Vadot 423f126890aSEmmanuel Vadot sdhci: mmc@7e300000 { 424f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-sdhci"; 425f126890aSEmmanuel Vadot reg = <0x7e300000 0x100>; 426f126890aSEmmanuel Vadot interrupts = <2 30>; 427f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_EMMC>; 428f126890aSEmmanuel Vadot status = "disabled"; 429f126890aSEmmanuel Vadot }; 430f126890aSEmmanuel Vadot 431f126890aSEmmanuel Vadot hvs@7e400000 { 432f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-hvs"; 433f126890aSEmmanuel Vadot reg = <0x7e400000 0x6000>; 434f126890aSEmmanuel Vadot interrupts = <2 1>; 435f126890aSEmmanuel Vadot }; 436f126890aSEmmanuel Vadot 437f126890aSEmmanuel Vadot dsi1: dsi@7e700000 { 438f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-dsi1"; 439f126890aSEmmanuel Vadot reg = <0x7e700000 0x8c>; 440f126890aSEmmanuel Vadot interrupts = <2 12>; 441f126890aSEmmanuel Vadot #address-cells = <1>; 442f126890aSEmmanuel Vadot #size-cells = <0>; 443f126890aSEmmanuel Vadot #clock-cells = <1>; 444f126890aSEmmanuel Vadot 445f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_PLLD_DSI1>, 446f126890aSEmmanuel Vadot <&clocks BCM2835_CLOCK_DSI1E>, 447f126890aSEmmanuel Vadot <&clocks BCM2835_CLOCK_DSI1P>; 448f126890aSEmmanuel Vadot clock-names = "phy", "escape", "pixel"; 449f126890aSEmmanuel Vadot 450f126890aSEmmanuel Vadot clock-output-names = "dsi1_byte", 451f126890aSEmmanuel Vadot "dsi1_ddr2", 452f126890aSEmmanuel Vadot "dsi1_ddr"; 453f126890aSEmmanuel Vadot 454f126890aSEmmanuel Vadot status = "disabled"; 455f126890aSEmmanuel Vadot }; 456f126890aSEmmanuel Vadot 457*7d0873ebSEmmanuel Vadot csi0: csi@7e800000 { 458*7d0873ebSEmmanuel Vadot compatible = "brcm,bcm2835-unicam"; 459*7d0873ebSEmmanuel Vadot reg = <0x7e800000 0x800>, 460*7d0873ebSEmmanuel Vadot <0x7e802000 0x4>; 461*7d0873ebSEmmanuel Vadot reg-names = "unicam", "cmi"; 462*7d0873ebSEmmanuel Vadot interrupts = <2 6>; 463*7d0873ebSEmmanuel Vadot brcm,num-data-lanes = <2>; 464*7d0873ebSEmmanuel Vadot status = "disabled"; 465*7d0873ebSEmmanuel Vadot port { 466*7d0873ebSEmmanuel Vadot }; 467*7d0873ebSEmmanuel Vadot }; 468*7d0873ebSEmmanuel Vadot 469*7d0873ebSEmmanuel Vadot csi1: csi@7e801000 { 470*7d0873ebSEmmanuel Vadot compatible = "brcm,bcm2835-unicam"; 471*7d0873ebSEmmanuel Vadot reg = <0x7e801000 0x800>, 472*7d0873ebSEmmanuel Vadot <0x7e802004 0x4>; 473*7d0873ebSEmmanuel Vadot reg-names = "unicam", "cmi"; 474*7d0873ebSEmmanuel Vadot interrupts = <2 7>; 475*7d0873ebSEmmanuel Vadot brcm,num-data-lanes = <4>; 476*7d0873ebSEmmanuel Vadot status = "disabled"; 477*7d0873ebSEmmanuel Vadot port { 478*7d0873ebSEmmanuel Vadot }; 479*7d0873ebSEmmanuel Vadot }; 480*7d0873ebSEmmanuel Vadot 481f126890aSEmmanuel Vadot i2c1: i2c@7e804000 { 482f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-i2c"; 483f126890aSEmmanuel Vadot reg = <0x7e804000 0x1000>; 484f126890aSEmmanuel Vadot interrupts = <2 21>; 485f126890aSEmmanuel Vadot clocks = <&clocks BCM2835_CLOCK_VPU>; 486f126890aSEmmanuel Vadot #address-cells = <1>; 487f126890aSEmmanuel Vadot #size-cells = <0>; 488f126890aSEmmanuel Vadot status = "disabled"; 489f126890aSEmmanuel Vadot }; 490f126890aSEmmanuel Vadot 491f126890aSEmmanuel Vadot usb: usb@7e980000 { 492f126890aSEmmanuel Vadot compatible = "brcm,bcm2835-usb"; 493f126890aSEmmanuel Vadot reg = <0x7e980000 0x10000>; 494f126890aSEmmanuel Vadot interrupts = <1 9>; 495f126890aSEmmanuel Vadot #address-cells = <1>; 496f126890aSEmmanuel Vadot #size-cells = <0>; 497f126890aSEmmanuel Vadot clocks = <&clk_usb>; 498f126890aSEmmanuel Vadot clock-names = "otg"; 499f126890aSEmmanuel Vadot phys = <&usbphy>; 500f126890aSEmmanuel Vadot phy-names = "usb2-phy"; 501f126890aSEmmanuel Vadot }; 502f126890aSEmmanuel Vadot }; 503f126890aSEmmanuel Vadot 504f126890aSEmmanuel Vadot clocks { 505f126890aSEmmanuel Vadot /* The oscillator is the root of the clock tree. */ 506f126890aSEmmanuel Vadot clk_osc: clk-osc { 507f126890aSEmmanuel Vadot compatible = "fixed-clock"; 508f126890aSEmmanuel Vadot #clock-cells = <0>; 509f126890aSEmmanuel Vadot clock-output-names = "osc"; 510f126890aSEmmanuel Vadot clock-frequency = <19200000>; 511f126890aSEmmanuel Vadot }; 512f126890aSEmmanuel Vadot 513f126890aSEmmanuel Vadot clk_usb: clk-usb { 514f126890aSEmmanuel Vadot compatible = "fixed-clock"; 515f126890aSEmmanuel Vadot #clock-cells = <0>; 516f126890aSEmmanuel Vadot clock-output-names = "otg"; 517f126890aSEmmanuel Vadot clock-frequency = <480000000>; 518f126890aSEmmanuel Vadot }; 519f126890aSEmmanuel Vadot }; 520f126890aSEmmanuel Vadot 521f126890aSEmmanuel Vadot usbphy: phy { 522f126890aSEmmanuel Vadot compatible = "usb-nop-xceiv"; 523f126890aSEmmanuel Vadot #phy-cells = <0>; 524f126890aSEmmanuel Vadot }; 525f126890aSEmmanuel Vadot}; 526