Lines Matching refs:gpio

27 	return container_of(chip, struct ssb_bus, gpio);  in ssb_gpio_get_bus()
31 static int ssb_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) in ssb_gpio_to_irq() argument
36 return irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_to_irq()
46 static int ssb_gpio_chipco_get_value(struct gpio_chip *chip, unsigned gpio) in ssb_gpio_chipco_get_value() argument
50 return !!ssb_chipco_gpio_in(&bus->chipco, 1 << gpio); in ssb_gpio_chipco_get_value()
53 static void ssb_gpio_chipco_set_value(struct gpio_chip *chip, unsigned gpio, in ssb_gpio_chipco_set_value() argument
58 ssb_chipco_gpio_out(&bus->chipco, 1 << gpio, value ? 1 << gpio : 0); in ssb_gpio_chipco_set_value()
62 unsigned gpio) in ssb_gpio_chipco_direction_input() argument
66 ssb_chipco_gpio_outen(&bus->chipco, 1 << gpio, 0); in ssb_gpio_chipco_direction_input()
71 unsigned gpio, int value) in ssb_gpio_chipco_direction_output() argument
75 ssb_chipco_gpio_outen(&bus->chipco, 1 << gpio, 1 << gpio); in ssb_gpio_chipco_direction_output()
76 ssb_chipco_gpio_out(&bus->chipco, 1 << gpio, value ? 1 << gpio : 0); in ssb_gpio_chipco_direction_output()
80 static int ssb_gpio_chipco_request(struct gpio_chip *chip, unsigned gpio) in ssb_gpio_chipco_request() argument
84 ssb_chipco_gpio_control(&bus->chipco, 1 << gpio, 0); in ssb_gpio_chipco_request()
86 ssb_chipco_gpio_pulldown(&bus->chipco, 1 << gpio, 0); in ssb_gpio_chipco_request()
88 ssb_chipco_gpio_pullup(&bus->chipco, 1 << gpio, 1 << gpio); in ssb_gpio_chipco_request()
93 static void ssb_gpio_chipco_free(struct gpio_chip *chip, unsigned gpio) in ssb_gpio_chipco_free() argument
98 ssb_chipco_gpio_pullup(&bus->chipco, 1 << gpio, 0); in ssb_gpio_chipco_free()
105 int gpio = irqd_to_hwirq(d); in ssb_gpio_irq_chipco_mask() local
107 ssb_chipco_gpio_intmask(&bus->chipco, BIT(gpio), 0); in ssb_gpio_irq_chipco_mask()
113 int gpio = irqd_to_hwirq(d); in ssb_gpio_irq_chipco_unmask() local
114 u32 val = ssb_chipco_gpio_in(&bus->chipco, BIT(gpio)); in ssb_gpio_irq_chipco_unmask()
116 ssb_chipco_gpio_polarity(&bus->chipco, BIT(gpio), val); in ssb_gpio_irq_chipco_unmask()
117 ssb_chipco_gpio_intmask(&bus->chipco, BIT(gpio), BIT(gpio)); in ssb_gpio_irq_chipco_unmask()
134 int gpio; in ssb_gpio_irq_chipco_handler() local
139 for_each_set_bit(gpio, &irqs, bus->gpio.ngpio) in ssb_gpio_irq_chipco_handler()
140 generic_handle_irq(ssb_gpio_to_irq(&bus->gpio, gpio)); in ssb_gpio_irq_chipco_handler()
149 struct gpio_chip *chip = &bus->gpio; in ssb_gpio_irq_chipco_domain_init()
150 int gpio, hwirq, err; in ssb_gpio_irq_chipco_domain_init() local
161 for (gpio = 0; gpio < chip->ngpio; gpio++) { in ssb_gpio_irq_chipco_domain_init()
162 int irq = irq_create_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_chipco_domain_init()
181 for (gpio = 0; gpio < chip->ngpio; gpio++) { in ssb_gpio_irq_chipco_domain_init()
182 int irq = irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_chipco_domain_init()
194 struct gpio_chip *chip = &bus->gpio; in ssb_gpio_irq_chipco_domain_exit()
195 int gpio; in ssb_gpio_irq_chipco_domain_exit() local
202 for (gpio = 0; gpio < chip->ngpio; gpio++) { in ssb_gpio_irq_chipco_domain_exit()
203 int irq = irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_chipco_domain_exit()
222 struct gpio_chip *chip = &bus->gpio; in ssb_gpio_chipco_init()
264 static int ssb_gpio_extif_get_value(struct gpio_chip *chip, unsigned gpio) in ssb_gpio_extif_get_value() argument
268 return !!ssb_extif_gpio_in(&bus->extif, 1 << gpio); in ssb_gpio_extif_get_value()
271 static void ssb_gpio_extif_set_value(struct gpio_chip *chip, unsigned gpio, in ssb_gpio_extif_set_value() argument
276 ssb_extif_gpio_out(&bus->extif, 1 << gpio, value ? 1 << gpio : 0); in ssb_gpio_extif_set_value()
280 unsigned gpio) in ssb_gpio_extif_direction_input() argument
284 ssb_extif_gpio_outen(&bus->extif, 1 << gpio, 0); in ssb_gpio_extif_direction_input()
289 unsigned gpio, int value) in ssb_gpio_extif_direction_output() argument
293 ssb_extif_gpio_outen(&bus->extif, 1 << gpio, 1 << gpio); in ssb_gpio_extif_direction_output()
294 ssb_extif_gpio_out(&bus->extif, 1 << gpio, value ? 1 << gpio : 0); in ssb_gpio_extif_direction_output()
302 int gpio = irqd_to_hwirq(d); in ssb_gpio_irq_extif_mask() local
304 ssb_extif_gpio_intmask(&bus->extif, BIT(gpio), 0); in ssb_gpio_irq_extif_mask()
310 int gpio = irqd_to_hwirq(d); in ssb_gpio_irq_extif_unmask() local
311 u32 val = ssb_extif_gpio_in(&bus->extif, BIT(gpio)); in ssb_gpio_irq_extif_unmask()
313 ssb_extif_gpio_polarity(&bus->extif, BIT(gpio), val); in ssb_gpio_irq_extif_unmask()
314 ssb_extif_gpio_intmask(&bus->extif, BIT(gpio), BIT(gpio)); in ssb_gpio_irq_extif_unmask()
331 int gpio; in ssb_gpio_irq_extif_handler() local
336 for_each_set_bit(gpio, &irqs, bus->gpio.ngpio) in ssb_gpio_irq_extif_handler()
337 generic_handle_irq(ssb_gpio_to_irq(&bus->gpio, gpio)); in ssb_gpio_irq_extif_handler()
346 struct gpio_chip *chip = &bus->gpio; in ssb_gpio_irq_extif_domain_init()
347 int gpio, hwirq, err; in ssb_gpio_irq_extif_domain_init() local
358 for (gpio = 0; gpio < chip->ngpio; gpio++) { in ssb_gpio_irq_extif_domain_init()
359 int irq = irq_create_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_extif_domain_init()
377 for (gpio = 0; gpio < chip->ngpio; gpio++) { in ssb_gpio_irq_extif_domain_init()
378 int irq = irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_extif_domain_init()
390 struct gpio_chip *chip = &bus->gpio; in ssb_gpio_irq_extif_domain_exit()
391 int gpio; in ssb_gpio_irq_extif_domain_exit() local
397 for (gpio = 0; gpio < chip->ngpio; gpio++) { in ssb_gpio_irq_extif_domain_exit()
398 int irq = irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_irq_extif_domain_exit()
417 struct gpio_chip *chip = &bus->gpio; in ssb_gpio_extif_init()
478 gpiochip_remove(&bus->gpio); in ssb_gpio_unregister()