Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 
0003 #ifndef __QCOM_IRQ_H
0004 #define __QCOM_IRQ_H
0005 
0006 #include <linux/irqdomain.h>
0007 
0008 #define GPIO_NO_WAKE_IRQ    ~0U
0009 
0010 /*
0011  * QCOM specific IRQ domain flags that distinguishes the handling of wakeup
0012  * capable interrupts by different interrupt controllers.
0013  *
0014  * IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP: Line must be masked at TLMM and the
0015  *                                  interrupt configuration is done at PDC
0016  * IRQ_DOMAIN_FLAG_QCOM_MPM_WAKEUP: Interrupt configuration is handled at TLMM
0017  */
0018 #define IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP     (IRQ_DOMAIN_FLAG_NONCORE << 0)
0019 #define IRQ_DOMAIN_FLAG_QCOM_MPM_WAKEUP     (IRQ_DOMAIN_FLAG_NONCORE << 1)
0020 
0021 /**
0022  * irq_domain_qcom_handle_wakeup: Return if the domain handles interrupt
0023  *                                configuration
0024  * @d: irq domain
0025  *
0026  * This QCOM specific irq domain call returns if the interrupt controller
0027  * requires the interrupt be masked at the child interrupt controller.
0028  */
0029 static inline bool irq_domain_qcom_handle_wakeup(const struct irq_domain *d)
0030 {
0031     return (d->flags & IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP);
0032 }
0033 
0034 #endif