Lines Matching refs:gpio

13 #include <linux/gpio/driver.h>
26 static int ssb_gpio_to_irq(struct gpio_chip *chip, unsigned int gpio)
31 return irq_find_mapping(bus->irq_domain, gpio);
41 static int ssb_gpio_chipco_get_value(struct gpio_chip *chip, unsigned int gpio)
45 return !!ssb_chipco_gpio_in(&bus->chipco, 1 << gpio);
48 static void ssb_gpio_chipco_set_value(struct gpio_chip *chip, unsigned int gpio,
53 ssb_chipco_gpio_out(&bus->chipco, 1 << gpio, value ? 1 << gpio : 0);
57 unsigned int gpio)
61 ssb_chipco_gpio_outen(&bus->chipco, 1 << gpio, 0);
66 unsigned int gpio, int value)
70 ssb_chipco_gpio_outen(&bus->chipco, 1 << gpio, 1 << gpio);
71 ssb_chipco_gpio_out(&bus->chipco, 1 << gpio, value ? 1 << gpio : 0);
75 static int ssb_gpio_chipco_request(struct gpio_chip *chip, unsigned int gpio)
79 ssb_chipco_gpio_control(&bus->chipco, 1 << gpio, 0);
81 ssb_chipco_gpio_pulldown(&bus->chipco, 1 << gpio, 0);
83 ssb_chipco_gpio_pullup(&bus->chipco, 1 << gpio, 1 << gpio);
88 static void ssb_gpio_chipco_free(struct gpio_chip *chip, unsigned int gpio)
93 ssb_chipco_gpio_pullup(&bus->chipco, 1 << gpio, 0);
100 int gpio = irqd_to_hwirq(d);
102 ssb_chipco_gpio_intmask(&bus->chipco, BIT(gpio), 0);
108 int gpio = irqd_to_hwirq(d);
109 u32 val = ssb_chipco_gpio_in(&bus->chipco, BIT(gpio));
111 ssb_chipco_gpio_polarity(&bus->chipco, BIT(gpio), val);
112 ssb_chipco_gpio_intmask(&bus->chipco, BIT(gpio), BIT(gpio));
129 int gpio;
134 for_each_set_bit(gpio, &irqs, bus->gpio.ngpio)
135 generic_handle_domain_irq_safe(bus->irq_domain, gpio);
145 struct gpio_chip *chip = &bus->gpio;
146 int gpio, hwirq, err;
157 for (gpio = 0; gpio < chip->ngpio; gpio++) {
158 int irq = irq_create_mapping(bus->irq_domain, gpio);
167 "gpio", bus);
177 for (gpio = 0; gpio < chip->ngpio; gpio++) {
178 int irq = irq_find_mapping(bus->irq_domain, gpio);
190 struct gpio_chip *chip = &bus->gpio;
191 int gpio;
198 for (gpio = 0; gpio < chip->ngpio; gpio++) {
199 int irq = irq_find_mapping(bus->irq_domain, gpio);
218 struct gpio_chip *chip = &bus->gpio;
261 static int ssb_gpio_extif_get_value(struct gpio_chip *chip, unsigned int gpio)
265 return !!ssb_extif_gpio_in(&bus->extif, 1 << gpio);
268 static void ssb_gpio_extif_set_value(struct gpio_chip *chip, unsigned int gpio,
273 ssb_extif_gpio_out(&bus->extif, 1 << gpio, value ? 1 << gpio : 0);
277 unsigned int gpio)
281 ssb_extif_gpio_outen(&bus->extif, 1 << gpio, 0);
286 unsigned int gpio, int value)
290 ssb_extif_gpio_outen(&bus->extif, 1 << gpio, 1 << gpio);
291 ssb_extif_gpio_out(&bus->extif, 1 << gpio, value ? 1 << gpio : 0);
299 int gpio = irqd_to_hwirq(d);
301 ssb_extif_gpio_intmask(&bus->extif, BIT(gpio), 0);
307 int gpio = irqd_to_hwirq(d);
308 u32 val = ssb_extif_gpio_in(&bus->extif, BIT(gpio));
310 ssb_extif_gpio_polarity(&bus->extif, BIT(gpio), val);
311 ssb_extif_gpio_intmask(&bus->extif, BIT(gpio), BIT(gpio));
328 int gpio;
333 for_each_set_bit(gpio, &irqs, bus->gpio.ngpio)
334 generic_handle_domain_irq_safe(bus->irq_domain, gpio);
344 struct gpio_chip *chip = &bus->gpio;
345 int gpio, hwirq, err;
356 for (gpio = 0; gpio < chip->ngpio; gpio++) {
357 int irq = irq_create_mapping(bus->irq_domain, gpio);
366 "gpio", bus);
375 for (gpio = 0; gpio < chip->ngpio; gpio++) {
376 int irq = irq_find_mapping(bus->irq_domain, gpio);
388 struct gpio_chip *chip = &bus->gpio;
389 int gpio;
395 for (gpio = 0; gpio < chip->ngpio; gpio++) {
396 int irq = irq_find_mapping(bus->irq_domain, gpio);
415 struct gpio_chip *chip = &bus->gpio;
474 gpiochip_remove(&bus->gpio);