Lines Matching refs:client

152 	struct i2c_client *client;  member
190 static int elants_i2c_send(struct i2c_client *client, in elants_i2c_send() argument
195 ret = i2c_master_send(client, data, size); in elants_i2c_send()
202 dev_err(&client->dev, "%s failed (%*ph): %d\n", in elants_i2c_send()
208 static int elants_i2c_read(struct i2c_client *client, void *data, size_t size) in elants_i2c_read() argument
212 ret = i2c_master_recv(client, data, size); in elants_i2c_read()
219 dev_err(&client->dev, "%s failed: %d\n", __func__, ret); in elants_i2c_read()
224 static int elants_i2c_execute_command(struct i2c_client *client, in elants_i2c_execute_command() argument
247 dev_err(&client->dev, "(%s): invalid command: %*ph\n", in elants_i2c_execute_command()
253 msgs[0].addr = client->addr; in elants_i2c_execute_command()
254 msgs[0].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
258 msgs[1].addr = client->addr; in elants_i2c_execute_command()
259 msgs[1].flags = (client->flags & I2C_M_TEN) | I2C_M_RD; in elants_i2c_execute_command()
264 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in elants_i2c_execute_command()
267 dev_dbg(&client->dev, in elants_i2c_execute_command()
273 dev_err(&client->dev, in elants_i2c_execute_command()
282 dev_dbg(&client->dev, in elants_i2c_execute_command()
288 dev_err(&client->dev, in elants_i2c_execute_command()
300 struct i2c_client *client = ts->client; in elants_i2c_calibrate() local
306 scoped_guard(disable_irq, &client->irq) { in elants_i2c_calibrate()
310 elants_i2c_send(client, w_flashkey, sizeof(w_flashkey)); in elants_i2c_calibrate()
311 elants_i2c_send(client, rek, sizeof(rek)); in elants_i2c_calibrate()
321 dev_err(&client->dev, in elants_i2c_calibrate()
328 dev_err(&client->dev, in elants_i2c_calibrate()
337 static int elants_i2c_sw_reset(struct i2c_client *client) in elants_i2c_sw_reset() argument
342 error = elants_i2c_send(client, soft_rst_cmd, in elants_i2c_sw_reset()
345 dev_err(&client->dev, "software reset failed: %d\n", error); in elants_i2c_sw_reset()
365 struct i2c_client *client = ts->client; in elants_i2c_query_hw_version() local
372 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_hw_version()
383 dev_err(&client->dev, "Invalid fw id: %#04x\n", ts->hw_version); in elants_i2c_query_hw_version()
390 struct i2c_client *client = ts->client; in elants_i2c_query_fw_version() local
397 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_version()
407 dev_dbg(&client->dev, "(read fw version) resp %*phC\n", in elants_i2c_query_fw_version()
411 dev_err(&client->dev, "Invalid fw ver: %#04x\n", ts->fw_version); in elants_i2c_query_fw_version()
418 struct i2c_client *client = ts->client; in elants_i2c_query_test_version() local
424 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_test_version()
428 dev_err(&client->dev, "Failed to read test version\n"); in elants_i2c_query_test_version()
441 struct i2c_client *client = ts->client; in elants_i2c_query_bc_version() local
447 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_bc_version()
462 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info_ektf() local
474 error = elants_i2c_execute_command(client, get_xres_cmd, in elants_i2c_query_ts_info_ektf()
483 error = elants_i2c_execute_command(client, get_yres_cmd, in elants_i2c_query_ts_info_ektf()
492 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info_ektf()
506 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info_ekth() local
524 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info_ekth()
539 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info_ekth()
547 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info_ekth()
557 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info_ekth()
567 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info_ekth()
570 dev_warn(&client->dev, in elants_i2c_query_ts_info_ekth()
586 static int elants_i2c_fastboot(struct i2c_client *client) in elants_i2c_fastboot() argument
591 error = elants_i2c_send(client, boot_cmd, sizeof(boot_cmd)); in elants_i2c_fastboot()
593 dev_err(&client->dev, "boot failed: %d\n", error); in elants_i2c_fastboot()
597 dev_dbg(&client->dev, "boot success -- 0x%x\n", client->addr); in elants_i2c_fastboot()
603 struct i2c_client *client = ts->client; in elants_i2c_initialize() local
610 error = elants_i2c_sw_reset(client); in elants_i2c_initialize()
617 error = elants_i2c_fastboot(client); in elants_i2c_initialize()
627 error = elants_i2c_read(client, buf, sizeof(buf)); in elants_i2c_initialize()
629 dev_err(&client->dev, in elants_i2c_initialize()
643 dev_err(&client->dev, in elants_i2c_initialize()
684 static int elants_i2c_fw_write_page(struct i2c_client *client, in elants_i2c_fw_write_page() argument
693 error = elants_i2c_send(client, page, ELAN_FW_PAGESIZE); in elants_i2c_fw_write_page()
695 dev_err(&client->dev, in elants_i2c_fw_write_page()
700 error = elants_i2c_read(client, buf, 2); in elants_i2c_fw_write_page()
702 dev_err(&client->dev, in elants_i2c_fw_write_page()
711 dev_err(&client->dev, in elants_i2c_fw_write_page()
722 struct i2c_client *client = ts->client; in elants_i2c_validate_remark_id() local
730 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_validate_remark_id()
741 dev_err(&client->dev, in elants_i2c_validate_remark_id()
752 struct i2c_client *client = ts->client; in elants_i2c_should_check_remark_id() local
768 dev_dbg(&client->dev, in elants_i2c_should_check_remark_id()
781 static int elants_i2c_do_update_firmware(struct i2c_client *client, in elants_i2c_do_update_firmware() argument
785 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_do_update_firmware()
798 dev_dbg(&client->dev, "Recovery mode procedure\n"); in elants_i2c_do_update_firmware()
806 error = elants_i2c_send(client, enter_iap2, sizeof(enter_iap2)); in elants_i2c_do_update_firmware()
808 dev_err(&client->dev, "failed to enter IAP mode: %d\n", in elants_i2c_do_update_firmware()
814 dev_dbg(&client->dev, "Normal IAP procedure\n"); in elants_i2c_do_update_firmware()
817 error = elants_i2c_send(client, close_idle, sizeof(close_idle)); in elants_i2c_do_update_firmware()
819 dev_err(&client->dev, "Failed close idle: %d\n", error); in elants_i2c_do_update_firmware()
822 elants_i2c_sw_reset(client); in elants_i2c_do_update_firmware()
831 error = elants_i2c_send(client, enter_iap, sizeof(enter_iap)); in elants_i2c_do_update_firmware()
833 dev_err(&client->dev, "failed to enter IAP mode: %d\n", in elants_i2c_do_update_firmware()
842 error = elants_i2c_read(client, buf, 4); in elants_i2c_do_update_firmware()
844 dev_err(&client->dev, in elants_i2c_do_update_firmware()
851 dev_err(&client->dev, in elants_i2c_do_update_firmware()
857 dev_info(&client->dev, "successfully entered IAP mode"); in elants_i2c_do_update_firmware()
859 send_id = client->addr; in elants_i2c_do_update_firmware()
860 error = elants_i2c_send(client, &send_id, 1); in elants_i2c_do_update_firmware()
862 dev_err(&client->dev, "sending dummy byte failed: %d\n", in elants_i2c_do_update_firmware()
868 error = elants_i2c_send(client, fw->data, ELAN_FW_PAGESIZE); in elants_i2c_do_update_firmware()
870 dev_err(&client->dev, "clearing of the last page failed: %d\n", in elants_i2c_do_update_firmware()
875 error = elants_i2c_read(client, buf, 2); in elants_i2c_do_update_firmware()
877 dev_err(&client->dev, in elants_i2c_do_update_firmware()
884 dev_dbg(&client->dev, "IAP Pages = %d\n", n_fw_pages); in elants_i2c_do_update_firmware()
887 error = elants_i2c_fw_write_page(client, in elants_i2c_do_update_firmware()
890 dev_err(&client->dev, in elants_i2c_do_update_firmware()
900 dev_info(&client->dev, "firmware update completed\n"); in elants_i2c_do_update_firmware()
906 struct i2c_client *client = ts->client; in elants_i2c_fw_update() local
914 dev_info(&client->dev, "requesting fw name = %s\n", fw_name); in elants_i2c_fw_update()
917 error = request_firmware(&fw, fw_name, &client->dev); in elants_i2c_fw_update()
919 dev_err(&client->dev, "failed to request firmware: %d\n", in elants_i2c_fw_update()
925 dev_err(&client->dev, "invalid firmware length: %zu\n", in elants_i2c_fw_update()
930 scoped_guard(disable_irq, &client->irq) { in elants_i2c_fw_update()
933 error = elants_i2c_do_update_firmware(client, fw, force_update); in elants_i2c_fw_update()
935 dev_err(&client->dev, "firmware update failed: %d\n", in elants_i2c_fw_update()
940 dev_err(&client->dev, in elants_i2c_fw_update()
973 dev_dbg(&ts->client->dev, in elants_i2c_mt_event()
1007 dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d w=%d\n", in elants_i2c_mt_event()
1043 dev_warn(&ts->client->dev, in elants_i2c_event()
1048 dev_warn(&ts->client->dev, in elants_i2c_event()
1059 struct i2c_client *client = ts->client; in elants_i2c_irq() local
1064 len = i2c_master_recv_dmasafe(client, ts->buf, sizeof(ts->buf)); in elants_i2c_irq()
1066 dev_err(&client->dev, "%s: failed to read data: %d\n", in elants_i2c_irq()
1071 dev_dbg(&client->dev, "%s: packet %*ph\n", in elants_i2c_irq()
1099 dev_err(&client->dev, in elants_i2c_irq()
1130 dev_err(&client->dev, in elants_i2c_irq()
1140 dev_dbg_once(&client->dev, in elants_i2c_irq()
1143 dev_err(&client->dev, in elants_i2c_irq()
1157 dev_err(&client->dev, "unknown packet %*ph\n", in elants_i2c_irq()
1175 struct i2c_client *client = to_i2c_client(dev); in calibrate_store() local
1176 struct elants_data *ts = i2c_get_clientdata(client); in calibrate_store()
1192 struct i2c_client *client = to_i2c_client(dev); in write_update_fw() local
1193 struct elants_data *ts = i2c_get_clientdata(client); in write_update_fw()
1208 struct i2c_client *client = to_i2c_client(dev); in show_iap_mode() local
1209 struct elants_data *ts = i2c_get_clientdata(client); in show_iap_mode()
1219 struct i2c_client *client = to_i2c_client(dev); in show_calibration_count() local
1225 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in show_calibration_count()
1263 struct i2c_client *client = to_i2c_client(dev); in elants_version_attribute_show() local
1264 struct elants_data *ts = i2c_get_clientdata(client); in elants_version_attribute_show()
1318 dev_err(&ts->client->dev, in elants_i2c_power_on()
1326 dev_err(&ts->client->dev, in elants_i2c_power_on()
1395 static int elants_i2c_probe(struct i2c_client *client) in elants_i2c_probe() argument
1403 if (elants_acpi_is_hid_device(&client->dev)) { in elants_i2c_probe()
1404 dev_warn(&client->dev, "This device appears to be an I2C-HID device, not binding\n"); in elants_i2c_probe()
1408 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in elants_i2c_probe()
1409 dev_err(&client->dev, "I2C check functionality error\n"); in elants_i2c_probe()
1413 ts = devm_kzalloc(&client->dev, sizeof(struct elants_data), GFP_KERNEL); in elants_i2c_probe()
1420 ts->client = client; in elants_i2c_probe()
1421 ts->chip_id = (enum elants_chip_id)(uintptr_t)device_get_match_data(&client->dev); in elants_i2c_probe()
1422 i2c_set_clientdata(client, ts); in elants_i2c_probe()
1424 ts->vcc33 = devm_regulator_get(&client->dev, "vcc33"); in elants_i2c_probe()
1426 return dev_err_probe(&client->dev, PTR_ERR(ts->vcc33), in elants_i2c_probe()
1429 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in elants_i2c_probe()
1431 return dev_err_probe(&client->dev, PTR_ERR(ts->vccio), in elants_i2c_probe()
1434 ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_HIGH); in elants_i2c_probe()
1442 dev_err(&client->dev, in elants_i2c_probe()
1455 error = devm_add_action_or_reset(&client->dev, in elants_i2c_probe()
1458 dev_err(&client->dev, in elants_i2c_probe()
1464 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in elants_i2c_probe()
1466 dev_err(&client->dev, "nothing at this address\n"); in elants_i2c_probe()
1472 dev_err(&client->dev, "failed to initialize: %d\n", error); in elants_i2c_probe()
1476 ts->input = devm_input_allocate_device(&client->dev); in elants_i2c_probe()
1478 dev_err(&client->dev, "Failed to allocate input device\n"); in elants_i2c_probe()
1509 dev_err(&client->dev, in elants_i2c_probe()
1516 dev_err(&client->dev, in elants_i2c_probe()
1526 irqflags = irq_get_trigger_type(client->irq); in elants_i2c_probe()
1530 error = devm_request_threaded_irq(&client->dev, client->irq, in elants_i2c_probe()
1533 client->name, ts); in elants_i2c_probe()
1535 dev_err(&client->dev, "Failed to register interrupt\n"); in elants_i2c_probe()
1544 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_suspend() local
1545 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_suspend()
1556 disable_irq(client->irq); in elants_i2c_suspend()
1566 error = elants_i2c_send(client, set_sleep_cmd, in elants_i2c_suspend()
1571 dev_err(&client->dev, in elants_i2c_suspend()
1583 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_resume() local
1584 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_resume()
1592 elants_i2c_sw_reset(client); in elants_i2c_resume()
1595 error = elants_i2c_send(client, set_active_cmd, in elants_i2c_resume()
1600 dev_err(&client->dev, in elants_i2c_resume()
1609 enable_irq(client->irq); in elants_i2c_resume()