Lines Matching refs:client
118 struct i2c_client *client; member
146 static int elants_i2c_send(struct i2c_client *client, in elants_i2c_send() argument
151 ret = i2c_master_send(client, data, size); in elants_i2c_send()
158 dev_err(&client->dev, "%s failed (%*ph): %d\n", in elants_i2c_send()
164 static int elants_i2c_read(struct i2c_client *client, void *data, size_t size) in elants_i2c_read() argument
168 ret = i2c_master_recv(client, data, size); in elants_i2c_read()
175 dev_err(&client->dev, "%s failed: %d\n", __func__, ret); in elants_i2c_read()
180 static int elants_i2c_execute_command(struct i2c_client *client, in elants_i2c_execute_command() argument
198 dev_err(&client->dev, "%s: invalid command %*ph\n", in elants_i2c_execute_command()
203 msgs[0].addr = client->addr; in elants_i2c_execute_command()
204 msgs[0].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
208 msgs[1].addr = client->addr; in elants_i2c_execute_command()
209 msgs[1].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
214 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in elants_i2c_execute_command()
226 struct i2c_client *client = ts->client; in elants_i2c_calibrate() local
232 disable_irq(client->irq); in elants_i2c_calibrate()
237 elants_i2c_send(client, w_flashkey, sizeof(w_flashkey)); in elants_i2c_calibrate()
238 elants_i2c_send(client, rek, sizeof(rek)); in elants_i2c_calibrate()
240 enable_irq(client->irq); in elants_i2c_calibrate()
249 dev_err(&client->dev, in elants_i2c_calibrate()
256 dev_err(&client->dev, in elants_i2c_calibrate()
265 static int elants_i2c_sw_reset(struct i2c_client *client) in elants_i2c_sw_reset() argument
270 error = elants_i2c_send(client, soft_rst_cmd, in elants_i2c_sw_reset()
273 dev_err(&client->dev, "software reset failed: %d\n", error); in elants_i2c_sw_reset()
293 struct i2c_client *client = ts->client; in elants_i2c_query_fw_id() local
299 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_id()
307 dev_dbg(&client->dev, "read fw id error=%d, buf=%*phC\n", in elants_i2c_query_fw_id()
311 dev_err(&client->dev, in elants_i2c_query_fw_id()
319 struct i2c_client *client = ts->client; in elants_i2c_query_fw_version() local
325 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_version()
334 dev_dbg(&client->dev, "read fw version error=%d, buf=%*phC\n", in elants_i2c_query_fw_version()
338 dev_err(&client->dev, in elants_i2c_query_fw_version()
346 struct i2c_client *client = ts->client; in elants_i2c_query_test_version() local
353 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_test_version()
363 dev_dbg(&client->dev, in elants_i2c_query_test_version()
368 dev_err(&client->dev, "Failed to read test version\n"); in elants_i2c_query_test_version()
375 struct i2c_client *client = ts->client; in elants_i2c_query_bc_version() local
381 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_bc_version()
384 dev_err(&client->dev, in elants_i2c_query_bc_version()
399 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info() local
417 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
422 dev_err(&client->dev, "get resolution command failed: %d\n", in elants_i2c_query_ts_info()
431 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
435 dev_err(&client->dev, "get osr command failed: %d\n", in elants_i2c_query_ts_info()
442 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
447 dev_err(&client->dev, "get physical scan command failed: %d\n", in elants_i2c_query_ts_info()
454 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
459 dev_err(&client->dev, "get physical drive command failed: %d\n", in elants_i2c_query_ts_info()
466 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info()
469 dev_warn(&client->dev, in elants_i2c_query_ts_info()
483 static int elants_i2c_fastboot(struct i2c_client *client) in elants_i2c_fastboot() argument
488 error = elants_i2c_send(client, boot_cmd, sizeof(boot_cmd)); in elants_i2c_fastboot()
490 dev_err(&client->dev, "boot failed: %d\n", error); in elants_i2c_fastboot()
494 dev_dbg(&client->dev, "boot success -- 0x%x\n", client->addr); in elants_i2c_fastboot()
500 struct i2c_client *client = ts->client; in elants_i2c_initialize() local
507 error = elants_i2c_sw_reset(client); in elants_i2c_initialize()
514 error = elants_i2c_fastboot(client); in elants_i2c_initialize()
524 error = elants_i2c_read(client, buf, sizeof(buf)); in elants_i2c_initialize()
526 dev_err(&client->dev, in elants_i2c_initialize()
540 dev_err(&client->dev, in elants_i2c_initialize()
566 static int elants_i2c_fw_write_page(struct i2c_client *client, in elants_i2c_fw_write_page() argument
575 error = elants_i2c_send(client, page, ELAN_FW_PAGESIZE); in elants_i2c_fw_write_page()
577 dev_err(&client->dev, in elants_i2c_fw_write_page()
582 error = elants_i2c_read(client, buf, 2); in elants_i2c_fw_write_page()
584 dev_err(&client->dev, in elants_i2c_fw_write_page()
593 dev_err(&client->dev, in elants_i2c_fw_write_page()
601 static int elants_i2c_do_update_firmware(struct i2c_client *client, in elants_i2c_do_update_firmware() argument
615 dev_dbg(&client->dev, "Recovery mode procedure\n"); in elants_i2c_do_update_firmware()
616 error = elants_i2c_send(client, enter_iap2, sizeof(enter_iap2)); in elants_i2c_do_update_firmware()
619 dev_dbg(&client->dev, "Normal IAP procedure\n"); in elants_i2c_do_update_firmware()
620 elants_i2c_sw_reset(client); in elants_i2c_do_update_firmware()
622 error = elants_i2c_send(client, enter_iap, sizeof(enter_iap)); in elants_i2c_do_update_firmware()
626 dev_err(&client->dev, "failed to enter IAP mode: %d\n", error); in elants_i2c_do_update_firmware()
633 error = elants_i2c_read(client, buf, 4); in elants_i2c_do_update_firmware()
635 dev_err(&client->dev, in elants_i2c_do_update_firmware()
642 dev_err(&client->dev, in elants_i2c_do_update_firmware()
648 dev_info(&client->dev, "successfully entered IAP mode"); in elants_i2c_do_update_firmware()
650 send_id = client->addr; in elants_i2c_do_update_firmware()
651 error = elants_i2c_send(client, &send_id, 1); in elants_i2c_do_update_firmware()
653 dev_err(&client->dev, "sending dummy byte failed: %d\n", in elants_i2c_do_update_firmware()
659 error = elants_i2c_send(client, fw->data, ELAN_FW_PAGESIZE); in elants_i2c_do_update_firmware()
661 dev_err(&client->dev, "clearing of the last page failed: %d\n", in elants_i2c_do_update_firmware()
666 error = elants_i2c_read(client, buf, 2); in elants_i2c_do_update_firmware()
668 dev_err(&client->dev, in elants_i2c_do_update_firmware()
675 dev_dbg(&client->dev, "IAP Pages = %d\n", n_fw_pages); in elants_i2c_do_update_firmware()
678 error = elants_i2c_fw_write_page(client, in elants_i2c_do_update_firmware()
681 dev_err(&client->dev, in elants_i2c_do_update_firmware()
691 dev_info(&client->dev, "firmware update completed\n"); in elants_i2c_do_update_firmware()
697 struct i2c_client *client = ts->client; in elants_i2c_fw_update() local
706 dev_info(&client->dev, "requesting fw name = %s\n", fw_name); in elants_i2c_fw_update()
707 error = request_firmware(&fw, fw_name, &client->dev); in elants_i2c_fw_update()
710 dev_err(&client->dev, "failed to request firmware: %d\n", in elants_i2c_fw_update()
716 dev_err(&client->dev, "invalid firmware length: %zu\n", in elants_i2c_fw_update()
722 disable_irq(client->irq); in elants_i2c_fw_update()
724 error = elants_i2c_do_update_firmware(client, fw, in elants_i2c_fw_update()
727 dev_err(&client->dev, "firmware update failed: %d\n", error); in elants_i2c_fw_update()
734 dev_err(&client->dev, in elants_i2c_fw_update()
745 enable_irq(client->irq); in elants_i2c_fw_update()
770 dev_dbg(&ts->client->dev, in elants_i2c_mt_event()
784 dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d w=%d\n", in elants_i2c_mt_event()
820 dev_warn(&ts->client->dev, in elants_i2c_event()
825 dev_warn(&ts->client->dev, in elants_i2c_event()
836 struct i2c_client *client = ts->client; in elants_i2c_irq() local
841 len = i2c_master_recv(client, ts->buf, sizeof(ts->buf)); in elants_i2c_irq()
843 dev_err(&client->dev, "%s: failed to read data: %d\n", in elants_i2c_irq()
848 dev_dbg(&client->dev, "%s: packet %*ph\n", in elants_i2c_irq()
877 dev_err(&client->dev, in elants_i2c_irq()
893 dev_err(&client->dev, in elants_i2c_irq()
901 dev_err(&client->dev, in elants_i2c_irq()
915 dev_err(&client->dev, "unknown packet %*ph\n", in elants_i2c_irq()
933 struct i2c_client *client = to_i2c_client(dev); in calibrate_store() local
934 struct elants_data *ts = i2c_get_clientdata(client); in calibrate_store()
951 struct i2c_client *client = to_i2c_client(dev); in write_update_fw() local
952 struct elants_data *ts = i2c_get_clientdata(client); in write_update_fw()
969 struct i2c_client *client = to_i2c_client(dev); in show_iap_mode() local
970 struct elants_data *ts = i2c_get_clientdata(client); in show_iap_mode()
1004 struct i2c_client *client = to_i2c_client(dev); in elants_version_attribute_show() local
1005 struct elants_data *ts = i2c_get_clientdata(client); in elants_version_attribute_show()
1052 sysfs_remove_group(&ts->client->dev.kobj, &elants_attribute_group); in elants_i2c_remove_sysfs_group()
1055 static int elants_i2c_probe(struct i2c_client *client, in elants_i2c_probe() argument
1063 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in elants_i2c_probe()
1064 dev_err(&client->dev, in elants_i2c_probe()
1070 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in elants_i2c_probe()
1072 dev_err(&client->dev, "nothing at this address\n"); in elants_i2c_probe()
1076 ts = devm_kzalloc(&client->dev, sizeof(struct elants_data), GFP_KERNEL); in elants_i2c_probe()
1083 ts->client = client; in elants_i2c_probe()
1084 i2c_set_clientdata(client, ts); in elants_i2c_probe()
1088 dev_err(&client->dev, "failed to initialize: %d\n", error); in elants_i2c_probe()
1092 ts->input = devm_input_allocate_device(&client->dev); in elants_i2c_probe()
1094 dev_err(&client->dev, "Failed to allocate input device\n"); in elants_i2c_probe()
1116 dev_err(&client->dev, in elants_i2c_probe()
1132 dev_err(&client->dev, in elants_i2c_probe()
1141 irqflags = client->dev.of_node ? 0 : IRQF_TRIGGER_FALLING; in elants_i2c_probe()
1143 error = devm_request_threaded_irq(&client->dev, client->irq, in elants_i2c_probe()
1146 client->name, ts); in elants_i2c_probe()
1148 dev_err(&client->dev, "Failed to register interrupt\n"); in elants_i2c_probe()
1156 if (!client->dev.of_node) in elants_i2c_probe()
1157 device_init_wakeup(&client->dev, true); in elants_i2c_probe()
1159 error = sysfs_create_group(&client->dev.kobj, &elants_attribute_group); in elants_i2c_probe()
1161 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in elants_i2c_probe()
1166 error = devm_add_action(&client->dev, in elants_i2c_probe()
1170 dev_err(&client->dev, in elants_i2c_probe()
1181 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_suspend() local
1182 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_suspend()
1191 disable_irq(client->irq); in elants_i2c_suspend()
1194 error = elants_i2c_send(client, set_sleep_cmd, in elants_i2c_suspend()
1199 dev_err(&client->dev, "suspend command failed: %d\n", error); in elants_i2c_suspend()
1203 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in elants_i2c_suspend()
1210 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_resume() local
1211 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_resume()
1217 disable_irq_wake(client->irq); in elants_i2c_resume()
1220 error = elants_i2c_send(client, set_active_cmd, in elants_i2c_resume()
1225 dev_err(&client->dev, "resume command failed: %d\n", error); in elants_i2c_resume()
1229 enable_irq(client->irq); in elants_i2c_resume()