Wie kann ein erneuter Scan eines SDIO-Busses aus dem Linux-Benutzerbereich erzwungen werden?


8

Auf einer eingebetteten Linux-Plattform ist ein Netzwerkadapter an eine SDIO-Schnittstelle angeschlossen. Auf diesem Bus ist kein Kartenerkennungssignal vorhanden. Wenn ich beispielsweise den Netzwerkadapter ein- oder ausschalte, kann ich auf irgendeine Weise einen erneuten Scan des SDIO-Busses aus dem Benutzerbereich erzwingen?

Antworten:


6

Wie von 0andriy erwähnt, können Sie bind / unbind verwenden. Ich mache etwas Ähnliches, aber das wird anders sein, da es von der Hardware abhängt. Um mein SDIO-WLAN-Modul zu lösen, verwende ich:

echo -n "2190000.usdhc" > /sys/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/driver/unbind

Dies gibt Ihnen so etwas wie mmc1: card 0001 removedin dmesg.

Ich schalte dann einen GPIO-Pin um, um mein WLAN-Modul zurückzusetzen

Dann zum erneuten Binden:

echo -n "2190000.usdhc" > /sys/bus/soc/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/subsystem/drivers/sdhci-esdhc-imx/bind

An diesem Punkt druckt dmesg so etwas wie:

mmc1: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
mmc1: new high speed SDIO card at address 0001

Der Bindungs- / Entbindungsprozess wird in diesem alten LWN.net-Artikel gut erklärt .


Beachten Sie, dass basierend auf der entsprechenden Frage , wenn Sie ein TI SDIO-Gerät verwenden, es ohne den Interrupt nicht funktioniert.
— Minghua

2

Es sieht so aus, als ob ein Patch an die Linux-MMC-Mailingliste gesendet wurde, um diese Funktion hinzuzufügen. In der aktuellen Quelle scheint er jedoch nicht hinzugefügt worden zu sein.

Leider denke ich, dass dies die Antwort ist: Sie können nicht.


1
Es ist nicht ganz wahr. Die einfachste Möglichkeit, dies zu umgehen, besteht darin, den Zyklus des Host-Controllers zu lösen / zu binden. Es gibt auch eine andere Möglichkeit, die Kartenerkennung im Treiber zu simulieren, es handelt sich jedoch möglicherweise um eine nicht vorgelagerte Lösung.
— 0andriy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.