GPIO暂停/恢复?

时间:2013-03-06 09:47:31

标签: linux-kernel linux-device-driver gpio

虽然我在 GPIO 上阅读了一些文档,但我仍然无法理解 GPIO 顶级多路复用。

从代码中,我看到很少 GPIO (如 Int 重置引脚)在 suspend <期间多路复用专用设备/ em> / * resume *该特定驱动程序的回调。 我想知道这个 gpio 多路复用是什么以及它如何影响系统的暂停 / * resume *?

2 个答案:

答案 0 :(得分:1)

您要问的功能通常不称为多路复用。要在GPIO上启用挂起/恢复,您必须在GPIO上具有interrupt功能。然后,您可以将此interrupt标记为可唤醒。您使用irq_set_irq_wake()执行此操作,gpio_to_irq()非常有帮助。底层的 gpio 以及Linux 驱动程序必须支持这一点;它不是真正的驱动程序,而是适用于您平台的 gpio子系统实例

如果您感兴趣的驱动程序没有使用这些功能,那么它是非标准的Linux使用,您需要指向我们适当的驱动程序源。

另请参阅:LWN pinctrlLinux gpio docpinctrl+gpio device tree bindings

答案 1 :(得分:1)

Gpio TLMM提供单个GPIO引脚可用于多功能,因此可以将gpio引脚配置为数据表/原理图中指定的任何功能。 当系统暂停时,所有gpio将根据其低功耗状态进行配置,以减少漏电流。如果gpio被配置为中断,当系统处于休眠状态时可以唤醒,则该gpio中断监控将从正常的gpio所有者切换到始终在电源控制块上。