lần đầu tiên đăng bài. Vì vậy, cảm ơn bạn đã hỗ trợ trước. Tôi đang làm việc với bảng IMX6, chạy kernel linux, u-boot và rootfs được tạo từ yocto. Tôi đã sử dụng một trong những hình ảnh cốt lõi. core-image-Minimal-dev để xây dựng hình ảnh kernel. Tôi đã thêm vào usbutils dưới dạng image_install trong công thức core-image-Minimal-dev.
đối với cây thiết bị của tôi, tôi có những điều sau đây cho bộ điều chỉnh 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;
};
và
&usbh1 {
vbus-supply = <®_usb_h1_vbus>;
dr_mode="peripheral";
status = "okay";
};
Vì vậy, khi tôi bật nguồn và có quyền truy cập vào thiết bị đầu cuối trên bề mặt, nó hoạt động tốt. Tuy nhiên, tôi cần thao tác pin gpio6_IO15 lên cao. Vì pin này chịu trách nhiệm cấp nguồn cho cổng USB2.0 của tôi.
khi tôi cố chạy
echo 175 > /sys/class/gpio/export
tôi nhận được một thông báo lỗi rằng thiết bị hoặc tài nguyên đang bận.
Vì vậy, tôi đã chạy một kiểm tra để xem nó đang được sử dụng bởi cái gì.
cat /sys/kernel/debug/gpio
có vẻ như bằng cách thêm phần trên vào dts, tôi đã phân bổ tài nguyên cho kernel. Lý tưởng nhất là tôi muốn sử dụng pin gpio như một loại tắt nguồn cho thiết bị sẽ được kết nối với cổng usb. Tuy nhiên, bây giờ tôi chỉ thực sự muốn có được sức mạnh trên.
Điều kỳ lạ là mặc dù DTS của tôi được thiết lập ở mức cao, nhưng nó lại khiến pin thấp. Có ai có cái nhìn sâu sắc về những thay đổi có thể giải quyết tình huống của tôi.