From 6e4b98f2d2e72d08ab1544486690baa02bc1bcc7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Nov 2017 12:24:28 +0000 Subject: [PATCH] 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 --- .../boot/dts/overlays/pi3-miniuart-bt-overlay.dts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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"; -- 2.30.2