diff --git a/arch/arm/boot/dts/bcm2708-rpi.dtsi b/arch/arm/boot/dts/bcm2708-rpi.dtsi index ce9795dad99f3..49142d0819201 100644 --- a/arch/arm/boot/dts/bcm2708-rpi.dtsi +++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi @@ -1,6 +1,7 @@ -/* Downstream modifications to bcm2835-rpi.dtsi */ +/* Downstream modifications common to bcm2835, bcm2836, bcm2837 */ #include "bcm2835-rpi.dtsi" +#include "bcm270x-rpi.dtsi" / { memory@0 { @@ -9,146 +10,26 @@ }; aliases { - audio = &audio; - aux = &aux; - sound = &sound; - soc = &soc; - dma = &dma; - intc = &intc; - watchdog = &watchdog; - random = &random; - mailbox = &mailbox; - gpio = &gpio; - uart0 = &uart0; - sdhost = &sdhost; - mmc0 = &sdhost; - i2s = &i2s; - spi0 = &spi0; - i2c0 = &i2c0; - uart1 = &uart1; - spi1 = &spi1; - spi2 = &spi2; - mmc = &mmc; - mmc1 = &mmc; - i2c1 = &i2c1; i2c2 = &i2c2; - usb = &usb; - leds = &leds; - fb = &fb; - thermal = &thermal; - axiperf = &axiperf; - }; - - leds: leds { - compatible = "gpio-leds"; - }; - - soc { - gpiomem { - compatible = "brcm,bcm2835-gpiomem"; - reg = <0x7e200000 0x1000>; - }; - - fb: fb { - compatible = "brcm,bcm2708-fb"; - firmware = <&firmware>; - status = "okay"; - }; - - vcsm: vcsm { - compatible = "raspberrypi,bcm2835-vcsm"; - firmware = <&firmware>; - status = "okay"; - }; - - /* Onboard audio */ - audio: audio { - compatible = "brcm,bcm2835-audio"; - brcm,pwm-channels = <8>; - status = "disabled"; - }; - - /* External sound card */ - sound: sound { - status = "disabled"; - }; }; __overrides__ { - cache_line_size; - - uart0 = <&uart0>,"status"; - uart1 = <&uart1>,"status"; - i2s = <&i2s>,"status"; - spi = <&spi0>,"status"; - i2c0 = <&i2c0>,"status"; - i2c1 = <&i2c1>,"status"; i2c2_iknowwhatimdoing = <&i2c2>,"status"; - i2c0_baudrate = <&i2c0>,"clock-frequency:0"; - i2c1_baudrate = <&i2c1>,"clock-frequency:0"; i2c2_baudrate = <&i2c2>,"clock-frequency:0"; - - audio = <&audio>,"status"; - watchdog = <&watchdog>,"status"; - random = <&random>,"status"; - sd_overclock = <&sdhost>,"brcm,overclock-50:0"; - sd_force_pio = <&sdhost>,"brcm,force-pio?"; - sd_pio_limit = <&sdhost>,"brcm,pio-limit:0"; - sd_debug = <&sdhost>,"brcm,debug"; - sdio_overclock = <&mmc>,"brcm,overclock-50:0", - <&mmcnr>,"brcm,overclock-50:0"; - axiperf = <&axiperf>,"status"; }; }; -&hdmi { - power-domains = <&power RPI_POWER_DOMAIN_HDMI>; - status = "disabled"; -}; - -&txp { - status = "disabled"; -}; - -&i2c0 { - status = "disabled"; -}; - -&i2c1 { - status = "disabled"; -}; - -&i2c2 { - status = "disabled"; -}; - -&clocks { - firmware = <&firmware>; -}; - -&sdhci { - pinctrl-names = "default"; - pinctrl-0 = <&emmc_gpio48>; - bus-width = <4>; -}; - -sdhost_pins: &sdhost_gpio48 { - /* Add alias */ -}; - &sdhost { pinctrl-names = "default"; pinctrl-0 = <&sdhost_gpio48>; - bus-width = <4>; - brcm,overclock-50 = <0>; - brcm,pio-limit = <1>; status = "okay"; }; -&cpu_thermal { - /delete-node/ trips; +&hdmi { + power-domains = <&power RPI_POWER_DOMAIN_HDMI>; + status = "disabled"; }; -&vec { +&i2c2 { status = "disabled"; }; diff --git a/arch/arm/boot/dts/bcm2708.dtsi b/arch/arm/boot/dts/bcm2708.dtsi index 16a637363b5df..a32ff21613eda 100644 --- a/arch/arm/boot/dts/bcm2708.dtsi +++ b/arch/arm/boot/dts/bcm2708.dtsi @@ -8,3 +8,7 @@ arm_freq; }; }; + +&vc4 { + status = "disabled"; +}; diff --git a/arch/arm/boot/dts/bcm2709.dtsi b/arch/arm/boot/dts/bcm2709.dtsi index 8bc67c0aaff17..68eafc1b281a5 100644 --- a/arch/arm/boot/dts/bcm2709.dtsi +++ b/arch/arm/boot/dts/bcm2709.dtsi @@ -16,3 +16,7 @@ <&v7_cpu3>, "clock-frequency:0"; }; }; + +&vc4 { + status = "disabled"; +}; diff --git a/arch/arm/boot/dts/bcm270x-rpi.dtsi b/arch/arm/boot/dts/bcm270x-rpi.dtsi new file mode 100644 index 0000000000000..b7bf360616235 --- /dev/null +++ b/arch/arm/boot/dts/bcm270x-rpi.dtsi @@ -0,0 +1,139 @@ +/* Downstream modifications to bcm2835-rpi.dtsi */ + +/ { + aliases { + audio = &audio; + aux = &aux; + sound = &sound; + soc = &soc; + dma = &dma; + intc = &intc; + watchdog = &watchdog; + random = &random; + mailbox = &mailbox; + gpio = &gpio; + uart0 = &uart0; + uart1 = &uart1; + sdhost = &sdhost; + mmc = &mmc; + mmc1 = &mmc; + mmc0 = &sdhost; + i2s = &i2s; + i2c0 = &i2c0; + i2c1 = &i2c1; + spi0 = &spi0; + spi1 = &spi1; + spi2 = &spi2; + usb = &usb; + leds = &leds; + fb = &fb; + thermal = &thermal; + axiperf = &axiperf; + }; + + /* Define these notional regulators for use by overlays */ + vdd_3v3_reg: fixedregulator_3v3 { + compatible = "regulator-fixed"; + regulator-always-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "3v3"; + }; + + vdd_5v0_reg: fixedregulator_5v0 { + compatible = "regulator-fixed"; + regulator-always-on; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + regulator-name = "5v0"; + }; + + leds: leds { + compatible = "gpio-leds"; + }; + + soc { + gpiomem { + compatible = "brcm,bcm2835-gpiomem"; + reg = <0x7e200000 0x1000>; + }; + + fb: fb { + compatible = "brcm,bcm2708-fb"; + firmware = <&firmware>; + status = "okay"; + }; + + vcsm: vcsm { + compatible = "raspberrypi,bcm2835-vcsm"; + firmware = <&firmware>; + status = "okay"; + }; + + /* Onboard audio */ + audio: audio { + compatible = "brcm,bcm2835-audio"; + brcm,pwm-channels = <8>; + status = "disabled"; + }; + + /* External sound card */ + sound: sound { + status = "disabled"; + }; + }; + + __overrides__ { + cache_line_size; + + uart0 = <&uart0>,"status"; + uart1 = <&uart1>,"status"; + i2s = <&i2s>,"status"; + spi = <&spi0>,"status"; + i2c0 = <&i2c0>,"status"; + i2c1 = <&i2c1>,"status"; + i2c0_baudrate = <&i2c0>,"clock-frequency:0"; + i2c1_baudrate = <&i2c1>,"clock-frequency:0"; + + audio = <&audio>,"status"; + watchdog = <&watchdog>,"status"; + random = <&random>,"status"; + sd_overclock = <&sdhost>,"brcm,overclock-50:0"; + sd_force_pio = <&sdhost>,"brcm,force-pio?"; + sd_pio_limit = <&sdhost>,"brcm,pio-limit:0"; + sd_debug = <&sdhost>,"brcm,debug"; + sdio_overclock = <&mmc>,"brcm,overclock-50:0", + <&mmcnr>,"brcm,overclock-50:0"; + axiperf = <&axiperf>,"status"; + }; +}; + +&txp { + status = "disabled"; +}; + +&i2c0 { + status = "disabled"; +}; + +&i2c1 { + status = "disabled"; +}; + +&clocks { + firmware = <&firmware>; +}; + +&sdhci { + pinctrl-names = "default"; + pinctrl-0 = <&emmc_gpio48>; + bus-width = <4>; +}; + +&cpu_thermal { + /delete-node/ trips; +}; + +&vec { + status = "disabled"; +}; diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi index 9eb6becfbe411..04669f512b4c9 100644 --- a/arch/arm/boot/dts/bcm270x.dtsi +++ b/arch/arm/boot/dts/bcm270x.dtsi @@ -17,32 +17,8 @@ /* Add label */ }; - gpio@7e200000 { /* gpio */ - interrupts = <2 17>, <2 18>; - - dpi_18bit_gpio0: dpi_18bit_gpio0 { - brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 - 12 13 14 15 16 17 18 19 - 20 21>; - brcm,function = ; - }; - }; - - serial@7e201000 { /* uart0 */ - /* Enable CTS bug workaround */ - cts-event-workaround; - }; - - i2s@7e203000 { /* i2s */ - #sound-dai-cells = <0>; - reg = <0x7e203000 0x24>; - clocks = <&clocks BCM2835_CLOCK_PCM>; - }; - spi0: spi@7e204000 { /* Add label */ - dmas = <&dma 6>, <&dma 7>; - dma-names = "tx", "rx"; }; pixelvalve0: pixelvalve@7e206000 { @@ -55,17 +31,6 @@ status = "disabled"; }; - dpi: dpi@7e208000 { - compatible = "brcm,bcm2835-dpi"; - reg = <0x7e208000 0x8c>; - clocks = <&clocks BCM2835_CLOCK_VPU>, - <&clocks BCM2835_CLOCK_DPI>; - clock-names = "core", "pixel"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - /delete-node/ sdhci@7e300000; sdhci: mmc: mmc@7e300000 { @@ -118,6 +83,34 @@ status = "disabled"; }; + csi0: csi@7e800000 { + compatible = "brcm,bcm2835-unicam"; + reg = <0x7e800000 0x800>, + <0x7e802000 0x4>; + interrupts = <2 6>; + clocks = <&clocks BCM2835_CLOCK_CAM0>; + clock-names = "lp"; + power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>; + #address-cells = <1>; + #size-cells = <0>; + #clock-cells = <1>; + status = "disabled"; + }; + + csi1: csi@7e801000 { + compatible = "brcm,bcm2835-unicam"; + reg = <0x7e801000 0x800>, + <0x7e802004 0x4>; + interrupts = <2 7>; + clocks = <&clocks BCM2835_CLOCK_CAM1>; + clock-names = "lp"; + power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>; + #address-cells = <1>; + #size-cells = <0>; + #clock-cells = <1>; + status = "disabled"; + }; + pixelvalve2: pixelvalve@7e807000 { /* Add label */ status = "disabled"; @@ -160,6 +153,37 @@ }; }; -&vc4 { - status = "disabled"; +&gpio { + interrupts = <2 17>, <2 18>; + + dpi_18bit_gpio0: dpi_18bit_gpio0 { + brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 + 20 21>; + brcm,function = ; + }; +}; + +&uart0 { + /* Enable CTS bug workaround */ + cts-event-workaround; +}; + +&i2s { + #sound-dai-cells = <0>; + dmas = <&dma 2>, <&dma 3>; + dma-names = "tx", "rx"; +}; + +&sdhost { + dmas = <&dma (13|(1<<29))>; + dma-names = "rx-tx"; + bus-width = <4>; + brcm,overclock-50 = <0>; + brcm,pio-limit = <1>; +}; + +&spi0 { + dmas = <&dma 6>, <&dma 7>; + dma-names = "tx", "rx"; }; diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts index 55420ac94dcfa..0c36c64aaeeff 100644 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts @@ -170,6 +170,12 @@ pinctrl-0 = <&audio_pins>; }; +ð_phy { + microchip,eee-enabled; + microchip,tx-lpi-timer = <600>; /* non-aggressive*/ + microchip,downshift-after = <2>; +}; + / { __overrides__ { act_led_gpio = <&act_led>,"gpios:4"; @@ -179,5 +185,12 @@ pwr_led_gpio = <&pwr_led>,"gpios:4"; pwr_led_activelow = <&pwr_led>,"gpios:8"; pwr_led_trigger = <&pwr_led>,"linux,default-trigger"; + + eee = <ð_phy>,"microchip,eee-enabled?"; + tx_lpi_timer = <ð_phy>,"microchip,tx-lpi-timer:0"; + eth_led0 = <ð_phy>,"microchip,led-modes:0"; + eth_led1 = <ð_phy>,"microchip,led-modes:4"; + eth_downshift_after = <ð_phy>,"microchip,downshift-after:0"; + eth_max_speed = <ð_phy>,"max-speed:0"; }; }; diff --git a/arch/arm/boot/dts/bcm2710.dtsi b/arch/arm/boot/dts/bcm2710.dtsi index 5c45ded273fe3..4e47480dd9338 100644 --- a/arch/arm/boot/dts/bcm2710.dtsi +++ b/arch/arm/boot/dts/bcm2710.dtsi @@ -23,3 +23,7 @@ <&cpu3>, "clock-frequency:0"; }; }; + +&vc4 { + status = "disabled"; +}; diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts index 1b5a835f66bd3..2013cf8325679 100644 --- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts @@ -2,7 +2,6 @@ /dts-v1/; #include "bcm2711.dtsi" #include "bcm2835-rpi.dtsi" -#include "bcm283x-rpi-usb-peripheral.dtsi" / { compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; @@ -65,8 +64,8 @@ "GLOBAL_RESET", "VDD_SD_IO_SEL", "CAM_GPIO", - "", - ""; + "SD_PWR_ON", + "SD_OC_N"; status = "okay"; }; }; @@ -138,3 +137,313 @@ &vchiq { interrupts = ; }; + +// ============================================= +// Downstream rpi- changes + +#include "bcm270x.dtsi" +#include "bcm2711-rpi.dtsi" +#include "bcm283x-rpi-csi1-2lane.dtsi" + +/ { + chosen { + bootargs = "coherent_pool=1M 8250.nr_uarts=1 cma=64M"; + }; + + aliases { + serial0 = &uart1; + serial1 = &uart0; + mmc0 = &emmc2; + mmc1 = &mmcnr; + mmc2 = &sdhost; + /delete-property/ i2c2; + i2c3 = &i2c3; + i2c4 = &i2c4; + i2c5 = &i2c5; + i2c6 = &i2c6; + /delete-property/ ethernet; + /delete-property/ intc; + pcie0 = &pcie_0; + }; + + /delete-node/ wifi-pwrseq; +}; + +&mmcnr { + pinctrl-names = "default"; + pinctrl-0 = <&sdio_pins>; + bus-width = <4>; + status = "okay"; +}; + +&uart0 { + pinctrl-0 = <&uart0_pins &bt_pins>; + status = "okay"; + + /delete-node/ bluetooth; +}; + +&uart1 { + pinctrl-0 = <&uart1_pins>; +}; + +&spi0 { + pinctrl-names = "default"; + pinctrl-0 = <&spi0_pins &spi0_cs_pins>; + cs-gpios = <&gpio 8 1>, <&gpio 7 1>; + + spidev0: spidev@0{ + compatible = "spidev"; + reg = <0>; /* CE0 */ + #address-cells = <1>; + #size-cells = <0>; + spi-max-frequency = <125000000>; + }; + + spidev1: spidev@1{ + compatible = "spidev"; + reg = <1>; /* CE1 */ + #address-cells = <1>; + #size-cells = <0>; + spi-max-frequency = <125000000>; + }; +}; + +&gpio { + spi0_pins: spi0_pins { + brcm,pins = <9 10 11>; + brcm,function = ; + }; + + spi0_cs_pins: spi0_cs_pins { + brcm,pins = <8 7>; + brcm,function = ; + }; + + spi3_pins: spi3_pins { + brcm,pins = <1 2 3>; + brcm,function = ; + }; + + spi3_cs_pins: spi3_cs_pins { + brcm,pins = <0 24>; + brcm,function = ; + }; + + spi4_pins: spi4_pins { + brcm,pins = <5 6 7>; + brcm,function = ; + }; + + spi4_cs_pins: spi4_cs_pins { + brcm,pins = <4 25>; + brcm,function = ; + }; + + spi5_pins: spi5_pins { + brcm,pins = <13 14 15>; + brcm,function = ; + }; + + spi5_cs_pins: spi5_cs_pins { + brcm,pins = <12 26>; + brcm,function = ; + }; + + spi6_pins: spi6_pins { + brcm,pins = <19 20 21>; + brcm,function = ; + }; + + spi6_cs_pins: spi6_cs_pins { + brcm,pins = <18 27>; + brcm,function = ; + }; + + i2c0_pins: i2c0 { + brcm,pins = <0 1>; + brcm,function = ; + brcm,pull = ; + }; + + i2c1_pins: i2c1 { + brcm,pins = <2 3>; + brcm,function = ; + brcm,pull = ; + }; + + i2c3_pins: i2c3 { + brcm,pins = <4 5>; + brcm,function = ; + brcm,pull = ; + }; + + i2c4_pins: i2c4 { + brcm,pins = <8 9>; + brcm,function = ; + brcm,pull = ; + }; + + i2c5_pins: i2c5 { + brcm,pins = <12 13>; + brcm,function = ; + brcm,pull = ; + }; + + i2c6_pins: i2c6 { + brcm,pins = <22 23>; + brcm,function = ; + brcm,pull = ; + }; + + i2s_pins: i2s { + brcm,pins = <18 19 20 21>; + brcm,function = ; + }; + + sdio_pins: sdio_pins { + brcm,pins = <34 35 36 37 38 39>; + brcm,function = ; // alt3 = SD1 + brcm,pull = <0 2 2 2 2 2>; + }; + + bt_pins: bt_pins { + brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0 + // to fool pinctrl + brcm,function = <0>; + brcm,pull = <2>; + }; + + uart0_pins: uart0_pins { + brcm,pins = <32 33>; + brcm,function = ; + brcm,pull = <0 2>; + }; + + uart1_pins: uart1_pins { + brcm,pins; + brcm,function; + brcm,pull; + }; + + uart2_pins: uart2_pins { + brcm,pins = <0 1>; + brcm,function = ; + brcm,pull = <0 2>; + }; + + uart3_pins: uart3_pins { + brcm,pins = <4 5>; + brcm,function = ; + brcm,pull = <0 2>; + }; + + uart4_pins: uart4_pins { + brcm,pins = <8 9>; + brcm,function = ; + brcm,pull = <0 2>; + }; + + uart5_pins: uart5_pins { + brcm,pins = <12 13>; + brcm,function = ; + brcm,pull = <0 2>; + }; +}; + +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + clock-frequency = <100000>; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins>; + clock-frequency = <100000>; +}; + +&i2s { + pinctrl-names = "default"; + pinctrl-0 = <&i2s_pins>; +}; + +/ { + __overrides__ { + /delete-property/ i2c2_baudrate; + /delete-property/ i2c2_iknowwhatimdoing; + }; +}; + +// ============================================= +// Board specific stuff here + +/ { + sd_vcc_reg: sd_vcc_reg { + compatible = "regulator-fixed"; + regulator-name = "vcc-sd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + enable-active-high; + gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; + }; +}; + +&sdhost { + status = "disabled"; +}; + +&emmc2 { + vmmc-supply = <&sd_vcc_reg>; +}; + +&phy1 { + led-modes = <0x00 0x08>; /* link/activity link */ +}; + +&gpio { + audio_pins: audio_pins { + brcm,pins = <40 41>; + brcm,function = <4>; + }; +}; + +&leds { + act_led: act { + label = "led0"; + linux,default-trigger = "mmc0"; + gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; + }; + + pwr_led: pwr { + label = "led1"; + linux,default-trigger = "default-on"; + gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; + }; +}; + +&pwm1 { + status = "disabled"; +}; + +&audio { + pinctrl-names = "default"; + pinctrl-0 = <&audio_pins>; +}; + +/ { + __overrides__ { + act_led_gpio = <&act_led>,"gpios:4"; + act_led_activelow = <&act_led>,"gpios:8"; + act_led_trigger = <&act_led>,"linux,default-trigger"; + + pwr_led_gpio = <&pwr_led>,"gpios:4"; + pwr_led_activelow = <&pwr_led>,"gpios:8"; + pwr_led_trigger = <&pwr_led>,"linux,default-trigger"; + + eth_led0 = <&phy1>,"led-modes:0"; + eth_led1 = <&phy1>,"led-modes:4"; + + }; +}; diff --git a/arch/arm/boot/dts/bcm2711-rpi.dtsi b/arch/arm/boot/dts/bcm2711-rpi.dtsi index d8ffaab8e86aa..96746c4fee9c8 100644 --- a/arch/arm/boot/dts/bcm2711-rpi.dtsi +++ b/arch/arm/boot/dts/bcm2711-rpi.dtsi @@ -1,7 +1,217 @@ -#include "bcm2708-rpi.dtsi" -#include "bcm2838-rpi.dtsi" +// SPDX-License-Identifier: GPL-2.0 +#include "bcm270x-rpi.dtsi" -&v3d { - /* Undo the overwriting by bcm270x.dtsi */ - power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; +/ { + soc { + /delete-node/ v3d@7ec00000; + /delete-node/ mailbox@7e00b840; + }; + + __overrides__ { + arm_freq; + }; + + v3dbus { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <2>; + ranges = <0x7c500000 0x0 0xfc500000 0x0 0x03300000>, + <0x40000000 0x0 0xff800000 0x0 0x00800000>; + dma-ranges = <0x00000000 0x0 0x00000000 0x4 0x00000000>; + + v3d: v3d@7ec04000 { + compatible = "brcm,2711-v3d"; + reg = + <0x7ec00000 0x0 0x4000>, + <0x7ec04000 0x0 0x4000>; + reg-names = "hub", "core0"; + + power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; + resets = <&pm BCM2835_RESET_V3D>; + clocks = <&clocks BCM2835_CLOCK_V3D>; + interrupts = ; + status = "disabled"; + }; + }; + + scb: scb { + /* Add a label */ + }; +}; + +&soc { + thermal: thermal@7d5d2200 { + compatible = "brcm,avs-tmon-bcm2838"; + reg = <0x7d5d2200 0x2c>; + interrupts = ; + interrupt-names = "tmon"; + clocks = <&clocks BCM2835_CLOCK_TSENS>; + #thermal-sensor-cells = <0>; + status = "okay"; + }; + + vc4: gpu { + compatible = "brcm,bcm2835-vc4"; + status = "disabled"; + }; +}; + +&scb { + ranges = <0x0 0x7c000000 0x0 0xfc000000 0x03800000>, + <0x0 0x40000000 0x0 0xff800000 0x00800000>, + <0x6 0x00000000 0x6 0x00000000 0x40000000>, + <0x0 0x00000000 0x0 0x00000000 0xfc000000>; + dma-ranges = <0x0 0x00000000 0x0 0x00000000 0xfc000000>; + + pcie_0: pcie@7d500000 { + reg = <0x0 0x7d500000 0x9310>, + <0x0 0x7e00f300 0x20>; + msi-controller; + msi-parent = <&pcie_0>; + #address-cells = <3>; + #interrupt-cells = <1>; + #size-cells = <2>; + bus-range = <0x0 0x01>; + compatible = "brcm,bcm2711b0-pcie", // Safe value + "brcm,bcm2711-pcie", + "brcm,pci-plat-dev"; + max-link-speed = <2>; + tot-num-pcie = <1>; + linux,pci-domain = <0>; + interrupts = , + ; + interrupt-names = "pcie", "msi"; + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 + IRQ_TYPE_LEVEL_HIGH + 0 0 0 2 &gicv2 GIC_SPI 144 + IRQ_TYPE_LEVEL_HIGH + 0 0 0 3 &gicv2 GIC_SPI 145 + IRQ_TYPE_LEVEL_HIGH + 0 0 0 4 &gicv2 GIC_SPI 146 + IRQ_TYPE_LEVEL_HIGH>; + + /* Map outbound accesses from scb:0x6_00000000-03ffffff + * to pci:0x0_f8000000-fbffffff + */ + ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 + 0x0 0x04000000>; + /* Map inbound accesses from pci:0x0_00000000..ffffffff + * to scb:0x0_00000000-ffffffff + */ + dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 + 0x1 0x00000000>; + status = "okay"; + }; + + dma40: dma@7e007b00 { + compatible = "brcm,bcm2838-dma"; + reg = <0x0 0x7e007b00 0x400>; + interrupts = + , /* dma4 11 */ + , /* dma4 12 */ + , /* dma4 13 */ + ; /* dma4 14 */ + interrupt-names = "dma11", + "dma12", + "dma13", + "dma14"; + #dma-cells = <1>; + brcm,dma-channel-mask = <0x7800>; + }; + + vchiq: mailbox@7e00b840 { + compatible = "brcm,bcm2838-vchiq"; + reg = <0 0x7e00b840 0x3c>; + interrupts = ; + }; + + xhci: xhci@7e9c0000 { + compatible = "generic-xhci"; + status = "disabled"; + reg = <0x0 0x7e9c0000 0x100000>; + interrupts = ; + }; + + hevc-decoder@7eb00000 { + compatible = "raspberrypi,rpivid-hevc-decoder"; + reg = <0x0 0x7eb00000 0x10000>; + status = "okay"; + }; + + rpivid-local-intc@7eb10000 { + compatible = "raspberrypi,rpivid-local-intc"; + reg = <0x0 0x7eb10000 0x1000>; + status = "okay"; + interrupts = ; + }; + + h264-decoder@7eb20000 { + compatible = "raspberrypi,rpivid-h264-decoder"; + reg = <0x0 0x7eb20000 0x10000>; + status = "okay"; + }; + + vp9-decoder@7eb30000 { + compatible = "raspberrypi,rpivid-vp9-decoder"; + reg = <0x0 0x7eb30000 0x10000>; + status = "okay"; + }; +}; + +&dma { + /* The VPU firmware uses DMA channel 11 for VCHIQ */ + brcm,dma-channel-mask = <0x1f5>; +}; + +&dma40 { + /* The VPU firmware DMA channel 11 for VCHIQ */ + brcm,dma-channel-mask = <0x7000>; +}; + +&firmwarekms { + interrupts = ; +}; + +&smi { + interrupts = ; +}; + +&mmc { + interrupts = ; +}; + +&mmcnr { + interrupts = ; +}; + +&csi0 { + interrupts = ; +}; + +&csi1 { + interrupts = ; +}; + +&random { + compatible = "brcm,bcm2711-rng200", "brcm,bcm2838-rng200"; + status = "okay"; +}; + +&usb { + /* Enable the FIQ support */ + reg = <0x7e980000 0x10000>, + <0x7e00b200 0x200>; + interrupts = , + ; + status = "disabled"; +}; + +&gpio { + interrupts = , + ; +}; + +&cpu_thermal { + thermal-sensors = <&thermal>; }; diff --git a/arch/arm/boot/dts/bcm2838-rpi.dtsi b/arch/arm/boot/dts/bcm2838-rpi.dtsi deleted file mode 100644 index 140cfa312d1ae..0000000000000 --- a/arch/arm/boot/dts/bcm2838-rpi.dtsi +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 - -/ { - soc { - /delete-node/ mailbox@7e00b840; - }; -}; - -&scb { - vchiq: mailbox@7e00b840 { - compatible = "brcm,bcm2838-vchiq"; - reg = <0 0x7e00b840 0x3c>; - interrupts = ; - }; -}; - -&dma { - /* The VPU firmware uses DMA channel 11 for VCHIQ */ - brcm,dma-channel-mask = <0x1f5>; -}; - -&dma40 { - /* The VPU firmware DMA channel 11 for VCHIQ */ - brcm,dma-channel-mask = <0x7000>; -}; diff --git a/arch/arm/boot/dts/bcm2838.dtsi b/arch/arm/boot/dts/bcm2838.dtsi deleted file mode 100644 index 847dc7e35c945..0000000000000 --- a/arch/arm/boot/dts/bcm2838.dtsi +++ /dev/null @@ -1,733 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "bcm283x.dtsi" - -#include -#include - -/ { - compatible = "brcm,bcm2838"; - - #address-cells = <2>; - #size-cells = <1>; - - interrupt-parent = <&gicv2>; - - soc { - ranges = <0x7e000000 0x0 0xfe000000 0x01800000>, - <0x7c000000 0x0 0xfc000000 0x02000000>, - <0x40000000 0x0 0xff800000 0x00800000>; - /* Emulate a contiguous 30-bit address range for DMA */ - dma-ranges = <0xc0000000 0x0 0x00000000 0x3c000000>; - - /delete-node/ interrupt-controller@7e00f300; - /delete-node/ v3d@7ec00000; - - local_intc: local_intc@40000000 { - compatible = "brcm,bcm2836-l1-intc"; - reg = <0x40000000 0x100>; - }; - - gicv2: interrupt-controller@40041000 { - interrupt-controller; - #interrupt-cells = <3>; - compatible = "arm,gic-400"; - reg = <0x40041000 0x1000>, - <0x40042000 0x2000>, - <0x40044000 0x2000>, - <0x40046000 0x2000>; - interrupts = ; - }; - - thermal: thermal@7d5d2200 { - compatible = "brcm,avs-tmon-bcm2838"; - reg = <0x7d5d2200 0x2c>; - interrupts = ; - interrupt-names = "tmon"; - clocks = <&clocks BCM2835_CLOCK_TSENS>; - #thermal-sensor-cells = <0>; - status = "okay"; - }; - - pm: watchdog@7e100000 { - reg = <0x7e100000 0x114>, - <0x7e00a000 0x24>, - <0x7ec11000 0x20>; - }; - - rng@7e104000 { - interrupts = ; - }; - - uart2: serial@7e201400 { - compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; - reg = <0x7e201400 0x200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_UART>, - <&clocks BCM2835_CLOCK_VPU>; - clock-names = "uartclk", "apb_pclk"; - arm,primecell-periphid = <0x00241011>; - status = "disabled"; - }; - - uart3: serial@7e201600 { - compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; - reg = <0x7e201600 0x200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_UART>, - <&clocks BCM2835_CLOCK_VPU>; - clock-names = "uartclk", "apb_pclk"; - arm,primecell-periphid = <0x00241011>; - status = "disabled"; - }; - - uart4: serial@7e201800 { - compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; - reg = <0x7e201800 0x200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_UART>, - <&clocks BCM2835_CLOCK_VPU>; - clock-names = "uartclk", "apb_pclk"; - arm,primecell-periphid = <0x00241011>; - status = "disabled"; - }; - - uart5: serial@7e201a00 { - compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; - reg = <0x7e201a00 0x200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_UART>, - <&clocks BCM2835_CLOCK_VPU>; - clock-names = "uartclk", "apb_pclk"; - arm,primecell-periphid = <0x00241011>; - status = "disabled"; - }; - - spi@7e204000 { - reg = <0x7e204000 0x0200>; - interrupts = ; - }; - - spi3: spi@7e204600 { - compatible = "brcm,bcm2835-spi"; - reg = <0x7e204600 0x0200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_VPU>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - spi4: spi@7e204800 { - compatible = "brcm,bcm2835-spi"; - reg = <0x7e204800 0x0200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_VPU>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - spi5: spi@7e204a00 { - compatible = "brcm,bcm2835-spi"; - reg = <0x7e204a00 0x0200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_VPU>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - spi6: spi@7e204c00 { - compatible = "brcm,bcm2835-spi"; - reg = <0x7e204c00 0x0200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_VPU>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - i2c3: i2c@7e205600 { - compatible = "brcm,bcm2835-i2c"; - reg = <0x7e205600 0x200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_VPU>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - i2c4: i2c@7e205800 { - compatible = "brcm,bcm2835-i2c"; - reg = <0x7e205800 0x200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_VPU>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - i2c5: i2c@7e205a00 { - compatible = "brcm,bcm2835-i2c"; - reg = <0x7e205a00 0x200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_VPU>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - i2c6: i2c@7e205c00 { - compatible = "brcm,bcm2835-i2c"; - reg = <0x7e205c00 0x200>; - interrupts = ; - clocks = <&clocks BCM2835_CLOCK_VPU>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - pwm1: pwm@7e20c800 { - compatible = "brcm,bcm2835-pwm"; - reg = <0x7e20c800 0x28>; - clocks = <&clocks BCM2835_CLOCK_PWM>; - assigned-clocks = <&clocks BCM2835_CLOCK_PWM>; - assigned-clock-rates = <10000000>; - #pwm-cells = <2>; - status = "disabled"; - }; - - emmc2: emmc2@7e340000 { - compatible = "brcm,bcm2711-emmc2"; - status = "okay"; - interrupts = ; - clocks = <&clocks BCM2711_CLOCK_EMMC2>; - reg = <0x7e340000 0x100>; - }; - - hvs@7e400000 { - interrupts = ; - }; - }; - - arm-pmu { - compatible = "arm,cortex-a72-pmu"; - interrupts = , - , - , - ; - interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; - }; - - timer { - compatible = "arm,armv7-timer"; - interrupts = , - , - , - ; - arm,cpu-registers-not-fw-configured; - }; - - cpus: cpus { - #address-cells = <1>; - #size-cells = <0>; - enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit - - cpu0: cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a72"; - reg = <0>; - enable-method = "spin-table"; - cpu-release-addr = <0x0 0x000000d8>; - }; - - cpu1: cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a72"; - reg = <1>; - enable-method = "spin-table"; - cpu-release-addr = <0x0 0x000000e0>; - }; - - cpu2: cpu@2 { - device_type = "cpu"; - compatible = "arm,cortex-a72"; - reg = <2>; - enable-method = "spin-table"; - cpu-release-addr = <0x0 0x000000e8>; - }; - - cpu3: cpu@3 { - device_type = "cpu"; - compatible = "arm,cortex-a72"; - reg = <3>; - enable-method = "spin-table"; - cpu-release-addr = <0x0 0x000000f0>; - }; - }; - - v3dbus { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <2>; - ranges = <0x7c500000 0x0 0xfc500000 0x0 0x03300000>, - <0x40000000 0x0 0xff800000 0x0 0x00800000>; - dma-ranges = <0x00000000 0x0 0x00000000 0x4 0x00000000>; - - v3d: v3d@7ec04000 { - compatible = "brcm,2711-v3d"; - reg = - <0x7ec00000 0x0 0x4000>, - <0x7ec04000 0x0 0x4000>; - reg-names = "hub", "core0"; - - power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; - resets = <&pm BCM2835_RESET_V3D>; - clocks = <&clocks BCM2835_CLOCK_V3D>; - interrupts = ; - status = "okay"; - }; - }; - - scb: scb { - compatible = "simple-bus"; - #address-cells = <2>; - #size-cells = <1>; - - ranges = <0x0 0x7c000000 0x0 0xfc000000 0x03800000>, - <0x0 0x40000000 0x0 0xff800000 0x00800000>, - <0x6 0x00000000 0x6 0x00000000 0x40000000>, - <0x0 0x00000000 0x0 0x00000000 0xfc000000>; - dma-ranges = <0x0 0x00000000 0x0 0x00000000 0xfc000000>; - - pcie_0: pcie@7d500000 { - reg = <0x0 0x7d500000 0x9310>, - <0x0 0x7e00f300 0x20>; - msi-controller; - msi-parent = <&pcie_0>; - #address-cells = <3>; - #interrupt-cells = <1>; - #size-cells = <2>; - bus-range = <0x0 0x01>; - compatible = "brcm,bcm2711b0-pcie", // Safe value - "brcm,bcm2711-pcie", - "brcm,pci-plat-dev"; - max-link-speed = <2>; - tot-num-pcie = <1>; - linux,pci-domain = <0>; - interrupts = , - ; - interrupt-names = "pcie", "msi"; - interrupt-map-mask = <0x0 0x0 0x0 0x7>; - interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 - IRQ_TYPE_LEVEL_HIGH - 0 0 0 2 &gicv2 GIC_SPI 144 - IRQ_TYPE_LEVEL_HIGH - 0 0 0 3 &gicv2 GIC_SPI 145 - IRQ_TYPE_LEVEL_HIGH - 0 0 0 4 &gicv2 GIC_SPI 146 - IRQ_TYPE_LEVEL_HIGH>; - - /* Map outbound accesses from scb:0x6_00000000-03ffffff - * to pci:0x0_f8000000-fbffffff - */ - ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 - 0x0 0x04000000>; - /* Map inbound accesses from pci:0x0_00000000..ffffffff - * to scb:0x0_00000000-ffffffff - */ - dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 - 0x1 0x00000000>; - status = "okay"; - }; - - genet: ethernet@7d580000 { - compatible = "brcm,bcm2711-genet-v5", "brcm,genet-v5"; - reg = <0x0 0x7d580000 0x10000>; - #address-cells = <0x1>; - #size-cells = <0x1>; - interrupts = , - ; - status = "disabled"; - - genet_mdio: mdio@e14 { - #address-cells = <0x0>; - #size-cells = <0x1>; - compatible = "brcm,genet-mdio-v5"; - reg = <0xe14 0x8>; - reg-names = "mdio"; - }; - }; - - dma40: dma@7e007b00 { - compatible = "brcm,bcm2838-dma"; - reg = <0x0 0x7e007b00 0x400>; - interrupts = - , /* dma4 11 */ - , /* dma4 12 */ - , /* dma4 13 */ - ; /* dma4 14 */ - interrupt-names = "dma11", - "dma12", - "dma13", - "dma14"; - #dma-cells = <1>; - brcm,dma-channel-mask = <0x7800>; - }; - /* DMA4 - 40 bit DMA engines */ - - xhci: xhci@7e9c0000 { - compatible = "generic-xhci"; - status = "disabled"; - reg = <0x0 0x7e9c0000 0x100000>; - interrupts = ; - }; - - hevc-decoder@7eb00000 { - compatible = "raspberrypi,rpivid-hevc-decoder"; - reg = <0x0 0x7eb00000 0x10000>; - status = "okay"; - }; - - rpivid-local-intc@7eb10000 { - compatible = "raspberrypi,rpivid-local-intc"; - reg = <0x0 0x7eb10000 0x1000>; - status = "okay"; - interrupts = ; - }; - - h264-decoder@7eb20000 { - compatible = "raspberrypi,rpivid-h264-decoder"; - reg = <0x0 0x7eb20000 0x10000>; - status = "okay"; - }; - - vp9-decoder@7eb30000 { - compatible = "raspberrypi,rpivid-vp9-decoder"; - reg = <0x0 0x7eb30000 0x10000>; - status = "okay"; - }; - }; -}; - -&clk_osc { - clock-frequency = <54000000>; -}; - -&clocks { - compatible = "brcm,bcm2711-cprman"; -}; - -&cpu_thermal { - coefficients = <(-487) 410040>; -}; - -&dsi0 { - interrupts = ; -}; - -&dsi1 { - interrupts = ; -}; - -&gpio { - compatible = "brcm,bcm2711-gpio", "brcm,bcm2835-gpio"; - - gpclk0_gpio49: gpclk0_gpio49 { - brcm,pins = <49>; - brcm,function = ; - brcm,pull = ; - }; - gpclk1_gpio50: gpclk1_gpio50 { - brcm,pins = <50>; - brcm,function = ; - brcm,pull = ; - }; - gpclk2_gpio51: gpclk2_gpio51 { - brcm,pins = <51>; - brcm,function = ; - brcm,pull = ; - }; - - i2c0_gpio46: i2c0_gpio46 { - brcm,pins = <46 47>; - brcm,function = ; - }; - i2c1_gpio46: i2c1_gpio46 { - brcm,pins = <46 47>; - brcm,function = ; - }; - i2c3_gpio2: i2c3_gpio2 { - brcm,pins = <2 3>; - brcm,function = ; - }; - i2c3_gpio4: i2c3_gpio4 { - brcm,pins = <4 5>; - brcm,function = ; - }; - i2c4_gpio6: i2c4_gpio6 { - brcm,pins = <6 7>; - brcm,function = ; - }; - i2c4_gpio8: i2c4_gpio8 { - brcm,pins = <8 9>; - brcm,function = ; - }; - i2c5_gpio10: i2c5_gpio10 { - brcm,pins = <10 11>; - brcm,function = ; - }; - i2c5_gpio12: i2c5_gpio12 { - brcm,pins = <12 13>; - brcm,function = ; - }; - i2c6_gpio0: i2c6_gpio0 { - brcm,pins = <0 1>; - brcm,function = ; - }; - i2c6_gpio22: i2c6_gpio22 { - brcm,pins = <22 23>; - brcm,function = ; - }; - i2c_slave_gpio8: i2c_slave_gpio8 { - brcm,pins = <8 9 10 11>; - brcm,function = ; - }; - - jtag_gpio48: jtag_gpio48 { - brcm,pins = <48 49 50 51 52 53>; - brcm,function = ; - }; - - mii_gpio28: mii_gpio28 { - brcm,pins = <28 29 30 31>; - brcm,function = ; - }; - mii_gpio36: mii_gpio36 { - brcm,pins = <36 37 38 39>; - brcm,function = ; - }; - - pcm_gpio50: pcm_gpio50 { - brcm,pins = <50 51 52 53>; - brcm,function = ; - }; - - pwm0_gpio52: pwm0_gpio52 { - brcm,pins = <52>; - brcm,function = ; - brcm,pull = ; - }; - pwm1_gpio53: pwm1_gpio53 { - brcm,pins = <53>; - brcm,function = ; - brcm,pull = ; - }; - - /* The following group consists of: - * RGMII_START_STOP - * RGMII_RX_OK - */ - rgmii_gpio35: rgmii_gpio35 { - brcm,pins = <35 36>; - brcm,function = ; - }; - rgmii_irq_gpio34: rgmii_irq_gpio34 { - brcm,pins = <34>; - brcm,function = ; - }; - rgmii_irq_gpio39: rgmii_irq_gpio39 { - brcm,pins = <39>; - brcm,function = ; - }; - rgmii_mdio_gpio28: rgmii_mdio_gpio28 { - brcm,pins = <28 29>; - brcm,function = ; - }; - rgmii_mdio_gpio37: rgmii_mdio_gpio37 { - brcm,pins = <37 38>; - brcm,function = ; - }; - - spi0_gpio46: spi0_gpio46 { - brcm,pins = <46 47 48 49>; - brcm,function = ; - }; - spi2_gpio46: spi2_gpio46 { - brcm,pins = <46 47 48 49 50>; - brcm,function = ; - }; - spi3_gpio0: spi3_gpio0 { - brcm,pins = <0 1 2 3>; - brcm,function = ; - }; - spi4_gpio4: spi4_gpio4 { - brcm,pins = <4 5 6 7>; - brcm,function = ; - }; - spi5_gpio12: spi5_gpio12 { - brcm,pins = <12 13 14 15>; - brcm,function = ; - }; - spi6_gpio18: spi6_gpio18 { - brcm,pins = <18 19 20 21>; - brcm,function = ; - }; - - uart2_gpio0: uart2_gpio0 { - brcm,pins = <0 1>; - brcm,function = ; - brcm,pull = ; - }; - uart2_ctsrts_gpio2: uart2_ctsrts_gpio2 { - brcm,pins = <2 3>; - brcm,function = ; - brcm,pull = ; - }; - uart3_gpio4: uart3_gpio4 { - brcm,pins = <4 5>; - brcm,function = ; - brcm,pull = ; - }; - uart3_ctsrts_gpio6: uart3_ctsrts_gpio6 { - brcm,pins = <6 7>; - brcm,function = ; - brcm,pull = ; - }; - uart4_gpio8: uart4_gpio8 { - brcm,pins = <8 9>; - brcm,function = ; - brcm,pull = ; - }; - uart4_ctsrts_gpio10: uart4_ctsrts_gpio10 { - brcm,pins = <10 11>; - brcm,function = ; - brcm,pull = ; - }; - uart5_gpio12: uart5_gpio12 { - brcm,pins = <12 13>; - brcm,function = ; - brcm,pull = ; - }; - uart5_ctsrts_gpio14: uart5_ctsrts_gpio14 { - brcm,pins = <14 15>; - brcm,function = ; - brcm,pull = ; - }; -}; - -&vec { - interrupts = ; -}; - -&usb { - interrupts = ; - status = "disabled"; -}; - -&hdmi { - interrupts = , - ; -}; - -&uart1 { - interrupts = ; -}; - -&spi1 { - interrupts = ; -}; - -&spi2 { - interrupts = ; -}; - -&csi0 { - interrupts = ; -}; - -&csi1 { - interrupts = ; -}; - -&sdhci { - interrupts = ; -}; - -&i2c0 { - interrupts = ; -}; - -&i2c1 { - interrupts = ; -}; - -&i2c2 { - interrupts = ; -}; - -&gpio { - interrupts = , - , - , - ; -}; - -&mailbox { - interrupts = ; -}; - -&rng { - compatible = "brcm,bcm2711-rng200", "brcm,bcm2838-rng200"; -}; - -&sdhost { - interrupts = ; -}; - -&system_timer { - interrupts = , - , - , - ; -}; - -&uart0 { - interrupts = ; -}; - -&dma { - reg = <0x7e007000 0xb00>; - interrupts = , - , - , - , - , - , - , - , /* dmalite 7 */ - , /* dmalite 8 */ - , /* dmalite 9 */ - ; /* dmalite 10 */ - interrupt-names = "dma0", - "dma1", - "dma2", - "dma3", - "dma4", - "dma5", - "dma6", - "dma7", - "dma8", - "dma9", - "dma10"; - brcm,dma-channel-mask = <0x07f5>; -}; - -&txp { - interrupts = ; -};