From: Phil Elwell Date: Wed, 1 Nov 2017 12:24:28 +0000 (+0000) Subject: ARM: dts: Add fake CTS signal to pi3-miniuart-bt X-Git-Tag: archive/raspbian/4.9.82-1+deb9u3+rpi1_jessie~5^2~69 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6e4b98f2d2e72d08ab1544486690baa02bc1bcc7;p=linux-4.9.git ARM: dts: Add fake CTS signal to pi3-miniuart-bt 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 --- diff --git a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts index 18f77453c38d..98381656945f 100644 --- a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts +++ b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts @@ -31,7 +31,7 @@ target = <&uart1>; __overlay__ { pinctrl-names = "default"; - pinctrl-0 = <&uart1_pins &bt_pins>; + pinctrl-0 = <&uart1_pins &bt_pins &fake_bt_cts>; status = "okay"; }; }; @@ -55,6 +55,16 @@ }; 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";