Lines Matching defs:gpio
7 * Based on gpio-tpic2810.c
12 #include <linux/gpio/driver.h>
30 static int pca9570_read(struct pca9570 *gpio, u8 *value)
32 struct i2c_client *client = to_i2c_client(gpio->chip.parent);
43 static int pca9570_write(struct pca9570 *gpio, u8 value)
45 struct i2c_client *client = to_i2c_client(gpio->chip.parent);
59 struct pca9570 *gpio = gpiochip_get_data(chip);
63 ret = pca9570_read(gpio, &buffer);
72 struct pca9570 *gpio = gpiochip_get_data(chip);
76 mutex_lock(&gpio->lock);
78 buffer = gpio->out;
84 ret = pca9570_write(gpio, buffer);
88 gpio->out = buffer;
91 mutex_unlock(&gpio->lock);
96 struct pca9570 *gpio;
98 gpio = devm_kzalloc(&client->dev, sizeof(*gpio), GFP_KERNEL);
99 if (!gpio)
102 gpio->chip.label = client->name;
103 gpio->chip.parent = &client->dev;
104 gpio->chip.owner = THIS_MODULE;
105 gpio->chip.get_direction = pca9570_get_direction;
106 gpio->chip.get = pca9570_get;
107 gpio->chip.set = pca9570_set;
108 gpio->chip.base = -1;
109 gpio->chip.ngpio = (uintptr_t)device_get_match_data(&client->dev);
110 gpio->chip.can_sleep = true;
112 mutex_init(&gpio->lock);
115 pca9570_read(gpio, &gpio->out);
117 i2c_set_clientdata(client, gpio);
119 return devm_gpiochip_add_data(&client->dev, &gpio->chip, gpio);