Messages in this thread | | | From | Lina Iyer <> | Subject | [PATCH RFC 0/1] QCOM: GPIO IRQ wakeup using PDC irqchip | Date | Wed, 10 Oct 2018 18:29:57 -0600 |
| |
Hi all,
This is a second attempt at enabling wakeup using GPIO IRQs. On the QCOM SDM845i SoC, even when the TLMM gpiochip is powered off the the PDC always-on interrupt controller can sense the GPIO interrupt as a signal, wakeup the interrupt and replay the interrupt at the GIC.
Since, the wakeup interrupt is replayed at the GIC and not at the TLMM, it would have to be considered as a separate interrupt line and not in hierarchy with the GPIO interrupt line which is chained to the GIC, using a single summary line.
The earlier approach [1] was based on configuring a PDC interrupt whenever a GPIO was requested as an IRQ and the PDC irq line was kept disabled. During suspend and resume, the TLMM line was disabled and the PDC line was enabled. While this works for suspend/resume, it becomes an additional complexity to handle when entering a system low power mode where the TLMM could be powered off when the CPUs are idle.
The approach here is to use PDC interrupt at all times (while keeping the GPIO irq disabled). The PDC interrupt handler invokes the action handler of the GPIO IRQ instead. This allows us to avoid interrupt hand-offs while entering idle states and keeps things very simple. The wake_irq_gpio_handler() is the crux of this new revision.
This submission does not include the DT bindings and associated documentation. Once the core design is resolved I will send a complete set with dependencies for this SoC. Please let me know if this approach would work or do you see any issues that I may have missed.
Thanks, Lina
[1]. https://lkml.org/lkml/2018/9/4/846
Lina Iyer (1): drivers: pinctrl: qcom: add wakeup capability to GPIO
drivers/pinctrl/qcom/pinctrl-msm.c | 91 +++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-)
-- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
| |