On an embedded Linux platform, I have a network adapter attached to an SDIO interface. There is no Card Detect signal on this particular bus. If for instance, I turn the network adapter power on or off, is there any way I can force a re-scan of the SDIO bus from user space?
As mentioned by 0andriy, you can use bind/unbind. I am doing something similar but this will be different as it depends on the hardware. To unbind my sdio wifi module I use:
echo -n "2190000.usdhc" > /sys/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/driver/unbind
This will give you something like
mmc1: card 0001 removed in dmesg.
I then toggle a gpio pin to reset my wifi module
Then to rebind:
echo -n "2190000.usdhc" > /sys/bus/soc/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/subsystem/drivers/sdhci-esdhc-imx/bind
At which point dmesg will print something like:
mmc1: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA mmc1: new high speed SDIO card at address 0001
Binding/unbinding process is explained well by this old LWN.net article.