btmrvl 驱动

所有命令都通过 debugfs 接口使用。

设置/获取驱动配置

路径:/debug/btmrvl/config/

gpiogap=[n], hscfgcmd

这些命令用于配置主机睡眠参数::位 8:0 -- 间隔 位 16:8 -- GPIO

其中 GPIO 是用于唤醒主机的 GPIO 引脚号。它可以是任何有效的 GPIO 引脚号(例如 0-7)或 0xff(将改用 SDIO 接口唤醒)。

其中 Gap 是唤醒信号和唤醒事件之间的毫秒间隔,或 0xff 表示特殊主机睡眠设置。

用法

# Use SDIO interface to wake up the host and set GAP to 0x80:
echo 0xff80 > /debug/btmrvl/config/gpiogap
echo 1 > /debug/btmrvl/config/hscfgcmd

# Use GPIO pin #3 to wake up the host and set GAP to 0xff:
echo 0x03ff >  /debug/btmrvl/config/gpiogap
echo 1 > /debug/btmrvl/config/hscfgcmd
psmode=[n], pscmd

这些命令用于启用/禁用自动睡眠模式

其中选项是

1       -- Enable auto sleep mode
0       -- Disable auto sleep mode

用法

# Enable auto sleep mode
echo 1 > /debug/btmrvl/config/psmode
echo 1 > /debug/btmrvl/config/pscmd

# Disable auto sleep mode
echo 0 > /debug/btmrvl/config/psmode
echo 1 > /debug/btmrvl/config/pscmd
hsmode=[n], hscmd

这些命令用于启用主机睡眠或唤醒固件

其中选项是

1       -- Enable host sleep
0       -- Wake up firmware

用法

# Enable host sleep
echo 1 > /debug/btmrvl/config/hsmode
echo 1 > /debug/btmrvl/config/hscmd

# Wake up firmware
echo 0 > /debug/btmrvl/config/hsmode
echo 1 > /debug/btmrvl/config/hscmd

获取驱动状态

路径:/debug/btmrvl/status/

用法

cat /debug/btmrvl/status/<args>

其中参数是

curpsmode

此命令显示当前自动睡眠状态。

psstate

此命令显示省电状态。

hsstate

此命令显示主机睡眠状态。

txdnldrdy

此命令显示 Tx 下载就绪标志的值。

发出原始 hci 命令

使用 hcitool 发出原始 hci 命令,请参阅 hcitool 手册

用法

Hcitool cmd <ogf> <ocf> [Parameters]

接口控制命令

hcitool cmd 0x3f 0x5b 0xf5 0x01 0x00    --Enable All interface
hcitool cmd 0x3f 0x5b 0xf5 0x01 0x01    --Enable Wlan interface
hcitool cmd 0x3f 0x5b 0xf5 0x01 0x02    --Enable BT interface
hcitool cmd 0x3f 0x5b 0xf5 0x00 0x00    --Disable All interface
hcitool cmd 0x3f 0x5b 0xf5 0x00 0x01    --Disable Wlan interface
hcitool cmd 0x3f 0x5b 0xf5 0x00 0x02    --Disable BT interface

SD8688 固件

映像

  • /lib/firmware/sd8688_helper.bin

  • /lib/firmware/sd8688.bin

可以从以下位置下载映像

git.infradead.org/users/dwmw2/linux-firmware.git/libertas/