• Home
  • Raw
  • Download

Lines Matching +full:client +full:- +full:id

62 	struct i2c_client *client;  member
69 static int qt1070_read(struct i2c_client *client, u8 reg) in qt1070_read() argument
73 ret = i2c_smbus_read_byte_data(client, reg); in qt1070_read()
75 dev_err(&client->dev, in qt1070_read()
81 static int qt1070_write(struct i2c_client *client, u8 reg, u8 data) in qt1070_write() argument
85 ret = i2c_smbus_write_byte_data(client, reg, data); in qt1070_write()
87 dev_err(&client->dev, in qt1070_write()
93 static bool qt1070_identify(struct i2c_client *client) in qt1070_identify() argument
95 int id, ver; in qt1070_identify() local
97 /* Read Chip ID */ in qt1070_identify()
98 id = qt1070_read(client, CHIP_ID); in qt1070_identify()
99 if (id != QT1070_CHIP_ID) { in qt1070_identify()
100 dev_err(&client->dev, "ID %d not supported\n", id); in qt1070_identify()
105 ver = qt1070_read(client, FW_VERSION); in qt1070_identify()
107 dev_err(&client->dev, "could not read the firmware version\n"); in qt1070_identify()
111 dev_info(&client->dev, "AT42QT1070 firmware version %x\n", ver); in qt1070_identify()
119 struct i2c_client *client = data->client; in qt1070_interrupt() local
120 struct input_dev *input = data->input; in qt1070_interrupt()
125 qt1070_read(client, DET_STATUS); in qt1070_interrupt()
128 new_keys = qt1070_read(client, KEY_STATUS); in qt1070_interrupt()
132 if ((data->last_keys & mask) != keyval) in qt1070_interrupt()
133 input_report_key(input, data->keycodes[i], keyval); in qt1070_interrupt()
138 data->last_keys = new_keys; in qt1070_interrupt()
142 static int qt1070_probe(struct i2c_client *client, in qt1070_probe() argument
143 const struct i2c_device_id *id) in qt1070_probe() argument
150 err = i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE); in qt1070_probe()
152 dev_err(&client->dev, "%s adapter not supported\n", in qt1070_probe()
153 dev_driver_string(&client->adapter->dev)); in qt1070_probe()
154 return -ENODEV; in qt1070_probe()
157 if (!client->irq) { in qt1070_probe()
158 dev_err(&client->dev, "please assign the irq to this device\n"); in qt1070_probe()
159 return -EINVAL; in qt1070_probe()
163 if (!qt1070_identify(client)) in qt1070_probe()
164 return -ENODEV; in qt1070_probe()
169 dev_err(&client->dev, "insufficient memory\n"); in qt1070_probe()
170 err = -ENOMEM; in qt1070_probe()
174 data->client = client; in qt1070_probe()
175 data->input = input; in qt1070_probe()
176 data->irq = client->irq; in qt1070_probe()
178 input->name = "AT42QT1070 QTouch Sensor"; in qt1070_probe()
179 input->dev.parent = &client->dev; in qt1070_probe()
180 input->id.bustype = BUS_I2C; in qt1070_probe()
183 input->keycode = data->keycodes; in qt1070_probe()
184 input->keycodesize = sizeof(data->keycodes[0]); in qt1070_probe()
185 input->keycodemax = ARRAY_SIZE(qt1070_key2code); in qt1070_probe()
187 __set_bit(EV_KEY, input->evbit); in qt1070_probe()
190 data->keycodes[i] = qt1070_key2code[i]; in qt1070_probe()
191 __set_bit(qt1070_key2code[i], input->keybit); in qt1070_probe()
195 qt1070_write(client, CALIBRATE_CMD, 1); in qt1070_probe()
199 qt1070_write(client, RESET, 1); in qt1070_probe()
202 err = request_threaded_irq(client->irq, NULL, qt1070_interrupt, in qt1070_probe()
204 client->dev.driver->name, data); in qt1070_probe()
206 dev_err(&client->dev, "fail to request irq\n"); in qt1070_probe()
211 err = input_register_device(data->input); in qt1070_probe()
213 dev_err(&client->dev, "Failed to register input device\n"); in qt1070_probe()
217 i2c_set_clientdata(client, data); in qt1070_probe()
220 qt1070_read(client, DET_STATUS); in qt1070_probe()
225 free_irq(client->irq, data); in qt1070_probe()
232 static int qt1070_remove(struct i2c_client *client) in qt1070_remove() argument
234 struct qt1070_data *data = i2c_get_clientdata(client); in qt1070_remove()
237 free_irq(client->irq, data); in qt1070_remove()
239 input_unregister_device(data->input); in qt1070_remove()
248 struct i2c_client *client = to_i2c_client(dev); in qt1070_suspend() local
249 struct qt1070_data *data = i2c_get_clientdata(client); in qt1070_suspend()
252 enable_irq_wake(data->irq); in qt1070_suspend()
259 struct i2c_client *client = to_i2c_client(dev); in qt1070_resume() local
260 struct qt1070_data *data = i2c_get_clientdata(client); in qt1070_resume()
263 disable_irq_wake(data->irq); in qt1070_resume()