У меня есть SoC tx6s-8035, которую мы интегрировали в специальную плату. Мы подключили Asix 88772B к порту usbotg, и нам нужно, чтобы он запускался в режиме хоста.
Мы заземлили вывод USBOTG_ID и надеялись, что он запустится в режиме хоста. К сожалению, этого не произошло.
Я изучил проблему и обнаружил странное поведение... Я добавил dr_mode = host
в качестве дополнительного свойства в официальное дерево устройств. После этого я изменил драйвер ci_hdrc_imx, чтобы он печатал то, что он получил в device_node, и он сказал «периферия». Я проследил проблему, и когда вызывается функция of_usb_get_dr_mode()
, дерево устройств уже содержит dr_mode = peripheral
.
Любые идеи? Я просто не представляю, что там происходит...
p.s.: Я перепроверил, правильно ли обновляю дерево устройств.