Lines Matching +full:can +full:- +full:disable

1 // SPDX-License-Identifier: GPL-2.0+
16 * Quirk 2: You can't mask the register 1/2 pending interrupts
20 * You can mask the interrupts and get on with things. With this controller
21 * you can't do that.
23 * Quirk 3: The shortcut interrupts can't be (un)masked in bank 0
25 * Those interrupts that have shortcuts can only be masked/unmasked in
26 * their respective banks' enable/disable registers. Doing so in the bank 0
27 * enable/disable registers has no effect.
30 * Bits 0-6: IRQ (index in order of interrupts from banks 1, 2, then 0)
54 /* Shortcuts can't be disabled so any unknown new ones need to be masked */
83 void __iomem *disable[NR_BANKS]; member
94 writel_relaxed(HWIRQ_BIT(d->hwirq), intc.disable[HWIRQ_BANK(d->hwirq)]); in armctrl_mask_irq()
99 writel_relaxed(HWIRQ_BIT(d->hwirq), intc.enable[HWIRQ_BANK(d->hwirq)]); in armctrl_unmask_irq()
103 .name = "ARMCTRL-level",
115 return -EINVAL; in armctrl_xlate()
118 return -EINVAL; in armctrl_xlate()
121 return -EINVAL; in armctrl_xlate()
124 return -EINVAL; in armctrl_xlate()
155 intc.disable[b] = base + reg_disable[b]; in armctrl_of_init()
167 writel_relaxed(reg, intc.disable[b]); in armctrl_of_init()
210 * handle_IRQ may briefly re-enable interrupts for soft IRQ handling.
217 return MAKE_HWIRQ(bank, ffs(stat) - 1); in armctrl_translate_bank()
222 return MAKE_HWIRQ(bank, shortcuts[ffs(stat >> SHORTCUT_SHIFT) - 1]); in armctrl_translate_shortcut()
232 return MAKE_HWIRQ(0, ffs(stat & BANK0_HWIRQ_MASK) - 1); in get_next_armctrl_hwirq()
262 IRQCHIP_DECLARE(bcm2835_armctrl_ic, "brcm,bcm2835-armctrl-ic",
264 IRQCHIP_DECLARE(bcm2836_armctrl_ic, "brcm,bcm2836-armctrl-ic",