• Home
  • Raw
  • Download

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 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 spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_set_type()
167 spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_mask()
171 spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_mask()
180 spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmask()
184 spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmask()
197 int ngpio = priv->gc.ngpio; in grgpio_irq_handler()
202 spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_handler()
218 spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_handler()
250 spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_map()
256 spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_map()
265 spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_map()
269 spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_map()
287 int ngpio = priv->gc.ngpio; in grgpio_irq_unmap()
293 spin_lock_irqsave(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmap()
312 spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags); in grgpio_irq_unmap()
318 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->of_node = np; in grgpio_probe()
362 gc->owner = THIS_MODULE; in grgpio_probe()
363 gc->to_irq = grgpio_to_irq; in grgpio_probe()
364 gc->label = devm_kasprintf(&ofdev->dev, GFP_KERNEL, "%pOF", np); in grgpio_probe()
365 gc->base = -1; in grgpio_probe()
369 gc->ngpio = GRGPIO_MAX_NGPIO; in grgpio_probe()
371 "No or invalid nbits property: assume %d\n", gc->ngpio); in grgpio_probe()
373 gc->ngpio = prop; in grgpio_probe()
382 if (size < gc->ngpio) { in grgpio_probe()
385 size, gc->ngpio); in grgpio_probe()
389 priv->domain = irq_domain_add_linear(np, gc->ngpio, in grgpio_probe()
397 for (i = 0; i < gc->ngpio; i++) { in grgpio_probe()
421 err = gpiochip_add_data(gc, priv); in grgpio_probe()
430 priv->regs, gc->base, gc->ngpio, priv->domain ? "on" : "off"); in grgpio_probe()
450 gpiochip_remove(&priv->gc); in grgpio_remove()