4

尽管我阅读了一些关于GPIOs的文档,但我仍然无法理解GPIOs顶级多路复用。

从代码中,我看到在该特定驱动程序的挂起/*resume* 回调期间,专用设备的少数GPIO(如IntReset Pins )被多路复用。我想知道这个gpio多路复用究竟做了什么以及它如何影响系统的挂起/*resume*?

4

2 回答 2

1

您所询问的功能通常不称为多路复用。为了在 GPIO 上启用挂起/恢复,您必须具有interruptGPIO 上的功能。然后您可以将其标记interrupt为可唤醒。你这样做irq_set_irq_wake()gpio_to_irq()有帮助的。底层gpio以及 Linux驱动程序必须支持这一点;它不是真正的驱动程序,而是您平台的gpio 子系统的一个实例。

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

另请参阅:LWN pinctrlLinux gpio docpinctrl+gpio 设备树绑定

于 2013-03-16T14:50:30.987 回答
1

Gpio TLMM 提供单个 GPIO 引脚可用于多种功能,因此可以将该 gpio 引脚配置为数据表/示意图中指定的任何一种功能。当系统要挂起时,所有 gpio 将根据其低功耗状态进行配置,以减少泄漏电流。如果一个 gpio 被配置为一个可以在系统处于睡眠状态时唤醒的中断,那么 gpio 中断监控将从正常 gpio 所有者切换到始终开启电源控制块。

于 2013-05-08T08:17:09.533 回答