1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #ifndef __QCOM_IRQ_H 4 #define __QCOM_IRQ_H 5 6 #include <linux/irqdomain.h> 7 8 #define GPIO_NO_WAKE_IRQ ~0U 9 10 /** 11 * QCOM specific IRQ domain flags that distinguishes the handling of wakeup 12 * capable interrupts by different interrupt controllers. 13 * 14 * IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP: Line must be masked at TLMM and the 15 * interrupt configuration is done at PDC 16 * IRQ_DOMAIN_FLAG_QCOM_MPM_WAKEUP: Interrupt configuration is handled at TLMM 17 */ 18 #define IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP (IRQ_DOMAIN_FLAG_NONCORE << 0) 19 #define IRQ_DOMAIN_FLAG_QCOM_MPM_WAKEUP (IRQ_DOMAIN_FLAG_NONCORE << 1) 20 21 /** 22 * irq_domain_qcom_handle_wakeup: Return if the domain handles interrupt 23 * configuration 24 * @d: irq domain 25 * 26 * This QCOM specific irq domain call returns if the interrupt controller 27 * requires the interrupt be masked at the child interrupt controller. 28 */ 29 static inline bool irq_domain_qcom_handle_wakeup(const struct irq_domain *d) 30 { 31 return (d->flags & IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP); 32 } 33 34 #endif 35