Lines Matching refs:client
123 struct i2c_client *client; member
156 static int elants_i2c_send(struct i2c_client *client, in elants_i2c_send() argument
161 ret = i2c_master_send(client, data, size); in elants_i2c_send()
168 dev_err(&client->dev, "%s failed (%*ph): %d\n", in elants_i2c_send()
174 static int elants_i2c_read(struct i2c_client *client, void *data, size_t size) in elants_i2c_read() argument
178 ret = i2c_master_recv(client, data, size); in elants_i2c_read()
185 dev_err(&client->dev, "%s failed: %d\n", __func__, ret); in elants_i2c_read()
190 static int elants_i2c_execute_command(struct i2c_client *client, in elants_i2c_execute_command() argument
208 dev_err(&client->dev, "%s: invalid command %*ph\n", in elants_i2c_execute_command()
213 msgs[0].addr = client->addr; in elants_i2c_execute_command()
214 msgs[0].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
218 msgs[1].addr = client->addr; in elants_i2c_execute_command()
219 msgs[1].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
224 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in elants_i2c_execute_command()
236 struct i2c_client *client = ts->client; in elants_i2c_calibrate() local
242 disable_irq(client->irq); in elants_i2c_calibrate()
247 elants_i2c_send(client, w_flashkey, sizeof(w_flashkey)); in elants_i2c_calibrate()
248 elants_i2c_send(client, rek, sizeof(rek)); in elants_i2c_calibrate()
250 enable_irq(client->irq); in elants_i2c_calibrate()
259 dev_err(&client->dev, in elants_i2c_calibrate()
266 dev_err(&client->dev, in elants_i2c_calibrate()
275 static int elants_i2c_sw_reset(struct i2c_client *client) in elants_i2c_sw_reset() argument
280 error = elants_i2c_send(client, soft_rst_cmd, in elants_i2c_sw_reset()
283 dev_err(&client->dev, "software reset failed: %d\n", error); in elants_i2c_sw_reset()
303 struct i2c_client *client = ts->client; in elants_i2c_query_fw_id() local
309 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_id()
317 dev_dbg(&client->dev, "read fw id error=%d, buf=%*phC\n", in elants_i2c_query_fw_id()
321 dev_err(&client->dev, in elants_i2c_query_fw_id()
329 struct i2c_client *client = ts->client; in elants_i2c_query_fw_version() local
335 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_version()
344 dev_dbg(&client->dev, "read fw version error=%d, buf=%*phC\n", in elants_i2c_query_fw_version()
348 dev_err(&client->dev, in elants_i2c_query_fw_version()
356 struct i2c_client *client = ts->client; in elants_i2c_query_test_version() local
363 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_test_version()
373 dev_dbg(&client->dev, in elants_i2c_query_test_version()
378 dev_err(&client->dev, "Failed to read test version\n"); in elants_i2c_query_test_version()
385 struct i2c_client *client = ts->client; in elants_i2c_query_bc_version() local
391 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_bc_version()
394 dev_err(&client->dev, in elants_i2c_query_bc_version()
409 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info() local
427 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
432 dev_err(&client->dev, "get resolution command failed: %d\n", in elants_i2c_query_ts_info()
441 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
445 dev_err(&client->dev, "get osr command failed: %d\n", in elants_i2c_query_ts_info()
452 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
457 dev_err(&client->dev, "get physical scan command failed: %d\n", in elants_i2c_query_ts_info()
464 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
469 dev_err(&client->dev, "get physical drive command failed: %d\n", in elants_i2c_query_ts_info()
476 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info()
479 dev_warn(&client->dev, in elants_i2c_query_ts_info()
493 static int elants_i2c_fastboot(struct i2c_client *client) in elants_i2c_fastboot() argument
498 error = elants_i2c_send(client, boot_cmd, sizeof(boot_cmd)); in elants_i2c_fastboot()
500 dev_err(&client->dev, "boot failed: %d\n", error); in elants_i2c_fastboot()
504 dev_dbg(&client->dev, "boot success -- 0x%x\n", client->addr); in elants_i2c_fastboot()
510 struct i2c_client *client = ts->client; in elants_i2c_initialize() local
517 error = elants_i2c_sw_reset(client); in elants_i2c_initialize()
524 error = elants_i2c_fastboot(client); in elants_i2c_initialize()
534 error = elants_i2c_read(client, buf, sizeof(buf)); in elants_i2c_initialize()
536 dev_err(&client->dev, in elants_i2c_initialize()
550 dev_err(&client->dev, in elants_i2c_initialize()
576 static int elants_i2c_fw_write_page(struct i2c_client *client, in elants_i2c_fw_write_page() argument
585 error = elants_i2c_send(client, page, ELAN_FW_PAGESIZE); in elants_i2c_fw_write_page()
587 dev_err(&client->dev, in elants_i2c_fw_write_page()
592 error = elants_i2c_read(client, buf, 2); in elants_i2c_fw_write_page()
594 dev_err(&client->dev, in elants_i2c_fw_write_page()
603 dev_err(&client->dev, in elants_i2c_fw_write_page()
611 static int elants_i2c_do_update_firmware(struct i2c_client *client, in elants_i2c_do_update_firmware() argument
626 dev_dbg(&client->dev, "Recovery mode procedure\n"); in elants_i2c_do_update_firmware()
627 error = elants_i2c_send(client, enter_iap2, sizeof(enter_iap2)); in elants_i2c_do_update_firmware()
630 dev_dbg(&client->dev, "Normal IAP procedure\n"); in elants_i2c_do_update_firmware()
632 error = elants_i2c_send(client, close_idle, sizeof(close_idle)); in elants_i2c_do_update_firmware()
634 dev_err(&client->dev, "Failed close idle: %d\n", error); in elants_i2c_do_update_firmware()
636 elants_i2c_sw_reset(client); in elants_i2c_do_update_firmware()
638 error = elants_i2c_send(client, enter_iap, sizeof(enter_iap)); in elants_i2c_do_update_firmware()
642 dev_err(&client->dev, "failed to enter IAP mode: %d\n", error); in elants_i2c_do_update_firmware()
649 error = elants_i2c_read(client, buf, 4); in elants_i2c_do_update_firmware()
651 dev_err(&client->dev, in elants_i2c_do_update_firmware()
658 dev_err(&client->dev, in elants_i2c_do_update_firmware()
664 dev_info(&client->dev, "successfully entered IAP mode"); in elants_i2c_do_update_firmware()
666 send_id = client->addr; in elants_i2c_do_update_firmware()
667 error = elants_i2c_send(client, &send_id, 1); in elants_i2c_do_update_firmware()
669 dev_err(&client->dev, "sending dummy byte failed: %d\n", in elants_i2c_do_update_firmware()
675 error = elants_i2c_send(client, fw->data, ELAN_FW_PAGESIZE); in elants_i2c_do_update_firmware()
677 dev_err(&client->dev, "clearing of the last page failed: %d\n", in elants_i2c_do_update_firmware()
682 error = elants_i2c_read(client, buf, 2); in elants_i2c_do_update_firmware()
684 dev_err(&client->dev, in elants_i2c_do_update_firmware()
691 dev_dbg(&client->dev, "IAP Pages = %d\n", n_fw_pages); in elants_i2c_do_update_firmware()
694 error = elants_i2c_fw_write_page(client, in elants_i2c_do_update_firmware()
697 dev_err(&client->dev, in elants_i2c_do_update_firmware()
707 dev_info(&client->dev, "firmware update completed\n"); in elants_i2c_do_update_firmware()
713 struct i2c_client *client = ts->client; in elants_i2c_fw_update() local
722 dev_info(&client->dev, "requesting fw name = %s\n", fw_name); in elants_i2c_fw_update()
723 error = request_firmware(&fw, fw_name, &client->dev); in elants_i2c_fw_update()
726 dev_err(&client->dev, "failed to request firmware: %d\n", in elants_i2c_fw_update()
732 dev_err(&client->dev, "invalid firmware length: %zu\n", in elants_i2c_fw_update()
738 disable_irq(client->irq); in elants_i2c_fw_update()
740 error = elants_i2c_do_update_firmware(client, fw, in elants_i2c_fw_update()
743 dev_err(&client->dev, "firmware update failed: %d\n", error); in elants_i2c_fw_update()
750 dev_err(&client->dev, in elants_i2c_fw_update()
761 enable_irq(client->irq); in elants_i2c_fw_update()
786 dev_dbg(&ts->client->dev, in elants_i2c_mt_event()
800 dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d w=%d\n", in elants_i2c_mt_event()
836 dev_warn(&ts->client->dev, in elants_i2c_event()
841 dev_warn(&ts->client->dev, in elants_i2c_event()
852 struct i2c_client *client = ts->client; in elants_i2c_irq() local
857 len = i2c_master_recv(client, ts->buf, sizeof(ts->buf)); in elants_i2c_irq()
859 dev_err(&client->dev, "%s: failed to read data: %d\n", in elants_i2c_irq()
864 dev_dbg(&client->dev, "%s: packet %*ph\n", in elants_i2c_irq()
893 dev_err(&client->dev, in elants_i2c_irq()
909 dev_err(&client->dev, in elants_i2c_irq()
917 dev_err(&client->dev, in elants_i2c_irq()
931 dev_err(&client->dev, "unknown packet %*ph\n", in elants_i2c_irq()
949 struct i2c_client *client = to_i2c_client(dev); in calibrate_store() local
950 struct elants_data *ts = i2c_get_clientdata(client); in calibrate_store()
967 struct i2c_client *client = to_i2c_client(dev); in write_update_fw() local
968 struct elants_data *ts = i2c_get_clientdata(client); in write_update_fw()
985 struct i2c_client *client = to_i2c_client(dev); in show_iap_mode() local
986 struct elants_data *ts = i2c_get_clientdata(client); in show_iap_mode()
1020 struct i2c_client *client = to_i2c_client(dev); in elants_version_attribute_show() local
1021 struct elants_data *ts = i2c_get_clientdata(client); in elants_version_attribute_show()
1068 sysfs_remove_group(&ts->client->dev.kobj, &elants_attribute_group); in elants_i2c_remove_sysfs_group()
1086 dev_err(&ts->client->dev, in elants_i2c_power_on()
1094 dev_err(&ts->client->dev, in elants_i2c_power_on()
1132 static int elants_i2c_probe(struct i2c_client *client, in elants_i2c_probe() argument
1140 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in elants_i2c_probe()
1141 dev_err(&client->dev, in elants_i2c_probe()
1146 ts = devm_kzalloc(&client->dev, sizeof(struct elants_data), GFP_KERNEL); in elants_i2c_probe()
1153 ts->client = client; in elants_i2c_probe()
1154 i2c_set_clientdata(client, ts); in elants_i2c_probe()
1156 ts->vcc33 = devm_regulator_get(&client->dev, "vcc33"); in elants_i2c_probe()
1160 dev_err(&client->dev, in elants_i2c_probe()
1166 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in elants_i2c_probe()
1170 dev_err(&client->dev, in elants_i2c_probe()
1176 ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_LOW); in elants_i2c_probe()
1184 dev_err(&client->dev, in elants_i2c_probe()
1197 error = devm_add_action(&client->dev, elants_i2c_power_off, ts); in elants_i2c_probe()
1199 dev_err(&client->dev, in elants_i2c_probe()
1206 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in elants_i2c_probe()
1208 dev_err(&client->dev, "nothing at this address\n"); in elants_i2c_probe()
1214 dev_err(&client->dev, "failed to initialize: %d\n", error); in elants_i2c_probe()
1218 ts->input = devm_input_allocate_device(&client->dev); in elants_i2c_probe()
1220 dev_err(&client->dev, "Failed to allocate input device\n"); in elants_i2c_probe()
1242 dev_err(&client->dev, in elants_i2c_probe()
1258 dev_err(&client->dev, in elants_i2c_probe()
1267 irqflags = client->dev.of_node ? 0 : IRQF_TRIGGER_FALLING; in elants_i2c_probe()
1269 error = devm_request_threaded_irq(&client->dev, client->irq, in elants_i2c_probe()
1272 client->name, ts); in elants_i2c_probe()
1274 dev_err(&client->dev, "Failed to register interrupt\n"); in elants_i2c_probe()
1282 if (!client->dev.of_node) in elants_i2c_probe()
1283 device_init_wakeup(&client->dev, true); in elants_i2c_probe()
1285 error = sysfs_create_group(&client->dev.kobj, &elants_attribute_group); in elants_i2c_probe()
1287 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in elants_i2c_probe()
1292 error = devm_add_action(&client->dev, in elants_i2c_probe()
1296 dev_err(&client->dev, in elants_i2c_probe()
1307 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_suspend() local
1308 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_suspend()
1317 disable_irq(client->irq); in elants_i2c_suspend()
1324 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in elants_i2c_suspend()
1327 error = elants_i2c_send(client, set_sleep_cmd, in elants_i2c_suspend()
1332 dev_err(&client->dev, in elants_i2c_suspend()
1344 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_resume() local
1345 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_resume()
1352 disable_irq_wake(client->irq); in elants_i2c_resume()
1353 elants_i2c_sw_reset(client); in elants_i2c_resume()
1356 error = elants_i2c_send(client, set_active_cmd, in elants_i2c_resume()
1361 dev_err(&client->dev, in elants_i2c_resume()
1370 enable_irq(client->irq); in elants_i2c_resume()