Lines Matching refs:pin
51 * Cache pin direction to save us one transfer, since the hardware has
65 __le16 pin;
69 __le16 pin __packed;
88 static int dln2_gpio_pin_cmd(struct dln2_gpio *dln2, int cmd, unsigned pin)
91 .pin = cpu_to_le16(pin),
97 static int dln2_gpio_pin_val(struct dln2_gpio *dln2, int cmd, unsigned int pin)
101 .pin = cpu_to_le16(pin),
109 if (len < sizeof(rsp) || req.pin != rsp.pin)
115 static int dln2_gpio_pin_get_in_val(struct dln2_gpio *dln2, unsigned int pin)
119 ret = dln2_gpio_pin_val(dln2, DLN2_GPIO_PIN_GET_VAL, pin);
125 static int dln2_gpio_pin_get_out_val(struct dln2_gpio *dln2, unsigned int pin)
129 ret = dln2_gpio_pin_val(dln2, DLN2_GPIO_PIN_GET_OUT_VAL, pin);
136 unsigned int pin, int value)
139 .pin = cpu_to_le16(pin),
154 .pin = cpu_to_le16(offset),
164 /* cache the pin direction */
169 if (len < sizeof(rsp) || req.pin != rsp.pin) {
235 .pin = cpu_to_le16(offset),
285 static int dln2_gpio_set_event_cfg(struct dln2_gpio *dln2, unsigned pin,
289 __le16 pin;
293 .pin = cpu_to_le16(pin),
306 int pin = irqd_to_hwirq(irqd);
308 gpiochip_enable_irq(gc, pin);
309 set_bit(pin, dln2->unmasked_irqs);
316 int pin = irqd_to_hwirq(irqd);
318 clear_bit(pin, dln2->unmasked_irqs);
319 gpiochip_disable_irq(gc, pin);
326 int pin = irqd_to_hwirq(irqd);
330 dln2->irq_type[pin] = DLN2_GPIO_EVENT_LVL_HIGH;
333 dln2->irq_type[pin] = DLN2_GPIO_EVENT_LVL_LOW;
336 dln2->irq_type[pin] = DLN2_GPIO_EVENT_CHANGE;
339 dln2->irq_type[pin] = DLN2_GPIO_EVENT_CHANGE_RISING;
342 dln2->irq_type[pin] = DLN2_GPIO_EVENT_CHANGE_FALLING;
363 int pin = irqd_to_hwirq(irqd);
368 enabled = test_bit(pin, dln2->enabled_irqs);
369 unmasked = test_bit(pin, dln2->unmasked_irqs);
373 type = dln2->irq_type[pin] & DLN2_GPIO_EVENT_MASK;
374 set_bit(pin, dln2->enabled_irqs);
377 clear_bit(pin, dln2->enabled_irqs);
380 ret = dln2_gpio_set_event_cfg(dln2, pin, type, 0);
402 int pin, ret;
407 __le16 pin;
417 pin = le16_to_cpu(event->pin);
418 if (pin >= dln2->gpio.ngpio) {
419 dev_err(dln2->gpio.parent, "out of bounds pin %d\n", pin);
423 switch (dln2->irq_type[pin]) {
434 ret = generic_handle_domain_irq(dln2->gpio.irq.domain, pin);
436 dev_err(dln2->gpio.parent, "pin %d not mapped to IRQ\n", pin);
449 dev_err(dev, "failed to get pin count: %d\n", pins);