Lines Matching refs:gc
69 struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data); in lan966x_oic_irq_startup() local
71 struct lan966x_oic_chip_regs *chip_regs = gc->private; in lan966x_oic_irq_startup()
74 irq_gc_lock(gc); in lan966x_oic_irq_startup()
77 map = irq_reg_readl(gc, chip_regs->reg_off_map); in lan966x_oic_irq_startup()
79 irq_reg_writel(gc, map, chip_regs->reg_off_map); in lan966x_oic_irq_startup()
81 irq_gc_unlock(gc); in lan966x_oic_irq_startup()
91 struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data); in lan966x_oic_irq_shutdown() local
93 struct lan966x_oic_chip_regs *chip_regs = gc->private; in lan966x_oic_irq_shutdown()
98 irq_gc_lock(gc); in lan966x_oic_irq_shutdown()
101 map = irq_reg_readl(gc, chip_regs->reg_off_map); in lan966x_oic_irq_shutdown()
103 irq_reg_writel(gc, map, chip_regs->reg_off_map); in lan966x_oic_irq_shutdown()
105 irq_gc_unlock(gc); in lan966x_oic_irq_shutdown()
121 struct irq_chip_generic *gc = irq_get_domain_generic_chip(d, first_irq); in lan966x_oic_irq_handler_domain() local
122 struct lan966x_oic_chip_regs *chip_regs = gc->private; in lan966x_oic_irq_handler_domain()
126 ident = irq_reg_readl(gc, chip_regs->reg_off_ident); in lan966x_oic_irq_handler_domain()
168 static int lan966x_oic_chip_init(struct irq_chip_generic *gc) in lan966x_oic_chip_init() argument
170 struct lan966x_oic_data *lan966x_oic = gc->domain->host_data; in lan966x_oic_chip_init()
173 chip_regs = &lan966x_oic_chip_regs[gc->irq_base / 32]; in lan966x_oic_chip_init()
175 gc->reg_base = lan966x_oic->regs; in lan966x_oic_chip_init()
176 gc->chip_types[0].regs.enable = chip_regs->reg_off_ena_set; in lan966x_oic_chip_init()
177 gc->chip_types[0].regs.disable = chip_regs->reg_off_ena_clr; in lan966x_oic_chip_init()
178 gc->chip_types[0].regs.ack = chip_regs->reg_off_sticky; in lan966x_oic_chip_init()
179 gc->chip_types[0].chip.irq_startup = lan966x_oic_irq_startup; in lan966x_oic_chip_init()
180 gc->chip_types[0].chip.irq_shutdown = lan966x_oic_irq_shutdown; in lan966x_oic_chip_init()
181 gc->chip_types[0].chip.irq_set_type = lan966x_oic_irq_set_type; in lan966x_oic_chip_init()
182 gc->chip_types[0].chip.irq_mask = irq_gc_mask_disable_reg; in lan966x_oic_chip_init()
183 gc->chip_types[0].chip.irq_unmask = irq_gc_unmask_enable_reg; in lan966x_oic_chip_init()
184 gc->chip_types[0].chip.irq_ack = irq_gc_ack_set_bit; in lan966x_oic_chip_init()
185 gc->private = chip_regs; in lan966x_oic_chip_init()
188 irq_reg_writel(gc, ~0U, chip_regs->reg_off_ena_clr); in lan966x_oic_chip_init()
193 static void lan966x_oic_chip_exit(struct irq_chip_generic *gc) in lan966x_oic_chip_exit() argument
196 irq_reg_writel(gc, ~0U, gc->chip_types[0].regs.disable); in lan966x_oic_chip_exit()
197 irq_reg_writel(gc, ~0U, gc->chip_types[0].regs.ack); in lan966x_oic_chip_exit()