Lines Matching +full:chip +full:- +full:selects
1 // SPDX-License-Identifier: GPL-2.0
6 * Based on arch/arm/mach-gemini/irq.c
7 * Copyright (C) 2001-2006 Storlink, Corp.
8 * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@gmail.com>
29 /* Selects level- or edge-triggered */
31 /* Selects active low/high or falling/rising edge */
42 * struct ft010_irq_data - irq data container for the Faraday IRQ controller
44 * @chip: chip container for this instance
49 struct irq_chip chip; member
58 mask = readl(FT010_IRQ_MASK(f->base)); in ft010_irq_mask()
60 writel(mask, FT010_IRQ_MASK(f->base)); in ft010_irq_mask()
68 mask = readl(FT010_IRQ_MASK(f->base)); in ft010_irq_unmask()
70 writel(mask, FT010_IRQ_MASK(f->base)); in ft010_irq_unmask()
77 writel(BIT(irqd_to_hwirq(d)), FT010_IRQ_CLEAR(f->base)); in ft010_irq_ack()
86 mode = readl(FT010_IRQ_MODE(f->base)); in ft010_irq_set_type()
87 polarity = readl(FT010_IRQ_POLARITY(f->base)); in ft010_irq_set_type()
111 writel(mode, FT010_IRQ_MODE(f->base)); in ft010_irq_set_type()
112 writel(polarity, FT010_IRQ_POLARITY(f->base)); in ft010_irq_set_type()
134 while ((status = readl(FT010_IRQ_STATUS(f->base)))) { in ft010_irqchip_handle_irq()
135 irq = ffs(status) - 1; in ft010_irqchip_handle_irq()
136 generic_handle_domain_irq(f->domain, irq); in ft010_irqchip_handle_irq()
143 struct ft010_irq_data *f = d->host_data; in ft010_irqdomain_map()
172 * For more info see arch/arm/mach-gemini/idle.c in ft010_of_init_irq()
176 f->base = of_iomap(node, 0); in ft010_of_init_irq()
177 WARN(!f->base, "unable to map gemini irq registers\n"); in ft010_of_init_irq()
180 writel(0, FT010_IRQ_MASK(f->base)); in ft010_of_init_irq()
181 writel(0, FT010_FIQ_MASK(f->base)); in ft010_of_init_irq()
183 f->domain = irq_domain_add_simple(node, FT010_NUM_IRQS, 0, in ft010_of_init_irq()
191 IRQCHIP_DECLARE(gemini, "cortina,gemini-interrupt-controller",
193 IRQCHIP_DECLARE(moxa, "moxa,moxart-ic",