Lines Matching refs:client

138 	struct i2c_client *client;  member
174 static int elants_i2c_send(struct i2c_client *client, in elants_i2c_send() argument
179 ret = i2c_master_send(client, data, size); in elants_i2c_send()
186 dev_err(&client->dev, "%s failed (%*ph): %d\n", in elants_i2c_send()
192 static int elants_i2c_read(struct i2c_client *client, void *data, size_t size) in elants_i2c_read() argument
196 ret = i2c_master_recv(client, data, size); in elants_i2c_read()
203 dev_err(&client->dev, "%s failed: %d\n", __func__, ret); in elants_i2c_read()
208 static int elants_i2c_execute_command(struct i2c_client *client, in elants_i2c_execute_command() argument
231 dev_err(&client->dev, "(%s): invalid command: %*ph\n", in elants_i2c_execute_command()
237 msgs[0].addr = client->addr; in elants_i2c_execute_command()
238 msgs[0].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
242 msgs[1].addr = client->addr; in elants_i2c_execute_command()
243 msgs[1].flags = (client->flags & I2C_M_TEN) | I2C_M_RD; in elants_i2c_execute_command()
248 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in elants_i2c_execute_command()
251 dev_dbg(&client->dev, in elants_i2c_execute_command()
257 dev_err(&client->dev, in elants_i2c_execute_command()
266 dev_dbg(&client->dev, in elants_i2c_execute_command()
272 dev_err(&client->dev, in elants_i2c_execute_command()
284 struct i2c_client *client = ts->client; in elants_i2c_calibrate() local
290 disable_irq(client->irq); in elants_i2c_calibrate()
295 elants_i2c_send(client, w_flashkey, sizeof(w_flashkey)); in elants_i2c_calibrate()
296 elants_i2c_send(client, rek, sizeof(rek)); in elants_i2c_calibrate()
298 enable_irq(client->irq); in elants_i2c_calibrate()
307 dev_err(&client->dev, in elants_i2c_calibrate()
314 dev_err(&client->dev, in elants_i2c_calibrate()
323 static int elants_i2c_sw_reset(struct i2c_client *client) in elants_i2c_sw_reset() argument
328 error = elants_i2c_send(client, soft_rst_cmd, in elants_i2c_sw_reset()
331 dev_err(&client->dev, "software reset failed: %d\n", error); in elants_i2c_sw_reset()
351 struct i2c_client *client = ts->client; in elants_i2c_query_hw_version() local
358 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_hw_version()
369 dev_err(&client->dev, "Invalid fw id: %#04x\n", ts->hw_version); in elants_i2c_query_hw_version()
376 struct i2c_client *client = ts->client; in elants_i2c_query_fw_version() local
383 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_version()
393 dev_dbg(&client->dev, "(read fw version) resp %*phC\n", in elants_i2c_query_fw_version()
397 dev_err(&client->dev, "Invalid fw ver: %#04x\n", ts->fw_version); in elants_i2c_query_fw_version()
404 struct i2c_client *client = ts->client; in elants_i2c_query_test_version() local
410 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_test_version()
414 dev_err(&client->dev, "Failed to read test version\n"); in elants_i2c_query_test_version()
427 struct i2c_client *client = ts->client; in elants_i2c_query_bc_version() local
433 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_bc_version()
448 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info() local
466 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
481 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
489 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
499 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
509 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info()
512 dev_warn(&client->dev, in elants_i2c_query_ts_info()
526 static int elants_i2c_fastboot(struct i2c_client *client) in elants_i2c_fastboot() argument
531 error = elants_i2c_send(client, boot_cmd, sizeof(boot_cmd)); in elants_i2c_fastboot()
533 dev_err(&client->dev, "boot failed: %d\n", error); in elants_i2c_fastboot()
537 dev_dbg(&client->dev, "boot success -- 0x%x\n", client->addr); in elants_i2c_fastboot()
543 struct i2c_client *client = ts->client; in elants_i2c_initialize() local
550 error = elants_i2c_sw_reset(client); in elants_i2c_initialize()
557 error = elants_i2c_fastboot(client); in elants_i2c_initialize()
567 error = elants_i2c_read(client, buf, sizeof(buf)); in elants_i2c_initialize()
569 dev_err(&client->dev, in elants_i2c_initialize()
583 dev_err(&client->dev, in elants_i2c_initialize()
613 static int elants_i2c_fw_write_page(struct i2c_client *client, in elants_i2c_fw_write_page() argument
622 error = elants_i2c_send(client, page, ELAN_FW_PAGESIZE); in elants_i2c_fw_write_page()
624 dev_err(&client->dev, in elants_i2c_fw_write_page()
629 error = elants_i2c_read(client, buf, 2); in elants_i2c_fw_write_page()
631 dev_err(&client->dev, in elants_i2c_fw_write_page()
640 dev_err(&client->dev, in elants_i2c_fw_write_page()
651 struct i2c_client *client = ts->client; in elants_i2c_validate_remark_id() local
659 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_validate_remark_id()
670 dev_err(&client->dev, in elants_i2c_validate_remark_id()
681 struct i2c_client *client = ts->client; in elants_i2c_should_check_remark_id() local
697 dev_dbg(&client->dev, in elants_i2c_should_check_remark_id()
710 static int elants_i2c_do_update_firmware(struct i2c_client *client, in elants_i2c_do_update_firmware() argument
714 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_do_update_firmware()
727 dev_dbg(&client->dev, "Recovery mode procedure\n"); in elants_i2c_do_update_firmware()
735 error = elants_i2c_send(client, enter_iap2, sizeof(enter_iap2)); in elants_i2c_do_update_firmware()
737 dev_err(&client->dev, "failed to enter IAP mode: %d\n", in elants_i2c_do_update_firmware()
743 dev_dbg(&client->dev, "Normal IAP procedure\n"); in elants_i2c_do_update_firmware()
746 error = elants_i2c_send(client, close_idle, sizeof(close_idle)); in elants_i2c_do_update_firmware()
748 dev_err(&client->dev, "Failed close idle: %d\n", error); in elants_i2c_do_update_firmware()
751 elants_i2c_sw_reset(client); in elants_i2c_do_update_firmware()
760 error = elants_i2c_send(client, enter_iap, sizeof(enter_iap)); in elants_i2c_do_update_firmware()
762 dev_err(&client->dev, "failed to enter IAP mode: %d\n", in elants_i2c_do_update_firmware()
771 error = elants_i2c_read(client, buf, 4); in elants_i2c_do_update_firmware()
773 dev_err(&client->dev, in elants_i2c_do_update_firmware()
780 dev_err(&client->dev, in elants_i2c_do_update_firmware()
786 dev_info(&client->dev, "successfully entered IAP mode"); in elants_i2c_do_update_firmware()
788 send_id = client->addr; in elants_i2c_do_update_firmware()
789 error = elants_i2c_send(client, &send_id, 1); in elants_i2c_do_update_firmware()
791 dev_err(&client->dev, "sending dummy byte failed: %d\n", in elants_i2c_do_update_firmware()
797 error = elants_i2c_send(client, fw->data, ELAN_FW_PAGESIZE); in elants_i2c_do_update_firmware()
799 dev_err(&client->dev, "clearing of the last page failed: %d\n", in elants_i2c_do_update_firmware()
804 error = elants_i2c_read(client, buf, 2); in elants_i2c_do_update_firmware()
806 dev_err(&client->dev, in elants_i2c_do_update_firmware()
813 dev_dbg(&client->dev, "IAP Pages = %d\n", n_fw_pages); in elants_i2c_do_update_firmware()
816 error = elants_i2c_fw_write_page(client, in elants_i2c_do_update_firmware()
819 dev_err(&client->dev, in elants_i2c_do_update_firmware()
829 dev_info(&client->dev, "firmware update completed\n"); in elants_i2c_do_update_firmware()
835 struct i2c_client *client = ts->client; in elants_i2c_fw_update() local
844 dev_info(&client->dev, "requesting fw name = %s\n", fw_name); in elants_i2c_fw_update()
845 error = request_firmware(&fw, fw_name, &client->dev); in elants_i2c_fw_update()
848 dev_err(&client->dev, "failed to request firmware: %d\n", in elants_i2c_fw_update()
854 dev_err(&client->dev, "invalid firmware length: %zu\n", in elants_i2c_fw_update()
860 disable_irq(client->irq); in elants_i2c_fw_update()
862 error = elants_i2c_do_update_firmware(client, fw, in elants_i2c_fw_update()
865 dev_err(&client->dev, "firmware update failed: %d\n", error); in elants_i2c_fw_update()
872 dev_err(&client->dev, in elants_i2c_fw_update()
883 enable_irq(client->irq); in elants_i2c_fw_update()
909 dev_dbg(&ts->client->dev, in elants_i2c_mt_event()
927 dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d w=%d\n", in elants_i2c_mt_event()
962 dev_warn(&ts->client->dev, in elants_i2c_event()
967 dev_warn(&ts->client->dev, in elants_i2c_event()
978 struct i2c_client *client = ts->client; in elants_i2c_irq() local
983 len = i2c_master_recv_dmasafe(client, ts->buf, sizeof(ts->buf)); in elants_i2c_irq()
985 dev_err(&client->dev, "%s: failed to read data: %d\n", in elants_i2c_irq()
990 dev_dbg(&client->dev, "%s: packet %*ph\n", in elants_i2c_irq()
1019 dev_err(&client->dev, in elants_i2c_irq()
1035 dev_err(&client->dev, in elants_i2c_irq()
1043 dev_err(&client->dev, in elants_i2c_irq()
1057 dev_err(&client->dev, "unknown packet %*ph\n", in elants_i2c_irq()
1075 struct i2c_client *client = to_i2c_client(dev); in calibrate_store() local
1076 struct elants_data *ts = i2c_get_clientdata(client); in calibrate_store()
1093 struct i2c_client *client = to_i2c_client(dev); in write_update_fw() local
1094 struct elants_data *ts = i2c_get_clientdata(client); in write_update_fw()
1111 struct i2c_client *client = to_i2c_client(dev); in show_iap_mode() local
1112 struct elants_data *ts = i2c_get_clientdata(client); in show_iap_mode()
1122 struct i2c_client *client = to_i2c_client(dev); in show_calibration_count() local
1128 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in show_calibration_count()
1166 struct i2c_client *client = to_i2c_client(dev); in elants_version_attribute_show() local
1167 struct elants_data *ts = i2c_get_clientdata(client); in elants_version_attribute_show()
1226 dev_err(&ts->client->dev, in elants_i2c_power_on()
1234 dev_err(&ts->client->dev, in elants_i2c_power_on()
1306 static int elants_i2c_probe(struct i2c_client *client, in elants_i2c_probe() argument
1315 if (elants_acpi_is_hid_device(&client->dev)) { in elants_i2c_probe()
1316 dev_warn(&client->dev, "This device appears to be an I2C-HID device, not binding\n"); in elants_i2c_probe()
1320 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in elants_i2c_probe()
1321 dev_err(&client->dev, "I2C check functionality error\n"); in elants_i2c_probe()
1325 ts = devm_kzalloc(&client->dev, sizeof(struct elants_data), GFP_KERNEL); in elants_i2c_probe()
1332 ts->client = client; in elants_i2c_probe()
1333 i2c_set_clientdata(client, ts); in elants_i2c_probe()
1335 ts->vcc33 = devm_regulator_get(&client->dev, "vcc33"); in elants_i2c_probe()
1339 dev_err(&client->dev, in elants_i2c_probe()
1345 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in elants_i2c_probe()
1349 dev_err(&client->dev, in elants_i2c_probe()
1355 ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_LOW); in elants_i2c_probe()
1363 dev_err(&client->dev, in elants_i2c_probe()
1376 error = devm_add_action(&client->dev, elants_i2c_power_off, ts); in elants_i2c_probe()
1378 dev_err(&client->dev, in elants_i2c_probe()
1385 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in elants_i2c_probe()
1387 dev_err(&client->dev, "nothing at this address\n"); in elants_i2c_probe()
1393 dev_err(&client->dev, "failed to initialize: %d\n", error); in elants_i2c_probe()
1397 ts->input = devm_input_allocate_device(&client->dev); in elants_i2c_probe()
1399 dev_err(&client->dev, "Failed to allocate input device\n"); in elants_i2c_probe()
1424 dev_err(&client->dev, in elants_i2c_probe()
1431 dev_err(&client->dev, in elants_i2c_probe()
1441 irqflags = irq_get_trigger_type(client->irq); in elants_i2c_probe()
1445 error = devm_request_threaded_irq(&client->dev, client->irq, in elants_i2c_probe()
1448 client->name, ts); in elants_i2c_probe()
1450 dev_err(&client->dev, "Failed to register interrupt\n"); in elants_i2c_probe()
1458 if (!client->dev.of_node) in elants_i2c_probe()
1459 device_init_wakeup(&client->dev, true); in elants_i2c_probe()
1461 error = devm_device_add_group(&client->dev, &elants_attribute_group); in elants_i2c_probe()
1463 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in elants_i2c_probe()
1473 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_suspend() local
1474 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_suspend()
1483 disable_irq(client->irq); in elants_i2c_suspend()
1490 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in elants_i2c_suspend()
1493 error = elants_i2c_send(client, set_sleep_cmd, in elants_i2c_suspend()
1498 dev_err(&client->dev, in elants_i2c_suspend()
1510 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_resume() local
1511 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_resume()
1518 disable_irq_wake(client->irq); in elants_i2c_resume()
1519 elants_i2c_sw_reset(client); in elants_i2c_resume()
1522 error = elants_i2c_send(client, set_active_cmd, in elants_i2c_resume()
1527 dev_err(&client->dev, in elants_i2c_resume()
1536 enable_irq(client->irq); in elants_i2c_resume()