cancel
Showing results for 
Search instead for 
Did you mean: 

STM32MP157A UART with LBEE5HY1MW: Bluetooth Reset Failed Issue

BG.3
Associate III

Hi there, 

We are using Murata Module LBEE5HY1MW on our custom board based on STM32MP157A. And we are using OpenSTLinux Kernel Version 4.19.9.

We integrated LBEE5HY1MW's bluetooth with BlueZ v5.50 driver.

And the HW connections between LBEE5HY1MW BT and STM32MP157A,

BT_UART_CTS => USART7_RTS (PE9)
BT_UART_RTS => USART7_CTS (PE10)
BT_UART_RXD => USART7_TX (PE8)
BT_UART_TXD => USART7_RX (PE7)

Our Device Tree Configuration as below:

&pinctrl {
uart7_pins_a: uart7-0 {
pins1 {
pinmux = <STM32_PINMUX('E', 8, AF7)>, /* USART7_TX */
                                                 <STM32_PINMUX('E', 9, AF7)>; /* USART7_RTS */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('E', 7, AF7)>, /* USART7_RX */
                                                 <STM32_PINMUX('E', 10, AF7)>; /* USART7_CTS_NSS */
bias-disable;
};
};
uart7_idle_pins_a: uart7-idle-0 {
pins1 {
pinmux = <STM32_PINMUX('E', 8, ANALOG)>, /* USART7_TX */
                              <STM32_PINMUX('E', 9, ANALOG)>, /* USART7_RTS */
                                <STM32_PINMUX('E', 10, ANALOG)>; /* USART7_CTS_NSS */
};
pins2 {
pinmux = <STM32_PINMUX('E', 7, AF7)>; /* USART7_RX */
bias-disable;
};
};
uart7_sleep_pins_a: uart7-sleep-0 {
pins {
pinmux = <STM32_PINMUX('E', 8, ANALOG)>, /* USART7_TX */
<STM32_PINMUX('E', 7, ANALOG)>, /* USART7_RX */
                                                 <STM32_PINMUX('E', 9, ANALOG)>, /* USART7_RTS */
                                                 <STM32_PINMUX('E', 10, ANALOG)>; /* USART7_CTS_NSS */
};
};
};
&uart7 {
pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&uart7_pins_a>;
pinctrl-1 = <&uart7_sleep_pins_a>;
pinctrl-2 = <&uart7_idle_pins_a>;
st,hw-flow-ctrl;
status = "okay";
bluetooth {
pinctrl-names = "default";
//pinctrl-0 = <&btreg>;
compatible = "brcm,bcm43438-bt";
max-speed = <3000000>;
};
};

Wi-Fi is working fine, but BT is failing sometimes. We are getting the following timeout error, mostly whenever the software reset is triggered. Bluetooth is not completely failing but occasionally gets affected.

root@stm32mp1-disco:~# hciconfig -a
hci0: Type: Primary Bus: UART
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:6 acl:0 sco:0 events:0 errors:0
TX bytes:14 acl:0 sco:0 commands:2 errors:0

root@stm32mp1-disco:~# dmesg | grep -i blue
[ 6.725811] Bluetooth: Core ver 2.22
[ 6.732420] Bluetooth: HCI device and connection manager initialized
[ 6.738990] Bluetooth: HCI socket layer initialized
[ 6.743668] Bluetooth: L2CAP socket layer initialized
[ 6.749184] Bluetooth: SCO socket layer initialized
[ 6.764366] Bluetooth: HCI UART driver ver 2.3
[ 6.769589] Bluetooth: HCI UART protocol H4 registered
[ 6.777801] Bluetooth: HCI UART protocol Broadcom registered
[ 8.967350] Bluetooth: hci0: command 0xfc18 tx timeout
[ 17.127349] Bluetooth: hci0: BCM: failed to write update baudrate (-110)
[ 17.132607] Bluetooth: hci0: Failed to set baudrate
[ 19.207297] Bluetooth: hci0: command 0x0c03 tx timeout
[ 27.367253] Bluetooth: hci0: BCM: Reset failed (-110)

Please help me to resolve this issue.

We gone through similar issue from Solved: STM32MP157F How to configure USART2 / BT LBEE5HY1M... - STMicroelectronics Community. But that solution is not working for us. 

Thanks in advance.

0 REPLIES 0