The Pi 3B rev 1.3 and the Pi Zero W have flow control signals to the
BT modem, which work well using UART0 (a.k.a. ttyAMA0). Because of
this, the pin wired to the modem's CTS line has to be held low in
order for it to transmit data.
Unfortunately the mini-UART (or its driver) appears to have a flow
control issue, causing hciattach to stall during modem initialisation.
As a workaround (potentially short-term), configure GPIO 31 as an
output driving low (the default state for an output).
See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=138223&start=100#p1228339
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
target = <&uart1>;
__overlay__ {
pinctrl-names = "default";
- pinctrl-0 = <&uart1_pins &bt_pins>;
+ pinctrl-0 = <&uart1_pins &bt_pins &fake_bt_cts>;
status = "okay";
};
};
};
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";