Lines Matching full: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 disable_irq(client->irq); in elants_i2c_calibrate()
311 elants_i2c_send(client, w_flashkey, sizeof(w_flashkey)); in elants_i2c_calibrate()
312 elants_i2c_send(client, rek, sizeof(rek)); in elants_i2c_calibrate()
314 enable_irq(client->irq); in elants_i2c_calibrate()
323 dev_err(&client->dev, in elants_i2c_calibrate()
330 dev_err(&client->dev, in elants_i2c_calibrate()
339 static int elants_i2c_sw_reset(struct i2c_client *client) in elants_i2c_sw_reset() argument
344 error = elants_i2c_send(client, soft_rst_cmd, in elants_i2c_sw_reset()
347 dev_err(&client->dev, "software reset failed: %d\n", error); in elants_i2c_sw_reset()
367 struct i2c_client *client = ts->client; in elants_i2c_query_hw_version() local
374 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_hw_version()
385 dev_err(&client->dev, "Invalid fw id: %#04x\n", ts->hw_version); in elants_i2c_query_hw_version()
392 struct i2c_client *client = ts->client; in elants_i2c_query_fw_version() local
399 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_version()
409 dev_dbg(&client->dev, "(read fw version) resp %*phC\n", in elants_i2c_query_fw_version()
413 dev_err(&client->dev, "Invalid fw ver: %#04x\n", ts->fw_version); in elants_i2c_query_fw_version()
420 struct i2c_client *client = ts->client; in elants_i2c_query_test_version() local
426 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_test_version()
430 dev_err(&client->dev, "Failed to read test version\n"); in elants_i2c_query_test_version()
443 struct i2c_client *client = ts->client; in elants_i2c_query_bc_version() local
449 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_bc_version()
464 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info_ektf() local
476 error = elants_i2c_execute_command(client, get_xres_cmd, in elants_i2c_query_ts_info_ektf()
485 error = elants_i2c_execute_command(client, get_yres_cmd, in elants_i2c_query_ts_info_ektf()
494 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info_ektf()
508 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info_ekth() local
526 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info_ekth()
541 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info_ekth()
549 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info_ekth()
559 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info_ekth()
569 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info_ekth()
572 dev_warn(&client->dev, in elants_i2c_query_ts_info_ekth()
588 static int elants_i2c_fastboot(struct i2c_client *client) in elants_i2c_fastboot() argument
593 error = elants_i2c_send(client, boot_cmd, sizeof(boot_cmd)); in elants_i2c_fastboot()
595 dev_err(&client->dev, "boot failed: %d\n", error); in elants_i2c_fastboot()
599 dev_dbg(&client->dev, "boot success -- 0x%x\n", client->addr); in elants_i2c_fastboot()
605 struct i2c_client *client = ts->client; in elants_i2c_initialize() local
612 error = elants_i2c_sw_reset(client); in elants_i2c_initialize()
619 error = elants_i2c_fastboot(client); in elants_i2c_initialize()
629 error = elants_i2c_read(client, buf, sizeof(buf)); in elants_i2c_initialize()
631 dev_err(&client->dev, in elants_i2c_initialize()
645 dev_err(&client->dev, in elants_i2c_initialize()
686 static int elants_i2c_fw_write_page(struct i2c_client *client, in elants_i2c_fw_write_page() argument
695 error = elants_i2c_send(client, page, ELAN_FW_PAGESIZE); in elants_i2c_fw_write_page()
697 dev_err(&client->dev, in elants_i2c_fw_write_page()
702 error = elants_i2c_read(client, buf, 2); in elants_i2c_fw_write_page()
704 dev_err(&client->dev, in elants_i2c_fw_write_page()
713 dev_err(&client->dev, in elants_i2c_fw_write_page()
724 struct i2c_client *client = ts->client; in elants_i2c_validate_remark_id() local
732 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_validate_remark_id()
743 dev_err(&client->dev, in elants_i2c_validate_remark_id()
754 struct i2c_client *client = ts->client; in elants_i2c_should_check_remark_id() local
770 dev_dbg(&client->dev, in elants_i2c_should_check_remark_id()
783 static int elants_i2c_do_update_firmware(struct i2c_client *client, in elants_i2c_do_update_firmware() argument
787 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_do_update_firmware()
800 dev_dbg(&client->dev, "Recovery mode procedure\n"); in elants_i2c_do_update_firmware()
808 error = elants_i2c_send(client, enter_iap2, sizeof(enter_iap2)); in elants_i2c_do_update_firmware()
810 dev_err(&client->dev, "failed to enter IAP mode: %d\n", in elants_i2c_do_update_firmware()
816 dev_dbg(&client->dev, "Normal IAP procedure\n"); in elants_i2c_do_update_firmware()
819 error = elants_i2c_send(client, close_idle, sizeof(close_idle)); in elants_i2c_do_update_firmware()
821 dev_err(&client->dev, "Failed close idle: %d\n", error); in elants_i2c_do_update_firmware()
824 elants_i2c_sw_reset(client); in elants_i2c_do_update_firmware()
833 error = elants_i2c_send(client, enter_iap, sizeof(enter_iap)); in elants_i2c_do_update_firmware()
835 dev_err(&client->dev, "failed to enter IAP mode: %d\n", in elants_i2c_do_update_firmware()
844 error = elants_i2c_read(client, buf, 4); in elants_i2c_do_update_firmware()
846 dev_err(&client->dev, in elants_i2c_do_update_firmware()
853 dev_err(&client->dev, in elants_i2c_do_update_firmware()
859 dev_info(&client->dev, "successfully entered IAP mode"); in elants_i2c_do_update_firmware()
861 send_id = client->addr; in elants_i2c_do_update_firmware()
862 error = elants_i2c_send(client, &send_id, 1); in elants_i2c_do_update_firmware()
864 dev_err(&client->dev, "sending dummy byte failed: %d\n", in elants_i2c_do_update_firmware()
870 error = elants_i2c_send(client, fw->data, ELAN_FW_PAGESIZE); in elants_i2c_do_update_firmware()
872 dev_err(&client->dev, "clearing of the last page failed: %d\n", in elants_i2c_do_update_firmware()
877 error = elants_i2c_read(client, buf, 2); in elants_i2c_do_update_firmware()
879 dev_err(&client->dev, in elants_i2c_do_update_firmware()
886 dev_dbg(&client->dev, "IAP Pages = %d\n", n_fw_pages); in elants_i2c_do_update_firmware()
889 error = elants_i2c_fw_write_page(client, in elants_i2c_do_update_firmware()
892 dev_err(&client->dev, in elants_i2c_do_update_firmware()
902 dev_info(&client->dev, "firmware update completed\n"); in elants_i2c_do_update_firmware()
908 struct i2c_client *client = ts->client; in elants_i2c_fw_update() local
917 dev_info(&client->dev, "requesting fw name = %s\n", fw_name); in elants_i2c_fw_update()
918 error = request_firmware(&fw, fw_name, &client->dev); in elants_i2c_fw_update()
921 dev_err(&client->dev, "failed to request firmware: %d\n", in elants_i2c_fw_update()
927 dev_err(&client->dev, "invalid firmware length: %zu\n", in elants_i2c_fw_update()
933 disable_irq(client->irq); in elants_i2c_fw_update()
935 error = elants_i2c_do_update_firmware(client, fw, in elants_i2c_fw_update()
938 dev_err(&client->dev, "firmware update failed: %d\n", error); in elants_i2c_fw_update()
945 dev_err(&client->dev, in elants_i2c_fw_update()
956 enable_irq(client->irq); in elants_i2c_fw_update()
983 dev_dbg(&ts->client->dev, in elants_i2c_mt_event()
1017 dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d w=%d\n", in elants_i2c_mt_event()
1053 dev_warn(&ts->client->dev, in elants_i2c_event()
1058 dev_warn(&ts->client->dev, in elants_i2c_event()
1069 struct i2c_client *client = ts->client; in elants_i2c_irq() local
1074 len = i2c_master_recv_dmasafe(client, ts->buf, sizeof(ts->buf)); in elants_i2c_irq()
1076 dev_err(&client->dev, "%s: failed to read data: %d\n", in elants_i2c_irq()
1081 dev_dbg(&client->dev, "%s: packet %*ph\n", in elants_i2c_irq()
1109 dev_err(&client->dev, in elants_i2c_irq()
1140 dev_err(&client->dev, in elants_i2c_irq()
1150 dev_dbg_once(&client->dev, in elants_i2c_irq()
1153 dev_err(&client->dev, in elants_i2c_irq()
1167 dev_err(&client->dev, "unknown packet %*ph\n", in elants_i2c_irq()
1185 struct i2c_client *client = to_i2c_client(dev); in calibrate_store() local
1186 struct elants_data *ts = i2c_get_clientdata(client); in calibrate_store()
1203 struct i2c_client *client = to_i2c_client(dev); in write_update_fw() local
1204 struct elants_data *ts = i2c_get_clientdata(client); in write_update_fw()
1221 struct i2c_client *client = to_i2c_client(dev); in show_iap_mode() local
1222 struct elants_data *ts = i2c_get_clientdata(client); in show_iap_mode()
1232 struct i2c_client *client = to_i2c_client(dev); in show_calibration_count() local
1238 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in show_calibration_count()
1276 struct i2c_client *client = to_i2c_client(dev); in elants_version_attribute_show() local
1277 struct elants_data *ts = i2c_get_clientdata(client); in elants_version_attribute_show()
1331 dev_err(&ts->client->dev, in elants_i2c_power_on()
1339 dev_err(&ts->client->dev, in elants_i2c_power_on()
1408 static int elants_i2c_probe(struct i2c_client *client) in elants_i2c_probe() argument
1416 if (elants_acpi_is_hid_device(&client->dev)) { in elants_i2c_probe()
1417 dev_warn(&client->dev, "This device appears to be an I2C-HID device, not binding\n"); in elants_i2c_probe()
1421 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in elants_i2c_probe()
1422 dev_err(&client->dev, "I2C check functionality error\n"); in elants_i2c_probe()
1426 ts = devm_kzalloc(&client->dev, sizeof(struct elants_data), GFP_KERNEL); in elants_i2c_probe()
1433 ts->client = client; in elants_i2c_probe()
1434 ts->chip_id = (enum elants_chip_id)(uintptr_t)device_get_match_data(&client->dev); in elants_i2c_probe()
1435 i2c_set_clientdata(client, ts); in elants_i2c_probe()
1437 ts->vcc33 = devm_regulator_get(&client->dev, "vcc33"); in elants_i2c_probe()
1439 return dev_err_probe(&client->dev, PTR_ERR(ts->vcc33), in elants_i2c_probe()
1442 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in elants_i2c_probe()
1444 return dev_err_probe(&client->dev, PTR_ERR(ts->vccio), in elants_i2c_probe()
1447 ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_HIGH); in elants_i2c_probe()
1455 dev_err(&client->dev, in elants_i2c_probe()
1468 error = devm_add_action_or_reset(&client->dev, in elants_i2c_probe()
1471 dev_err(&client->dev, in elants_i2c_probe()
1477 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in elants_i2c_probe()
1479 dev_err(&client->dev, "nothing at this address\n"); in elants_i2c_probe()
1485 dev_err(&client->dev, "failed to initialize: %d\n", error); in elants_i2c_probe()
1489 ts->input = devm_input_allocate_device(&client->dev); in elants_i2c_probe()
1491 dev_err(&client->dev, "Failed to allocate input device\n"); in elants_i2c_probe()
1522 dev_err(&client->dev, in elants_i2c_probe()
1529 dev_err(&client->dev, in elants_i2c_probe()
1539 irqflags = irq_get_trigger_type(client->irq); in elants_i2c_probe()
1543 error = devm_request_threaded_irq(&client->dev, client->irq, in elants_i2c_probe()
1546 client->name, ts); in elants_i2c_probe()
1548 dev_err(&client->dev, "Failed to register interrupt\n"); in elants_i2c_probe()
1557 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_suspend() local
1558 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_suspend()
1569 disable_irq(client->irq); in elants_i2c_suspend()
1579 error = elants_i2c_send(client, set_sleep_cmd, in elants_i2c_suspend()
1584 dev_err(&client->dev, in elants_i2c_suspend()
1596 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_resume() local
1597 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_resume()
1605 elants_i2c_sw_reset(client); in elants_i2c_resume()
1608 error = elants_i2c_send(client, set_active_cmd, in elants_i2c_resume()
1613 dev_err(&client->dev, in elants_i2c_resume()
1622 enable_irq(client->irq); in elants_i2c_resume()