brcm2708: organize kernel patches
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0634-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0634-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch b/target/linux/brcm2708/patches-4.19/950-0634-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch
new file mode 100644 (file)
index 0000000..669306d
--- /dev/null
@@ -0,0 +1,587 @@
+From c46811a3b0e0fb76015ac956172e40bce4e6d9b3 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <pelwell@users.noreply.github.com>
+Date: Fri, 5 Jul 2019 14:49:22 +0100
+Subject: [PATCH] overlays: Rename pi3- overlays to be less
+ model-specific (#3052)
+
+Rename the various pi3- overlays to be more generic, listing
+the devices they apply to in the README. The original names are
+retained for backwards compatibility as files that just include
+the new versions - the README marks them as being deprecated.
+
+See: https://github.com/raspberrypi/firmware/issues/1174
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/overlays/Makefile           |  4 +
+ arch/arm/boot/dts/overlays/README             | 97 ++++++++++++-------
+ .../arm/boot/dts/overlays/act-led-overlay.dts | 27 ++++++
+ .../boot/dts/overlays/disable-bt-overlay.dts  | 55 +++++++++++
+ .../dts/overlays/disable-wifi-overlay.dts     | 20 ++++
+ .../boot/dts/overlays/miniuart-bt-overlay.dts | 74 ++++++++++++++
+ .../boot/dts/overlays/pi3-act-led-overlay.dts | 28 +-----
+ .../dts/overlays/pi3-disable-bt-overlay.dts   | 56 +----------
+ .../dts/overlays/pi3-disable-wifi-overlay.dts | 21 +---
+ .../dts/overlays/pi3-miniuart-bt-overlay.dts  | 75 +-------------
+ 10 files changed, 246 insertions(+), 211 deletions(-)
+ create mode 100644 arch/arm/boot/dts/overlays/act-led-overlay.dts
+ create mode 100644 arch/arm/boot/dts/overlays/disable-bt-overlay.dts
+ create mode 100644 arch/arm/boot/dts/overlays/disable-wifi-overlay.dts
+ create mode 100644 arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -1,6 +1,7 @@
+ # Overlays for the Raspberry Pi platform
+ dtbo-$(CONFIG_ARCH_BCM2835) += \
++      act-led.dtbo \
+       adau1977-adc.dtbo \
+       adau7002-simple.dtbo \
+       ads1015.dtbo \
+@@ -26,6 +27,8 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+       dht11.dtbo \
+       dionaudio-loco.dtbo \
+       dionaudio-loco-v2.dtbo \
++      disable-bt.dtbo \
++      disable-wifi.dtbo \
+       dpi18.dtbo \
+       dpi24.dtbo \
+       draws.dtbo \
+@@ -91,6 +94,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+       media-center.dtbo \
+       midi-uart0.dtbo \
+       midi-uart1.dtbo \
++      miniuart-bt.dtbo \
+       mmc.dtbo \
+       mpu6050.dtbo \
+       mz61581.dtbo \
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -180,14 +180,16 @@ Params:
+         act_led_activelow       Set to "on" to invert the sense of the LED
+                                 (default "off")
+-                                N.B. For Pi3 see pi3-act-led overlay.
++                                N.B. For Pi 3B, 3B+, 3A+ and 4B, use the act-led
++                                overlay.
+         act_led_gpio            Set which GPIO to use for the activity LED
+                                 (in case you want to connect it to an external
+                                 device)
+                                 (default "16" on a non-Plus board, "47" on a
+                                 Plus or Pi 2)
+-                                N.B. For Pi3 see pi3-act-led overlay.
++                                N.B. For Pi 3B, 3B+, 3A+ and 4B, use the act-led
++                                overlay.
+         pwr_led_trigger
+         pwr_led_activelow
+@@ -205,6 +207,23 @@ Params:
+         and the other i2c baudrate parameters.
++Name:   act-led
++Info:   Pi 3B, 3B+, 3A+ and 4B use a GPIO expander to drive the LEDs which can
++        only be accessed from the VPU. There is a special driver for this with a
++        separate DT node, which has the unfortunate consequence of breaking the
++        act_led_gpio and act_led_activelow dtparams.
++        This overlay changes the GPIO controller back to the standard one and
++        restores the dtparams.
++Load:   dtoverlay=act-led,<param>=<val>
++Params: activelow               Set to "on" to invert the sense of the LED
++                                (default "off")
++
++        gpio                    Set which GPIO to use for the activity LED
++                                (in case you want to connect it to an external
++                                device)
++                                REQUIRED
++
++
+ Name:   adau1977-adc
+ Info:   Overlay for activation of ADAU1977 ADC codec over I2C for control
+         and I2S for data.
+@@ -509,6 +528,21 @@ Params: 24db_digital_gain       Allow ga
+                                 that does not result in clipping/distortion!)
++Name:   disable-bt
++Info:   Disable onboard Bluetooth on Pi 3B, 3B+, 3A+, 4B and Zero W, restoring
++        UART0/ttyAMA0 over GPIOs 14 & 15.
++        N.B. To disable the systemd service that initialises the modem so it
++        doesn't use the UART, use 'sudo systemctl disable hciuart'.
++Load:   dtoverlay=disable-bt
++Params: <None>
++
++
++Name:   disable-wifi
++Info:   Disable onboard WiFi on Pi 3B, 3B+, 3A+, 4B and Zero W.
++Load:   dtoverlay=disable-wifi
++Params: <None>
++
++
+ Name:   dpi18
+ Info:   Overlay for a generic 18-bit DPI display
+         This uses GPIOs 0-21 (so no I2C, uart etc.), and activates the output
+@@ -1447,6 +1481,20 @@ Load:   dtoverlay=midi-uart1
+ Params: <None>
++Name:   miniuart-bt
++Info:   Switch the onboard Bluetooth function on Pi 3B, 3B+, 3A+, 4B and Zero W
++        to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 &
++        15. Note that this may reduce the maximum usable baudrate.
++        N.B. It is also necessary to edit /lib/systemd/system/hciuart.service
++        and replace ttyAMA0 with ttyS0, unless using Raspbian or another
++        distribution with udev rules that create /dev/serial0 and /dev/serial1,
++        in which case use /dev/serial1 instead because it will always be
++        correct. Furthermore, you must also set core_freq and core_freq_min to
++        the same value in config.txt or the miniuart will not work.
++Load:   dtoverlay=miniuart-bt
++Params: <None>
++
++
+ Name:   mmc
+ Info:   Selects the bcm2835-mmc SD/MMC driver, optionally with overclock
+ Load:   dtoverlay=mmc,<param>=<val>
+@@ -1509,48 +1557,27 @@ Params: panel                   Display
+ Name:   pi3-act-led
+-Info:   Pi3 uses a GPIO expander to drive the LEDs which can only be accessed
+-        from the VPU. There is a special driver for this with a separate DT
+-        node, which has the unfortunate consequence of breaking the
+-        act_led_gpio and act_led_activelow dtparams.
+-        This overlay changes the GPIO controller back to the standard one and
+-        restores the dtparams.
+-Load:   dtoverlay=pi3-act-led,<param>=<val>
+-Params: activelow               Set to "on" to invert the sense of the LED
+-                                (default "off")
+-
+-        gpio                    Set which GPIO to use for the activity LED
+-                                (in case you want to connect it to an external
+-                                device)
+-                                REQUIRED
++Info:   This overlay has been renamed act-led, keeping pi3-act-led as an alias
++        for backwards compatibility.
++Load:   <Deprecated>
+ Name:   pi3-disable-bt
+-Info:   Disable Pi3 Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15
+-        N.B. To disable the systemd service that initialises the modem so it
+-        doesn't use the UART, use 'sudo systemctl disable hciuart'.
+-Load:   dtoverlay=pi3-disable-bt
+-Params: <None>
++Info:   This overlay has been renamed disable-bt, keeping pi3-disable-bt as an
++        alias for backwards compatibility.
++Load:   <Deprecated>
+ Name:   pi3-disable-wifi
+-Info:   Disable Pi3 onboard WiFi
+-Load:   dtoverlay=pi3-disable-wifi
+-Params: <None>
++Info:   This overlay has been renamed disable-wifi, keeping pi3-disable-wifi as
++        an alias for backwards compatibility.
++Load:   <Deprecated>
+ Name:   pi3-miniuart-bt
+-Info:   Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
+-        UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
+-        usable baudrate.
+-        N.B. It is also necessary to edit /lib/systemd/system/hciuart.service
+-        and replace ttyAMA0 with ttyS0, unless you have a system with udev rules
+-        that create /dev/serial0 and /dev/serial1, in which case use
+-        /dev/serial1 instead because it will always be correct. Furthermore,
+-        you must also set core_freq=250 in config.txt or the miniuart will not
+-        work.
+-Load:   dtoverlay=pi3-miniuart-bt
+-Params: <None>
++Info:   This overlay has been renamed miniuart-bt, keeping pi3-miniuart-bt as
++        an alias for backwards compatibility.
++Load:   <Deprecated>
+ Name:   pibell
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/act-led-overlay.dts
+@@ -0,0 +1,27 @@
++/dts-v1/;
++/plugin/;
++
++/* Pi3 uses a GPIO expander to drive the LEDs which can only be accessed
++   from the VPU. There is a special driver for this with a separate DT node,
++   which has the unfortunate consequence of breaking the act_led_gpio and
++   act_led_activelow dtparams.
++
++   This overlay changes the GPIO controller back to the standard one and
++   restores the dtparams.
++*/
++
++/{
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target = <&act_led>;
++              frag0: __overlay__ {
++                      gpios = <&gpio 0 0>;
++              };
++      };
++
++      __overrides__ {
++              gpio = <&frag0>,"gpios:4";
++              activelow = <&frag0>,"gpios:8";
++      };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/disable-bt-overlay.dts
+@@ -0,0 +1,55 @@
++/dts-v1/;
++/plugin/;
++
++/* Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15.
++   To disable the systemd service that initialises the modem so it doesn't use
++   the UART:
++
++       sudo systemctl disable hciuart
++*/
++
++/{
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target = <&uart1>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@1 {
++              target = <&uart0>;
++              __overlay__ {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&uart0_pins>;
++                      status = "okay";
++              };
++      };
++
++      fragment@2 {
++              target = <&uart0_pins>;
++              __overlay__ {
++                      brcm,pins;
++                      brcm,function;
++                      brcm,pull;
++              };
++      };
++
++      fragment@3 {
++              target = <&bt_pins>;
++              __overlay__ {
++                      brcm,pins;
++                      brcm,function;
++                      brcm,pull;
++              };
++      };
++
++      fragment@4 {
++              target-path = "/aliases";
++              __overlay__ {
++                      serial0 = "/soc/serial@7e201000";
++                      serial1 = "/soc/serial@7e215040";
++              };
++      };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/disable-wifi-overlay.dts
+@@ -0,0 +1,20 @@
++/dts-v1/;
++/plugin/;
++
++/{
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target = <&mmc>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@1 {
++              target = <&mmcnr>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts
+@@ -0,0 +1,74 @@
++/dts-v1/;
++/plugin/;
++
++/* Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
++   UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
++   usable baudrate.
++
++   It is also necessary to edit /lib/systemd/system/hciuart.service and
++   replace ttyAMA0 with ttyS0, unless you have a system with udev rules
++   that create /dev/serial0 and /dev/serial1, in which case use /dev/serial1
++   instead because it will always be correct.
++
++   If cmdline.txt uses the alias serial0 to refer to the user-accessable port
++   then the firmware will replace with the appropriate port whether or not
++   this overlay is used.
++*/
++
++/{
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target = <&uart0>;
++              __overlay__ {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&uart0_pins>;
++                      status = "okay";
++              };
++      };
++
++      fragment@1 {
++              target = <&uart1>;
++              __overlay__ {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&uart1_pins &bt_pins &fake_bt_cts>;
++                      status = "okay";
++              };
++      };
++
++      fragment@2 {
++              target = <&uart0_pins>;
++              __overlay__ {
++                      brcm,pins;
++                      brcm,function;
++                      brcm,pull;
++              };
++      };
++
++      fragment@3 {
++              target = <&uart1_pins>;
++              __overlay__ {
++                      brcm,pins = <32 33>;
++                      brcm,function = <2>; /* alt5=UART1 */
++                      brcm,pull = <0 2>;
++              };
++      };
++
++      fragment@4 {
++              target = <&gpio>;
++              __overlay__ {
++                      fake_bt_cts: fake_bt_cts {
++                              brcm,pins = <31>;
++                              brcm,function = <1>; /* output */
++                      };
++              };
++      };
++
++      fragment@5 {
++              target-path = "/aliases";
++              __overlay__ {
++                      serial0 = "/soc/serial@7e201000";
++                      serial1 = "/soc/serial@7e215040";
++              };
++      };
++};
+--- a/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts
++++ b/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts
+@@ -1,27 +1 @@
+-/dts-v1/;
+-/plugin/;
+-
+-/* Pi3 uses a GPIO expander to drive the LEDs which can only be accessed
+-   from the VPU. There is a special driver for this with a separate DT node,
+-   which has the unfortunate consequence of breaking the act_led_gpio and
+-   act_led_activelow dtparams.
+-
+-   This overlay changes the GPIO controller back to the standard one and
+-   restores the dtparams.
+-*/
+-
+-/{
+-      compatible = "brcm,bcm2835";
+-
+-      fragment@0 {
+-              target = <&act_led>;
+-              frag0: __overlay__ {
+-                      gpios = <&gpio 0 0>;
+-              };
+-      };
+-
+-      __overrides__ {
+-              gpio = <&frag0>,"gpios:4";
+-              activelow = <&frag0>,"gpios:8";
+-      };
+-};
++#include "act-led-overlay.dts"
+--- a/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts
++++ b/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts
+@@ -1,55 +1 @@
+-/dts-v1/;
+-/plugin/;
+-
+-/* Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15.
+-   To disable the systemd service that initialises the modem so it doesn't use
+-   the UART:
+-
+-       sudo systemctl disable hciuart
+-*/
+-
+-/{
+-      compatible = "brcm,bcm2835";
+-
+-      fragment@0 {
+-              target = <&uart1>;
+-              __overlay__ {
+-                      status = "disabled";
+-              };
+-      };
+-
+-      fragment@1 {
+-              target = <&uart0>;
+-              __overlay__ {
+-                      pinctrl-names = "default";
+-                      pinctrl-0 = <&uart0_pins>;
+-                      status = "okay";
+-              };
+-      };
+-
+-      fragment@2 {
+-              target = <&uart0_pins>;
+-              __overlay__ {
+-                      brcm,pins;
+-                      brcm,function;
+-                      brcm,pull;
+-              };
+-      };
+-
+-      fragment@3 {
+-              target = <&bt_pins>;
+-              __overlay__ {
+-                      brcm,pins;
+-                      brcm,function;
+-                      brcm,pull;
+-              };
+-      };
+-
+-      fragment@4 {
+-              target-path = "/aliases";
+-              __overlay__ {
+-                      serial0 = "/soc/serial@7e201000";
+-                      serial1 = "/soc/serial@7e215040";
+-              };
+-      };
+-};
++#include "disable-bt-overlay.dts"
+--- a/arch/arm/boot/dts/overlays/pi3-disable-wifi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/pi3-disable-wifi-overlay.dts
+@@ -1,20 +1 @@
+-/dts-v1/;
+-/plugin/;
+-
+-/{
+-      compatible = "brcm,bcm2835";
+-
+-      fragment@0 {
+-              target = <&mmc>;
+-              __overlay__ {
+-                      status = "disabled";
+-              };
+-      };
+-
+-      fragment@1 {
+-              target = <&mmcnr>;
+-              __overlay__ {
+-                      status = "disabled";
+-              };
+-      };
+-};
++#include "disable-wifi-overlay.dts"
+--- a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts
++++ b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts
+@@ -1,74 +1 @@
+-/dts-v1/;
+-/plugin/;
+-
+-/* Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
+-   UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
+-   usable baudrate.
+-
+-   It is also necessary to edit /lib/systemd/system/hciuart.service and
+-   replace ttyAMA0 with ttyS0, unless you have a system with udev rules
+-   that create /dev/serial0 and /dev/serial1, in which case use /dev/serial1
+-   instead because it will always be correct.
+-
+-   If cmdline.txt uses the alias serial0 to refer to the user-accessable port
+-   then the firmware will replace with the appropriate port whether or not
+-   this overlay is used.
+-*/
+-
+-/{
+-      compatible = "brcm,bcm2835";
+-
+-      fragment@0 {
+-              target = <&uart0>;
+-              __overlay__ {
+-                      pinctrl-names = "default";
+-                      pinctrl-0 = <&uart0_pins>;
+-                      status = "okay";
+-              };
+-      };
+-
+-      fragment@1 {
+-              target = <&uart1>;
+-              __overlay__ {
+-                      pinctrl-names = "default";
+-                      pinctrl-0 = <&uart1_pins &bt_pins &fake_bt_cts>;
+-                      status = "okay";
+-              };
+-      };
+-
+-      fragment@2 {
+-              target = <&uart0_pins>;
+-              __overlay__ {
+-                      brcm,pins;
+-                      brcm,function;
+-                      brcm,pull;
+-              };
+-      };
+-
+-      fragment@3 {
+-              target = <&uart1_pins>;
+-              __overlay__ {
+-                      brcm,pins = <32 33>;
+-                      brcm,function = <2>; /* alt5=UART1 */
+-                      brcm,pull = <0 2>;
+-              };
+-      };
+-
+-      fragment@4 {
+-              target = <&gpio>;
+-              __overlay__ {
+-                      fake_bt_cts: fake_bt_cts {
+-                              brcm,pins = <31>;
+-                              brcm,function = <1>; /* output */
+-                      };
+-              };
+-      };
+-
+-      fragment@5 {
+-              target-path = "/aliases";
+-              __overlay__ {
+-                      serial0 = "/soc/serial@7e201000";
+-                      serial1 = "/soc/serial@7e215040";
+-              };
+-      };
+-};
++#include "miniuart-bt-overlay.dts"