2016-04-22 10 views
3

Ich versuche, eine Gerätebaumstruktur für ein eingebettetes System zu erstellen, und möchte einige GPIOs Benutzerbereich verfügbar machen. Diese sind und sollten nicht von Kernel-Treibern verwendet werden. Zum Beispiel ist ein USB-Gerät an die Platine gelötet, das von einem User-Space-Treiber gesteuert wird. Es hat eine GPIO-Reset-Zeile, auf die die Userspace-Bibliothek zugreifen muss.Benannte GPIOs in DeviceTree

Ich möchte, dass diese Namen in sysfs irgendwo bekannt gemacht werden, so dass Userspace auf /sys/class/gpio/usbreset zugreifen kann, anstatt die magische GPIO-Nummer zu kennen und sie speziell exportieren zu müssen. Ich habe versucht, es als ein GPIO-Schwein einzurichten, das das GPIO initialisiert, aber sein Name erscheint nicht in sysfs, und das gpio kann nicht exportiert werden, wenn es gechoppt wird. Ich weiß, dass ich einen anderen Kernel-Treibertyp wie LED auswählen kann, aber es ist keine LED, und das scheint mir nicht sehr sauber zu sein.

Was ist der richtige Weg, um einen benannten GPIO in sysfs zu exportieren?

+0

Ich versuche, das gleiche zu tun, würde gerne die Antwort wissen. –

Antwort

0

Ich schlage vor, ein einfaches Kernelmodul zu schreiben, um nach dem GPIO zu fragen und dann einen Link zu exportieren, der Link kann benannt werden und ist daher für Ihre Anfrage geeignet.

https://www.kernel.org/doc/Documentation/gpio/sysfs.txt

aus dem obigen Link:

Nach dem GPIO exportiert wurde, gpiod_export_link() erlaubt in sysfs zum GPIO sysfs Knoten symlinks von anderswo zu schaffen. Der Fahrer kann diese verwenden, um die Schnittstelle unter ihrem eigenen Gerät in sysfs mit einen beschreibenden Namen zur Verfügung zu stellen