組み込みLinuxプラットフォームでは、SDIOインターフェイスにネットワークアダプターが接続されています。この特定のバスにはカード検出信号はありません。たとえば、ネットワークアダプターの電源をオンまたはオフにした場合、ユーザースペースからSDIOバスの再スキャンを強制する方法はありますか?
0andriyで述べたように、bind/unbindを使用できます。私は似たようなことをしていますが、ハードウェアに依存するため、これは異なります。私が使用するsdiowifiモジュールのバインドを解除するには:
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の記事 によってよく説明されています。
この機能を追加するためにlinux-mmcメーリングリストに パッチが送信されました があったようですが、 現在のソース を見ると、追加されていないようです。
残念ながら、これが答えになると思います。できません。