Ich kann einen Blick auf /sys/kernel/debug/pinctrl/44e10800.pinmux/pins
nehmen und den Stift sehe ich interessiert bin:Wie kann ich einen Pinmux für BeagleBone Black unter Linux Kernel 3.17 bearbeiten?
pin 38 (44e10898.0) 00000037 pinctrl-single
Dies entspricht GPIO[2]4
oder P8.10
.
Ich benutze Fedora 21, mit Kernel 3.17.7-300.fc21.armv7hl
.
Ich möchte den Mux zu 0x27
ändern. In Worten, dies würde den Pin so konfigurieren, dass er einen internen Pull-Down-Widerstand hat (zuvor wurde er hochgezogen).
würde die gewünschte Ausgabe sein:
pin 38 (44e10898.0) 00000027 pinctrl-single
Was kann getan werden?
Hinweis: Es gibt keine /sys/devices/bone_capemgr.*
, da dies nicht auf Angstrom ist. Der typische DTO-Ansatz exportiert die Änderungen, indem er den Cape Manager ändert. Dies ist keine Option.
Bearbeiten: Nach Erkundung von tad
's Gedankengang, tat ich: dtc -I dtb -O dts -o ~/am335x-boneblack.dts /boot/dtb-3.17.7-300.fc21.armv7hl/am335x-boneblack.dtb
. Ich bearbeitet diese Datei zu haben:
...
[email protected] {
...
example {
pinctrl-single,pins = <0x898 0x27>;
};
};
...
Dann habe ich es noch einmal kompiliert mit dtc
, steckte es in /boot/dtb-3.17.7-300.fc21.armv7hl/
und neu gestartet. Nichts änderte sich jedoch. Was ist los?
Edit:
Wie Charles Steinkuehler angegeben, muss die 0x800
vom Offset subtrahiert werden, und "etwas" braucht "Beispiel" zu verweisen.
Wenn ich für user_leds_s0
0x098 0x27
zu meinem Eintrag hinzufügen, wird das gewünschte Verhalten beobachtet: Jetzt
...
user_leds_s0 {
pinctrl-single,pins = <0x54 0x7 0x58 0x17 0x5c 0x7 0x60 0x170 0x098 0x27>;
linux,phandle = <0x3f>;
phandle = <0x3f>;
};
...
, das alles in Ordnung ist und bekommt mich, wohin ich gehen müssen. Dieser Pin ist jedoch nicht wirklich ein user_led. Es sollte in einem separaten Bereich irgendeiner Art sein. Also, was ist das "Etwas", das ich tun muss, um das "Beispiel" -Feld oder ähnliches zur Arbeit zu bekommen?
AFAIK das Konzept der Overlays entfernt wurden . Sie müssen die ursprüngliche .dts-Datei bearbeiten, um die Aufgaben erledigen zu können. Zu Ihrer Information, das hängt nicht mit dem Geschmack des Root-Dateisystems zusammen (in Ihrem Fall Angstrom). Dies hängt vollständig von der Kernel-Version ab. – raghav3276
Verzeihen Sie meine Ignoranz; Kannst du ein bisschen mehr darüber sagen, was benötigt wird, vorausgesetzt, ich habe die dts-Datei gefunden, die Fedora benutzt? – ToBeReplaced
Haben Sie die Pindefinition "Beispiel" bearbeitet oder hinzugefügt? Wenn Sie das hinzufügen, sehe ich zwei Probleme. Zuerst muss irgendwo etwas auf die "Beispiel" -Pin-Konfiguration verwiesen werden oder es wird keine Wirkung haben. Zweitens ist Ihr Pinmux-Register-Offsets 0x800 von dem entfernt, was ich erwarten würde (dh 0x898 Pinmux-Register-Offset wird in 0x098 in der Gerätestruktur, da der AM335x Pinmux-Treiber 0x800 für Sie hinzufügt). Wenn dies ein von Ihnen bearbeiteter Eintrag ist, bin ich nicht vertraut mit den Benennungskonventionen für die Gerätebaumstruktur für Ihren bestimmten Kernel. –