Lines Matching refs:gc

61 	struct gpio_chip gc;  member
93 struct gpio_chip *gc = &priv->gc; in grgpio_set_imask() local
99 gc->write_reg(priv->regs + GRGPIO_IMASK, priv->imask); in grgpio_set_imask()
102 static int grgpio_to_irq(struct gpio_chip *gc, unsigned offset) in grgpio_to_irq() argument
104 struct grgpio_priv *priv = gpiochip_get_data(gc); in grgpio_to_irq()
106 if (offset >= gc->ngpio) in grgpio_to_irq()
148 raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_set_type()
150 ipol = priv->gc.read_reg(priv->regs + GRGPIO_IPOL) & ~mask; in grgpio_irq_set_type()
151 iedge = priv->gc.read_reg(priv->regs + GRGPIO_IEDGE) & ~mask; in grgpio_irq_set_type()
153 priv->gc.write_reg(priv->regs + GRGPIO_IPOL, ipol | pol); in grgpio_irq_set_type()
154 priv->gc.write_reg(priv->regs + GRGPIO_IEDGE, iedge | edge); in grgpio_irq_set_type()
156 raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_set_type()
167 raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_mask()
171 raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_mask()
180 raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmask()
184 raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmask()
197 int ngpio = priv->gc.ngpio; in grgpio_irq_handler()
202 raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_handler()
218 raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_handler()
250 raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_map()
256 raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_map()
265 raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_map()
269 raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_map()
287 int ngpio = priv->gc.ngpio; in grgpio_irq_unmap()
293 raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmap()
312 raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmap()
318 raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmap()
332 struct gpio_chip *gc; in grgpio_probe() local
348 gc = &priv->gc; in grgpio_probe()
349 err = bgpio_init(gc, &ofdev->dev, 4, regs + GRGPIO_DATA, in grgpio_probe()
358 priv->imask = gc->read_reg(regs + GRGPIO_IMASK); in grgpio_probe()
361 gc->owner = THIS_MODULE; in grgpio_probe()
362 gc->to_irq = grgpio_to_irq; in grgpio_probe()
363 gc->label = devm_kasprintf(&ofdev->dev, GFP_KERNEL, "%pOF", np); in grgpio_probe()
364 gc->base = -1; in grgpio_probe()
368 gc->ngpio = GRGPIO_MAX_NGPIO; in grgpio_probe()
370 "No or invalid nbits property: assume %d\n", gc->ngpio); in grgpio_probe()
372 gc->ngpio = prop; in grgpio_probe()
381 if (size < gc->ngpio) { in grgpio_probe()
384 size, gc->ngpio); in grgpio_probe()
388 priv->domain = irq_domain_add_linear(np, gc->ngpio, in grgpio_probe()
396 for (i = 0; i < gc->ngpio; i++) { in grgpio_probe()
420 err = gpiochip_add_data(gc, priv); in grgpio_probe()
429 priv->regs, gc->base, gc->ngpio, priv->domain ? "on" : "off"); in grgpio_probe()
438 gpiochip_remove(&priv->gc); in grgpio_remove()