LinuxユーザースペースでSDIOバスを強制的に再検索するには?

LinuxユーザースペースでSDIOバスを強制的に再検索するには?

組み込み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 記事

おすすめ記事