Lines Matching refs:gpio

8 #include <linux/gpio/driver.h>
120 struct pcf857x *gpio = gpiochip_get_data(chip);
123 mutex_lock(&gpio->lock);
124 gpio->out |= (1 << offset);
125 status = gpio->write(gpio->client, gpio->out);
126 mutex_unlock(&gpio->lock);
133 struct pcf857x *gpio = gpiochip_get_data(chip);
136 value = gpio->read(gpio->client);
143 struct pcf857x *gpio = gpiochip_get_data(chip);
144 int value = gpio->read(gpio->client);
157 struct pcf857x *gpio = gpiochip_get_data(chip);
161 mutex_lock(&gpio->lock);
163 gpio->out |= bit;
165 gpio->out &= ~bit;
166 status = gpio->write(gpio->client, gpio->out);
167 mutex_unlock(&gpio->lock);
180 struct pcf857x *gpio = gpiochip_get_data(chip);
182 mutex_lock(&gpio->lock);
183 gpio->out &= ~*mask;
184 gpio->out |= *bits & *mask;
185 gpio->write(gpio->client, gpio->out);
186 mutex_unlock(&gpio->lock);
193 struct pcf857x *gpio = data;
196 status = gpio->read(gpio->client);
199 * call the interrupt handler iff gpio is used as
202 mutex_lock(&gpio->lock);
203 change = (gpio->status ^ status) & gpio->irq_enabled;
204 gpio->status = status;
205 mutex_unlock(&gpio->lock);
207 for_each_set_bit(i, &change, gpio->chip.ngpio)
208 handle_nested_irq(irq_find_mapping(gpio->chip.irq.domain, i));
220 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
222 return irq_set_irq_wake(gpio->client->irq, on);
227 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
230 gpiochip_enable_irq(&gpio->chip, hwirq);
231 gpio->irq_enabled |= (1 << hwirq);
236 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
239 gpio->irq_enabled &= ~(1 << hwirq);
240 gpiochip_disable_irq(&gpio->chip, hwirq);
245 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
247 mutex_lock(&gpio->lock);
252 struct pcf857x *gpio = irq_data_get_irq_chip_data(data);
254 mutex_unlock(&gpio->lock);
275 struct pcf857x *gpio;
282 gpio = devm_kzalloc(&client->dev, sizeof(*gpio), GFP_KERNEL);
283 if (!gpio)
286 mutex_init(&gpio->lock);
288 gpio->chip.base = -1;
289 gpio->chip.can_sleep = true;
290 gpio->chip.parent = &client->dev;
291 gpio->chip.owner = THIS_MODULE;
292 gpio->chip.get = pcf857x_get;
293 gpio->chip.get_multiple = pcf857x_get_multiple;
294 gpio->chip.set = pcf857x_set;
295 gpio->chip.set_multiple = pcf857x_set_multiple;
296 gpio->chip.direction_input = pcf857x_input;
297 gpio->chip.direction_output = pcf857x_output;
298 gpio->chip.ngpio = (uintptr_t)i2c_get_match_data(client);
311 if (gpio->chip.ngpio == 8) {
312 gpio->write = i2c_write_le8;
313 gpio->read = i2c_read_le8;
329 } else if (gpio->chip.ngpio == 16) {
330 gpio->write = i2c_write_le16;
331 gpio->read = i2c_read_le16;
348 gpio->chip.label = client->name;
350 gpio->client = client;
351 i2c_set_clientdata(client, gpio);
368 gpio->out = ~n_latch;
369 gpio->status = gpio->read(gpio->client);
378 dev_name(&client->dev), gpio);
382 girq = &gpio->chip.irq;
393 status = devm_gpiochip_add_data(&client->dev, &gpio->chip, gpio);
410 struct pcf857x *gpio = i2c_get_clientdata(client);
413 gpio->write(gpio->client, BIT(gpio->chip.ngpio) - 1);