Lines Matching refs:gc

45 	struct irq_chip_generic		*gc;
57 struct irq_chip_generic *gc = handler->priv->gc;
62 pending = readl(gc->reg_base + LIOINTC_REG_INTC_STATUS + offset);
67 (handler->parent_int_map & gc->mask_cache &
77 generic_handle_irq(irq_find_mapping(gc->domain, bit));
84 static void liointc_set_bit(struct irq_chip_generic *gc,
89 writel(readl(gc->reg_base + offset) | mask,
90 gc->reg_base + offset);
92 writel(readl(gc->reg_base + offset) & ~mask,
93 gc->reg_base + offset);
98 struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data);
102 irq_gc_lock_irqsave(gc, flags);
105 liointc_set_bit(gc, LIOINTC_REG_INTC_EDGE, mask, false);
106 liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, true);
109 liointc_set_bit(gc, LIOINTC_REG_INTC_EDGE, mask, false);
110 liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, false);
113 liointc_set_bit(gc, LIOINTC_REG_INTC_EDGE, mask, true);
114 liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, true);
117 liointc_set_bit(gc, LIOINTC_REG_INTC_EDGE, mask, true);
118 liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, false);
121 irq_gc_unlock_irqrestore(gc, flags);
124 irq_gc_unlock_irqrestore(gc, flags);
130 static void liointc_suspend(struct irq_chip_generic *gc)
132 struct liointc_priv *priv = gc->private;
134 priv->int_pol = readl(gc->reg_base + LIOINTC_REG_INTC_POL);
135 priv->int_edge = readl(gc->reg_base + LIOINTC_REG_INTC_EDGE);
138 static void liointc_resume(struct irq_chip_generic *gc)
140 struct liointc_priv *priv = gc->private;
144 irq_gc_lock_irqsave(gc, flags);
146 writel(0xffffffff, gc->reg_base + LIOINTC_REG_INTC_DISABLE);
149 writeb(priv->map_cache[i], gc->reg_base + i);
150 writel(priv->int_pol, gc->reg_base + LIOINTC_REG_INTC_POL);
151 writel(priv->int_edge, gc->reg_base + LIOINTC_REG_INTC_EDGE);
153 writel(gc->mask_cache, gc->reg_base + LIOINTC_REG_INTC_ENABLE);
154 irq_gc_unlock_irqrestore(gc, flags);
167 struct irq_chip_generic *gc;
224 gc = irq_get_domain_generic_chip(domain, 0);
225 gc->private = priv;
226 gc->reg_base = base;
227 gc->domain = domain;
228 gc->suspend = liointc_suspend;
229 gc->resume = liointc_resume;
231 ct = gc->chip_types;
239 gc->mask_cache = 0;
240 priv->gc = gc;