Контакт GPIO для питания usb2.0 по умолчанию имеет низкий уровень.

Контакт GPIO для питания usb2.0 по умолчанию имеет низкий уровень.

Первый раз пишу. Так что заранее спасибо за поддержку. Я работаю с платой IMX6, использующей ядро ​​linux, u-boot и rootfs, которые были сгенерированы с помощью yocto. Я использовал один из образов ядра. core-image-minimal-dev для сборки образа ядра. Я добавил usbutils в качестве image_install в рецепте core-image-minimal-dev.

для моего дерева устройств у меня есть следующее для регуляторов USB

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;
                };

и

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

поэтому, когда я включаю питание и получаю доступ к терминалу на поверхности, он работает нормально. Однако мне нужно перевести контакт gpio6_IO15 в высокое состояние. Поскольку этот контакт отвечает за питание моего порта usb2.0.

когда я пытаюсь бежать

echo 175 > /sys/class/gpio/export

Я получаю сообщение об ошибке, сообщающее, что устройство или ресурс занят.

поэтому я запустил проверку, чтобы узнать, кем он используется.

cat /sys/kernel/debug/gpio

ну, похоже, добавив вышесказанное в dts, я выделил ресурс ядру. В идеале я хотел бы использовать вывод gpio как своего рода включение/выключение питания для устройства, которое будет подключено к порту usb. Однако сейчас я бы просто хотел иметь возможность включить питание.

Странно, что даже если DTS установлен на активный высокий уровень, он тянет штифт на низкий уровень. Есть ли у кого-нибудь понимание того, какие изменения могли бы решить мою ситуацию.

решение1

Итак, я смог отследить схему платы, которую я использую, и заметил, что питание 5 В было отключено по умолчанию. Поэтому, хотя мне нужен контакт gpio для устройства USB2.0, чтобы оно было доступно для переключения, питание 5 В было тем, что не давало мне включить устройство.

Итак, проблема с питанием решена. Я задам еще один вопрос в другой раз, чтобы вернуть контроль над контактом gpio для usb2.0.

Я не могу просто использовать 5 В, потому что 5 В питает несколько устройств, которые мне не нужно/не хочется активировать одновременно.

Связанный контент