Page 1 of 1

[RPI-3] How to enable UART flow control for Bluetooth ?

Posted: Fri Jun 23, 2017 9:51 am
by nottynag
Hi Community team,

On Raspberry Pi - 3, we have bluetooth hardware, which can be accessed via ttyAM0.

However configuration of ttyAM0 needs to be done with out enabling flow control.

due to no flow control, 3Mbps speeds cannot be enabled and even at current 921600 bps, i am seeing H4 re-assmbly errors, when i have Rx load, either by running l2test or by enabling SCO over HCI.

in btuart script located at, /usr/bin/btuart, i see that there is an option for enabling 3Mbps
which can be done by adding CTS and RTS to uart pins.

So i updated uart0 brcm,ping by adding 16,17 GPIO,
uart0_pins {
brcm,pins = <0x10 0x11 0x20 0x21>;
brcm,function = <0x7>;
brcm,pull = <0x0 0x2 0x0 0x2>;
phandle = <0x7>;
};
tried same l2test /scotest, H4 reassmebly errors seen.

As per https://www.raspberrypi.org/app/uploads ... herals.pdf, i see another possibilities for RTS0 and CTS, so added 30 and 31 pins.
uart0_pins {
brcm,pins = <0x1E 0x1F 0x20 0x21>;
brcm,function = <0x7>;
brcm,pull = <0x0 0x2 0x0 0x2>;
phandle = <0x7>;
};
Same result again, i.e H4 errors during l2test or scotest

Does RPI-3 hardware has RTS and CTS lines connected between its process and BT chip ?
If so how to configure and use the same ?