Lines Matching refs:client
89 struct i2c_client *client; member
95 int (*write)(struct i2c_client *client, unsigned data);
96 int (*read)(struct i2c_client *client);
103 static int i2c_write_le8(struct i2c_client *client, unsigned data) in i2c_write_le8() argument
105 return i2c_smbus_write_byte(client, data); in i2c_write_le8()
108 static int i2c_read_le8(struct i2c_client *client) in i2c_read_le8() argument
110 return (int)i2c_smbus_read_byte(client); in i2c_read_le8()
115 static int i2c_write_le16(struct i2c_client *client, unsigned word) in i2c_write_le16() argument
120 status = i2c_master_send(client, buf, 2); in i2c_write_le16()
124 static int i2c_read_le16(struct i2c_client *client) in i2c_read_le16() argument
129 status = i2c_master_recv(client, buf, 2); in i2c_read_le16()
144 status = gpio->write(gpio->client, gpio->out); in pcf857x_input()
155 value = gpio->read(gpio->client); in pcf857x_get()
170 status = gpio->write(gpio->client, gpio->out); in pcf857x_output()
188 status = gpio->read(gpio->client); in pcf857x_irq()
221 irq_set_irq_wake(gpio->client->irq, on); in pcf857x_irq_set_wake()
239 static int pcf857x_probe(struct i2c_client *client, in pcf857x_probe() argument
242 struct pcf857x_platform_data *pdata = dev_get_platdata(&client->dev); in pcf857x_probe()
243 struct device_node *np = client->dev.of_node; in pcf857x_probe()
253 dev_dbg(&client->dev, "no platform data\n"); in pcf857x_probe()
256 gpio = devm_kzalloc(&client->dev, sizeof(*gpio), GFP_KERNEL); in pcf857x_probe()
265 gpio->chip.dev = &client->dev; in pcf857x_probe()
288 if (!i2c_check_functionality(client->adapter, in pcf857x_probe()
294 status = i2c_smbus_read_byte(client); in pcf857x_probe()
306 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) in pcf857x_probe()
311 status = i2c_read_le16(client); in pcf857x_probe()
314 dev_dbg(&client->dev, "unsupported number of gpios\n"); in pcf857x_probe()
321 gpio->chip.label = client->name; in pcf857x_probe()
323 gpio->client = client; in pcf857x_probe()
324 i2c_set_clientdata(client, gpio); in pcf857x_probe()
349 if (client->irq) { in pcf857x_probe()
354 dev_err(&client->dev, "cannot add irqchip\n"); in pcf857x_probe()
358 status = devm_request_threaded_irq(&client->dev, client->irq, in pcf857x_probe()
361 dev_name(&client->dev), gpio); in pcf857x_probe()
366 client->irq, NULL); in pcf857x_probe()
373 status = pdata->setup(client, in pcf857x_probe()
377 dev_warn(&client->dev, "setup --> %d\n", status); in pcf857x_probe()
380 dev_info(&client->dev, "probed\n"); in pcf857x_probe()
388 dev_dbg(&client->dev, "probe error %d for '%s'\n", status, in pcf857x_probe()
389 client->name); in pcf857x_probe()
394 static int pcf857x_remove(struct i2c_client *client) in pcf857x_remove() argument
396 struct pcf857x_platform_data *pdata = dev_get_platdata(&client->dev); in pcf857x_remove()
397 struct pcf857x *gpio = i2c_get_clientdata(client); in pcf857x_remove()
401 status = pdata->teardown(client, in pcf857x_remove()
405 dev_err(&client->dev, "%s --> %d\n", in pcf857x_remove()