Lines Matching refs:client
118 struct i2c_client *client; member
152 static int elants_i2c_send(struct i2c_client *client, in elants_i2c_send() argument
157 ret = i2c_master_send(client, data, size); in elants_i2c_send()
164 dev_err(&client->dev, "%s failed (%*ph): %d\n", in elants_i2c_send()
170 static int elants_i2c_read(struct i2c_client *client, void *data, size_t size) in elants_i2c_read() argument
174 ret = i2c_master_recv(client, data, size); in elants_i2c_read()
181 dev_err(&client->dev, "%s failed: %d\n", __func__, ret); in elants_i2c_read()
186 static int elants_i2c_execute_command(struct i2c_client *client, in elants_i2c_execute_command() argument
204 dev_err(&client->dev, "%s: invalid command %*ph\n", in elants_i2c_execute_command()
209 msgs[0].addr = client->addr; in elants_i2c_execute_command()
210 msgs[0].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
214 msgs[1].addr = client->addr; in elants_i2c_execute_command()
215 msgs[1].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
220 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in elants_i2c_execute_command()
232 struct i2c_client *client = ts->client; in elants_i2c_calibrate() local
238 disable_irq(client->irq); in elants_i2c_calibrate()
243 elants_i2c_send(client, w_flashkey, sizeof(w_flashkey)); in elants_i2c_calibrate()
244 elants_i2c_send(client, rek, sizeof(rek)); in elants_i2c_calibrate()
246 enable_irq(client->irq); in elants_i2c_calibrate()
255 dev_err(&client->dev, in elants_i2c_calibrate()
262 dev_err(&client->dev, in elants_i2c_calibrate()
271 static int elants_i2c_sw_reset(struct i2c_client *client) in elants_i2c_sw_reset() argument
276 error = elants_i2c_send(client, soft_rst_cmd, in elants_i2c_sw_reset()
279 dev_err(&client->dev, "software reset failed: %d\n", error); in elants_i2c_sw_reset()
299 struct i2c_client *client = ts->client; in elants_i2c_query_hw_version() local
305 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_hw_version()
313 dev_dbg(&client->dev, "read fw id error=%d, buf=%*phC\n", in elants_i2c_query_hw_version()
318 dev_err(&client->dev, in elants_i2c_query_hw_version()
323 dev_err(&client->dev, "Invalid fw id: %#04x\n", ts->hw_version); in elants_i2c_query_hw_version()
330 struct i2c_client *client = ts->client; in elants_i2c_query_fw_version() local
336 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_version()
345 dev_dbg(&client->dev, "read fw version error=%d, buf=%*phC\n", in elants_i2c_query_fw_version()
349 dev_err(&client->dev, in elants_i2c_query_fw_version()
357 struct i2c_client *client = ts->client; in elants_i2c_query_test_version() local
364 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_test_version()
374 dev_dbg(&client->dev, in elants_i2c_query_test_version()
379 dev_err(&client->dev, "Failed to read test version\n"); in elants_i2c_query_test_version()
386 struct i2c_client *client = ts->client; in elants_i2c_query_bc_version() local
392 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_bc_version()
395 dev_err(&client->dev, in elants_i2c_query_bc_version()
410 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info() local
428 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
433 dev_err(&client->dev, "get resolution command failed: %d\n", in elants_i2c_query_ts_info()
442 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
446 dev_err(&client->dev, "get osr command failed: %d\n", in elants_i2c_query_ts_info()
453 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
458 dev_err(&client->dev, "get physical scan command failed: %d\n", in elants_i2c_query_ts_info()
465 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
470 dev_err(&client->dev, "get physical drive command failed: %d\n", in elants_i2c_query_ts_info()
477 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info()
480 dev_warn(&client->dev, in elants_i2c_query_ts_info()
494 static int elants_i2c_fastboot(struct i2c_client *client) in elants_i2c_fastboot() argument
499 error = elants_i2c_send(client, boot_cmd, sizeof(boot_cmd)); in elants_i2c_fastboot()
501 dev_err(&client->dev, "boot failed: %d\n", error); in elants_i2c_fastboot()
505 dev_dbg(&client->dev, "boot success -- 0x%x\n", client->addr); in elants_i2c_fastboot()
511 struct i2c_client *client = ts->client; in elants_i2c_initialize() local
518 error = elants_i2c_sw_reset(client); in elants_i2c_initialize()
525 error = elants_i2c_fastboot(client); in elants_i2c_initialize()
535 error = elants_i2c_read(client, buf, sizeof(buf)); in elants_i2c_initialize()
537 dev_err(&client->dev, in elants_i2c_initialize()
551 dev_err(&client->dev, in elants_i2c_initialize()
581 static int elants_i2c_fw_write_page(struct i2c_client *client, in elants_i2c_fw_write_page() argument
590 error = elants_i2c_send(client, page, ELAN_FW_PAGESIZE); in elants_i2c_fw_write_page()
592 dev_err(&client->dev, in elants_i2c_fw_write_page()
597 error = elants_i2c_read(client, buf, 2); in elants_i2c_fw_write_page()
599 dev_err(&client->dev, in elants_i2c_fw_write_page()
608 dev_err(&client->dev, in elants_i2c_fw_write_page()
616 static int elants_i2c_do_update_firmware(struct i2c_client *client, in elants_i2c_do_update_firmware() argument
631 dev_dbg(&client->dev, "Recovery mode procedure\n"); in elants_i2c_do_update_firmware()
632 error = elants_i2c_send(client, enter_iap2, sizeof(enter_iap2)); in elants_i2c_do_update_firmware()
635 dev_dbg(&client->dev, "Normal IAP procedure\n"); in elants_i2c_do_update_firmware()
637 error = elants_i2c_send(client, close_idle, sizeof(close_idle)); in elants_i2c_do_update_firmware()
639 dev_err(&client->dev, "Failed close idle: %d\n", error); in elants_i2c_do_update_firmware()
641 elants_i2c_sw_reset(client); in elants_i2c_do_update_firmware()
643 error = elants_i2c_send(client, enter_iap, sizeof(enter_iap)); in elants_i2c_do_update_firmware()
647 dev_err(&client->dev, "failed to enter IAP mode: %d\n", error); in elants_i2c_do_update_firmware()
654 error = elants_i2c_read(client, buf, 4); in elants_i2c_do_update_firmware()
656 dev_err(&client->dev, in elants_i2c_do_update_firmware()
663 dev_err(&client->dev, in elants_i2c_do_update_firmware()
669 dev_info(&client->dev, "successfully entered IAP mode"); in elants_i2c_do_update_firmware()
671 send_id = client->addr; in elants_i2c_do_update_firmware()
672 error = elants_i2c_send(client, &send_id, 1); in elants_i2c_do_update_firmware()
674 dev_err(&client->dev, "sending dummy byte failed: %d\n", in elants_i2c_do_update_firmware()
680 error = elants_i2c_send(client, fw->data, ELAN_FW_PAGESIZE); in elants_i2c_do_update_firmware()
682 dev_err(&client->dev, "clearing of the last page failed: %d\n", in elants_i2c_do_update_firmware()
687 error = elants_i2c_read(client, buf, 2); in elants_i2c_do_update_firmware()
689 dev_err(&client->dev, in elants_i2c_do_update_firmware()
696 dev_dbg(&client->dev, "IAP Pages = %d\n", n_fw_pages); in elants_i2c_do_update_firmware()
699 error = elants_i2c_fw_write_page(client, in elants_i2c_do_update_firmware()
702 dev_err(&client->dev, in elants_i2c_do_update_firmware()
712 dev_info(&client->dev, "firmware update completed\n"); in elants_i2c_do_update_firmware()
718 struct i2c_client *client = ts->client; in elants_i2c_fw_update() local
727 dev_info(&client->dev, "requesting fw name = %s\n", fw_name); in elants_i2c_fw_update()
728 error = request_firmware(&fw, fw_name, &client->dev); in elants_i2c_fw_update()
731 dev_err(&client->dev, "failed to request firmware: %d\n", in elants_i2c_fw_update()
737 dev_err(&client->dev, "invalid firmware length: %zu\n", in elants_i2c_fw_update()
743 disable_irq(client->irq); in elants_i2c_fw_update()
745 error = elants_i2c_do_update_firmware(client, fw, in elants_i2c_fw_update()
748 dev_err(&client->dev, "firmware update failed: %d\n", error); in elants_i2c_fw_update()
755 dev_err(&client->dev, in elants_i2c_fw_update()
766 enable_irq(client->irq); in elants_i2c_fw_update()
791 dev_dbg(&ts->client->dev, in elants_i2c_mt_event()
805 dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d w=%d\n", in elants_i2c_mt_event()
841 dev_warn(&ts->client->dev, in elants_i2c_event()
846 dev_warn(&ts->client->dev, in elants_i2c_event()
857 struct i2c_client *client = ts->client; in elants_i2c_irq() local
862 len = i2c_master_recv_dmasafe(client, ts->buf, sizeof(ts->buf)); in elants_i2c_irq()
864 dev_err(&client->dev, "%s: failed to read data: %d\n", in elants_i2c_irq()
869 dev_dbg(&client->dev, "%s: packet %*ph\n", in elants_i2c_irq()
898 dev_err(&client->dev, in elants_i2c_irq()
914 dev_err(&client->dev, in elants_i2c_irq()
922 dev_err(&client->dev, in elants_i2c_irq()
936 dev_err(&client->dev, "unknown packet %*ph\n", in elants_i2c_irq()
954 struct i2c_client *client = to_i2c_client(dev); in calibrate_store() local
955 struct elants_data *ts = i2c_get_clientdata(client); in calibrate_store()
972 struct i2c_client *client = to_i2c_client(dev); in write_update_fw() local
973 struct elants_data *ts = i2c_get_clientdata(client); in write_update_fw()
990 struct i2c_client *client = to_i2c_client(dev); in show_iap_mode() local
991 struct elants_data *ts = i2c_get_clientdata(client); in show_iap_mode()
1025 struct i2c_client *client = to_i2c_client(dev); in elants_version_attribute_show() local
1026 struct elants_data *ts = i2c_get_clientdata(client); in elants_version_attribute_show()
1084 dev_err(&ts->client->dev, in elants_i2c_power_on()
1092 dev_err(&ts->client->dev, in elants_i2c_power_on()
1130 static int elants_i2c_probe(struct i2c_client *client, in elants_i2c_probe() argument
1138 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in elants_i2c_probe()
1139 dev_err(&client->dev, in elants_i2c_probe()
1144 ts = devm_kzalloc(&client->dev, sizeof(struct elants_data), GFP_KERNEL); in elants_i2c_probe()
1151 ts->client = client; in elants_i2c_probe()
1152 i2c_set_clientdata(client, ts); in elants_i2c_probe()
1154 ts->vcc33 = devm_regulator_get(&client->dev, "vcc33"); in elants_i2c_probe()
1158 dev_err(&client->dev, in elants_i2c_probe()
1164 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in elants_i2c_probe()
1168 dev_err(&client->dev, in elants_i2c_probe()
1174 ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_LOW); in elants_i2c_probe()
1182 dev_err(&client->dev, in elants_i2c_probe()
1195 error = devm_add_action(&client->dev, elants_i2c_power_off, ts); in elants_i2c_probe()
1197 dev_err(&client->dev, in elants_i2c_probe()
1204 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in elants_i2c_probe()
1206 dev_err(&client->dev, "nothing at this address\n"); in elants_i2c_probe()
1212 dev_err(&client->dev, "failed to initialize: %d\n", error); in elants_i2c_probe()
1216 ts->input = devm_input_allocate_device(&client->dev); in elants_i2c_probe()
1218 dev_err(&client->dev, "Failed to allocate input device\n"); in elants_i2c_probe()
1240 dev_err(&client->dev, in elants_i2c_probe()
1254 dev_err(&client->dev, in elants_i2c_probe()
1264 irqflags = irq_get_trigger_type(client->irq); in elants_i2c_probe()
1268 error = devm_request_threaded_irq(&client->dev, client->irq, in elants_i2c_probe()
1271 client->name, ts); in elants_i2c_probe()
1273 dev_err(&client->dev, "Failed to register interrupt\n"); in elants_i2c_probe()
1281 if (!client->dev.of_node) in elants_i2c_probe()
1282 device_init_wakeup(&client->dev, true); in elants_i2c_probe()
1284 error = devm_device_add_group(&client->dev, &elants_attribute_group); in elants_i2c_probe()
1286 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in elants_i2c_probe()
1296 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_suspend() local
1297 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_suspend()
1306 disable_irq(client->irq); in elants_i2c_suspend()
1313 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in elants_i2c_suspend()
1316 error = elants_i2c_send(client, set_sleep_cmd, in elants_i2c_suspend()
1321 dev_err(&client->dev, in elants_i2c_suspend()
1333 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_resume() local
1334 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_resume()
1341 disable_irq_wake(client->irq); in elants_i2c_resume()
1342 elants_i2c_sw_reset(client); in elants_i2c_resume()
1345 error = elants_i2c_send(client, set_active_cmd, in elants_i2c_resume()
1350 dev_err(&client->dev, in elants_i2c_resume()
1359 enable_irq(client->irq); in elants_i2c_resume()