Lines Matching defs:irqc
35 static void starfive_intc_bit_set(struct starfive_irq_chip *irqc,
40 value = ioread32(irqc->base + reg);
42 iowrite32(value, irqc->base + reg);
45 static void starfive_intc_bit_clear(struct starfive_irq_chip *irqc,
50 value = ioread32(irqc->base + reg);
52 iowrite32(value, irqc->base + reg);
57 struct starfive_irq_chip *irqc = irq_data_get_irq_chip_data(d);
59 raw_spin_lock(&irqc->lock);
60 starfive_intc_bit_clear(irqc, STARFIVE_INTC_SRC0_MASK, BIT(d->hwirq));
61 raw_spin_unlock(&irqc->lock);
66 struct starfive_irq_chip *irqc = irq_data_get_irq_chip_data(d);
68 raw_spin_lock(&irqc->lock);
69 starfive_intc_bit_set(irqc, STARFIVE_INTC_SRC0_MASK, BIT(d->hwirq));
70 raw_spin_unlock(&irqc->lock);
95 struct starfive_irq_chip *irqc = irq_data_get_irq_handler_data(&desc->irq_data);
102 value = ioread32(irqc->base + STARFIVE_INTC_SRC0_INT);
106 generic_handle_domain_irq(irqc->domain, hwirq);
108 starfive_intc_bit_set(irqc, STARFIVE_INTC_SRC0_CLEAR, BIT(hwirq));
109 starfive_intc_bit_clear(irqc, STARFIVE_INTC_SRC0_CLEAR, BIT(hwirq));
120 struct starfive_irq_chip *irqc;
126 irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
127 if (!irqc)
130 irqc->base = of_iomap(intc, 0);
131 if (!irqc->base) {
159 raw_spin_lock_init(&irqc->lock);
161 irqc->domain = irq_domain_add_linear(intc, STARFIVE_INTC_SRC_IRQ_NUM,
162 &starfive_intc_domain_ops, irqc);
163 if (!irqc->domain) {
177 irqc);
185 irq_domain_remove(irqc->domain);
195 iounmap(irqc->base);
197 kfree(irqc);