Der GPIO-Pin für die USB 2.0-Stromversorgung ist standardmäßig auf niedrig eingestellt.

Der GPIO-Pin für die USB 2.0-Stromversorgung ist standardmäßig auf niedrig eingestellt.

erster Beitrag. Vielen Dank also im Voraus für die Unterstützung. Ich arbeite mit einem IMX6-Board, auf dem ein Linux-Kernel, U-Boot und Rootfs laufen, die von Yocto generiert wurden. Ich habe eines der Kernel-Images verwendet. core-image-minimal-dev, um das Kernel-Image zu erstellen. Ich habe usbutils als image_install innerhalb des core-image-minimal-dev-Rezepts hinzugefügt.

für meinen Gerätebaum habe ich folgendes für die USB-Regler

reg_usb_h1_vbus: regulator@1 {
                        compatible = "regulator-fixed";
                        reg = <1>;
                        regulator-name = "usb_h1_vbus";
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        gpio = <&gpio6 15 0>;

                        enable-active-high;
                };

Und

&usbh1 {
        vbus-supply = <&reg_usb_h1_vbus>;
        dr_mode="peripheral";
        status = "okay";
};

Wenn ich also einschalte und Zugriff auf das Terminal auf der Oberfläche habe, funktioniert es einwandfrei. Allerdings muss ich den GPIO6_IO15-Pin auf High manipulieren. Denn dieser Pin ist für die Stromversorgung meines USB2.0-Ports zuständig.

wenn ich versuche zu rennen

echo 175 > /sys/class/gpio/export

ich erhalte eine Fehlermeldung, dass das Gerät oder die Ressource belegt ist.

also habe ich überprüft, wofür es verwendet wurde.

cat /sys/kernel/debug/gpio

nun, es scheint, als hätte ich durch das Hinzufügen des Obigen zum DTS die Ressource dem Kernel zugewiesen. Idealerweise würde ich den GPIO-Pin gerne als eine Art Ein-/Ausschalter für das Gerät verwenden, das an den USB-Anschluss angeschlossen wird. Im Moment möchte ich jedoch einfach nur in der Lage sein, den Strom einzuschalten.

Seltsam ist, dass der Pin nach unten geht, obwohl ich DTS auf „Aktiv hoch“ eingestellt habe. Weiß jemand, welche Änderungen mein Problem lösen könnten?

Antwort1

Ich konnte also den Schaltplan für die von mir verwendete Platine finden und bemerkte, dass die 5-V-Stromversorgung standardmäßig ausgeschaltet war. Obwohl ich also den GPIO-Pin für das USB2.0-Gerät brauche, um umschalten zu können, war es die 5-V-Stromversorgung, die mich daran hinderte, das Gerät einzuschalten.

Das Stromproblem wurde also behoben. Ich werde ein anderes Mal eine weitere Frage stellen, um die Kontrolle über den GPIO-Pin für USB 2.0 zurückzuerlangen.

Ich kann nicht einfach die 5 V verwenden, da die 5 V mehrere Geräte mit Strom versorgen, die ich nicht gleichzeitig aktivieren muss/möchte.

verwandte Informationen