diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0604-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-4.19/950-0604-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch | 587 |
1 files changed, 587 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0604-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch b/target/linux/bcm27xx/patches-4.19/950-0604-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch new file mode 100644 index 0000000000..669306d15b --- /dev/null +++ b/target/linux/bcm27xx/patches-4.19/950-0604-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch @@ -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" |