Lines Matching full:client

124 	struct i2c_client *client;  member
160 static int elants_i2c_send(struct i2c_client *client, in elants_i2c_send() argument
165 ret = i2c_master_send(client, data, size); in elants_i2c_send()
172 dev_err(&client->dev, "%s failed (%*ph): %d\n", in elants_i2c_send()
178 static int elants_i2c_read(struct i2c_client *client, void *data, size_t size) in elants_i2c_read() argument
182 ret = i2c_master_recv(client, data, size); in elants_i2c_read()
189 dev_err(&client->dev, "%s failed: %d\n", __func__, ret); in elants_i2c_read()
194 static int elants_i2c_execute_command(struct i2c_client *client, in elants_i2c_execute_command() argument
217 dev_err(&client->dev, "(%s): invalid command: %*ph\n", in elants_i2c_execute_command()
223 msgs[0].addr = client->addr; in elants_i2c_execute_command()
224 msgs[0].flags = client->flags & I2C_M_TEN; in elants_i2c_execute_command()
228 msgs[1].addr = client->addr; in elants_i2c_execute_command()
229 msgs[1].flags = (client->flags & I2C_M_TEN) | I2C_M_RD; in elants_i2c_execute_command()
234 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in elants_i2c_execute_command()
237 dev_dbg(&client->dev, in elants_i2c_execute_command()
243 dev_err(&client->dev, in elants_i2c_execute_command()
252 dev_dbg(&client->dev, in elants_i2c_execute_command()
258 dev_err(&client->dev, in elants_i2c_execute_command()
270 struct i2c_client *client = ts->client; in elants_i2c_calibrate() local
276 disable_irq(client->irq); in elants_i2c_calibrate()
281 elants_i2c_send(client, w_flashkey, sizeof(w_flashkey)); in elants_i2c_calibrate()
282 elants_i2c_send(client, rek, sizeof(rek)); in elants_i2c_calibrate()
284 enable_irq(client->irq); in elants_i2c_calibrate()
293 dev_err(&client->dev, in elants_i2c_calibrate()
300 dev_err(&client->dev, in elants_i2c_calibrate()
309 static int elants_i2c_sw_reset(struct i2c_client *client) in elants_i2c_sw_reset() argument
314 error = elants_i2c_send(client, soft_rst_cmd, in elants_i2c_sw_reset()
317 dev_err(&client->dev, "software reset failed: %d\n", error); in elants_i2c_sw_reset()
337 struct i2c_client *client = ts->client; in elants_i2c_query_hw_version() local
344 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_hw_version()
355 dev_err(&client->dev, "Invalid fw id: %#04x\n", ts->hw_version); in elants_i2c_query_hw_version()
362 struct i2c_client *client = ts->client; in elants_i2c_query_fw_version() local
369 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_fw_version()
379 dev_dbg(&client->dev, "(read fw version) resp %*phC\n", in elants_i2c_query_fw_version()
383 dev_err(&client->dev, "Invalid fw ver: %#04x\n", ts->fw_version); in elants_i2c_query_fw_version()
390 struct i2c_client *client = ts->client; in elants_i2c_query_test_version() local
396 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_test_version()
400 dev_err(&client->dev, "Failed to read test version\n"); in elants_i2c_query_test_version()
413 struct i2c_client *client = ts->client; in elants_i2c_query_bc_version() local
419 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_query_bc_version()
434 struct i2c_client *client = ts->client; in elants_i2c_query_ts_info() local
452 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
467 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
475 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
485 error = elants_i2c_execute_command(client, in elants_i2c_query_ts_info()
495 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y); in elants_i2c_query_ts_info()
498 dev_warn(&client->dev, in elants_i2c_query_ts_info()
512 static int elants_i2c_fastboot(struct i2c_client *client) in elants_i2c_fastboot() argument
517 error = elants_i2c_send(client, boot_cmd, sizeof(boot_cmd)); in elants_i2c_fastboot()
519 dev_err(&client->dev, "boot failed: %d\n", error); in elants_i2c_fastboot()
523 dev_dbg(&client->dev, "boot success -- 0x%x\n", client->addr); in elants_i2c_fastboot()
529 struct i2c_client *client = ts->client; in elants_i2c_initialize() local
536 error = elants_i2c_sw_reset(client); in elants_i2c_initialize()
543 error = elants_i2c_fastboot(client); in elants_i2c_initialize()
553 error = elants_i2c_read(client, buf, sizeof(buf)); in elants_i2c_initialize()
555 dev_err(&client->dev, in elants_i2c_initialize()
569 dev_err(&client->dev, in elants_i2c_initialize()
599 static int elants_i2c_fw_write_page(struct i2c_client *client, in elants_i2c_fw_write_page() argument
608 error = elants_i2c_send(client, page, ELAN_FW_PAGESIZE); in elants_i2c_fw_write_page()
610 dev_err(&client->dev, in elants_i2c_fw_write_page()
615 error = elants_i2c_read(client, buf, 2); in elants_i2c_fw_write_page()
617 dev_err(&client->dev, in elants_i2c_fw_write_page()
626 dev_err(&client->dev, in elants_i2c_fw_write_page()
637 struct i2c_client *client = ts->client; in elants_i2c_validate_remark_id() local
645 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in elants_i2c_validate_remark_id()
656 dev_err(&client->dev, in elants_i2c_validate_remark_id()
665 static int elants_i2c_do_update_firmware(struct i2c_client *client, in elants_i2c_do_update_firmware() argument
669 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_do_update_firmware()
682 dev_dbg(&client->dev, "Recovery mode procedure\n"); in elants_i2c_do_update_firmware()
690 error = elants_i2c_send(client, enter_iap2, sizeof(enter_iap2)); in elants_i2c_do_update_firmware()
692 dev_err(&client->dev, "failed to enter IAP mode: %d\n", in elants_i2c_do_update_firmware()
698 dev_dbg(&client->dev, "Normal IAP procedure\n"); in elants_i2c_do_update_firmware()
701 error = elants_i2c_send(client, close_idle, sizeof(close_idle)); in elants_i2c_do_update_firmware()
703 dev_err(&client->dev, "Failed close idle: %d\n", error); in elants_i2c_do_update_firmware()
706 elants_i2c_sw_reset(client); in elants_i2c_do_update_firmware()
715 error = elants_i2c_send(client, enter_iap, sizeof(enter_iap)); in elants_i2c_do_update_firmware()
717 dev_err(&client->dev, "failed to enter IAP mode: %d\n", in elants_i2c_do_update_firmware()
726 error = elants_i2c_read(client, buf, 4); in elants_i2c_do_update_firmware()
728 dev_err(&client->dev, in elants_i2c_do_update_firmware()
735 dev_err(&client->dev, in elants_i2c_do_update_firmware()
741 dev_info(&client->dev, "successfully entered IAP mode"); in elants_i2c_do_update_firmware()
743 send_id = client->addr; in elants_i2c_do_update_firmware()
744 error = elants_i2c_send(client, &send_id, 1); in elants_i2c_do_update_firmware()
746 dev_err(&client->dev, "sending dummy byte failed: %d\n", in elants_i2c_do_update_firmware()
752 error = elants_i2c_send(client, fw->data, ELAN_FW_PAGESIZE); in elants_i2c_do_update_firmware()
754 dev_err(&client->dev, "clearing of the last page failed: %d\n", in elants_i2c_do_update_firmware()
759 error = elants_i2c_read(client, buf, 2); in elants_i2c_do_update_firmware()
761 dev_err(&client->dev, in elants_i2c_do_update_firmware()
768 dev_dbg(&client->dev, "IAP Pages = %d\n", n_fw_pages); in elants_i2c_do_update_firmware()
771 error = elants_i2c_fw_write_page(client, in elants_i2c_do_update_firmware()
774 dev_err(&client->dev, in elants_i2c_do_update_firmware()
784 dev_info(&client->dev, "firmware update completed\n"); in elants_i2c_do_update_firmware()
790 struct i2c_client *client = ts->client; in elants_i2c_fw_update() local
799 dev_info(&client->dev, "requesting fw name = %s\n", fw_name); in elants_i2c_fw_update()
800 error = request_firmware(&fw, fw_name, &client->dev); in elants_i2c_fw_update()
803 dev_err(&client->dev, "failed to request firmware: %d\n", in elants_i2c_fw_update()
809 dev_err(&client->dev, "invalid firmware length: %zu\n", in elants_i2c_fw_update()
815 disable_irq(client->irq); in elants_i2c_fw_update()
817 error = elants_i2c_do_update_firmware(client, fw, in elants_i2c_fw_update()
820 dev_err(&client->dev, "firmware update failed: %d\n", error); in elants_i2c_fw_update()
827 dev_err(&client->dev, in elants_i2c_fw_update()
838 enable_irq(client->irq); in elants_i2c_fw_update()
864 dev_dbg(&ts->client->dev, in elants_i2c_mt_event()
882 dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d w=%d\n", in elants_i2c_mt_event()
917 dev_warn(&ts->client->dev, in elants_i2c_event()
922 dev_warn(&ts->client->dev, in elants_i2c_event()
933 struct i2c_client *client = ts->client; in elants_i2c_irq() local
938 len = i2c_master_recv_dmasafe(client, ts->buf, sizeof(ts->buf)); in elants_i2c_irq()
940 dev_err(&client->dev, "%s: failed to read data: %d\n", in elants_i2c_irq()
945 dev_dbg(&client->dev, "%s: packet %*ph\n", in elants_i2c_irq()
974 dev_err(&client->dev, in elants_i2c_irq()
990 dev_err(&client->dev, in elants_i2c_irq()
998 dev_err(&client->dev, in elants_i2c_irq()
1012 dev_err(&client->dev, "unknown packet %*ph\n", in elants_i2c_irq()
1030 struct i2c_client *client = to_i2c_client(dev); in calibrate_store() local
1031 struct elants_data *ts = i2c_get_clientdata(client); in calibrate_store()
1048 struct i2c_client *client = to_i2c_client(dev); in write_update_fw() local
1049 struct elants_data *ts = i2c_get_clientdata(client); in write_update_fw()
1066 struct i2c_client *client = to_i2c_client(dev); in show_iap_mode() local
1067 struct elants_data *ts = i2c_get_clientdata(client); in show_iap_mode()
1077 struct i2c_client *client = to_i2c_client(dev); in show_calibration_count() local
1083 error = elants_i2c_execute_command(client, cmd, sizeof(cmd), in show_calibration_count()
1121 struct i2c_client *client = to_i2c_client(dev); in elants_version_attribute_show() local
1122 struct elants_data *ts = i2c_get_clientdata(client); in elants_version_attribute_show()
1181 dev_err(&ts->client->dev, in elants_i2c_power_on()
1189 dev_err(&ts->client->dev, in elants_i2c_power_on()
1227 static int elants_i2c_probe(struct i2c_client *client, in elants_i2c_probe() argument
1235 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in elants_i2c_probe()
1236 dev_err(&client->dev, in elants_i2c_probe()
1241 ts = devm_kzalloc(&client->dev, sizeof(struct elants_data), GFP_KERNEL); in elants_i2c_probe()
1248 ts->client = client; in elants_i2c_probe()
1249 i2c_set_clientdata(client, ts); in elants_i2c_probe()
1251 ts->vcc33 = devm_regulator_get(&client->dev, "vcc33"); in elants_i2c_probe()
1255 dev_err(&client->dev, in elants_i2c_probe()
1261 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in elants_i2c_probe()
1265 dev_err(&client->dev, in elants_i2c_probe()
1271 ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_LOW); in elants_i2c_probe()
1279 dev_err(&client->dev, in elants_i2c_probe()
1292 error = devm_add_action(&client->dev, elants_i2c_power_off, ts); in elants_i2c_probe()
1294 dev_err(&client->dev, in elants_i2c_probe()
1301 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in elants_i2c_probe()
1303 dev_err(&client->dev, "nothing at this address\n"); in elants_i2c_probe()
1309 dev_err(&client->dev, "failed to initialize: %d\n", error); in elants_i2c_probe()
1313 ts->input = devm_input_allocate_device(&client->dev); in elants_i2c_probe()
1315 dev_err(&client->dev, "Failed to allocate input device\n"); in elants_i2c_probe()
1340 dev_err(&client->dev, in elants_i2c_probe()
1347 dev_err(&client->dev, in elants_i2c_probe()
1357 irqflags = irq_get_trigger_type(client->irq); in elants_i2c_probe()
1361 error = devm_request_threaded_irq(&client->dev, client->irq, in elants_i2c_probe()
1364 client->name, ts); in elants_i2c_probe()
1366 dev_err(&client->dev, "Failed to register interrupt\n"); in elants_i2c_probe()
1374 if (!client->dev.of_node) in elants_i2c_probe()
1375 device_init_wakeup(&client->dev, true); in elants_i2c_probe()
1377 error = devm_device_add_group(&client->dev, &elants_attribute_group); in elants_i2c_probe()
1379 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in elants_i2c_probe()
1389 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_suspend() local
1390 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_suspend()
1399 disable_irq(client->irq); in elants_i2c_suspend()
1406 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in elants_i2c_suspend()
1409 error = elants_i2c_send(client, set_sleep_cmd, in elants_i2c_suspend()
1414 dev_err(&client->dev, in elants_i2c_suspend()
1426 struct i2c_client *client = to_i2c_client(dev); in elants_i2c_resume() local
1427 struct elants_data *ts = i2c_get_clientdata(client); in elants_i2c_resume()
1434 disable_irq_wake(client->irq); in elants_i2c_resume()
1435 elants_i2c_sw_reset(client); in elants_i2c_resume()
1438 error = elants_i2c_send(client, set_active_cmd, in elants_i2c_resume()
1443 dev_err(&client->dev, in elants_i2c_resume()
1452 enable_irq(client->irq); in elants_i2c_resume()