Lines Matching refs:gpio
80 int (*set_wake)(unsigned int gpio, unsigned int on);
159 static inline struct pxa_gpio_chip *gpio_to_pxachip(unsigned gpio) in gpio_to_pxachip() argument
161 return &pxa_gpio_chips[gpio_to_bank(gpio)]; in gpio_to_pxachip()
177 static inline int __gpio_is_inverted(int gpio) in __gpio_is_inverted() argument
179 if ((gpio_type == PXA26X_GPIO) && (gpio > 85)) in __gpio_is_inverted()
190 static inline int __gpio_is_occupied(unsigned gpio) in __gpio_is_occupied() argument
197 pxachip = gpio_to_pxachip(gpio); in __gpio_is_occupied()
206 af = (gafr >> ((gpio & 0xf) * 2)) & 0x3; in __gpio_is_occupied()
207 dir = gpdr & GPIO_bit(gpio); in __gpio_is_occupied()
209 if (__gpio_is_inverted(gpio)) in __gpio_is_occupied()
215 ret = gpdr & GPIO_bit(gpio); in __gpio_is_occupied()
305 int i, gpio, nbanks = gpio_to_bank(gpio_end) + 1; in pxa_init_gpio_chip() local
314 for (i = 0, gpio = 0; i < nbanks; i++, gpio += 32) { in pxa_init_gpio_chip()
321 c->base = gpio; in pxa_init_gpio_chip()
336 c->ngpio = (gpio + 31 > gpio_end) ? (gpio_end - gpio + 1) : 32; in pxa_init_gpio_chip()
361 int gpio = pxa_irq_to_gpio(d->irq); in pxa_gpio_irq_type() local
362 unsigned long gpdr, mask = GPIO_bit(gpio); in pxa_gpio_irq_type()
364 c = gpio_to_pxachip(gpio); in pxa_gpio_irq_type()
370 if ((c->irq_edge_rise | c->irq_edge_fall) & GPIO_bit(gpio)) in pxa_gpio_irq_type()
373 if (__gpio_is_occupied(gpio)) in pxa_gpio_irq_type()
381 if (__gpio_is_inverted(gpio)) in pxa_gpio_irq_type()
398 pr_debug("%s: IRQ%d (GPIO%d) - edge%s%s\n", __func__, d->irq, gpio, in pxa_gpio_irq_type()
407 int loop, gpio, gpio_base, n; in pxa_gpio_demux_handler() local
415 for_each_gpio_chip(gpio, c) { in pxa_gpio_demux_handler()
435 int gpio = pxa_irq_to_gpio(d->irq); in pxa_ack_muxed_gpio() local
436 struct pxa_gpio_chip *c = gpio_to_pxachip(gpio); in pxa_ack_muxed_gpio()
438 writel_relaxed(GPIO_bit(gpio), c->regbase + GEDR_OFFSET); in pxa_ack_muxed_gpio()
443 int gpio = pxa_irq_to_gpio(d->irq); in pxa_mask_muxed_gpio() local
444 struct pxa_gpio_chip *c = gpio_to_pxachip(gpio); in pxa_mask_muxed_gpio()
447 c->irq_mask &= ~GPIO_bit(gpio); in pxa_mask_muxed_gpio()
449 grer = readl_relaxed(c->regbase + GRER_OFFSET) & ~GPIO_bit(gpio); in pxa_mask_muxed_gpio()
450 gfer = readl_relaxed(c->regbase + GFER_OFFSET) & ~GPIO_bit(gpio); in pxa_mask_muxed_gpio()
457 int gpio = pxa_irq_to_gpio(d->irq); in pxa_gpio_set_wake() local
458 struct pxa_gpio_chip *c = gpio_to_pxachip(gpio); in pxa_gpio_set_wake()
461 return c->set_wake(gpio, on); in pxa_gpio_set_wake()
468 int gpio = pxa_irq_to_gpio(d->irq); in pxa_unmask_muxed_gpio() local
469 struct pxa_gpio_chip *c = gpio_to_pxachip(gpio); in pxa_unmask_muxed_gpio()
471 c->irq_mask |= GPIO_bit(gpio); in pxa_unmask_muxed_gpio()
578 int gpio, irq, ret, use_of = 0; in pxa_gpio_probe() local
632 for_each_gpio_chip(gpio, c) { in pxa_gpio_probe()
703 int gpio; in pxa_gpio_suspend() local
705 for_each_gpio_chip(gpio, c) { in pxa_gpio_suspend()
720 int gpio; in pxa_gpio_resume() local
722 for_each_gpio_chip(gpio, c) { in pxa_gpio_resume()