Мне нужно проинициализировать OTG-контроллер в режиме Device. Подскажите, возможно ли это в принципе? Если да, то как я могу это сделать и проверить работоспособность?
- Работаю с платой BPI M2 Berry (процессор Allwinner A40i-H)
- Версия U-Boot 6.8.0-90-generic
Из того, что уже сделано
Модифицированы dts-файлы
usb_otg: usb@1c13000 {
compatible = "allwinner,sun8i-h3-musb";
reg = <0x01c13000 0x400>;
clocks = <&ccu CLK_BUS_OTG>;
resets = <&ccu RST_BUS_OTG>;
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
dr_mode = "otg";
status = "disabled";
};
---
&usb_otg {
dr_mode = "peripheral";
status = "okay";
};
&usbphy {
usb0_id_det = "disabled";
usb1_vbus-supply = <®_vcc5v0>;
status = "okay";
};
В menuconfig включены такие настройки (в блоке USB Support):
- Enable driver model for USB Gadget
- MUSB host mode support (без этого поля даже не начинается инициализация otg-контроллера)
- MUSB gadget mode support
- Enable sunxi OTG/DRC USB controller
- Hardcode MUSB CONFIGDATA register (без этого поля тоже возникает больше проблем)
- USB Gadget support
- USB Gadget support in SPL (Указал то, что показалось значимым. Мог что-то упустить)
При вызове usb start получаю следующий вывод:
=> usb start
starting USB...
Bus usb@1c13000: Port not available.