162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci/* This include file covers the common peripherals and configuration between 462306a36Sopenharmony_ci * bcm2835, bcm2836 and bcm2837 implementations. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci/ { 862306a36Sopenharmony_ci interrupt-parent = <&intc>; 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci soc { 1162306a36Sopenharmony_ci dma: dma-controller@7e007000 { 1262306a36Sopenharmony_ci compatible = "brcm,bcm2835-dma"; 1362306a36Sopenharmony_ci reg = <0x7e007000 0xf00>; 1462306a36Sopenharmony_ci interrupts = <1 16>, 1562306a36Sopenharmony_ci <1 17>, 1662306a36Sopenharmony_ci <1 18>, 1762306a36Sopenharmony_ci <1 19>, 1862306a36Sopenharmony_ci <1 20>, 1962306a36Sopenharmony_ci <1 21>, 2062306a36Sopenharmony_ci <1 22>, 2162306a36Sopenharmony_ci <1 23>, 2262306a36Sopenharmony_ci <1 24>, 2362306a36Sopenharmony_ci <1 25>, 2462306a36Sopenharmony_ci <1 26>, 2562306a36Sopenharmony_ci /* dma channel 11-14 share one irq */ 2662306a36Sopenharmony_ci <1 27>, 2762306a36Sopenharmony_ci <1 27>, 2862306a36Sopenharmony_ci <1 27>, 2962306a36Sopenharmony_ci <1 27>, 3062306a36Sopenharmony_ci /* unused shared irq for all channels */ 3162306a36Sopenharmony_ci <1 28>; 3262306a36Sopenharmony_ci interrupt-names = "dma0", 3362306a36Sopenharmony_ci "dma1", 3462306a36Sopenharmony_ci "dma2", 3562306a36Sopenharmony_ci "dma3", 3662306a36Sopenharmony_ci "dma4", 3762306a36Sopenharmony_ci "dma5", 3862306a36Sopenharmony_ci "dma6", 3962306a36Sopenharmony_ci "dma7", 4062306a36Sopenharmony_ci "dma8", 4162306a36Sopenharmony_ci "dma9", 4262306a36Sopenharmony_ci "dma10", 4362306a36Sopenharmony_ci "dma11", 4462306a36Sopenharmony_ci "dma12", 4562306a36Sopenharmony_ci "dma13", 4662306a36Sopenharmony_ci "dma14", 4762306a36Sopenharmony_ci "dma-shared-all"; 4862306a36Sopenharmony_ci #dma-cells = <1>; 4962306a36Sopenharmony_ci brcm,dma-channel-mask = <0x7f35>; 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci intc: interrupt-controller@7e00b200 { 5362306a36Sopenharmony_ci compatible = "brcm,bcm2835-armctrl-ic"; 5462306a36Sopenharmony_ci reg = <0x7e00b200 0x200>; 5562306a36Sopenharmony_ci interrupt-controller; 5662306a36Sopenharmony_ci #interrupt-cells = <2>; 5762306a36Sopenharmony_ci }; 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci pm: watchdog@7e100000 { 6062306a36Sopenharmony_ci compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt"; 6162306a36Sopenharmony_ci #power-domain-cells = <1>; 6262306a36Sopenharmony_ci #reset-cells = <1>; 6362306a36Sopenharmony_ci reg = <0x7e100000 0x114>, 6462306a36Sopenharmony_ci <0x7e00a000 0x24>; 6562306a36Sopenharmony_ci reg-names = "pm", "asb"; 6662306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_V3D>, 6762306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_PERI_IMAGE>, 6862306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_H264>, 6962306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_ISP>; 7062306a36Sopenharmony_ci clock-names = "v3d", "peri_image", "h264", "isp"; 7162306a36Sopenharmony_ci system-power-controller; 7262306a36Sopenharmony_ci }; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci rng@7e104000 { 7562306a36Sopenharmony_ci compatible = "brcm,bcm2835-rng"; 7662306a36Sopenharmony_ci reg = <0x7e104000 0x10>; 7762306a36Sopenharmony_ci interrupts = <2 29>; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci pixelvalve@7e206000 { 8162306a36Sopenharmony_ci compatible = "brcm,bcm2835-pixelvalve0"; 8262306a36Sopenharmony_ci reg = <0x7e206000 0x100>; 8362306a36Sopenharmony_ci interrupts = <2 13>; /* pwa0 */ 8462306a36Sopenharmony_ci }; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci pixelvalve@7e207000 { 8762306a36Sopenharmony_ci compatible = "brcm,bcm2835-pixelvalve1"; 8862306a36Sopenharmony_ci reg = <0x7e207000 0x100>; 8962306a36Sopenharmony_ci interrupts = <2 14>; /* pwa1 */ 9062306a36Sopenharmony_ci }; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci thermal: thermal@7e212000 { 9362306a36Sopenharmony_ci compatible = "brcm,bcm2835-thermal"; 9462306a36Sopenharmony_ci reg = <0x7e212000 0x8>; 9562306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_TSENS>; 9662306a36Sopenharmony_ci #thermal-sensor-cells = <0>; 9762306a36Sopenharmony_ci status = "disabled"; 9862306a36Sopenharmony_ci }; 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci i2c2: i2c@7e805000 { 10162306a36Sopenharmony_ci compatible = "brcm,bcm2835-i2c"; 10262306a36Sopenharmony_ci reg = <0x7e805000 0x1000>; 10362306a36Sopenharmony_ci interrupts = <2 21>; 10462306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_VPU>; 10562306a36Sopenharmony_ci #address-cells = <1>; 10662306a36Sopenharmony_ci #size-cells = <0>; 10762306a36Sopenharmony_ci status = "okay"; 10862306a36Sopenharmony_ci }; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci vec: vec@7e806000 { 11162306a36Sopenharmony_ci compatible = "brcm,bcm2835-vec"; 11262306a36Sopenharmony_ci reg = <0x7e806000 0x1000>; 11362306a36Sopenharmony_ci clocks = <&clocks BCM2835_CLOCK_VEC>; 11462306a36Sopenharmony_ci interrupts = <2 27>; 11562306a36Sopenharmony_ci status = "disabled"; 11662306a36Sopenharmony_ci }; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci pixelvalve@7e807000 { 11962306a36Sopenharmony_ci compatible = "brcm,bcm2835-pixelvalve2"; 12062306a36Sopenharmony_ci reg = <0x7e807000 0x100>; 12162306a36Sopenharmony_ci interrupts = <2 10>; /* pixelvalve */ 12262306a36Sopenharmony_ci }; 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci hdmi: hdmi@7e902000 { 12562306a36Sopenharmony_ci compatible = "brcm,bcm2835-hdmi"; 12662306a36Sopenharmony_ci reg = <0x7e902000 0x600>, 12762306a36Sopenharmony_ci <0x7e808000 0x100>; 12862306a36Sopenharmony_ci interrupts = <2 8>, <2 9>; 12962306a36Sopenharmony_ci ddc = <&i2c2>; 13062306a36Sopenharmony_ci clocks = <&clocks BCM2835_PLLH_PIX>, 13162306a36Sopenharmony_ci <&clocks BCM2835_CLOCK_HSM>; 13262306a36Sopenharmony_ci clock-names = "pixel", "hdmi"; 13362306a36Sopenharmony_ci dmas = <&dma 17>; 13462306a36Sopenharmony_ci dma-names = "audio-rx"; 13562306a36Sopenharmony_ci status = "disabled"; 13662306a36Sopenharmony_ci }; 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci v3d: v3d@7ec00000 { 13962306a36Sopenharmony_ci compatible = "brcm,bcm2835-v3d"; 14062306a36Sopenharmony_ci reg = <0x7ec00000 0x1000>; 14162306a36Sopenharmony_ci interrupts = <1 10>; 14262306a36Sopenharmony_ci }; 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci vc4: gpu { 14562306a36Sopenharmony_ci compatible = "brcm,bcm2835-vc4"; 14662306a36Sopenharmony_ci }; 14762306a36Sopenharmony_ci }; 14862306a36Sopenharmony_ci}; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci&cpu_thermal { 15162306a36Sopenharmony_ci thermal-sensors = <&thermal>; 15262306a36Sopenharmony_ci}; 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci&gpio { 15562306a36Sopenharmony_ci i2c_slave_gpio18: i2c-slave-gpio18 { 15662306a36Sopenharmony_ci brcm,pins = <18 19 20 21>; 15762306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT3>; 15862306a36Sopenharmony_ci }; 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci jtag_gpio4: jtag-gpio4 { 16162306a36Sopenharmony_ci brcm,pins = <4 5 6 12 13>; 16262306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 16362306a36Sopenharmony_ci }; 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci pwm0_gpio12: pwm0-gpio12 { 16662306a36Sopenharmony_ci brcm,pins = <12>; 16762306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 16862306a36Sopenharmony_ci }; 16962306a36Sopenharmony_ci pwm0_gpio18: pwm0-gpio18 { 17062306a36Sopenharmony_ci brcm,pins = <18>; 17162306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 17262306a36Sopenharmony_ci }; 17362306a36Sopenharmony_ci pwm0_gpio40: pwm0-gpio40 { 17462306a36Sopenharmony_ci brcm,pins = <40>; 17562306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 17662306a36Sopenharmony_ci }; 17762306a36Sopenharmony_ci pwm1_gpio13: pwm1-gpio13 { 17862306a36Sopenharmony_ci brcm,pins = <13>; 17962306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 18062306a36Sopenharmony_ci }; 18162306a36Sopenharmony_ci pwm1_gpio19: pwm1-gpio19 { 18262306a36Sopenharmony_ci brcm,pins = <19>; 18362306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT5>; 18462306a36Sopenharmony_ci }; 18562306a36Sopenharmony_ci pwm1_gpio41: pwm1-gpio41 { 18662306a36Sopenharmony_ci brcm,pins = <41>; 18762306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 18862306a36Sopenharmony_ci }; 18962306a36Sopenharmony_ci pwm1_gpio45: pwm1-gpio45 { 19062306a36Sopenharmony_ci brcm,pins = <45>; 19162306a36Sopenharmony_ci brcm,function = <BCM2835_FSEL_ALT0>; 19262306a36Sopenharmony_ci }; 19362306a36Sopenharmony_ci}; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci&i2s { 19662306a36Sopenharmony_ci dmas = <&dma 2>, <&dma 3>; 19762306a36Sopenharmony_ci dma-names = "tx", "rx"; 19862306a36Sopenharmony_ci}; 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci&sdhost { 20162306a36Sopenharmony_ci dmas = <&dma 13>; 20262306a36Sopenharmony_ci dma-names = "rx-tx"; 20362306a36Sopenharmony_ci}; 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci&spi { 20662306a36Sopenharmony_ci dmas = <&dma 6>, <&dma 7>; 20762306a36Sopenharmony_ci dma-names = "tx", "rx"; 20862306a36Sopenharmony_ci}; 209