brcm2708: organize kernel patches
[openwrt/staging/wigyori.git] / target / linux / brcm2708 / patches-4.19 / 950-0611-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0611-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch b/target/linux/brcm2708/patches-4.19/950-0611-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch
new file mode 100644 (file)
index 0000000..875d891
--- /dev/null
@@ -0,0 +1,490 @@
+From d27f2b90df0b787859c2f5665feaecbe87e6b1ff Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Tue, 4 Jun 2019 16:22:22 +0100
+Subject: [PATCH] arm: dts: Improve the bcm27xx inclusion hierarchy
+
+1) The top-level .dts files now include parallel chains of bcm27xx.dtsi
+   and bcm27xx-rpi.dtsi files, with no cross-inclusion between the two
+   chains.
+
+2) Move definitions and deletions to the point of maximum commonality
+   to reduce redundancy.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/bcm2708-rpi-b-plus.dts   |  1 +
+ arch/arm/boot/dts/bcm2708-rpi-b.dts        |  1 +
+ arch/arm/boot/dts/bcm2708-rpi-cm.dtsi      |  1 +
+ arch/arm/boot/dts/bcm2708-rpi-zero-w.dts   |  1 +
+ arch/arm/boot/dts/bcm2708-rpi-zero.dts     |  1 +
+ arch/arm/boot/dts/bcm2708-rpi.dtsi         | 63 +++++++---------------
+ arch/arm/boot/dts/bcm2708.dtsi             |  1 -
+ arch/arm/boot/dts/bcm2709-rpi-2-b.dts      |  1 +
+ arch/arm/boot/dts/bcm2709.dtsi             |  1 -
+ arch/arm/boot/dts/bcm270x.dtsi             | 18 +------
+ arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts |  1 +
+ arch/arm/boot/dts/bcm2710-rpi-3-b.dts      |  1 +
+ arch/arm/boot/dts/bcm2710-rpi-cm3.dts      |  1 +
+ arch/arm/boot/dts/bcm2710.dtsi             |  1 -
+ arch/arm/boot/dts/bcm2711-rpi-4-b.dts      | 15 ++++--
+ arch/arm/boot/dts/bcm2711-rpi.dtsi         |  7 +++
+ arch/arm/boot/dts/bcm2711.dtsi             | 10 ----
+ arch/arm/boot/dts/bcm2835-rpi.dtsi         | 16 ++++++
+ arch/arm/boot/dts/bcm2838.dtsi             | 33 ++++++++----
+ arch/arm/boot/dts/bcm283x.dtsi             |  2 +-
+ 20 files changed, 86 insertions(+), 90 deletions(-)
+ create mode 100644 arch/arm/boot/dts/bcm2711-rpi.dtsi
+
+--- a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
++++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
+@@ -1,6 +1,7 @@
+ /dts-v1/;
+ #include "bcm2708.dtsi"
++#include "bcm2708-rpi.dtsi"
+ #include "bcm283x-rpi-smsc9514.dtsi"
+ #include "bcm283x-rpi-csi1-2lane.dtsi"
+--- a/arch/arm/boot/dts/bcm2708-rpi-b.dts
++++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts
+@@ -1,6 +1,7 @@
+ /dts-v1/;
+ #include "bcm2708.dtsi"
++#include "bcm2708-rpi.dtsi"
+ #include "bcm283x-rpi-smsc9512.dtsi"
+ #include "bcm283x-rpi-csi1-2lane.dtsi"
+--- a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
++++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
+@@ -1,4 +1,5 @@
+ #include "bcm2708.dtsi"
++#include "bcm2708-rpi.dtsi"
+ &leds {
+       act_led: act {
+--- a/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts
++++ b/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts
+@@ -1,6 +1,7 @@
+ /dts-v1/;
+ #include "bcm2708.dtsi"
++#include "bcm2708-rpi.dtsi"
+ #include "bcm283x-rpi-csi1-2lane.dtsi"
+ / {
+--- a/arch/arm/boot/dts/bcm2708-rpi-zero.dts
++++ b/arch/arm/boot/dts/bcm2708-rpi-zero.dts
+@@ -1,6 +1,7 @@
+ /dts-v1/;
+ #include "bcm2708.dtsi"
++#include "bcm2708-rpi.dtsi"
+ #include "bcm283x-rpi-csi1-2lane.dtsi"
+ / {
+--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi
+@@ -1,6 +1,6 @@
+-/* Downstream version of bcm2835-rpi.dtsi */
++/* Downstream modifications to bcm2835-rpi.dtsi */
+-#include <dt-bindings/power/raspberrypi-power.h>
++#include "bcm2835-rpi.dtsi"
+ / {
+       memory {
+@@ -49,29 +49,10 @@
+                       reg = <0x7e200000 0x1000>;
+               };
+-              firmware: firmware {
+-                      compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
+-                      #address-cells = <0>;
+-                      #size-cells = <0>;
+-                      mboxes = <&mailbox>;
+-              };
+-
+-              power: power {
+-                      compatible = "raspberrypi,bcm2835-power";
+-                      firmware = <&firmware>;
+-                      #power-domain-cells = <1>;
+-              };
+-
+               fb: fb {
+                       compatible = "brcm,bcm2708-fb";
+                       firmware = <&firmware>;
+-                      status = "disabled";
+-              };
+-
+-              vchiq: mailbox@7e00b840 {
+-                      compatible = "brcm,bcm2835-vchiq";
+-                      reg = <0x7e00b840 0x3c>;
+-                      interrupts = <0 2>;
++                      status = "okay";
+               };
+               vcsm: vcsm {
+@@ -91,10 +72,6 @@
+               sound: sound {
+                       status = "disabled";
+               };
+-
+-              txp: txp@7e004000 {
+-                      status = "disabled";
+-              };
+       };
+       __overrides__ {
+@@ -125,11 +102,23 @@
+ };
+ &hdmi {
+-      power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
++      status = "disabled";
+ };
+-&usb {
+-      power-domains = <&power RPI_POWER_DOMAIN_USB>;
++&txp {
++      status = "disabled";
++};
++
++&i2c0 {
++      status = "disabled";
++};
++
++&i2c1 {
++      status = "disabled";
++};
++
++&i2c2 {
++      status = "disabled";
+ };
+ &clocks {
+@@ -141,16 +130,8 @@ sdhost_pins: &sdhost_gpio48 {
+ };
+ &sdhost {
+-      pinctrl-names = "default";
+-      pinctrl-0 = <&sdhost_gpio48>;
+-      bus-width = <4>;
+       brcm,overclock-50 = <0>;
+       brcm,pio-limit = <1>;
+-      status = "okay";
+-};
+-
+-&fb {
+-      status = "okay";
+ };
+ &cpu_thermal {
+@@ -160,11 +141,3 @@ sdhost_pins: &sdhost_gpio48 {
+ &vec {
+       status = "disabled";
+ };
+-
+-&csi0 {
+-      power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>;
+-};
+-
+-&csi1 {
+-      power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
+-};
+--- a/arch/arm/boot/dts/bcm2708.dtsi
++++ b/arch/arm/boot/dts/bcm2708.dtsi
+@@ -1,6 +1,5 @@
+ #include "bcm2835.dtsi"
+ #include "bcm270x.dtsi"
+-#include "bcm2708-rpi.dtsi"
+ / {
+       /delete-node/ cpus;
+--- a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
++++ b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
+@@ -1,6 +1,7 @@
+ /dts-v1/;
+ #include "bcm2709.dtsi"
++#include "bcm2709-rpi.dtsi"
+ #include "bcm283x-rpi-smsc9514.dtsi"
+ #include "bcm283x-rpi-csi1-2lane.dtsi"
+--- a/arch/arm/boot/dts/bcm2709.dtsi
++++ b/arch/arm/boot/dts/bcm2709.dtsi
+@@ -1,6 +1,5 @@
+ #include "bcm2836.dtsi"
+ #include "bcm270x.dtsi"
+-#include "bcm2709-rpi.dtsi"
+ / {
+       soc {
+--- a/arch/arm/boot/dts/bcm270x.dtsi
++++ b/arch/arm/boot/dts/bcm270x.dtsi
+@@ -68,7 +68,7 @@
+               /delete-node/ sdhci@7e300000;
+-              mmc: mmc@7e300000 {
++              sdhci: mmc: mmc@7e300000 {
+                       compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci";
+                       reg = <0x7e300000 0x100>;
+                       interrupts = <2 30>;
+@@ -152,22 +152,6 @@
+               };
+       };
+-      vdd_5v0_reg: fixedregulator_5v0 {
+-              compatible = "regulator-fixed";
+-              regulator-name = "5v0";
+-              regulator-min-microvolt = <5000000>;
+-              regulator-max-microvolt = <5000000>;
+-              regulator-always-on;
+-      };
+-
+-      vdd_3v3_reg: fixedregulator_3v3 {
+-              compatible = "regulator-fixed";
+-              regulator-name = "3v3";
+-              regulator-min-microvolt = <3300000>;
+-              regulator-max-microvolt = <3300000>;
+-              regulator-always-on;
+-      };
+-
+       __overrides__ {
+               cam0-pwdn-ctrl;
+               cam0-pwdn;
+--- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
+@@ -1,6 +1,7 @@
+ /dts-v1/;
+ #include "bcm2710.dtsi"
++#include "bcm2709-rpi.dtsi"
+ #include "bcm283x-rpi-lan7515.dtsi"
+ #include "bcm283x-rpi-csi1-2lane.dtsi"
+--- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
+@@ -1,6 +1,7 @@
+ /dts-v1/;
+ #include "bcm2710.dtsi"
++#include "bcm2709-rpi.dtsi"
+ #include "bcm283x-rpi-smsc9514.dtsi"
+ #include "bcm283x-rpi-csi1-2lane.dtsi"
+--- a/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
++++ b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
+@@ -1,6 +1,7 @@
+ /dts-v1/;
+ #include "bcm2710.dtsi"
++#include "bcm2709-rpi.dtsi"
+ #include "bcm283x-rpi-csi0-2lane.dtsi"
+ #include "bcm283x-rpi-csi1-4lane.dtsi"
+--- a/arch/arm/boot/dts/bcm2710.dtsi
++++ b/arch/arm/boot/dts/bcm2710.dtsi
+@@ -1,6 +1,5 @@
+ #include "bcm2837.dtsi"
+ #include "bcm270x.dtsi"
+-#include "bcm2709-rpi.dtsi"
+ / {
+       compatible = "brcm,bcm2837", "brcm,bcm2836";
+--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
+@@ -1,13 +1,12 @@
+ /dts-v1/;
+ #include "bcm2711.dtsi"
++#include "bcm2711-rpi.dtsi"
+ #include "bcm283x-rpi-csi1-2lane.dtsi"
+ / {
+-      compatible = "raspberrypi,4-model-b", "brcm,bcm2838", "brcm,bcm2837";
++      compatible = "raspberrypi,4-model-b", "brcm,bcm2838";
+       model = "Raspberry Pi 4 Model B";
+-      #address-cells = <2>;
+-      #size-cells = <1>;
+       memory {
+               device_type = "memory";
+@@ -48,10 +47,18 @@
+ };
+ &firmware {
+-      expgpio: expgpio {
++      expgpio: gpio {
+               compatible = "raspberrypi,firmware-gpio";
+               gpio-controller;
+               #gpio-cells = <2>;
++              gpio-line-names = "BT_ON",
++                                "WL_ON",
++                                "PWR_LED_OFF",
++                                "GLOBAL_RESET",
++                                "VDD_SD_IO_SEL",
++                                "CAM_GPIO",
++                                "",
++                                "";
+               status = "okay";
+       };
+ };
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm2711-rpi.dtsi
+@@ -0,0 +1,7 @@
++#include "bcm2708-rpi.dtsi"
++#include "bcm2838-rpi.dtsi"
++
++&v3d {
++     /* Undo the overwriting by bcm270x.dtsi */
++     power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>;
++};
+--- a/arch/arm/boot/dts/bcm2711.dtsi
++++ b/arch/arm/boot/dts/bcm2711.dtsi
+@@ -1,10 +1,8 @@
+ #include "bcm2838.dtsi"
+ #include "bcm270x.dtsi"
+-#include "bcm2708-rpi.dtsi"
+ / {
+       soc {
+-              /delete-node/ mailbox@7e00b840;
+               /delete-node/ v3d@7ec00000;
+       };
+@@ -17,14 +15,6 @@
+       status = "disabled";
+ };
+-&dma {
+-      brcm,dma-channel-mask = <0x7ef5>;
+-};
+-
+-&txp {
+-      interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+-};
+-
+ &firmwarekms {
+       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -36,6 +36,22 @@
+                       interrupts = <0 2>;
+               };
+       };
++
++      vdd_3v3_reg: fixedregulator_3v3 {
++              compatible = "regulator-fixed";
++              regulator-name = "3v3";
++              regulator-min-microvolt = <3300000>;
++              regulator-max-microvolt = <3300000>;
++              regulator-always-on;
++      };
++
++      vdd_5v0_reg: fixedregulator_5v0 {
++              compatible = "regulator-fixed";
++              regulator-name = "5v0";
++              regulator-min-microvolt = <5000000>;
++              regulator-max-microvolt = <5000000>;
++              regulator-always-on;
++      };
+ };
+ &gpio {
+--- a/arch/arm/boot/dts/bcm2838.dtsi
++++ b/arch/arm/boot/dts/bcm2838.dtsi
+@@ -5,7 +5,10 @@
+ #include <dt-bindings/soc/bcm2835-pm.h>
+ / {
+-      compatible = "brcm,bcm2838", "brcm,bcm2837";
++      compatible = "brcm,bcm2838";
++
++      #address-cells = <2>;
++      #size-cells = <1>;
+       interrupt-parent = <&gicv2>;
+@@ -16,8 +19,8 @@
+               /* Emulate a contiguous 30-bit address range for DMA */
+               dma-ranges = <0xc0000000  0x0 0x00000000  0x3c000000>;
+-              /delete-node/ mailbox@7e00b840;
+               /delete-node/ interrupt-controller@7e00f300;
++              /delete-node/ v3d@7ec00000;
+               local_intc: local_intc@40000000 {
+                       compatible = "brcm,bcm2836-l1-intc";
+@@ -191,6 +194,16 @@
+                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+               };
++              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";
+@@ -385,7 +398,7 @@
+                               "dma13",
+                               "dma14";
+                       #dma-cells = <1>;
+-                      brcm,dma-channel-mask = <0x7000>;
++                      brcm,dma-channel-mask = <0x7800>;
+               };
+               /* DMA4 - 40 bit DMA engines */
+@@ -396,12 +409,6 @@
+                       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+               };
+-              vchiq: mailbox@7e00b840 {
+-                      compatible = "brcm,bcm2838-vchiq";
+-                      reg = <0 0x7e00b840 0x3c>;
+-                      interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+-              };
+-
+               hevc-decoder@7eb00000 {
+                       compatible = "raspberrypi,argon-hevc-decoder";
+                       reg = <0x0 0x7eb00000 0x10000>;
+@@ -450,6 +457,8 @@
+ };
+ &gpio {
++      compatible = "brcm,bcm2838-gpio", "brcm,bcm2835-gpio";
++
+       gpclk0_gpio49: gpclk0_gpio49 {
+               brcm,pins = <49>;
+               brcm,function = <BCM2835_FSEL_ALT1>;
+@@ -729,5 +738,9 @@
+                         "dma8",
+                         "dma9",
+                         "dma10";
+-      brcm,dma-channel-mask = <0x01f5>;
++      brcm,dma-channel-mask = <0x07f5>;
++};
++
++&txp {
++      interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm283x.dtsi
++++ b/arch/arm/boot/dts/bcm283x.dtsi
+@@ -55,7 +55,7 @@
+               #address-cells = <1>;
+               #size-cells = <1>;
+-              txp@7e004000 {
++              txp: txp@7e004000 {
+                       compatible = "brcm,bcm2835-txp";
+                       reg = <0x7e004000 0x20>;
+                       interrupts = <1 11>;