162306a36Sopenharmony_ci#include <dt-bindings/pinctrl/bcm2835.h> 262306a36Sopenharmony_ci#include <dt-bindings/clock/bcm2835.h> 362306a36Sopenharmony_ci#include <dt-bindings/clock/bcm2835-aux.h> 462306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 562306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 662306a36Sopenharmony_ci#include <dt-bindings/soc/bcm2835-pm.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/* firmware-provided startup stubs live here, where the secondary CPUs are 962306a36Sopenharmony_ci * spinning. 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci/memreserve/ 0x00000000 0x00001000; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* This include file covers the common peripherals and configuration between 1462306a36Sopenharmony_ci * bcm2835 and bcm2836 implementations, leaving the CPU configuration to 1562306a36Sopenharmony_ci * bcm2835.dtsi and bcm2836.dtsi. 1662306a36Sopenharmony_ci */ 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci/ { 1962306a36Sopenharmony_ci compatible = "brcm,bcm2835"; 2062306a36Sopenharmony_ci model = "BCM2835"; 2162306a36Sopenharmony_ci #address-cells = <1>; 2262306a36Sopenharmony_ci #size-cells = <1>; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci aliases { 2562306a36Sopenharmony_ci serial0 = &uart0; 2662306a36Sopenharmony_ci serial1 = &uart1; 2762306a36Sopenharmony_ci }; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci chosen { 3062306a36Sopenharmony_ci stdout-path = "serial0:115200n8"; 3162306a36Sopenharmony_ci }; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci rmem: reserved-memory { 3462306a36Sopenharmony_ci #address-cells = <1>; 3562306a36Sopenharmony_ci #size-cells = <1>; 3662306a36Sopenharmony_ci ranges; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci cma: linux,cma { 3962306a36Sopenharmony_ci compatible = "shared-dma-pool"; 4062306a36Sopenharmony_ci size = <0x4000000>; /* 64MB */ 4162306a36Sopenharmony_ci reusable; 4262306a36Sopenharmony_ci linux,cma-default; 4362306a36Sopenharmony_ci }; 4462306a36Sopenharmony_ci }; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci thermal-zones { 4762306a36Sopenharmony_ci cpu_thermal: cpu-thermal { 4862306a36Sopenharmony_ci polling-delay-passive = <0>; 4962306a36Sopenharmony_ci polling-delay = <1000>; 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci trips { 5262306a36Sopenharmony_ci cpu-crit { 5362306a36Sopenharmony_ci temperature = <90000>; 5462306a36Sopenharmony_ci hysteresis = <0>; 5562306a36Sopenharmony_ci type = "critical"; 5662306a36Sopenharmony_ci }; 5762306a36Sopenharmony_ci }; 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci cooling-maps { 6062306a36Sopenharmony_ci }; 6162306a36Sopenharmony_ci }; 6262306a36Sopenharmony_ci }; 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci soc { 6562306a36Sopenharmony_ci compatible = "simple-bus"; 6662306a36Sopenharmony_ci #address-cells = <1>; 6762306a36Sopenharmony_ci #size-cells = <1>; 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci system_timer: timer@7e003000 { 7062306a36Sopenharmony_ci compatible = "brcm,bcm2835-system-timer"; 7162306a36Sopenharmony_ci reg = <0x7e003000 0x1000>; 7262306a36Sopenharmony_ci interrupts = <1 0>, <1 1>, <1 2>, <1 3>; 7362306a36Sopenharmony_ci /* This could be a reference to BCM2835_CLOCK_TIMER, 7462306a36Sopenharmony_ci * but we don't have the driver using the common clock 7562306a36Sopenharmony_ci * support yet. 7662306a36Sopenharmony_ci */ 7762306a36Sopenharmony_ci clock-frequency = <1000000>; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci txp: txp@7e004000 { 8162306a36Sopenharmony_ci compatible = "brcm,bcm2835-txp"; 8262306a36Sopenharmony_ci reg = <0x7e004000 0x20>; 8362306a36Sopenharmony_ci interrupts = <1 11>; 8462306a36Sopenharmony_ci }; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci clocks: cprman@7e101000 { 8762306a36Sopenharmony_ci compatible = "brcm,bcm2835-cprman"; 8862306a36Sopenharmony_ci #clock-cells = <1>; 8962306a36Sopenharmony_ci reg = <0x7e101000 0x2000>; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci /* CPRMAN derives almost everything from the 9262306a36Sopenharmony_ci * platform's oscillator. However, the DSI 9362306a36Sopenharmony_ci * pixel clocks come from the DSI analog PHY. 9462306a36Sopenharmony_ci */ 9562306a36Sopenharmony_ci clocks = <&clk_osc>, 9662306a36Sopenharmony_ci <&dsi0 0>, <&dsi0 1>, <&dsi0 2>, 9762306a36Sopenharmony_ci <&dsi1 0>, <&dsi1 1>, <&dsi1 2>; 9862306a36Sopenharmony_ci }; 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci mailbox: mailbox@7e00b880 { 10162306a36Sopenharmony_ci compatible = "brcm,bcm2835-mbox"; 10262306a36Sopenharmony_ci reg = <0x7e00b880 0x40>; 10362306a36Sopenharmony_ci interrupts = <0 1>; 10462306a36Sopenharmony_ci #mbox-cells = <0>; 10562306a36Sopenharmony_ci }; 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci gpio: gpio@7e200000 { 10862306a36Sopenharmony_ci compatible = "brcm,bcm2835-gpio"; 10962306a36Sopenharmony_ci reg = <0x7e200000 0xb4>; 11062306a36Sopenharmony_ci /* 11162306a36Sopenharmony_ci * The GPIO IP block is designed for 3 banks of GPIOs. 11262306a36Sopenharmony_ci * Each bank has a GPIO interrupt for itself. 11362306a36Sopenharmony_ci * There is an overall "any bank" interrupt. 11462306a36Sopenharmony_ci * In order, these are GIC interrupts 17, 18, 19, 20. 11562306a36Sopenharmony_ci * Since the BCM2835 only has 2 banks, the 2nd bank 11662306a36Sopenharmony_ci * interrupt output appears to be mirrored onto the 11762306a36Sopenharmony_ci * 3rd bank's interrupt signal. 11862306a36Sopenharmony_ci * So, a bank0 interrupt shows up on 17, 20, and 11962306a36Sopenharmony_ci * a bank1 interrupt shows up on 18, 19, 20! 12062306a36Sopenharmony_ci */ 12162306a36Sopenharmony_ci interrupts = <2 17>, <2 18>, <2 19>, <2 20>; 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci gpio-controller; 12462306a36Sopenharmony_ci #gpio-cells = <2>; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci interrupt-controller; 12762306a36Sopenharmony_ci #interrupt-cells = <2>; 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci gpio-ranges = <&gpio 0 0 54>; 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci /* Defines common pin muxing groups 13262306a36Sopenharmony_ci * 13362306a36Sopenharmony_ci * While each pin can have its mux selected 13462306a36Sopenharmony_ci * for various functions individually, some 13562306a36Sopenharmony_ci * groups only make sense to switch to a 13662306a36Sopenharmony_ci * particular function together. 13762306a36Sopenharmony_ci */ 13862306a36Sopenharmony_ci dpi_gpio0: dpi-gpio0 { 13962306a36Sopenharmony_ci brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 14062306a36Sopenharmony_ci 12 13 14 15 16 17 18 19 14162306a36Sopenharmony_ci 20 21 22 23 24 25 26 27>; 14262306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT2>; 14362306a36Sopenharmony_ci }; 14462306a36Sopenharmony_ci emmc_gpio22: emmc-gpio22 { 14562306a36Sopenharmony_ci brcm,pins = <22 23 24 25 26 27>; 14662306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT3>; 14762306a36Sopenharmony_ci }; 14862306a36Sopenharmony_ci emmc_gpio34: emmc-gpio34 { 14962306a36Sopenharmony_ci brcm,pins = <34 35 36 37 38 39>; 15062306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT3>; 15162306a36Sopenharmony_ci brcm,pull = <BCM2835_PUD_OFF 15262306a36Sopenharmony_ci BCM2835_PUD_UP 15362306a36Sopenharmony_ci BCM2835_PUD_UP 15462306a36Sopenharmony_ci BCM2835_PUD_UP 15562306a36Sopenharmony_ci BCM2835_PUD_UP 15662306a36Sopenharmony_ci BCM2835_PUD_UP>; 15762306a36Sopenharmony_ci }; 15862306a36Sopenharmony_ci emmc_gpio48: emmc-gpio48 { 15962306a36Sopenharmony_ci brcm,pins = <48 49 50 51 52 53>; 16062306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT3>; 16162306a36Sopenharmony_ci }; 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci gpclk0_gpio4: gpclk0-gpio4 { 16462306a36Sopenharmony_ci brcm,pins = <4>; 16562306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 16662306a36Sopenharmony_ci }; 16762306a36Sopenharmony_ci gpclk1_gpio5: gpclk1-gpio5 { 16862306a36Sopenharmony_ci brcm,pins = <5>; 16962306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 17062306a36Sopenharmony_ci }; 17162306a36Sopenharmony_ci gpclk1_gpio42: gpclk1-gpio42 { 17262306a36Sopenharmony_ci brcm,pins = <42>; 17362306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 17462306a36Sopenharmony_ci }; 17562306a36Sopenharmony_ci gpclk1_gpio44: gpclk1-gpio44 { 17662306a36Sopenharmony_ci brcm,pins = <44>; 17762306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 17862306a36Sopenharmony_ci }; 17962306a36Sopenharmony_ci gpclk2_gpio6: gpclk2-gpio6 { 18062306a36Sopenharmony_ci brcm,pins = <6>; 18162306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 18262306a36Sopenharmony_ci }; 18362306a36Sopenharmony_ci gpclk2_gpio43: gpclk2-gpio43 { 18462306a36Sopenharmony_ci brcm,pins = <43>; 18562306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 18662306a36Sopenharmony_ci brcm,pull = <BCM2835_PUD_OFF>; 18762306a36Sopenharmony_ci }; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci i2c0_gpio0: i2c0-gpio0 { 19062306a36Sopenharmony_ci brcm,pins = <0 1>; 19162306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 19262306a36Sopenharmony_ci }; 19362306a36Sopenharmony_ci i2c0_gpio28: i2c0-gpio28 { 19462306a36Sopenharmony_ci brcm,pins = <28 29>; 19562306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 19662306a36Sopenharmony_ci }; 19762306a36Sopenharmony_ci i2c0_gpio44: i2c0-gpio44 { 19862306a36Sopenharmony_ci brcm,pins = <44 45>; 19962306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT1>; 20062306a36Sopenharmony_ci }; 20162306a36Sopenharmony_ci i2c1_gpio2: i2c1-gpio2 { 20262306a36Sopenharmony_ci brcm,pins = <2 3>; 20362306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 20462306a36Sopenharmony_ci }; 20562306a36Sopenharmony_ci i2c1_gpio44: i2c1-gpio44 { 20662306a36Sopenharmony_ci brcm,pins = <44 45>; 20762306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT2>; 20862306a36Sopenharmony_ci }; 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci jtag_gpio22: jtag-gpio22 { 21162306a36Sopenharmony_ci brcm,pins = <22 23 24 25 26 27>; 21262306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT4>; 21362306a36Sopenharmony_ci }; 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci pcm_gpio18: pcm-gpio18 { 21662306a36Sopenharmony_ci brcm,pins = <18 19 20 21>; 21762306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 21862306a36Sopenharmony_ci }; 21962306a36Sopenharmony_ci pcm_gpio28: pcm-gpio28 { 22062306a36Sopenharmony_ci brcm,pins = <28 29 30 31>; 22162306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT2>; 22262306a36Sopenharmony_ci }; 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ci sdhost_gpio48: sdhost-gpio48 { 22562306a36Sopenharmony_ci brcm,pins = <48 49 50 51 52 53>; 22662306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 22762306a36Sopenharmony_ci }; 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci spi0_gpio7: spi0-gpio7 { 23062306a36Sopenharmony_ci brcm,pins = <7 8 9 10 11>; 23162306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 23262306a36Sopenharmony_ci }; 23362306a36Sopenharmony_ci spi0_gpio35: spi0-gpio35 { 23462306a36Sopenharmony_ci brcm,pins = <35 36 37 38 39>; 23562306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 23662306a36Sopenharmony_ci }; 23762306a36Sopenharmony_ci spi1_gpio16: spi1-gpio16 { 23862306a36Sopenharmony_ci brcm,pins = <16 17 18 19 20 21>; 23962306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT4>; 24062306a36Sopenharmony_ci }; 24162306a36Sopenharmony_ci spi2_gpio40: spi2-gpio40 { 24262306a36Sopenharmony_ci brcm,pins = <40 41 42 43 44 45>; 24362306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT4>; 24462306a36Sopenharmony_ci }; 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ci uart0_gpio14: uart0-gpio14 { 24762306a36Sopenharmony_ci brcm,pins = <14 15>; 24862306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 24962306a36Sopenharmony_ci }; 25062306a36Sopenharmony_ci /* Separate from the uart0_gpio14 group 25162306a36Sopenharmony_ci * because it conflicts with spi1_gpio16, and 25262306a36Sopenharmony_ci * people often run uart0 on the two pins 25362306a36Sopenharmony_ci * without flow control. 25462306a36Sopenharmony_ci */ 25562306a36Sopenharmony_ci uart0_ctsrts_gpio16: uart0-ctsrts-gpio16 { 25662306a36Sopenharmony_ci brcm,pins = <16 17>; 25762306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT3>; 25862306a36Sopenharmony_ci }; 25962306a36Sopenharmony_ci uart0_ctsrts_gpio30: uart0-ctsrts-gpio30 { 26062306a36Sopenharmony_ci brcm,pins = <30 31>; 26162306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT3>; 26262306a36Sopenharmony_ci brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>; 26362306a36Sopenharmony_ci }; 26462306a36Sopenharmony_ci uart0_gpio32: uart0-gpio32 { 26562306a36Sopenharmony_ci brcm,pins = <32 33>; 26662306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT3>; 26762306a36Sopenharmony_ci brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>; 26862306a36Sopenharmony_ci }; 26962306a36Sopenharmony_ci uart0_gpio36: uart0-gpio36 { 27062306a36Sopenharmony_ci brcm,pins = <36 37>; 27162306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT2>; 27262306a36Sopenharmony_ci }; 27362306a36Sopenharmony_ci uart0_ctsrts_gpio38: uart0-ctsrts-gpio38 { 27462306a36Sopenharmony_ci brcm,pins = <38 39>; 27562306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT2>; 27662306a36Sopenharmony_ci }; 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci uart1_gpio14: uart1-gpio14 { 27962306a36Sopenharmony_ci brcm,pins = <14 15>; 28062306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 28162306a36Sopenharmony_ci }; 28262306a36Sopenharmony_ci uart1_ctsrts_gpio16: uart1-ctsrts-gpio16 { 28362306a36Sopenharmony_ci brcm,pins = <16 17>; 28462306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 28562306a36Sopenharmony_ci }; 28662306a36Sopenharmony_ci uart1_gpio32: uart1-gpio32 { 28762306a36Sopenharmony_ci brcm,pins = <32 33>; 28862306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 28962306a36Sopenharmony_ci }; 29062306a36Sopenharmony_ci uart1_ctsrts_gpio30: uart1-ctsrts-gpio30 { 29162306a36Sopenharmony_ci brcm,pins = <30 31>; 29262306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 29362306a36Sopenharmony_ci }; 29462306a36Sopenharmony_ci uart1_gpio40: uart1-gpio40 { 29562306a36Sopenharmony_ci brcm,pins = <40 41>; 29662306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 29762306a36Sopenharmony_ci }; 29862306a36Sopenharmony_ci uart1_ctsrts_gpio42: uart1-ctsrts-gpio42 { 29962306a36Sopenharmony_ci brcm,pins = <42 43>; 30062306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 30162306a36Sopenharmony_ci }; 30262306a36Sopenharmony_ci }; 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci uart0: serial@7e201000 { 30562306a36Sopenharmony_ci compatible = "arm,pl011", "arm,primecell"; 30662306a36Sopenharmony_ci reg = <0x7e201000 0x200>; 30762306a36Sopenharmony_ci interrupts = <2 25>; 30862306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_UART>, 30962306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_VPU>; 31062306a36Sopenharmony_ci clock-names = "uartclk", "apb_pclk"; 31162306a36Sopenharmony_ci arm,primecell-periphid = <0x00241011>; 31262306a36Sopenharmony_ci }; 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci sdhost: mmc@7e202000 { 31562306a36Sopenharmony_ci compatible = "brcm,bcm2835-sdhost"; 31662306a36Sopenharmony_ci reg = <0x7e202000 0x100>; 31762306a36Sopenharmony_ci interrupts = <2 24>; 31862306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_VPU>; 31962306a36Sopenharmony_ci status = "disabled"; 32062306a36Sopenharmony_ci }; 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ci i2s: i2s@7e203000 { 32362306a36Sopenharmony_ci compatible = "brcm,bcm2835-i2s"; 32462306a36Sopenharmony_ci reg = <0x7e203000 0x24>; 32562306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_PCM>; 32662306a36Sopenharmony_ci status = "disabled"; 32762306a36Sopenharmony_ci }; 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_ci spi: spi@7e204000 { 33062306a36Sopenharmony_ci compatible = "brcm,bcm2835-spi"; 33162306a36Sopenharmony_ci reg = <0x7e204000 0x200>; 33262306a36Sopenharmony_ci interrupts = <2 22>; 33362306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_VPU>; 33462306a36Sopenharmony_ci #address-cells = <1>; 33562306a36Sopenharmony_ci #size-cells = <0>; 33662306a36Sopenharmony_ci status = "disabled"; 33762306a36Sopenharmony_ci }; 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci i2c0: i2c@7e205000 { 34062306a36Sopenharmony_ci compatible = "brcm,bcm2835-i2c"; 34162306a36Sopenharmony_ci reg = <0x7e205000 0x200>; 34262306a36Sopenharmony_ci interrupts = <2 21>; 34362306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_VPU>; 34462306a36Sopenharmony_ci #address-cells = <1>; 34562306a36Sopenharmony_ci #size-cells = <0>; 34662306a36Sopenharmony_ci status = "disabled"; 34762306a36Sopenharmony_ci }; 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ci dpi: dpi@7e208000 { 35062306a36Sopenharmony_ci compatible = "brcm,bcm2835-dpi"; 35162306a36Sopenharmony_ci reg = <0x7e208000 0x8c>; 35262306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_VPU>, 35362306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_DPI>; 35462306a36Sopenharmony_ci clock-names = "core", "pixel"; 35562306a36Sopenharmony_ci status = "disabled"; 35662306a36Sopenharmony_ci }; 35762306a36Sopenharmony_ci 35862306a36Sopenharmony_ci dsi0: dsi@7e209000 { 35962306a36Sopenharmony_ci compatible = "brcm,bcm2835-dsi0"; 36062306a36Sopenharmony_ci reg = <0x7e209000 0x78>; 36162306a36Sopenharmony_ci interrupts = <2 4>; 36262306a36Sopenharmony_ci #address-cells = <1>; 36362306a36Sopenharmony_ci #size-cells = <0>; 36462306a36Sopenharmony_ci #clock-cells = <1>; 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci clocks = <&clocks BCM2835_PLLA_DSI0>, 36762306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_DSI0E>, 36862306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_DSI0P>; 36962306a36Sopenharmony_ci clock-names = "phy", "escape", "pixel"; 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_ci clock-output-names = "dsi0_byte", 37262306a36Sopenharmony_ci "dsi0_ddr2", 37362306a36Sopenharmony_ci "dsi0_ddr"; 37462306a36Sopenharmony_ci 37562306a36Sopenharmony_ci status = "disabled"; 37662306a36Sopenharmony_ci }; 37762306a36Sopenharmony_ci 37862306a36Sopenharmony_ci aux: aux@7e215000 { 37962306a36Sopenharmony_ci compatible = "brcm,bcm2835-aux"; 38062306a36Sopenharmony_ci #clock-cells = <1>; 38162306a36Sopenharmony_ci reg = <0x7e215000 0x8>; 38262306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_VPU>; 38362306a36Sopenharmony_ci }; 38462306a36Sopenharmony_ci 38562306a36Sopenharmony_ci uart1: serial@7e215040 { 38662306a36Sopenharmony_ci compatible = "brcm,bcm2835-aux-uart"; 38762306a36Sopenharmony_ci reg = <0x7e215040 0x40>; 38862306a36Sopenharmony_ci interrupts = <1 29>; 38962306a36Sopenharmony_ci clocks = <&aux BCM2835_AUX_CLOCK_UART>; 39062306a36Sopenharmony_ci status = "disabled"; 39162306a36Sopenharmony_ci }; 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ci spi1: spi@7e215080 { 39462306a36Sopenharmony_ci compatible = "brcm,bcm2835-aux-spi"; 39562306a36Sopenharmony_ci reg = <0x7e215080 0x40>; 39662306a36Sopenharmony_ci interrupts = <1 29>; 39762306a36Sopenharmony_ci clocks = <&aux BCM2835_AUX_CLOCK_SPI1>; 39862306a36Sopenharmony_ci #address-cells = <1>; 39962306a36Sopenharmony_ci #size-cells = <0>; 40062306a36Sopenharmony_ci status = "disabled"; 40162306a36Sopenharmony_ci }; 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_ci spi2: spi@7e2150c0 { 40462306a36Sopenharmony_ci compatible = "brcm,bcm2835-aux-spi"; 40562306a36Sopenharmony_ci reg = <0x7e2150c0 0x40>; 40662306a36Sopenharmony_ci interrupts = <1 29>; 40762306a36Sopenharmony_ci clocks = <&aux BCM2835_AUX_CLOCK_SPI2>; 40862306a36Sopenharmony_ci #address-cells = <1>; 40962306a36Sopenharmony_ci #size-cells = <0>; 41062306a36Sopenharmony_ci status = "disabled"; 41162306a36Sopenharmony_ci }; 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ci pwm: pwm@7e20c000 { 41462306a36Sopenharmony_ci compatible = "brcm,bcm2835-pwm"; 41562306a36Sopenharmony_ci reg = <0x7e20c000 0x28>; 41662306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_PWM>; 41762306a36Sopenharmony_ci assigned-clocks = <&clocks BCM2835_CLOCK_PWM>; 41862306a36Sopenharmony_ci assigned-clock-rates = <10000000>; 41962306a36Sopenharmony_ci #pwm-cells = <3>; 42062306a36Sopenharmony_ci status = "disabled"; 42162306a36Sopenharmony_ci }; 42262306a36Sopenharmony_ci 42362306a36Sopenharmony_ci sdhci: mmc@7e300000 { 42462306a36Sopenharmony_ci compatible = "brcm,bcm2835-sdhci"; 42562306a36Sopenharmony_ci reg = <0x7e300000 0x100>; 42662306a36Sopenharmony_ci interrupts = <2 30>; 42762306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_EMMC>; 42862306a36Sopenharmony_ci status = "disabled"; 42962306a36Sopenharmony_ci }; 43062306a36Sopenharmony_ci 43162306a36Sopenharmony_ci hvs@7e400000 { 43262306a36Sopenharmony_ci compatible = "brcm,bcm2835-hvs"; 43362306a36Sopenharmony_ci reg = <0x7e400000 0x6000>; 43462306a36Sopenharmony_ci interrupts = <2 1>; 43562306a36Sopenharmony_ci }; 43662306a36Sopenharmony_ci 43762306a36Sopenharmony_ci dsi1: dsi@7e700000 { 43862306a36Sopenharmony_ci compatible = "brcm,bcm2835-dsi1"; 43962306a36Sopenharmony_ci reg = <0x7e700000 0x8c>; 44062306a36Sopenharmony_ci interrupts = <2 12>; 44162306a36Sopenharmony_ci #address-cells = <1>; 44262306a36Sopenharmony_ci #size-cells = <0>; 44362306a36Sopenharmony_ci #clock-cells = <1>; 44462306a36Sopenharmony_ci 44562306a36Sopenharmony_ci clocks = <&clocks BCM2835_PLLD_DSI1>, 44662306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_DSI1E>, 44762306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_DSI1P>; 44862306a36Sopenharmony_ci clock-names = "phy", "escape", "pixel"; 44962306a36Sopenharmony_ci 45062306a36Sopenharmony_ci clock-output-names = "dsi1_byte", 45162306a36Sopenharmony_ci "dsi1_ddr2", 45262306a36Sopenharmony_ci "dsi1_ddr"; 45362306a36Sopenharmony_ci 45462306a36Sopenharmony_ci status = "disabled"; 45562306a36Sopenharmony_ci }; 45662306a36Sopenharmony_ci 45762306a36Sopenharmony_ci i2c1: i2c@7e804000 { 45862306a36Sopenharmony_ci compatible = "brcm,bcm2835-i2c"; 45962306a36Sopenharmony_ci reg = <0x7e804000 0x1000>; 46062306a36Sopenharmony_ci interrupts = <2 21>; 46162306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_VPU>; 46262306a36Sopenharmony_ci #address-cells = <1>; 46362306a36Sopenharmony_ci #size-cells = <0>; 46462306a36Sopenharmony_ci status = "disabled"; 46562306a36Sopenharmony_ci }; 46662306a36Sopenharmony_ci 46762306a36Sopenharmony_ci usb: usb@7e980000 { 46862306a36Sopenharmony_ci compatible = "brcm,bcm2835-usb"; 46962306a36Sopenharmony_ci reg = <0x7e980000 0x10000>; 47062306a36Sopenharmony_ci interrupts = <1 9>; 47162306a36Sopenharmony_ci #address-cells = <1>; 47262306a36Sopenharmony_ci #size-cells = <0>; 47362306a36Sopenharmony_ci clocks = <&clk_usb>; 47462306a36Sopenharmony_ci clock-names = "otg"; 47562306a36Sopenharmony_ci phys = <&usbphy>; 47662306a36Sopenharmony_ci phy-names = "usb2-phy"; 47762306a36Sopenharmony_ci }; 47862306a36Sopenharmony_ci }; 47962306a36Sopenharmony_ci 48062306a36Sopenharmony_ci clocks { 48162306a36Sopenharmony_ci /* The oscillator is the root of the clock tree. */ 48262306a36Sopenharmony_ci clk_osc: clk-osc { 48362306a36Sopenharmony_ci compatible = "fixed-clock"; 48462306a36Sopenharmony_ci #clock-cells = <0>; 48562306a36Sopenharmony_ci clock-output-names = "osc"; 48662306a36Sopenharmony_ci clock-frequency = <19200000>; 48762306a36Sopenharmony_ci }; 48862306a36Sopenharmony_ci 48962306a36Sopenharmony_ci clk_usb: clk-usb { 49062306a36Sopenharmony_ci compatible = "fixed-clock"; 49162306a36Sopenharmony_ci #clock-cells = <0>; 49262306a36Sopenharmony_ci clock-output-names = "otg"; 49362306a36Sopenharmony_ci clock-frequency = <480000000>; 49462306a36Sopenharmony_ci }; 49562306a36Sopenharmony_ci }; 49662306a36Sopenharmony_ci 49762306a36Sopenharmony_ci usbphy: phy { 49862306a36Sopenharmony_ci compatible = "usb-nop-xceiv"; 49962306a36Sopenharmony_ci #phy-cells = <0>; 50062306a36Sopenharmony_ci }; 50162306a36Sopenharmony_ci}; 502