Lines Matching +full:ep7209 +full:- +full:intc

1 // SPDX-License-Identifier: GPL-2.0-or-later
77 irqstat = readw_relaxed(clps711x_intc->intmr[0]) & in clps711x_irqh()
78 readw_relaxed(clps711x_intc->intsr[0]); in clps711x_irqh()
80 generic_handle_domain_irq(clps711x_intc->domain, in clps711x_irqh()
81 fls(irqstat) - 1); in clps711x_irqh()
83 irqstat = readw_relaxed(clps711x_intc->intmr[1]) & in clps711x_irqh()
84 readw_relaxed(clps711x_intc->intsr[1]); in clps711x_irqh()
86 generic_handle_domain_irq(clps711x_intc->domain, in clps711x_irqh()
87 fls(irqstat) - 1 + 16); in clps711x_irqh()
95 writel_relaxed(0, clps711x_intc->base + clps711x_irqs[hwirq].eoi); in clps711x_intc_eoi()
101 void __iomem *intmr = clps711x_intc->intmr[hwirq / 16]; in clps711x_intc_mask()
112 void __iomem *intmr = clps711x_intc->intmr[hwirq / 16]; in clps711x_intc_unmask()
121 .name = "clps711x-intc",
145 writel_relaxed(0, clps711x_intc->base + clps711x_irqs[hw].eoi); in clps711x_intc_irq_map()
160 return -ENOMEM; in _clps711x_intc_init()
162 clps711x_intc->base = ioremap(base, size); in _clps711x_intc_init()
163 if (!clps711x_intc->base) { in _clps711x_intc_init()
164 err = -ENOMEM; in _clps711x_intc_init()
168 clps711x_intc->intsr[0] = clps711x_intc->base + CLPS711X_INTSR1; in _clps711x_intc_init()
169 clps711x_intc->intmr[0] = clps711x_intc->base + CLPS711X_INTMR1; in _clps711x_intc_init()
170 clps711x_intc->intsr[1] = clps711x_intc->base + CLPS711X_INTSR2; in _clps711x_intc_init()
171 clps711x_intc->intmr[1] = clps711x_intc->base + CLPS711X_INTMR2; in _clps711x_intc_init()
172 clps711x_intc->intsr[2] = clps711x_intc->base + CLPS711X_INTSR3; in _clps711x_intc_init()
173 clps711x_intc->intmr[2] = clps711x_intc->base + CLPS711X_INTMR3; in _clps711x_intc_init()
176 writel_relaxed(0, clps711x_intc->intmr[0]); in _clps711x_intc_init()
177 writel_relaxed(0, clps711x_intc->intmr[1]); in _clps711x_intc_init()
178 writel_relaxed(0, clps711x_intc->intmr[2]); in _clps711x_intc_init()
180 err = irq_alloc_descs(-1, 0, ARRAY_SIZE(clps711x_irqs), numa_node_id()); in _clps711x_intc_init()
184 clps711x_intc->ops.map = clps711x_intc_irq_map; in _clps711x_intc_init()
185 clps711x_intc->ops.xlate = irq_domain_xlate_onecell; in _clps711x_intc_init()
186 clps711x_intc->domain = in _clps711x_intc_init()
188 &clps711x_intc->ops, NULL); in _clps711x_intc_init()
189 if (!clps711x_intc->domain) { in _clps711x_intc_init()
190 err = -ENOMEM; in _clps711x_intc_init()
194 irq_set_default_domain(clps711x_intc->domain); in _clps711x_intc_init()
207 iounmap(clps711x_intc->base); in _clps711x_intc_init()
227 IRQCHIP_DECLARE(clps711x, "cirrus,ep7209-intc", clps711x_intc_init_dt);