Skip to content

Commit

Permalink
overlays: Rename pi3- overlays to be less model-specific (#3052)
Browse files Browse the repository at this point in the history
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: raspberrypi/firmware#1174

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  • Loading branch information
pelwell authored and popcornmix committed Jul 25, 2019
1 parent b7b94ff commit 226e5ca
Show file tree
Hide file tree
Showing 10 changed files with 246 additions and 211 deletions.
4 changes: 4 additions & 0 deletions arch/arm/boot/dts/overlays/Makefile
Original file line number Diff line number Diff line change
@@ -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 \
Expand All @@ -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 \
Expand Down Expand Up @@ -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 \
Expand Down
97 changes: 62 additions & 35 deletions arch/arm/boot/dts/overlays/README
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -509,6 +528,21 @@ Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
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
Expand Down Expand Up @@ -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>
Expand Down Expand Up @@ -1509,48 +1557,27 @@ Params: panel Display panel (required):


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
Expand Down
27 changes: 27 additions & 0 deletions arch/arm/boot/dts/overlays/act-led-overlay.dts
Original file line number Diff line number Diff line change
@@ -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";
};
};
55 changes: 55 additions & 0 deletions arch/arm/boot/dts/overlays/disable-bt-overlay.dts
Original file line number Diff line number Diff line change
@@ -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";
};
};
};
20 changes: 20 additions & 0 deletions arch/arm/boot/dts/overlays/disable-wifi-overlay.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/dts-v1/;
/plugin/;

/{
compatible = "brcm,bcm2835";

fragment@0 {
target = <&mmc>;
__overlay__ {
status = "disabled";
};
};

fragment@1 {
target = <&mmcnr>;
__overlay__ {
status = "disabled";
};
};
};
74 changes: 74 additions & 0 deletions arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts
Original file line number Diff line number Diff line change
@@ -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";
};
};
};
28 changes: 1 addition & 27 deletions arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts
Original file line number Diff line number Diff line change
@@ -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"
Loading

0 comments on commit 226e5ca

Please sign in to comment.