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.