AnsweredAssumed Answered

BT problem on imx7d

Question asked by Cheng si on Aug 1, 2017
Latest reply on Aug 1, 2017 by igorpadykov

Hi :

I am using imx7d with chip bcm43438 and the linux kernel 4.1-2.0.x.imx is drawn from freescale. Now i am having problem with getting the bt work, i cannot download the firmware to the device.

When i use command "hciattach ttymxc5 bcm43xx 115200 flow -t 10", it get:

 

root@ hciattach ttymxc5 bcm43xx 115200 flow -t 10

bcm43xx_init
Set Controller UART speed to 115200 bit/s
Flash firmware /etc/firmware/BCM43430A1.1DX.hcd
Initialization timed out.

root@ 

 

but when i use command " hciattach ttymxc5 any 115200 flow -t 10", it get :

 

Device setup complete
root@ hciconfig -a
hci0: Type: BR/EDR Bus: UART
BD Address: AA:AA:AA:AA:AA:AA ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:675 acl:0 sco:0 events:35 errors:0
TX bytes:427 acl:0 sco:0 commands:35 errors:0
Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT

 

root@hciconfig hci0 up
root@hciconfig -a
hci0: Type: BR/EDR Bus: UART
BD Address: AA:AA:AA:AA:AA:AA ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING
RX bytes:1392 acl:0 sco:0 events:76 errors:0
TX bytes:1197 acl:0 sco:0 commands:76 errors:0
Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT
Name: 'BlueZ 5.37'
Class: 0x200000
Service Classes: Audio
Device Class: Miscellaneous,
HCI Version: 4.1 (0x7) Revision: 0x0
LMP Version: 4.1 (0x7) Subversion: 0x2209
Manufacturer: Broadcom Corporation (15)

 

 

i think i am using the default firmware of the bt, and i can use it to scan and connect other bt device, so i think the wire  connection between soc and bcm43438 is right, and here is my dts and schematic, please give me some advice.

 

Thanks!

 

reg_bt: bt-reg {
compatible = "regulator-fixed";
gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
regulator-name = "bt_reg";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-high;
regulator-always-on;

};

 

imx7d {
pinctrl_hog_1: hoggrp-1 {
fsl,pins = <
MX7D_PAD_SD2_CD_B__GPIO5_IO9 0x80000000 /* pass thru the bt reg on */
>;
};

```

pinctrl_uart6: uart6grp {
fsl,pins = <
MX7D_PAD_ECSPI1_MOSI__UART6_DCE_TX 0x79
MX7D_PAD_ECSPI1_SCLK__UART6_DCE_RX 0x79
MX7D_PAD_ECSPI1_SS0__UART6_DCE_CTS 0x79
MX7D_PAD_ECSPI1_MISO__UART6_DCE_RTS 0x79
MX7D_PAD_SD2_CD_B__GPIO5_IO9 0X14/*BT_REG_ON*/

>;
};

```

};

 

&uart6 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart6>;
assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>;
assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
fsl,uart-has-rtscts;
status = "okay";
};

Outcomes