Lines Matching refs:gpio
24 return container_of(chip, struct bcma_drv_cc, gpio); in bcma_gpio_get_cc()
27 static int bcma_gpio_get_value(struct gpio_chip *chip, unsigned gpio) in bcma_gpio_get_value() argument
31 return !!bcma_chipco_gpio_in(cc, 1 << gpio); in bcma_gpio_get_value()
34 static void bcma_gpio_set_value(struct gpio_chip *chip, unsigned gpio, in bcma_gpio_set_value() argument
39 bcma_chipco_gpio_out(cc, 1 << gpio, value ? 1 << gpio : 0); in bcma_gpio_set_value()
42 static int bcma_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) in bcma_gpio_direction_input() argument
46 bcma_chipco_gpio_outen(cc, 1 << gpio, 0); in bcma_gpio_direction_input()
50 static int bcma_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, in bcma_gpio_direction_output() argument
55 bcma_chipco_gpio_outen(cc, 1 << gpio, 1 << gpio); in bcma_gpio_direction_output()
56 bcma_chipco_gpio_out(cc, 1 << gpio, value ? 1 << gpio : 0); in bcma_gpio_direction_output()
60 static int bcma_gpio_request(struct gpio_chip *chip, unsigned gpio) in bcma_gpio_request() argument
64 bcma_chipco_gpio_control(cc, 1 << gpio, 0); in bcma_gpio_request()
66 bcma_chipco_gpio_pulldown(cc, 1 << gpio, 0); in bcma_gpio_request()
68 bcma_chipco_gpio_pullup(cc, 1 << gpio, 1 << gpio); in bcma_gpio_request()
73 static void bcma_gpio_free(struct gpio_chip *chip, unsigned gpio) in bcma_gpio_free() argument
78 bcma_chipco_gpio_pullup(cc, 1 << gpio, 0); in bcma_gpio_free()
82 static int bcma_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) in bcma_gpio_to_irq() argument
87 return irq_find_mapping(cc->irq_domain, gpio); in bcma_gpio_to_irq()
95 int gpio = irqd_to_hwirq(d); in bcma_gpio_irq_unmask() local
96 u32 val = bcma_chipco_gpio_in(cc, BIT(gpio)); in bcma_gpio_irq_unmask()
98 bcma_chipco_gpio_polarity(cc, BIT(gpio), val); in bcma_gpio_irq_unmask()
99 bcma_chipco_gpio_intmask(cc, BIT(gpio), BIT(gpio)); in bcma_gpio_irq_unmask()
105 int gpio = irqd_to_hwirq(d); in bcma_gpio_irq_mask() local
107 bcma_chipco_gpio_intmask(cc, BIT(gpio), 0); in bcma_gpio_irq_mask()
123 int gpio; in bcma_gpio_irq_handler() local
128 for_each_set_bit(gpio, &irqs, cc->gpio.ngpio) in bcma_gpio_irq_handler()
129 generic_handle_irq(bcma_gpio_to_irq(&cc->gpio, gpio)); in bcma_gpio_irq_handler()
137 struct gpio_chip *chip = &cc->gpio; in bcma_gpio_irq_domain_init()
138 int gpio, hwirq, err; in bcma_gpio_irq_domain_init() local
149 for (gpio = 0; gpio < chip->ngpio; gpio++) { in bcma_gpio_irq_domain_init()
150 int irq = irq_create_mapping(cc->irq_domain, gpio); in bcma_gpio_irq_domain_init()
169 for (gpio = 0; gpio < chip->ngpio; gpio++) { in bcma_gpio_irq_domain_init()
170 int irq = irq_find_mapping(cc->irq_domain, gpio); in bcma_gpio_irq_domain_init()
181 struct gpio_chip *chip = &cc->gpio; in bcma_gpio_irq_domain_exit()
182 int gpio; in bcma_gpio_irq_domain_exit() local
189 for (gpio = 0; gpio < chip->ngpio; gpio++) { in bcma_gpio_irq_domain_exit()
190 int irq = irq_find_mapping(cc->irq_domain, gpio); in bcma_gpio_irq_domain_exit()
210 struct gpio_chip *chip = &cc->gpio; in bcma_gpio_init()
265 gpiochip_remove(&cc->gpio); in bcma_gpio_unregister()