bcm27xx: update patches from RPi foundation
[openwrt/staging/luka.git] / target / linux / bcm27xx / patches-5.4 / 950-0426-ARM-dts-Rebuild-downstream-DTS-files.patch
diff --git a/target/linux/bcm27xx/patches-5.4/950-0426-ARM-dts-Rebuild-downstream-DTS-files.patch b/target/linux/bcm27xx/patches-5.4/950-0426-ARM-dts-Rebuild-downstream-DTS-files.patch
deleted file mode 100644 (file)
index 8d230d0..0000000
+++ /dev/null
@@ -1,1076 +0,0 @@
-From b229e7f5a6d21d1b52f3f19fed58bba638714884 Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil@raspberrypi.com>
-Date: Thu, 30 Jan 2020 15:48:00 +0000
-Subject: [PATCH] ARM: dts: Rebuild downstream DTS files
-
-Refactor the tree of downstream DTS files to achieve approximately the
-same end result but wihout modifying upstream files (except for
-bcm2711-rpi-4-b.dts).
-
-Signed-off-by: Phil Elwell <phil@raspberrypi.com>
----
- arch/arm/boot/dts/bcm2708-rpi.dtsi         | 133 +--------
- arch/arm/boot/dts/bcm2708.dtsi             |   4 +
- arch/arm/boot/dts/bcm2709.dtsi             |   4 +
- arch/arm/boot/dts/bcm270x-rpi.dtsi         | 139 +++++++++
- arch/arm/boot/dts/bcm270x.dtsi             |  98 ++++---
- arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts |  13 +
- arch/arm/boot/dts/bcm2710.dtsi             |   4 +
- arch/arm/boot/dts/bcm2711-rpi-4-b.dts      | 315 ++++++++++++++++++++-
- arch/arm/boot/dts/bcm2711-rpi.dtsi         | 222 +++++++++++++++
- 9 files changed, 766 insertions(+), 166 deletions(-)
- create mode 100644 arch/arm/boot/dts/bcm270x-rpi.dtsi
- create mode 100644 arch/arm/boot/dts/bcm2711-rpi.dtsi
-
---- 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,147 +10,27 @@
-       };
-       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_poll_once = <&sdhost>,"non-removable?";
--              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";
-+              sd_poll_once = <&sdhost>, "non-removable?";
-       };
- };
--&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";
- };
---- a/arch/arm/boot/dts/bcm2708.dtsi
-+++ b/arch/arm/boot/dts/bcm2708.dtsi
-@@ -8,3 +8,7 @@
-               arm_freq;
-       };
- };
-+
-+&vc4 {
-+      status = "disabled";
-+};
---- 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";
-+};
---- /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";
-+};
---- 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 = <BCM2835_FSEL_ALT2>;
--                      };
--              };
--
--              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 = <BCM2835_FSEL_ALT2>;
-+      };
-+};
-+
-+&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";
- };
---- 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>;
- };
-+&eth_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 = <&eth_phy>,"microchip,eee-enabled?";
-+              tx_lpi_timer = <&eth_phy>,"microchip,tx-lpi-timer:0";
-+              eth_led0 = <&eth_phy>,"microchip,led-modes:0";
-+              eth_led1 = <&eth_phy>,"microchip,led-modes:4";
-+              eth_downshift_after = <&eth_phy>,"microchip,downshift-after:0";
-+              eth_max_speed = <&eth_phy>,"max-speed:0";
-       };
- };
---- 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";
-+};
---- 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 = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
- };
-+
-+// =============================================
-+// 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 = <BCM2835_FSEL_ALT0>;
-+      };
-+
-+      spi0_cs_pins: spi0_cs_pins {
-+              brcm,pins = <8 7>;
-+              brcm,function = <BCM2835_FSEL_GPIO_OUT>;
-+      };
-+
-+      spi3_pins: spi3_pins {
-+              brcm,pins = <1 2 3>;
-+              brcm,function = <BCM2835_FSEL_ALT3>;
-+      };
-+
-+      spi3_cs_pins: spi3_cs_pins {
-+              brcm,pins = <0 24>;
-+              brcm,function = <BCM2835_FSEL_GPIO_OUT>;
-+      };
-+
-+      spi4_pins: spi4_pins {
-+              brcm,pins = <5 6 7>;
-+              brcm,function = <BCM2835_FSEL_ALT3>;
-+      };
-+
-+      spi4_cs_pins: spi4_cs_pins {
-+              brcm,pins = <4 25>;
-+              brcm,function = <BCM2835_FSEL_GPIO_OUT>;
-+      };
-+
-+      spi5_pins: spi5_pins {
-+              brcm,pins = <13 14 15>;
-+              brcm,function = <BCM2835_FSEL_ALT3>;
-+      };
-+
-+      spi5_cs_pins: spi5_cs_pins {
-+              brcm,pins = <12 26>;
-+              brcm,function = <BCM2835_FSEL_GPIO_OUT>;
-+      };
-+
-+      spi6_pins: spi6_pins {
-+              brcm,pins = <19 20 21>;
-+              brcm,function = <BCM2835_FSEL_ALT3>;
-+      };
-+
-+      spi6_cs_pins: spi6_cs_pins {
-+              brcm,pins = <18 27>;
-+              brcm,function = <BCM2835_FSEL_GPIO_OUT>;
-+      };
-+
-+      i2c0_pins: i2c0 {
-+              brcm,pins = <0 1>;
-+              brcm,function = <BCM2835_FSEL_ALT0>;
-+              brcm,pull = <BCM2835_PUD_UP>;
-+      };
-+
-+      i2c1_pins: i2c1 {
-+              brcm,pins = <2 3>;
-+              brcm,function = <BCM2835_FSEL_ALT0>;
-+              brcm,pull = <BCM2835_PUD_UP>;
-+      };
-+
-+      i2c3_pins: i2c3 {
-+              brcm,pins = <4 5>;
-+              brcm,function = <BCM2835_FSEL_ALT5>;
-+              brcm,pull = <BCM2835_PUD_UP>;
-+      };
-+
-+      i2c4_pins: i2c4 {
-+              brcm,pins = <8 9>;
-+              brcm,function = <BCM2835_FSEL_ALT5>;
-+              brcm,pull = <BCM2835_PUD_UP>;
-+      };
-+
-+      i2c5_pins: i2c5 {
-+              brcm,pins = <12 13>;
-+              brcm,function = <BCM2835_FSEL_ALT5>;
-+              brcm,pull = <BCM2835_PUD_UP>;
-+      };
-+
-+      i2c6_pins: i2c6 {
-+              brcm,pins = <22 23>;
-+              brcm,function = <BCM2835_FSEL_ALT5>;
-+              brcm,pull = <BCM2835_PUD_UP>;
-+      };
-+
-+      i2s_pins: i2s {
-+              brcm,pins = <18 19 20 21>;
-+              brcm,function = <BCM2835_FSEL_ALT0>;
-+      };
-+
-+      sdio_pins: sdio_pins {
-+              brcm,pins =     <34 35 36 37 38 39>;
-+              brcm,function = <BCM2835_FSEL_ALT3>; // 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 = <BCM2835_FSEL_ALT3>;
-+              brcm,pull = <0 2>;
-+      };
-+
-+      uart1_pins: uart1_pins {
-+              brcm,pins;
-+              brcm,function;
-+              brcm,pull;
-+      };
-+
-+      uart2_pins: uart2_pins {
-+              brcm,pins = <0 1>;
-+              brcm,function = <BCM2835_FSEL_ALT4>;
-+              brcm,pull = <0 2>;
-+      };
-+
-+      uart3_pins: uart3_pins {
-+              brcm,pins = <4 5>;
-+              brcm,function = <BCM2835_FSEL_ALT4>;
-+              brcm,pull = <0 2>;
-+      };
-+
-+      uart4_pins: uart4_pins {
-+              brcm,pins = <8 9>;
-+              brcm,function = <BCM2835_FSEL_ALT4>;
-+              brcm,pull = <0 2>;
-+      };
-+
-+      uart5_pins: uart5_pins {
-+              brcm,pins = <12 13>;
-+              brcm,function = <BCM2835_FSEL_ALT4>;
-+              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";
-+
-+      };
-+};
---- /dev/null
-+++ b/arch/arm/boot/dts/bcm2711-rpi.dtsi
-@@ -0,0 +1,222 @@
-+// SPDX-License-Identifier: GPL-2.0
-+#include "bcm270x-rpi.dtsi"
-+
-+/ {
-+      soc {
-+              /delete-node/ v3d@7ec00000;
-+              /delete-node/ mailbox@7e00b840;
-+      };
-+
-+      __overrides__ {
-+              arm_freq;
-+              sd_poll_once = <&emmc2>, "non-removable?";
-+      };
-+
-+      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 = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-+                      status = "disabled";
-+              };
-+      };
-+
-+      scb: scb {
-+           /* Add a label */
-+      };
-+};
-+
-+&soc {
-+      thermal: thermal@7d5d2200 {
-+              compatible = "brcm,avs-tmon-bcm2838";
-+              reg = <0x7d5d2200 0x2c>;
-+              interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
-+              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 = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
-+                           <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
-+              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 =
-+                      <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, /* dma4 11 */
-+                      <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, /* dma4 12 */
-+                      <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, /* dma4 13 */
-+                      <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; /* 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 = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-+      };
-+
-+      xhci: xhci@7e9c0000 {
-+              compatible = "generic-xhci";
-+              status = "disabled";
-+              reg = <0x0 0x7e9c0000 0x100000>;
-+              interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
-+      };
-+
-+      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 = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-+      };
-+
-+      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 = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
-+};
-+
-+&smi {
-+      interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
-+};
-+
-+&mmc {
-+      interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
-+};
-+
-+&mmcnr {
-+      interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
-+};
-+
-+&csi0 {
-+      interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-+};
-+
-+&csi1 {
-+      interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
-+};
-+
-+&random {
-+      compatible = "brcm,bcm2711-rng200", "brcm,bcm2838-rng200";
-+      status = "okay";
-+};
-+
-+&usb {
-+      /* Enable the FIQ support */
-+      reg = <0x7e980000 0x10000>,
-+            <0x7e00b200 0x200>;
-+      interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
-+                   <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
-+      status = "disabled";
-+};
-+
-+&gpio {
-+      interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
-+                   <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
-+};
-+
-+&cpu_thermal {
-+       thermal-sensors = <&thermal>;
-+};
-+
-+&genet {
-+      compatible = "brcm,bcm2711-genet-v5", "brcm,genet-v5";
-+};