用于 usb2.0 电源的 GPIO 引脚默认为低。

用于 usb2.0 电源的 GPIO 引脚默认为低。

第一次发帖。所以提前感谢你的支持。我正在使用 IMX6 主板,运行由 yocto 生成的 Linux 内核、u-boot 和 rootfs。我使用了其中一个核心映像。core-image-minimal-dev 来构建内核映像。我在 core-image-minimal-dev 配方中添加了 usbutils 作为 image_install。

对于我的设备树,我有以下 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

因此,我能够追踪到我使用的电路板的原理图,并注意到 5v 电源默认关闭。因此,虽然我需要 gpio 引脚来切换 USB2.0 设备,但 5v 电源却阻止我打开设备电源。

所以电源问题已经解决。我会在另一个时间发布另一个问题,以重新获得对 usb2.0 的 gpio 引脚的控制权。

我不能只使用 5v,因为 5v 可以为多个设备供电,而我不需要/不想同时激活这些设备。

相关内容