1724ba675SRob Herring#include <dt-bindings/pinctrl/bcm2835.h> 2724ba675SRob Herring#include <dt-bindings/clock/bcm2835.h> 3724ba675SRob Herring#include <dt-bindings/clock/bcm2835-aux.h> 4724ba675SRob Herring#include <dt-bindings/gpio/gpio.h> 5724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h> 6724ba675SRob Herring#include <dt-bindings/soc/bcm2835-pm.h> 7724ba675SRob Herring 8724ba675SRob Herring/* firmware-provided startup stubs live here, where the secondary CPUs are 9724ba675SRob Herring * spinning. 10724ba675SRob Herring */ 11724ba675SRob Herring/memreserve/ 0x00000000 0x00001000; 12724ba675SRob Herring 13724ba675SRob Herring/* This include file covers the common peripherals and configuration between 14724ba675SRob Herring * bcm2835 and bcm2836 implementations, leaving the CPU configuration to 15724ba675SRob Herring * bcm2835.dtsi and bcm2836.dtsi. 16724ba675SRob Herring */ 17724ba675SRob Herring 18724ba675SRob Herring/ { 19724ba675SRob Herring compatible = "brcm,bcm2835"; 20724ba675SRob Herring model = "BCM2835"; 21724ba675SRob Herring #address-cells = <1>; 22724ba675SRob Herring #size-cells = <1>; 23724ba675SRob Herring 24724ba675SRob Herring aliases { 25724ba675SRob Herring serial0 = &uart0; 26724ba675SRob Herring serial1 = &uart1; 27724ba675SRob Herring }; 28724ba675SRob Herring 29724ba675SRob Herring chosen { 30724ba675SRob Herring stdout-path = "serial0:115200n8"; 31724ba675SRob Herring }; 32724ba675SRob Herring 33724ba675SRob Herring rmem: reserved-memory { 34724ba675SRob Herring #address-cells = <1>; 35724ba675SRob Herring #size-cells = <1>; 36724ba675SRob Herring ranges; 37724ba675SRob Herring 38724ba675SRob Herring cma: linux,cma { 39724ba675SRob Herring compatible = "shared-dma-pool"; 40724ba675SRob Herring size = <0x4000000>; /* 64MB */ 41724ba675SRob Herring reusable; 42724ba675SRob Herring linux,cma-default; 43724ba675SRob Herring }; 44724ba675SRob Herring }; 45724ba675SRob Herring 46724ba675SRob Herring thermal-zones { 47724ba675SRob Herring cpu_thermal: cpu-thermal { 48724ba675SRob Herring polling-delay-passive = <0>; 49724ba675SRob Herring polling-delay = <1000>; 50724ba675SRob Herring 51724ba675SRob Herring trips { 52724ba675SRob Herring cpu-crit { 53724ba675SRob Herring temperature = <90000>; 54724ba675SRob Herring hysteresis = <0>; 55724ba675SRob Herring type = "critical"; 56724ba675SRob Herring }; 57724ba675SRob Herring }; 58724ba675SRob Herring 59724ba675SRob Herring cooling-maps { 60724ba675SRob Herring }; 61724ba675SRob Herring }; 62724ba675SRob Herring }; 63724ba675SRob Herring 64724ba675SRob Herring soc { 65724ba675SRob Herring compatible = "simple-bus"; 66724ba675SRob Herring #address-cells = <1>; 67724ba675SRob Herring #size-cells = <1>; 68724ba675SRob Herring 69724ba675SRob Herring system_timer: timer@7e003000 { 70724ba675SRob Herring compatible = "brcm,bcm2835-system-timer"; 71724ba675SRob Herring reg = <0x7e003000 0x1000>; 72724ba675SRob Herring interrupts = <1 0>, <1 1>, <1 2>, <1 3>; 73724ba675SRob Herring /* This could be a reference to BCM2835_CLOCK_TIMER, 74724ba675SRob Herring * but we don't have the driver using the common clock 75724ba675SRob Herring * support yet. 76724ba675SRob Herring */ 77724ba675SRob Herring clock-frequency = <1000000>; 78724ba675SRob Herring }; 79724ba675SRob Herring 80724ba675SRob Herring txp: txp@7e004000 { 81724ba675SRob Herring compatible = "brcm,bcm2835-txp"; 82724ba675SRob Herring reg = <0x7e004000 0x20>; 83724ba675SRob Herring interrupts = <1 11>; 84724ba675SRob Herring }; 85724ba675SRob Herring 86724ba675SRob Herring clocks: cprman@7e101000 { 87724ba675SRob Herring compatible = "brcm,bcm2835-cprman"; 88724ba675SRob Herring #clock-cells = <1>; 89724ba675SRob Herring reg = <0x7e101000 0x2000>; 90724ba675SRob Herring 91724ba675SRob Herring /* CPRMAN derives almost everything from the 92724ba675SRob Herring * platform's oscillator. However, the DSI 93724ba675SRob Herring * pixel clocks come from the DSI analog PHY. 94724ba675SRob Herring */ 95724ba675SRob Herring clocks = <&clk_osc>, 96724ba675SRob Herring <&dsi0 0>, <&dsi0 1>, <&dsi0 2>, 97724ba675SRob Herring <&dsi1 0>, <&dsi1 1>, <&dsi1 2>; 98724ba675SRob Herring }; 99724ba675SRob Herring 100724ba675SRob Herring mailbox: mailbox@7e00b880 { 101724ba675SRob Herring compatible = "brcm,bcm2835-mbox"; 102724ba675SRob Herring reg = <0x7e00b880 0x40>; 103724ba675SRob Herring interrupts = <0 1>; 104724ba675SRob Herring #mbox-cells = <0>; 105724ba675SRob Herring }; 106724ba675SRob Herring 107724ba675SRob Herring gpio: gpio@7e200000 { 108724ba675SRob Herring compatible = "brcm,bcm2835-gpio"; 109724ba675SRob Herring reg = <0x7e200000 0xb4>; 110724ba675SRob Herring /* 111724ba675SRob Herring * The GPIO IP block is designed for 3 banks of GPIOs. 112724ba675SRob Herring * Each bank has a GPIO interrupt for itself. 113724ba675SRob Herring * There is an overall "any bank" interrupt. 114724ba675SRob Herring * In order, these are GIC interrupts 17, 18, 19, 20. 115724ba675SRob Herring * Since the BCM2835 only has 2 banks, the 2nd bank 116724ba675SRob Herring * interrupt output appears to be mirrored onto the 117724ba675SRob Herring * 3rd bank's interrupt signal. 118724ba675SRob Herring * So, a bank0 interrupt shows up on 17, 20, and 119724ba675SRob Herring * a bank1 interrupt shows up on 18, 19, 20! 120724ba675SRob Herring */ 121724ba675SRob Herring interrupts = <2 17>, <2 18>, <2 19>, <2 20>; 122724ba675SRob Herring 123724ba675SRob Herring gpio-controller; 124724ba675SRob Herring #gpio-cells = <2>; 125724ba675SRob Herring 126724ba675SRob Herring interrupt-controller; 127724ba675SRob Herring #interrupt-cells = <2>; 128724ba675SRob Herring 129724ba675SRob Herring gpio-ranges = <&gpio 0 0 54>; 130724ba675SRob Herring 131724ba675SRob Herring /* Defines common pin muxing groups 132724ba675SRob Herring * 133724ba675SRob Herring * While each pin can have its mux selected 134724ba675SRob Herring * for various functions individually, some 135724ba675SRob Herring * groups only make sense to switch to a 136724ba675SRob Herring * particular function together. 137724ba675SRob Herring */ 138724ba675SRob Herring dpi_gpio0: dpi-gpio0 { 139724ba675SRob Herring brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 140724ba675SRob Herring 12 13 14 15 16 17 18 19 141724ba675SRob Herring 20 21 22 23 24 25 26 27>; 142724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT2>; 143724ba675SRob Herring }; 144724ba675SRob Herring emmc_gpio22: emmc-gpio22 { 145724ba675SRob Herring brcm,pins = <22 23 24 25 26 27>; 146724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT3>; 147724ba675SRob Herring }; 148724ba675SRob Herring emmc_gpio34: emmc-gpio34 { 149724ba675SRob Herring brcm,pins = <34 35 36 37 38 39>; 150724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT3>; 151724ba675SRob Herring brcm,pull = <BCM2835_PUD_OFF 152724ba675SRob Herring BCM2835_PUD_UP 153724ba675SRob Herring BCM2835_PUD_UP 154724ba675SRob Herring BCM2835_PUD_UP 155724ba675SRob Herring BCM2835_PUD_UP 156724ba675SRob Herring BCM2835_PUD_UP>; 157724ba675SRob Herring }; 158724ba675SRob Herring emmc_gpio48: emmc-gpio48 { 159724ba675SRob Herring brcm,pins = <48 49 50 51 52 53>; 160724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT3>; 161724ba675SRob Herring }; 162724ba675SRob Herring 163724ba675SRob Herring gpclk0_gpio4: gpclk0-gpio4 { 164724ba675SRob Herring brcm,pins = <4>; 165724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 166724ba675SRob Herring }; 167724ba675SRob Herring gpclk1_gpio5: gpclk1-gpio5 { 168724ba675SRob Herring brcm,pins = <5>; 169724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 170724ba675SRob Herring }; 171724ba675SRob Herring gpclk1_gpio42: gpclk1-gpio42 { 172724ba675SRob Herring brcm,pins = <42>; 173724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 174724ba675SRob Herring }; 175724ba675SRob Herring gpclk1_gpio44: gpclk1-gpio44 { 176724ba675SRob Herring brcm,pins = <44>; 177724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 178724ba675SRob Herring }; 179724ba675SRob Herring gpclk2_gpio6: gpclk2-gpio6 { 180724ba675SRob Herring brcm,pins = <6>; 181724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 182724ba675SRob Herring }; 183724ba675SRob Herring gpclk2_gpio43: gpclk2-gpio43 { 184724ba675SRob Herring brcm,pins = <43>; 185724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 186724ba675SRob Herring brcm,pull = <BCM2835_PUD_OFF>; 187724ba675SRob Herring }; 188724ba675SRob Herring 189724ba675SRob Herring i2c0_gpio0: i2c0-gpio0 { 190724ba675SRob Herring brcm,pins = <0 1>; 191724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 192724ba675SRob Herring }; 193724ba675SRob Herring i2c0_gpio28: i2c0-gpio28 { 194724ba675SRob Herring brcm,pins = <28 29>; 195724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 196724ba675SRob Herring }; 197724ba675SRob Herring i2c0_gpio44: i2c0-gpio44 { 198724ba675SRob Herring brcm,pins = <44 45>; 199724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT1>; 200724ba675SRob Herring }; 201724ba675SRob Herring i2c1_gpio2: i2c1-gpio2 { 202724ba675SRob Herring brcm,pins = <2 3>; 203724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 204724ba675SRob Herring }; 205724ba675SRob Herring i2c1_gpio44: i2c1-gpio44 { 206724ba675SRob Herring brcm,pins = <44 45>; 207724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT2>; 208724ba675SRob Herring }; 209724ba675SRob Herring 210724ba675SRob Herring jtag_gpio22: jtag-gpio22 { 211724ba675SRob Herring brcm,pins = <22 23 24 25 26 27>; 212724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT4>; 213724ba675SRob Herring }; 214724ba675SRob Herring 215724ba675SRob Herring pcm_gpio18: pcm-gpio18 { 216724ba675SRob Herring brcm,pins = <18 19 20 21>; 217724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 218724ba675SRob Herring }; 219724ba675SRob Herring pcm_gpio28: pcm-gpio28 { 220724ba675SRob Herring brcm,pins = <28 29 30 31>; 221724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT2>; 222724ba675SRob Herring }; 223724ba675SRob Herring 224724ba675SRob Herring sdhost_gpio48: sdhost-gpio48 { 225724ba675SRob Herring brcm,pins = <48 49 50 51 52 53>; 226724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 227724ba675SRob Herring }; 228724ba675SRob Herring 229724ba675SRob Herring spi0_gpio7: spi0-gpio7 { 230724ba675SRob Herring brcm,pins = <7 8 9 10 11>; 231724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 232724ba675SRob Herring }; 233724ba675SRob Herring spi0_gpio35: spi0-gpio35 { 234724ba675SRob Herring brcm,pins = <35 36 37 38 39>; 235724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 236724ba675SRob Herring }; 237724ba675SRob Herring spi1_gpio16: spi1-gpio16 { 238724ba675SRob Herring brcm,pins = <16 17 18 19 20 21>; 239724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT4>; 240724ba675SRob Herring }; 241724ba675SRob Herring spi2_gpio40: spi2-gpio40 { 242724ba675SRob Herring brcm,pins = <40 41 42 43 44 45>; 243724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT4>; 244724ba675SRob Herring }; 245724ba675SRob Herring 246724ba675SRob Herring uart0_gpio14: uart0-gpio14 { 247724ba675SRob Herring brcm,pins = <14 15>; 248724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT0>; 249724ba675SRob Herring }; 250724ba675SRob Herring /* Separate from the uart0_gpio14 group 251724ba675SRob Herring * because it conflicts with spi1_gpio16, and 252724ba675SRob Herring * people often run uart0 on the two pins 253724ba675SRob Herring * without flow control. 254724ba675SRob Herring */ 255724ba675SRob Herring uart0_ctsrts_gpio16: uart0-ctsrts-gpio16 { 256724ba675SRob Herring brcm,pins = <16 17>; 257724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT3>; 258724ba675SRob Herring }; 259724ba675SRob Herring uart0_ctsrts_gpio30: uart0-ctsrts-gpio30 { 260724ba675SRob Herring brcm,pins = <30 31>; 261724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT3>; 262724ba675SRob Herring brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>; 263724ba675SRob Herring }; 264724ba675SRob Herring uart0_gpio32: uart0-gpio32 { 265724ba675SRob Herring brcm,pins = <32 33>; 266724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT3>; 267724ba675SRob Herring brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>; 268724ba675SRob Herring }; 269724ba675SRob Herring uart0_gpio36: uart0-gpio36 { 270724ba675SRob Herring brcm,pins = <36 37>; 271724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT2>; 272724ba675SRob Herring }; 273724ba675SRob Herring uart0_ctsrts_gpio38: uart0-ctsrts-gpio38 { 274724ba675SRob Herring brcm,pins = <38 39>; 275724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT2>; 276724ba675SRob Herring }; 277724ba675SRob Herring 278724ba675SRob Herring uart1_gpio14: uart1-gpio14 { 279724ba675SRob Herring brcm,pins = <14 15>; 280724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT5>; 281724ba675SRob Herring }; 282724ba675SRob Herring uart1_ctsrts_gpio16: uart1-ctsrts-gpio16 { 283724ba675SRob Herring brcm,pins = <16 17>; 284724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT5>; 285724ba675SRob Herring }; 286724ba675SRob Herring uart1_gpio32: uart1-gpio32 { 287724ba675SRob Herring brcm,pins = <32 33>; 288724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT5>; 289724ba675SRob Herring }; 290724ba675SRob Herring uart1_ctsrts_gpio30: uart1-ctsrts-gpio30 { 291724ba675SRob Herring brcm,pins = <30 31>; 292724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT5>; 293724ba675SRob Herring }; 294724ba675SRob Herring uart1_gpio40: uart1-gpio40 { 295724ba675SRob Herring brcm,pins = <40 41>; 296724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT5>; 297724ba675SRob Herring }; 298724ba675SRob Herring uart1_ctsrts_gpio42: uart1-ctsrts-gpio42 { 299724ba675SRob Herring brcm,pins = <42 43>; 300724ba675SRob Herring brcm,function = <BCM2835_FSEL_ALT5>; 301724ba675SRob Herring }; 302724ba675SRob Herring }; 303724ba675SRob Herring 304724ba675SRob Herring uart0: serial@7e201000 { 305724ba675SRob Herring compatible = "arm,pl011", "arm,primecell"; 306724ba675SRob Herring reg = <0x7e201000 0x200>; 307724ba675SRob Herring interrupts = <2 25>; 308724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_UART>, 309724ba675SRob Herring <&clocks BCM2835_CLOCK_VPU>; 310724ba675SRob Herring clock-names = "uartclk", "apb_pclk"; 311724ba675SRob Herring arm,primecell-periphid = <0x00241011>; 312724ba675SRob Herring }; 313724ba675SRob Herring 314724ba675SRob Herring sdhost: mmc@7e202000 { 315724ba675SRob Herring compatible = "brcm,bcm2835-sdhost"; 316724ba675SRob Herring reg = <0x7e202000 0x100>; 317724ba675SRob Herring interrupts = <2 24>; 318724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_VPU>; 319724ba675SRob Herring status = "disabled"; 320724ba675SRob Herring }; 321724ba675SRob Herring 322724ba675SRob Herring i2s: i2s@7e203000 { 323724ba675SRob Herring compatible = "brcm,bcm2835-i2s"; 324724ba675SRob Herring reg = <0x7e203000 0x24>; 325724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_PCM>; 326724ba675SRob Herring status = "disabled"; 327724ba675SRob Herring }; 328724ba675SRob Herring 329724ba675SRob Herring spi: spi@7e204000 { 330724ba675SRob Herring compatible = "brcm,bcm2835-spi"; 331724ba675SRob Herring reg = <0x7e204000 0x200>; 332724ba675SRob Herring interrupts = <2 22>; 333724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_VPU>; 334724ba675SRob Herring #address-cells = <1>; 335724ba675SRob Herring #size-cells = <0>; 336724ba675SRob Herring status = "disabled"; 337724ba675SRob Herring }; 338724ba675SRob Herring 339724ba675SRob Herring i2c0: i2c@7e205000 { 340724ba675SRob Herring compatible = "brcm,bcm2835-i2c"; 341724ba675SRob Herring reg = <0x7e205000 0x200>; 342724ba675SRob Herring interrupts = <2 21>; 343724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_VPU>; 344724ba675SRob Herring #address-cells = <1>; 345724ba675SRob Herring #size-cells = <0>; 346724ba675SRob Herring status = "disabled"; 347724ba675SRob Herring }; 348724ba675SRob Herring 349724ba675SRob Herring dpi: dpi@7e208000 { 350724ba675SRob Herring compatible = "brcm,bcm2835-dpi"; 351724ba675SRob Herring reg = <0x7e208000 0x8c>; 352724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_VPU>, 353724ba675SRob Herring <&clocks BCM2835_CLOCK_DPI>; 354724ba675SRob Herring clock-names = "core", "pixel"; 355724ba675SRob Herring status = "disabled"; 356724ba675SRob Herring }; 357724ba675SRob Herring 358724ba675SRob Herring dsi0: dsi@7e209000 { 359724ba675SRob Herring compatible = "brcm,bcm2835-dsi0"; 360724ba675SRob Herring reg = <0x7e209000 0x78>; 361724ba675SRob Herring interrupts = <2 4>; 362724ba675SRob Herring #address-cells = <1>; 363724ba675SRob Herring #size-cells = <0>; 364724ba675SRob Herring #clock-cells = <1>; 365724ba675SRob Herring 366724ba675SRob Herring clocks = <&clocks BCM2835_PLLA_DSI0>, 367724ba675SRob Herring <&clocks BCM2835_CLOCK_DSI0E>, 368724ba675SRob Herring <&clocks BCM2835_CLOCK_DSI0P>; 369724ba675SRob Herring clock-names = "phy", "escape", "pixel"; 370724ba675SRob Herring 371724ba675SRob Herring clock-output-names = "dsi0_byte", 372724ba675SRob Herring "dsi0_ddr2", 373724ba675SRob Herring "dsi0_ddr"; 374724ba675SRob Herring 375724ba675SRob Herring status = "disabled"; 376724ba675SRob Herring }; 377724ba675SRob Herring 378724ba675SRob Herring aux: aux@7e215000 { 379724ba675SRob Herring compatible = "brcm,bcm2835-aux"; 380724ba675SRob Herring #clock-cells = <1>; 381724ba675SRob Herring reg = <0x7e215000 0x8>; 382724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_VPU>; 383724ba675SRob Herring }; 384724ba675SRob Herring 385724ba675SRob Herring uart1: serial@7e215040 { 386724ba675SRob Herring compatible = "brcm,bcm2835-aux-uart"; 387724ba675SRob Herring reg = <0x7e215040 0x40>; 388724ba675SRob Herring interrupts = <1 29>; 389724ba675SRob Herring clocks = <&aux BCM2835_AUX_CLOCK_UART>; 390724ba675SRob Herring status = "disabled"; 391724ba675SRob Herring }; 392724ba675SRob Herring 393724ba675SRob Herring spi1: spi@7e215080 { 394724ba675SRob Herring compatible = "brcm,bcm2835-aux-spi"; 395724ba675SRob Herring reg = <0x7e215080 0x40>; 396724ba675SRob Herring interrupts = <1 29>; 397724ba675SRob Herring clocks = <&aux BCM2835_AUX_CLOCK_SPI1>; 398724ba675SRob Herring #address-cells = <1>; 399724ba675SRob Herring #size-cells = <0>; 400724ba675SRob Herring status = "disabled"; 401724ba675SRob Herring }; 402724ba675SRob Herring 403724ba675SRob Herring spi2: spi@7e2150c0 { 404724ba675SRob Herring compatible = "brcm,bcm2835-aux-spi"; 405724ba675SRob Herring reg = <0x7e2150c0 0x40>; 406724ba675SRob Herring interrupts = <1 29>; 407724ba675SRob Herring clocks = <&aux BCM2835_AUX_CLOCK_SPI2>; 408724ba675SRob Herring #address-cells = <1>; 409724ba675SRob Herring #size-cells = <0>; 410724ba675SRob Herring status = "disabled"; 411724ba675SRob Herring }; 412724ba675SRob Herring 413724ba675SRob Herring pwm: pwm@7e20c000 { 414724ba675SRob Herring compatible = "brcm,bcm2835-pwm"; 415724ba675SRob Herring reg = <0x7e20c000 0x28>; 416724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_PWM>; 417724ba675SRob Herring assigned-clocks = <&clocks BCM2835_CLOCK_PWM>; 418724ba675SRob Herring assigned-clock-rates = <10000000>; 41981b87589SStefan Wahren #pwm-cells = <3>; 420724ba675SRob Herring status = "disabled"; 421724ba675SRob Herring }; 422724ba675SRob Herring 423724ba675SRob Herring sdhci: mmc@7e300000 { 424724ba675SRob Herring compatible = "brcm,bcm2835-sdhci"; 425724ba675SRob Herring reg = <0x7e300000 0x100>; 426724ba675SRob Herring interrupts = <2 30>; 427724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_EMMC>; 428724ba675SRob Herring status = "disabled"; 429724ba675SRob Herring }; 430724ba675SRob Herring 431724ba675SRob Herring hvs@7e400000 { 432724ba675SRob Herring compatible = "brcm,bcm2835-hvs"; 433724ba675SRob Herring reg = <0x7e400000 0x6000>; 434724ba675SRob Herring interrupts = <2 1>; 435724ba675SRob Herring }; 436724ba675SRob Herring 437724ba675SRob Herring dsi1: dsi@7e700000 { 438724ba675SRob Herring compatible = "brcm,bcm2835-dsi1"; 439724ba675SRob Herring reg = <0x7e700000 0x8c>; 440724ba675SRob Herring interrupts = <2 12>; 441724ba675SRob Herring #address-cells = <1>; 442724ba675SRob Herring #size-cells = <0>; 443724ba675SRob Herring #clock-cells = <1>; 444724ba675SRob Herring 445724ba675SRob Herring clocks = <&clocks BCM2835_PLLD_DSI1>, 446724ba675SRob Herring <&clocks BCM2835_CLOCK_DSI1E>, 447724ba675SRob Herring <&clocks BCM2835_CLOCK_DSI1P>; 448724ba675SRob Herring clock-names = "phy", "escape", "pixel"; 449724ba675SRob Herring 450724ba675SRob Herring clock-output-names = "dsi1_byte", 451724ba675SRob Herring "dsi1_ddr2", 452724ba675SRob Herring "dsi1_ddr"; 453724ba675SRob Herring 454724ba675SRob Herring status = "disabled"; 455724ba675SRob Herring }; 456724ba675SRob Herring 457*7b4e7a4fSJean-Michel Hautbois csi0: csi@7e800000 { 458*7b4e7a4fSJean-Michel Hautbois compatible = "brcm,bcm2835-unicam"; 459*7b4e7a4fSJean-Michel Hautbois reg = <0x7e800000 0x800>, 460*7b4e7a4fSJean-Michel Hautbois <0x7e802000 0x4>; 461*7b4e7a4fSJean-Michel Hautbois reg-names = "unicam", "cmi"; 462*7b4e7a4fSJean-Michel Hautbois interrupts = <2 6>; 463*7b4e7a4fSJean-Michel Hautbois brcm,num-data-lanes = <2>; 464*7b4e7a4fSJean-Michel Hautbois status = "disabled"; 465*7b4e7a4fSJean-Michel Hautbois port { 466*7b4e7a4fSJean-Michel Hautbois }; 467*7b4e7a4fSJean-Michel Hautbois }; 468*7b4e7a4fSJean-Michel Hautbois 469*7b4e7a4fSJean-Michel Hautbois csi1: csi@7e801000 { 470*7b4e7a4fSJean-Michel Hautbois compatible = "brcm,bcm2835-unicam"; 471*7b4e7a4fSJean-Michel Hautbois reg = <0x7e801000 0x800>, 472*7b4e7a4fSJean-Michel Hautbois <0x7e802004 0x4>; 473*7b4e7a4fSJean-Michel Hautbois reg-names = "unicam", "cmi"; 474*7b4e7a4fSJean-Michel Hautbois interrupts = <2 7>; 475*7b4e7a4fSJean-Michel Hautbois brcm,num-data-lanes = <4>; 476*7b4e7a4fSJean-Michel Hautbois status = "disabled"; 477*7b4e7a4fSJean-Michel Hautbois port { 478*7b4e7a4fSJean-Michel Hautbois }; 479*7b4e7a4fSJean-Michel Hautbois }; 480*7b4e7a4fSJean-Michel Hautbois 481724ba675SRob Herring i2c1: i2c@7e804000 { 482724ba675SRob Herring compatible = "brcm,bcm2835-i2c"; 483724ba675SRob Herring reg = <0x7e804000 0x1000>; 484724ba675SRob Herring interrupts = <2 21>; 485724ba675SRob Herring clocks = <&clocks BCM2835_CLOCK_VPU>; 486724ba675SRob Herring #address-cells = <1>; 487724ba675SRob Herring #size-cells = <0>; 488724ba675SRob Herring status = "disabled"; 489724ba675SRob Herring }; 490724ba675SRob Herring 491724ba675SRob Herring usb: usb@7e980000 { 492724ba675SRob Herring compatible = "brcm,bcm2835-usb"; 493724ba675SRob Herring reg = <0x7e980000 0x10000>; 494724ba675SRob Herring interrupts = <1 9>; 495724ba675SRob Herring #address-cells = <1>; 496724ba675SRob Herring #size-cells = <0>; 497724ba675SRob Herring clocks = <&clk_usb>; 498724ba675SRob Herring clock-names = "otg"; 499724ba675SRob Herring phys = <&usbphy>; 500724ba675SRob Herring phy-names = "usb2-phy"; 501724ba675SRob Herring }; 502724ba675SRob Herring }; 503724ba675SRob Herring 504724ba675SRob Herring clocks { 505724ba675SRob Herring /* The oscillator is the root of the clock tree. */ 506724ba675SRob Herring clk_osc: clk-osc { 507724ba675SRob Herring compatible = "fixed-clock"; 508724ba675SRob Herring #clock-cells = <0>; 509724ba675SRob Herring clock-output-names = "osc"; 510724ba675SRob Herring clock-frequency = <19200000>; 511724ba675SRob Herring }; 512724ba675SRob Herring 513724ba675SRob Herring clk_usb: clk-usb { 514724ba675SRob Herring compatible = "fixed-clock"; 515724ba675SRob Herring #clock-cells = <0>; 516724ba675SRob Herring clock-output-names = "otg"; 517724ba675SRob Herring clock-frequency = <480000000>; 518724ba675SRob Herring }; 519724ba675SRob Herring }; 520724ba675SRob Herring 521724ba675SRob Herring usbphy: phy { 522724ba675SRob Herring compatible = "usb-nop-xceiv"; 523724ba675SRob Herring #phy-cells = <0>; 524724ba675SRob Herring }; 525724ba675SRob Herring}; 526