Включить пробуждение из спящего режима через сигнал GPIO

Мне нужно разбудить устройство BeagleBone, работающее под управлением Angstrom OS, из спящего режима через сигнал GPIO.

Я читал, что использование способа /sys/class/gpio/gpioXX/power/wakeup - это способ сделать. Проблема в том, что в Power Power нет никакого файла «пробуждения». Итак, как я должен начать его активировать? Есть ли решение без перекомпиляции ядра?

Я отлично разбираюсь в значении GPIO, поэтому работает GPIO sysfs.

3
nl ja de
На других процессорах серии OMAPxx (или производных) только первый банк GPIO (банк имеет 32 бита) имеет возможность пробуждения, предположительно выполненную по причинам управления питанием, так как в противном случае весь блок GPIO должен быть в во время сна.
добавлено автор marko, источник
Я думаю, что в этот момент пришло время копаться в исходном дереве ядра. Возможно, вам придется перекомпилировать его. Похоже, что ядро ​​BeagleBone построено с defConfig BeagleBoard, поэтому выкачайте mux.c и mux.h в arch /arm/mach-omap2/ в исходном дереве. Я также проверил бы в руководстве пользователя, может ли устройство просыпаться с этого контакта.
добавлено автор marko, источник
Порт, который я использую, - GPIO0_7, поэтому он находится в первом банке, и кажется, что мне нужно настроить что-то, чтобы его включить. Я на ходу?
добавлено автор David, источник
Может быть, на плате BeagleBone нет линий GPIO для соединения сигнала WAKEUP процессора?
добавлено автор David, источник

1 ответы

Внутри драйвера GPIO возникла проблема с ядром OMAP4xxx, когда инициализировались банки GPIO before . Это эффективно предотвращало пробуждения с помощью контактов в режиме GPIO.

Вы можете проверить это, прочитав поля mux [] структуры gpio_bank (файловые драйверы/omap/gpio-omap.c). Они не должны содержать значения NULL.

Существует цикл for в конце функции void omap_gpio_mod_init (struct gpio_bank * bank) . Вам нужно удалить его и инициализировать указатель mux в конце static int omap_gpio_request (struct gpio_chip * chip, unsigned offset) .

Это обеспечит правильность его ввода.

Кроме того, насколько я помню, была проблема с часами debounce. Если мой первый совет не работает, попробуйте отключить debounce для этого вывода.

2
добавлено
Linux Help
Linux Help
2 686 участник(ов)

Правила: https://telegra.ph/Pravila-Linux-Help-10-15

Linux Security
Linux Security
652 участник(ов)

Данная группа принципиально про безопасность и в частности про безопасность Linux. Прочие темы просим обсуждать в профильных чатах.

Linux Gaming RUS
Linux Gaming RUS
28 участник(ов)

Русскоязычный чатик, посвящённый играм на различных дистрибутивах Linux, а также wine, proton Arch Linux RU @ArchLinuxChatRU Gnome RU @gnome_ru