組み込みLinuxプラットフォームには、SDIOインターフェイスに接続されたネットワークアダプタがあります。この特定のバスにはカード検出信号はありません。たとえば、ネットワークアダプタの電源を入れたり切ったりした場合、SDIOバスをユーザースペースから強制的に再取得する方法はありますか?
ベストアンサー1
0andriyが述べたように、バインディング/バインド解除を使用できます。似たようなことをしていますが、ハードウェアによって異なるため変わることがあります。私のsdio wifiモジュールをバインド解除するには、次のようにします。
echo -n "2190000.usdhc" > /sys/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/driver/unbind
これにより、dmesgなどの結果が表示されますmmc1: card 0001 removed
。
その後、GPIOピンを切り替えてWiFiモジュールをリセットします。
その後、再バインドします。
echo -n "2190000.usdhc" > /sys/bus/soc/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/subsystem/drivers/sdhci-esdhc-imx/bind
この時点で、dmesgは次の内容を印刷します。
mmc1: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
mmc1: new high speed SDIO card at address 0001
この古いものは、バインディング/バインド解除プロセスを非常によく説明しています。LWN.net 記事。