Lines Matching defs:client
152 struct i2c_client *client;
190 static int elants_i2c_send(struct i2c_client *client,
195 ret = i2c_master_send(client, data, size);
202 dev_err(&client->dev, "%s failed (%*ph): %d\n",
208 static int elants_i2c_read(struct i2c_client *client, void *data, size_t size)
212 ret = i2c_master_recv(client, data, size);
219 dev_err(&client->dev, "%s failed: %d\n", __func__, ret);
224 static int elants_i2c_execute_command(struct i2c_client *client,
247 dev_err(&client->dev, "(%s): invalid command: %*ph\n",
253 msgs[0].addr = client->addr;
254 msgs[0].flags = client->flags & I2C_M_TEN;
258 msgs[1].addr = client->addr;
259 msgs[1].flags = (client->flags & I2C_M_TEN) | I2C_M_RD;
264 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
267 dev_dbg(&client->dev,
273 dev_err(&client->dev,
282 dev_dbg(&client->dev,
288 dev_err(&client->dev,
300 struct i2c_client *client = ts->client;
306 disable_irq(client->irq);
311 elants_i2c_send(client, w_flashkey, sizeof(w_flashkey));
312 elants_i2c_send(client, rek, sizeof(rek));
314 enable_irq(client->irq);
323 dev_err(&client->dev,
330 dev_err(&client->dev,
339 static int elants_i2c_sw_reset(struct i2c_client *client)
344 error = elants_i2c_send(client, soft_rst_cmd,
347 dev_err(&client->dev, "software reset failed: %d\n", error);
367 struct i2c_client *client = ts->client;
374 error = elants_i2c_execute_command(client, cmd, sizeof(cmd),
385 dev_err(&client->dev, "Invalid fw id: %#04x\n", ts->hw_version);
392 struct i2c_client *client = ts->client;
399 error = elants_i2c_execute_command(client, cmd, sizeof(cmd),
409 dev_dbg(&client->dev, "(read fw version) resp %*phC\n",
413 dev_err(&client->dev, "Invalid fw ver: %#04x\n", ts->fw_version);
420 struct i2c_client *client = ts->client;
426 error = elants_i2c_execute_command(client, cmd, sizeof(cmd),
430 dev_err(&client->dev, "Failed to read test version\n");
443 struct i2c_client *client = ts->client;
449 error = elants_i2c_execute_command(client, cmd, sizeof(cmd),
464 struct i2c_client *client = ts->client;
476 error = elants_i2c_execute_command(client, get_xres_cmd,
485 error = elants_i2c_execute_command(client, get_yres_cmd,
494 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y);
508 struct i2c_client *client = ts->client;
526 error = elants_i2c_execute_command(client,
541 error = elants_i2c_execute_command(client,
549 error = elants_i2c_execute_command(client,
559 error = elants_i2c_execute_command(client,
569 dev_dbg(&client->dev, "phy_x=%d, phy_y=%d\n", phy_x, phy_y);
572 dev_warn(&client->dev,
588 static int elants_i2c_fastboot(struct i2c_client *client)
593 error = elants_i2c_send(client, boot_cmd, sizeof(boot_cmd));
595 dev_err(&client->dev, "boot failed: %d\n", error);
599 dev_dbg(&client->dev, "boot success -- 0x%x\n", client->addr);
605 struct i2c_client *client = ts->client;
612 error = elants_i2c_sw_reset(client);
619 error = elants_i2c_fastboot(client);
629 error = elants_i2c_read(client, buf, sizeof(buf));
631 dev_err(&client->dev,
645 dev_err(&client->dev,
686 static int elants_i2c_fw_write_page(struct i2c_client *client,
695 error = elants_i2c_send(client, page, ELAN_FW_PAGESIZE);
697 dev_err(&client->dev,
702 error = elants_i2c_read(client, buf, 2);
704 dev_err(&client->dev,
713 dev_err(&client->dev,
724 struct i2c_client *client = ts->client;
732 error = elants_i2c_execute_command(client, cmd, sizeof(cmd),
743 dev_err(&client->dev,
754 struct i2c_client *client = ts->client;
770 dev_dbg(&client->dev,
783 static int elants_i2c_do_update_firmware(struct i2c_client *client,
787 struct elants_data *ts = i2c_get_clientdata(client);
800 dev_dbg(&client->dev, "Recovery mode procedure\n");
808 error = elants_i2c_send(client, enter_iap2, sizeof(enter_iap2));
810 dev_err(&client->dev, "failed to enter IAP mode: %d\n",
816 dev_dbg(&client->dev, "Normal IAP procedure\n");
819 error = elants_i2c_send(client, close_idle, sizeof(close_idle));
821 dev_err(&client->dev, "Failed close idle: %d\n", error);
824 elants_i2c_sw_reset(client);
833 error = elants_i2c_send(client, enter_iap, sizeof(enter_iap));
835 dev_err(&client->dev, "failed to enter IAP mode: %d\n",
844 error = elants_i2c_read(client, buf, 4);
846 dev_err(&client->dev,
853 dev_err(&client->dev,
859 dev_info(&client->dev, "successfully entered IAP mode");
861 send_id = client->addr;
862 error = elants_i2c_send(client, &send_id, 1);
864 dev_err(&client->dev, "sending dummy byte failed: %d\n",
870 error = elants_i2c_send(client, fw->data, ELAN_FW_PAGESIZE);
872 dev_err(&client->dev, "clearing of the last page failed: %d\n",
877 error = elants_i2c_read(client, buf, 2);
879 dev_err(&client->dev,
886 dev_dbg(&client->dev, "IAP Pages = %d\n", n_fw_pages);
889 error = elants_i2c_fw_write_page(client,
892 dev_err(&client->dev,
902 dev_info(&client->dev, "firmware update completed\n");
908 struct i2c_client *client = ts->client;
917 dev_info(&client->dev, "requesting fw name = %s\n", fw_name);
918 error = request_firmware(&fw, fw_name, &client->dev);
921 dev_err(&client->dev, "failed to request firmware: %d\n",
927 dev_err(&client->dev, "invalid firmware length: %zu\n",
933 disable_irq(client->irq);
935 error = elants_i2c_do_update_firmware(client, fw,
938 dev_err(&client->dev, "firmware update failed: %d\n", error);
945 dev_err(&client->dev,
956 enable_irq(client->irq);
983 dev_dbg(&ts->client->dev,
1017 dev_dbg(&ts->client->dev, "i=%d x=%d y=%d p=%d w=%d\n",
1053 dev_warn(&ts->client->dev,
1058 dev_warn(&ts->client->dev,
1069 struct i2c_client *client = ts->client;
1074 len = i2c_master_recv_dmasafe(client, ts->buf, sizeof(ts->buf));
1076 dev_err(&client->dev, "%s: failed to read data: %d\n",
1081 dev_dbg(&client->dev, "%s: packet %*ph\n",
1109 dev_err(&client->dev,
1140 dev_err(&client->dev,
1150 dev_dbg_once(&client->dev,
1153 dev_err(&client->dev,
1167 dev_err(&client->dev, "unknown packet %*ph\n",
1185 struct i2c_client *client = to_i2c_client(dev);
1186 struct elants_data *ts = i2c_get_clientdata(client);
1203 struct i2c_client *client = to_i2c_client(dev);
1204 struct elants_data *ts = i2c_get_clientdata(client);
1221 struct i2c_client *client = to_i2c_client(dev);
1222 struct elants_data *ts = i2c_get_clientdata(client);
1232 struct i2c_client *client = to_i2c_client(dev);
1238 error = elants_i2c_execute_command(client, cmd, sizeof(cmd),
1276 struct i2c_client *client = to_i2c_client(dev);
1277 struct elants_data *ts = i2c_get_clientdata(client);
1334 dev_err(&ts->client->dev,
1342 dev_err(&ts->client->dev,
1411 static int elants_i2c_probe(struct i2c_client *client)
1419 if (elants_acpi_is_hid_device(&client->dev)) {
1420 dev_warn(&client->dev, "This device appears to be an I2C-HID device, not binding\n");
1424 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
1425 dev_err(&client->dev, "I2C check functionality error\n");
1429 ts = devm_kzalloc(&client->dev, sizeof(struct elants_data), GFP_KERNEL);
1436 ts->client = client;
1437 ts->chip_id = (enum elants_chip_id)(uintptr_t)device_get_match_data(&client->dev);
1438 i2c_set_clientdata(client, ts);
1440 ts->vcc33 = devm_regulator_get(&client->dev, "vcc33");
1442 return dev_err_probe(&client->dev, PTR_ERR(ts->vcc33),
1445 ts->vccio = devm_regulator_get(&client->dev, "vccio");
1447 return dev_err_probe(&client->dev, PTR_ERR(ts->vccio),
1450 ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_HIGH);
1458 dev_err(&client->dev,
1471 error = devm_add_action_or_reset(&client->dev,
1474 dev_err(&client->dev,
1480 if (i2c_smbus_xfer(client->adapter, client->addr, 0,
1482 dev_err(&client->dev, "nothing at this address\n");
1488 dev_err(&client->dev, "failed to initialize: %d\n", error);
1492 ts->input = devm_input_allocate_device(&client->dev);
1494 dev_err(&client->dev, "Failed to allocate input device\n");
1525 dev_err(&client->dev,
1532 dev_err(&client->dev,
1542 irqflags = irq_get_trigger_type(client->irq);
1546 error = devm_request_threaded_irq(&client->dev, client->irq,
1549 client->name, ts);
1551 dev_err(&client->dev, "Failed to register interrupt\n");
1555 error = devm_device_add_group(&client->dev, &elants_attribute_group);
1557 dev_err(&client->dev, "failed to create sysfs attributes: %d\n",
1567 struct i2c_client *client = to_i2c_client(dev);
1568 struct elants_data *ts = i2c_get_clientdata(client);
1579 disable_irq(client->irq);
1589 error = elants_i2c_send(client, set_sleep_cmd,
1594 dev_err(&client->dev,
1606 struct i2c_client *client = to_i2c_client(dev);
1607 struct elants_data *ts = i2c_get_clientdata(client);
1615 elants_i2c_sw_reset(client);
1618 error = elants_i2c_send(client, set_active_cmd,
1623 dev_err(&client->dev,
1632 enable_irq(client->irq);