Pet*_*sel 8 embedded sd-card sdio
在嵌入式 Linux 平台上,我有一个连接到 SDIO 接口的网络适配器。此特定总线上没有 Card Detect 信号。例如,如果我打开或关闭网络适配器电源,有什么方法可以强制从用户空间重新扫描 SDIO 总线?
小智 7
正如 0andriy 所提到的,您可以使用绑定/解除绑定。我正在做类似的事情,但这会有所不同,因为它取决于硬件。要解除绑定我的 sdio wifi 模块,我使用:
echo -n "2190000.usdhc" > /sys/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/driver/unbind
Run Code Online (Sandbox Code Playgroud)
这会给你类似于mmc1: card 0001 removed
dmesg 的东西。
然后我切换 gpio 引脚以重置我的 wifi 模块
然后重新绑定:
echo -n "2190000.usdhc" > /sys/bus/soc/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/subsystem/drivers/sdhci-esdhc-imx/bind
Run Code Online (Sandbox Code Playgroud)
此时 dmesg 将打印如下内容:
mmc1: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
mmc1: new high speed SDIO card at address 0001
Run Code Online (Sandbox Code Playgroud)
这篇旧的LWN.net 文章很好地解释了绑定/解除绑定过程。