Lines Matching refs:gpio

8 #include <linux/gpio/driver.h>
125 struct pcf857x *gpio = gpiochip_get_data(chip);
128 mutex_lock(&gpio->lock);
129 gpio->out |= (1 << offset);
130 status = gpio->write(gpio->client, gpio->out);
131 mutex_unlock(&gpio->lock);
138 struct pcf857x *gpio = gpiochip_get_data(chip);
141 value = gpio->read(gpio->client);
147 struct pcf857x *gpio = gpiochip_get_data(chip);
151 mutex_lock(&gpio->lock);
153 gpio->out |= bit;
155 gpio->out &= ~bit;
156 status = gpio->write(gpio->client, gpio->out);
157 mutex_unlock(&gpio->lock);
171 struct pcf857x *gpio = data;
174 status = gpio->read(gpio->client);
177 * call the interrupt handler iff gpio is used as
180 mutex_lock(&gpio->lock);
181 change = (gpio->status ^ status) & gpio->irq_enabled;
182 gpio->status = status;
183 mutex_unlock(&gpio->lock);
185 for_each_set_bit(i, &change, gpio->chip.ngpio)
186 handle_nested_irq(irq_find_mapping(gpio->chip.irq.domain, i));
198 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
200 return irq_set_irq_wake(gpio->client->irq, on);
205 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
207 gpio->irq_enabled |= (1 << data->hwirq);
212 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
214 gpio->irq_enabled &= ~(1 << data->hwirq);
219 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
221 mutex_lock(&gpio->lock);
226 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
228 mutex_unlock(&gpio->lock);
238 struct pcf857x *gpio;
250 gpio = devm_kzalloc(&client->dev, sizeof(*gpio), GFP_KERNEL);
251 if (!gpio)
254 mutex_init(&gpio->lock);
256 gpio->chip.base = pdata ? pdata->gpio_base : -1;
257 gpio->chip.can_sleep = true;
258 gpio->chip.parent = &client->dev;
259 gpio->chip.owner = THIS_MODULE;
260 gpio->chip.get = pcf857x_get;
261 gpio->chip.set = pcf857x_set;
262 gpio->chip.direction_input = pcf857x_input;
263 gpio->chip.direction_output = pcf857x_output;
264 gpio->chip.ngpio = id->driver_data;
277 if (gpio->chip.ngpio == 8) {
278 gpio->write = i2c_write_le8;
279 gpio->read = i2c_read_le8;
295 } else if (gpio->chip.ngpio == 16) {
296 gpio->write = i2c_write_le16;
297 gpio->read = i2c_read_le16;
314 gpio->chip.label = client->name;
316 gpio->client = client;
317 i2c_set_clientdata(client, gpio);
334 gpio->out = ~n_latch;
335 gpio->status = gpio->read(gpio->client);
341 gpio->irqchip.name = "pcf857x";
342 gpio->irqchip.irq_enable = pcf857x_irq_enable;
343 gpio->irqchip.irq_disable = pcf857x_irq_disable;
344 gpio->irqchip.irq_ack = noop;
345 gpio->irqchip.irq_mask = noop;
346 gpio->irqchip.irq_unmask = noop;
347 gpio->irqchip.irq_set_wake = pcf857x_irq_set_wake;
348 gpio->irqchip.irq_bus_lock = pcf857x_irq_bus_lock;
349 gpio->irqchip.irq_bus_sync_unlock = pcf857x_irq_bus_sync_unlock;
354 dev_name(&client->dev), gpio);
358 girq = &gpio->chip.irq;
359 girq->chip = &gpio->irqchip;
369 status = devm_gpiochip_add_data(&client->dev, &gpio->chip, gpio);
378 gpio->chip.base, gpio->chip.ngpio,
398 struct pcf857x *gpio = i2c_get_clientdata(client);
403 gpio->chip.base, gpio->chip.ngpio,
417 struct pcf857x *gpio = i2c_get_clientdata(client);
420 gpio->write(gpio->client, BIT(gpio->chip.ngpio) - 1);