Lines Matching +full:sp7021 +full:- +full:intc
1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
17 #define SP_INTC_NR_IRQS (SP_INTC_HWIRQ_MAX - SP_INTC_HWIRQ_MIN + 1)
33 #define GROUP_MASK (BIT(SP_INTC_NR_GROUPS) - 1)
57 #define STATE_BIT(irq, idx) (((irq) - GPIO_INT0_HWIRQ) * 3 + (idx))
76 DECLARE_BITMAP(states, (GPIO_INT7_HWIRQ - GPIO_INT0_HWIRQ + 1) * 3);
102 u32 hwirq = d->hwirq; in sp_intc_ack_irq()
114 sp_intc_assign_bit(d->hwirq, REG_INTR_MASK, 0); in sp_intc_mask_irq()
119 sp_intc_assign_bit(d->hwirq, REG_INTR_MASK, 1); in sp_intc_unmask_irq()
124 u32 hwirq = d->hwirq; in sp_intc_set_type()
157 return -1; in sp_intc_get_ext_irq()
159 group = fls(pending_group) - 1; in sp_intc_get_ext_irq()
162 return -1; in sp_intc_get_ext_irq()
164 return (group * 32) + fls(pending_irq) - 1; in sp_intc_get_ext_irq()
216 return -ENOENT; in sp_intc_irq_map()
229 return -ENXIO; in sp_intc_init_dt()
233 ret = -ENXIO; in sp_intc_init_dt()
251 /* all high-active */ in sp_intc_init_dt()
262 ret = -ENOMEM; in sp_intc_init_dt()
278 IRQCHIP_DECLARE(sp_intc, "sunplus,sp7021-intc", sp_intc_init_dt);