Lines Matching defs:idio16gpio

73 	struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip);
80 return !!(inb(idio16gpio->base + 1) & mask);
82 return !!(inb(idio16gpio->base + 5) & (mask>>8));
88 struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip);
92 *bits |= (unsigned long)inb(idio16gpio->base + 1) << 16;
94 *bits |= (unsigned long)inb(idio16gpio->base + 5) << 24;
101 struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip);
108 raw_spin_lock_irqsave(&idio16gpio->lock, flags);
111 idio16gpio->out_state |= mask;
113 idio16gpio->out_state &= ~mask;
116 outb(idio16gpio->out_state >> 8, idio16gpio->base + 4);
118 outb(idio16gpio->out_state, idio16gpio->base);
120 raw_spin_unlock_irqrestore(&idio16gpio->lock, flags);
126 struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip);
129 raw_spin_lock_irqsave(&idio16gpio->lock, flags);
131 idio16gpio->out_state &= ~*mask;
132 idio16gpio->out_state |= *mask & *bits;
135 outb(idio16gpio->out_state, idio16gpio->base);
137 outb(idio16gpio->out_state >> 8, idio16gpio->base + 4);
139 raw_spin_unlock_irqrestore(&idio16gpio->lock, flags);
149 struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip);
153 idio16gpio->irq_mask &= ~mask;
155 if (!idio16gpio->irq_mask) {
156 raw_spin_lock_irqsave(&idio16gpio->lock, flags);
158 outb(0, idio16gpio->base + 2);
160 raw_spin_unlock_irqrestore(&idio16gpio->lock, flags);
167 struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip);
169 const unsigned long prev_irq_mask = idio16gpio->irq_mask;
172 idio16gpio->irq_mask |= mask;
175 raw_spin_lock_irqsave(&idio16gpio->lock, flags);
177 inb(idio16gpio->base + 2);
179 raw_spin_unlock_irqrestore(&idio16gpio->lock, flags);
203 struct idio_16_gpio *const idio16gpio = dev_id;
204 struct gpio_chip *const chip = &idio16gpio->chip;
207 for_each_set_bit(gpio, &idio16gpio->irq_mask, chip->ngpio)
210 raw_spin_lock(&idio16gpio->lock);
212 outb(0, idio16gpio->base + 1);
214 raw_spin_unlock(&idio16gpio->lock);
229 struct idio_16_gpio *const idio16gpio = gpiochip_get_data(gc);
232 outb(0, idio16gpio->base + 2);
233 outb(0, idio16gpio->base + 1);
240 struct idio_16_gpio *idio16gpio;
245 idio16gpio = devm_kzalloc(dev, sizeof(*idio16gpio), GFP_KERNEL);
246 if (!idio16gpio)
255 idio16gpio->chip.label = name;
256 idio16gpio->chip.parent = dev;
257 idio16gpio->chip.owner = THIS_MODULE;
258 idio16gpio->chip.base = -1;
259 idio16gpio->chip.ngpio = IDIO_16_NGPIO;
260 idio16gpio->chip.names = idio_16_names;
261 idio16gpio->chip.get_direction = idio_16_gpio_get_direction;
262 idio16gpio->chip.direction_input = idio_16_gpio_direction_input;
263 idio16gpio->chip.direction_output = idio_16_gpio_direction_output;
264 idio16gpio->chip.get = idio_16_gpio_get;
265 idio16gpio->chip.get_multiple = idio_16_gpio_get_multiple;
266 idio16gpio->chip.set = idio_16_gpio_set;
267 idio16gpio->chip.set_multiple = idio_16_gpio_set_multiple;
268 idio16gpio->base = base[id];
269 idio16gpio->out_state = 0xFFFF;
271 girq = &idio16gpio->chip.irq;
281 raw_spin_lock_init(&idio16gpio->lock);
283 err = devm_gpiochip_add_data(dev, &idio16gpio->chip, idio16gpio);
290 idio16gpio);