From c46811a3b0e0fb76015ac956172e40bce4e6d9b3 Mon Sep 17 00:00:00 2001 From: Phil Elwell 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 --- 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,= +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: + + +Name: disable-wifi +Info: Disable onboard WiFi on Pi 3B, 3B+, 3A+, 4B and Zero W. +Load: dtoverlay=disable-wifi +Params: + + 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: +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: + + Name: mmc Info: Selects the bcm2835-mmc SD/MMC driver, optionally with overclock Load: dtoverlay=mmc,= @@ -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,= -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: 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: +Info: This overlay has been renamed disable-bt, keeping pi3-disable-bt as an + alias for backwards compatibility. +Load: Name: pi3-disable-wifi -Info: Disable Pi3 onboard WiFi -Load: dtoverlay=pi3-disable-wifi -Params: +Info: This overlay has been renamed disable-wifi, keeping pi3-disable-wifi as + an alias for backwards compatibility. +Load: 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: +Info: This overlay has been renamed miniuart-bt, keeping pi3-miniuart-bt as + an alias for backwards compatibility. +Load: 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"