Как включить пробуждение по USB (удаленное пробуждение) в Android? - PullRequest
9 голосов
/ 06 июля 2019

У меня есть дерево AOSP, скомпилированное на моей плате. Я купил беспроводную клавиатуру и подключил ее к плате через USB-порт. Я ожидаю, что когда плата находится в состоянии ожидания, она активируется нажатием клавиши на клавиатуре. Но это не так.

Я пробовал несколько способов в моем загрузчике (uboot), ядре и т. Д. Но безрезультатно. Кроме того, я провел эксперимент и обнаружил, что в спящем режиме мой USB-порт (в котором есть ключ) имеет всего 1-5 мА. Но он должен быть выше, чтобы ключ работал!

Кто-нибудь испытывал это? Как включить удаленное пробуждение для USB в Android?

Спасибо


Подробнее : Uboot поддерживает интерфейс хост-контроллера USB. Я подправил параметры сборки ядра. но эти два действия не имеют никакого эффекта.


РЕДАКТИРОВАТЬ : Я работаю на эталонной плате p212 amlogic. Его SoC - Amlogic S905X.


РЕДАКТИРОВАТЬ 2 : Я протестировал плату (которая на самом деле является телевизионной коробкой), используя мой телефон и его зарядное устройство, и обнаружил, что когда коробка переходит в спящий режим, зарядка прекращается !! Таким образом, я могу сделать вывод, что у ключа недостаточно силы, чтобы остаться в живых! (еще не отправить сигнал пробуждения на SoC!)

Затем я провел второй эксперимент: я подключил телефон с помощью зарядного устройства USB, которое имеет только два контакта вместо четырех. (Просто подача напряжения; дифференциальные контакты (сигнальные контакты) отсоединены). Результат: мой телефон заряжается сейчас !! Кажется, что когда SoC приостанавливается, он посылает сигнал периферийным устройствам USB, сообщая им, что они не должны потреблять энергию. Я прав? Как я могу настроить дерево AOSP, ядро ​​Linux и загрузчик uboot, чтобы избежать этого? Пожалуйста, объясните мне, как это исправить в ядре или других частях стека!


РЕДАКТИРОВАТЬ 3 :

Я вставил свою конфигурацию ядра сюда . Я настроил эти параметры на y, но не имеет никакого эффекта:

CONFIG_PM_RUNTIME=y
CONFIG_PM_AUTOSLEEP=y
CONFIG_PM_DEBUG=y
CONFIG_USB_OTG_WAKELOCK=y

CONFIG_USB_DEBUG=y
CONFIG_USB_OTG=y

Также эта ссылка - это мои файлы дерева устройств. (в ядре. НЕ uboot)

...