Thread 中讨论的其他器件:CC3301
工具与软件:
您好!
我正在使用 M2-CC3301 (MCU126A)、标题为 "I. MX 8M Mini"主机并尝试使 bttti_uart 运行。
我使用的驱动程序版本为1.0.0.7、因此:
- 无线驱动程序版本1.7.0.128
- 无线固件版本1.7.0.188
- 无线 PHY 版本1.2.39.5.44.67
我的第一个尝试是将带内 SDIO 用于蓝牙、因此我刚刚将以下内容添加到了 devicetre 中的 MMC 节点:
btti@1 {
reg = <1>;
compatible = "ti,cc33xxbt";
};
运行正常、我能够使用蓝牙接口、如"Linux CC33XX 用户指南"的"software-examples"->"ble-basics"部分中所述。
现在、我尝试在 UART 接口上运行该示例、这看起来更复杂一点。
我已将以下内容添加到 devicetree 中、如"Linux CC33XX 用户指南"的"迁移指南"中所述:
cc33xx_supply: fixedregulator@1 {
compatible = "regulator-fixed";
regulator-name = "cc33xx_supply";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&gpio_buff 1 GPIO_ACTIVE_HIGH>; /* Using WL REG ON as well here on #WDISABLE1 */
enable-active-high;
};
&uart1 { /* Bluetooth UART */
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
status = "okay";
assigned-clocks = <&clk IMX8MM_CLK_UART1>;
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
resets = <&modem_reset>;
fsl,uart-has-rtscts;
bluetooth {
compatible = "ti,cc33xx-bt";
cc33xx-supply = <&cc33xx_supply>;
max-speed = <115200>;
};
};
当在 dmesg 中为蓝牙执行 grep 操作时、我会得到以下数据:
# dmesg | grep "Bluetooth" [ 0.078914] Bluetooth: Core ver 2.22 [ 0.078947] Bluetooth: HCI device and connection manager initialized [ 0.078954] Bluetooth: HCI socket layer initialized [ 0.078960] Bluetooth: L2CAP socket layer initialized [ 0.078970] Bluetooth: SCO socket layer initialized [ 1.730326] Bluetooth: RFCOMM TTY layer initialized [ 1.735218] Bluetooth: RFCOMM socket layer initialized [ 1.740383] Bluetooth: RFCOMM ver 1.11 [ 1.744143] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 1.749460] Bluetooth: BNEP filters: protocol multicast [ 1.754693] Bluetooth: BNEP socket layer initialized [ 1.759663] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 1.765589] Bluetooth: HIDP socket layer initialized [ 6.256206] Bluetooth: [bt sdio] BLE SDIO init module [ 6.456486] Bluetooth: [bt sdio] PROBE vendor=0x97, device=0x4077, class=255, fn=1 0xffff0000048a9800 [ 6.465810] Bluetooth: [bt sdio] sdio device tree data not available
看起来、他仍在尝试使用 bttti_sDIO 路径? 如何在 SDIO 和 UART 之间切换?
我还尝试进一步调试 bttti_uart.c。 使用 rmmod 删除模块并使用 insmod 再次添加模块时、我可以看到以下输出:
[ 163.965415] btti serial0-0: Host wakeup NOT enabled [ 163.970391] btti serial0-0: SM: Got EVENT_PROBE_DONE, moving from STATE_PROBING to STATE_HW_OFF
查看 bttti_uart.c 的源代码时、似乎他在成功打开串行接口后卡住了。 但现在他正在等待来自 CC3301的"魔法"数据包、以便注册 HCI 器件、但成效显著。 有没有我遗漏的东西? CC3301将如何知道应使用哪个接口? 为什么 UART 上没有任何内容? 我还用逻辑分析仪检查过、UART 线路上没有任何东西?
有什么想法或想法吗?
非常感谢!
此致、
SJ
