помогите разобраться с включением по кнопке PWRON...
до этого добавлял в DTS нужное для пробуждения по GPIO, с подтянутого к плюсу Pin H6 плата просыпалась из сна mem. теперь появилась необходимость пробудить с кнопки PWRON, вытер назад всё что дописывал для работы H6 как wakeup-source. в DTS добавил:
сутки прошли, хочу повторить вопрос: как сконфигурировать buildroot-2022.08.8-sk-a40i чтобы на вашей плате SK-A40i работало пробуждение из спящего режима кнопкой PWRON или входом PWRON на разъёме X9, контакт 8? не выключение зажатой кнопкой, а именно задействовать её как "wakeup-source" в .dts?
этим не buildroot занимается а ядро, у вас вроде все верно сделано - должны быть включены прерывания и не должны отключаться во время засыпания - wakeup-source, могу предложить включить отладку в ядре и искать причину
make linux-menuconfig
Power management options ->
[*] Power Management Debug Support
[*] Extra PM attributes in sysfs for low-level debugging/testing
включил отладку - по логу обнаружил что прерывание nmi исключается из списка wakeup потому что нет ф-ции включения этого wakeup, добавил флаг в описание контроллера чтобы это игноировалось и заработало пробужде6ние по кнопке power on/off - ничего добавлять в DTS не надо, нужно только добавить флаг IRQCHIP_SKIP_SET_WAKE в файле
еще можно подправить драйвер кнопки pek и слать дополнительно события suspend при коротком нажатии, но там у них axp223 и заработает ли на нашем неизвестно
добавлена в buildroot-2022.08.8-sk-a40i/output/build/linux-custom/drivers/irqchip/irq-sunxi-nmi.c как вы указали IRQCHIP_SKIP_SET_WAKE;
пересобрано ядро.
засыпает по команде echo mem > /sys/power/state, просыпается и с GPIO H6 и с кнопки PWRON.
что удивило, в списке прерываний не видится прерывание самой кнопки axp22x_irq_chip, видится только прерывание nmi.
91: 20 0 0 0 sunxi-nmi 0 Level axp22x_irq_chip
114: 0 0 0 5 axp22x_irq_chip 22 Edge axp20x-pek-dbr
115: 0 0 0 5 axp22x_irq_chip 23 Edge axp20x-pek-dbf
большое спасибо за помощь, объяснение и оперативность!