基于GPIO中断的Linux系统唤醒

基于GPIO中断的Linux系统唤醒,linux,embedded-linux,gpio,sysfs,Linux,Embedded Linux,Gpio,Sysfs,我正在使用一个Linux系统在用户空间中配置GPIO。也就是说,该GPIO没有设备树条目。我在sysfs中导出GPIO,我想知道该引脚上的中断是否会唤醒系统。所以我声明pin的方式是我做了 echo$PIN\u NUM>/sys/class/gpio/export 这将在/sys/class/gpio/gpio$PIN_NUM处创建一个虚拟文件 然后,通过执行以下操作,将其配置为下降沿敏感中断 echo”在“>/sys/class/gpio/gpio$PIN\u NUM/direction中

我正在使用一个Linux系统在用户空间中配置GPIO。也就是说,该GPIO没有设备树条目。我在sysfs中导出GPIO,我想知道该引脚上的中断是否会唤醒系统。所以我声明pin的方式是我做了

echo$PIN\u NUM>/sys/class/gpio/export
这将在/sys/class/gpio/gpio$PIN_NUM处创建一个虚拟文件

然后,通过执行以下操作,将其配置为下降沿敏感中断

echo”在“>/sys/class/gpio/gpio$PIN\u NUM/direction中
回声“下降”>/sys/class/gpio/gpio$PIN\u NUM/edge

据此,/sys/class/gpio/gpio$PIN_NUM/edge虚拟文件存在的事实意味着该PIN支持作为中断生成输入。这是否意味着我的系统将在该GPIO上从睡眠中唤醒?如果没有,我如何知道特定的GPIO中断是否能够唤醒系统?

忘记这种传统方式。简单地开始使用
libgpiod
。唤醒是与GPIO操作正交的属性。我在GPIO库中没有看到任何关于唤醒功能的提及。这意味着它完全取决于所讨论的GPIO驱动程序。其中一些使管脚在默认情况下成为唤醒源(全部),一些进行过滤,一些期望DT或ACPI提示。在各自的新内核上,您可以尝试
grep-H enabled/sys/kernel/irq/*/wakeup
。指定您使用的硬件。睡眠和唤醒功能通常由电源管理子系统处理。