工具/软件:
尊敬的 TI 专家:
我 参考了文档以通过 SDIO 启用 BLE。 (https://dev.ti.com/tirex/explore/content/CC33XX_LINUX_MPU_1_00_00_09__all/docs/linux/html/linux/migration-guide.html#ble-over-sdio)
BLE over SDIO 正常工作、但 WoWLAN 已禁用、我们使用命令“iw phy0 WoWLAN show“进行检查。
我调查了源代码、发现 WoWLAN 的注册需要 GPIO IRQ 设置。
请查看 SDK 的以下源代码。
static void setup_wake_irq(struct cc33xx *wl)
{
...
if (pdev_data->pwr_in_suspend)
wl->hw->wiphy->wowlan = &wlcore_wowlan_support;
...
}
static int sdio_cc33xx_probe(struct sdio_func *func,
const struct sdio_device_id *id)
{
...
if (gpio_irq)
{
...
if ((mmcflags & MMC_PM_KEEP_POWER) &&
(enable_irq_wake(gpio_irq)==0))
pdev_data->pwr_in_suspend = true;
...
}
...
}
如文档所述、 预先要求还必须将带内 IRQ 用于 SDIO 上的 BLE、并且 示例代码中没有 wlcore 的 GPIO IRQ 设置。
wlcore: wlcore@2 {
compatible = "ti,cc33xx";
reg = <2>;
};
因此、看起来无法 同时通过 SDIO 和 WoWLAN 启用 BLE、这是正确的吗?
此外、我已经尝试过、 到目前为止、仅保持 wlcore、SDIO 上的 BLE 和 WoWLAN 的 GPIO IRQ 设置正常工作。
您能否证实 我是否应 同时保留 wlcore 和 SDIO 上的 BLE 的 GPIO IRQ 设置?
