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