Lines Matching refs:client
67 static int elan_i2c_read_block(struct i2c_client *client, in elan_i2c_read_block() argument
75 .addr = client->addr, in elan_i2c_read_block()
76 .flags = client->flags & I2C_M_TEN, in elan_i2c_read_block()
81 .addr = client->addr, in elan_i2c_read_block()
82 .flags = (client->flags & I2C_M_TEN) | I2C_M_RD, in elan_i2c_read_block()
89 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in elan_i2c_read_block()
93 static int elan_i2c_read_cmd(struct i2c_client *client, u16 reg, u8 *val) in elan_i2c_read_cmd() argument
97 retval = elan_i2c_read_block(client, reg, val, ETP_I2C_INF_LENGTH); in elan_i2c_read_cmd()
99 dev_err(&client->dev, "reading cmd (0x%04x) fail.\n", reg); in elan_i2c_read_cmd()
106 static int elan_i2c_write_cmd(struct i2c_client *client, u16 reg, u16 cmd) in elan_i2c_write_cmd() argument
113 .addr = client->addr, in elan_i2c_write_cmd()
114 .flags = client->flags & I2C_M_TEN, in elan_i2c_write_cmd()
120 ret = i2c_transfer(client->adapter, &msg, 1); in elan_i2c_write_cmd()
124 dev_err(&client->dev, "writing cmd (0x%04x) failed: %d\n", in elan_i2c_write_cmd()
132 static int elan_i2c_initialize(struct i2c_client *client) in elan_i2c_initialize() argument
134 struct device *dev = &client->dev; in elan_i2c_initialize()
138 error = elan_i2c_write_cmd(client, ETP_I2C_STAND_CMD, ETP_I2C_RESET); in elan_i2c_initialize()
148 error = i2c_master_recv(client, val, ETP_I2C_INF_LENGTH); in elan_i2c_initialize()
154 error = elan_i2c_read_block(client, ETP_I2C_DESC_CMD, in elan_i2c_initialize()
161 error = elan_i2c_read_block(client, ETP_I2C_REPORT_DESC_CMD, in elan_i2c_initialize()
171 static int elan_i2c_sleep_control(struct i2c_client *client, bool sleep) in elan_i2c_sleep_control() argument
173 return elan_i2c_write_cmd(client, ETP_I2C_STAND_CMD, in elan_i2c_sleep_control()
177 static int elan_i2c_power_control(struct i2c_client *client, bool enable) in elan_i2c_power_control() argument
183 error = elan_i2c_read_cmd(client, ETP_I2C_POWER_CMD, val); in elan_i2c_power_control()
185 dev_err(&client->dev, in elan_i2c_power_control()
197 error = elan_i2c_write_cmd(client, ETP_I2C_POWER_CMD, reg); in elan_i2c_power_control()
199 dev_err(&client->dev, in elan_i2c_power_control()
208 static int elan_i2c_set_mode(struct i2c_client *client, u8 mode) in elan_i2c_set_mode() argument
210 return elan_i2c_write_cmd(client, ETP_I2C_SET_CMD, mode); in elan_i2c_set_mode()
214 static int elan_i2c_calibrate(struct i2c_client *client) in elan_i2c_calibrate() argument
216 return elan_i2c_write_cmd(client, ETP_I2C_CALIBRATE_CMD, 1); in elan_i2c_calibrate()
219 static int elan_i2c_calibrate_result(struct i2c_client *client, u8 *val) in elan_i2c_calibrate_result() argument
221 return elan_i2c_read_block(client, ETP_I2C_CALIBRATE_CMD, val, 1); in elan_i2c_calibrate_result()
224 static int elan_i2c_get_baseline_data(struct i2c_client *client, in elan_i2c_get_baseline_data() argument
230 error = elan_i2c_read_cmd(client, in elan_i2c_get_baseline_data()
242 static int elan_i2c_get_pattern(struct i2c_client *client, u8 *pattern) in elan_i2c_get_pattern() argument
247 error = elan_i2c_read_cmd(client, ETP_I2C_PATTERN_CMD, val); in elan_i2c_get_pattern()
249 dev_err(&client->dev, "failed to get pattern: %d\n", error); in elan_i2c_get_pattern()
257 static int elan_i2c_get_version(struct i2c_client *client, in elan_i2c_get_version() argument
264 error = elan_i2c_get_pattern(client, &pattern_ver); in elan_i2c_get_version()
266 dev_err(&client->dev, "failed to get pattern version\n"); in elan_i2c_get_version()
270 error = elan_i2c_read_cmd(client, in elan_i2c_get_version()
275 dev_err(&client->dev, "failed to get %s version: %d\n", in elan_i2c_get_version()
287 static int elan_i2c_get_sm_version(struct i2c_client *client, in elan_i2c_get_sm_version() argument
295 error = elan_i2c_get_pattern(client, &pattern_ver); in elan_i2c_get_sm_version()
297 dev_err(&client->dev, "failed to get pattern version\n"); in elan_i2c_get_sm_version()
302 error = elan_i2c_read_cmd(client, ETP_I2C_IC_TYPE_CMD, val); in elan_i2c_get_sm_version()
304 dev_err(&client->dev, "failed to get ic type: %d\n", in elan_i2c_get_sm_version()
310 error = elan_i2c_read_cmd(client, ETP_I2C_NSM_VERSION_CMD, in elan_i2c_get_sm_version()
313 dev_err(&client->dev, "failed to get SM version: %d\n", in elan_i2c_get_sm_version()
320 error = elan_i2c_read_cmd(client, ETP_I2C_OSM_VERSION_CMD, val); in elan_i2c_get_sm_version()
322 dev_err(&client->dev, "failed to get SM version: %d\n", in elan_i2c_get_sm_version()
329 error = elan_i2c_read_cmd(client, ETP_I2C_NSM_VERSION_CMD, in elan_i2c_get_sm_version()
332 dev_err(&client->dev, "failed to get SM version: %d\n", in elan_i2c_get_sm_version()
342 static int elan_i2c_get_product_id(struct i2c_client *client, u16 *id) in elan_i2c_get_product_id() argument
347 error = elan_i2c_read_cmd(client, ETP_I2C_UNIQUEID_CMD, val); in elan_i2c_get_product_id()
349 dev_err(&client->dev, "failed to get product ID: %d\n", error); in elan_i2c_get_product_id()
357 static int elan_i2c_get_checksum(struct i2c_client *client, in elan_i2c_get_checksum() argument
363 error = elan_i2c_read_cmd(client, in elan_i2c_get_checksum()
368 dev_err(&client->dev, "failed to get %s checksum: %d\n", in elan_i2c_get_checksum()
377 static int elan_i2c_get_max(struct i2c_client *client, in elan_i2c_get_max() argument
383 error = elan_i2c_read_cmd(client, ETP_I2C_MAX_X_AXIS_CMD, val); in elan_i2c_get_max()
385 dev_err(&client->dev, "failed to get X dimension: %d\n", error); in elan_i2c_get_max()
391 error = elan_i2c_read_cmd(client, ETP_I2C_MAX_Y_AXIS_CMD, val); in elan_i2c_get_max()
393 dev_err(&client->dev, "failed to get Y dimension: %d\n", error); in elan_i2c_get_max()
402 static int elan_i2c_get_resolution(struct i2c_client *client, in elan_i2c_get_resolution() argument
408 error = elan_i2c_read_cmd(client, ETP_I2C_RESOLUTION_CMD, val); in elan_i2c_get_resolution()
410 dev_err(&client->dev, "failed to get resolution: %d\n", error); in elan_i2c_get_resolution()
420 static int elan_i2c_get_num_traces(struct i2c_client *client, in elan_i2c_get_num_traces() argument
427 error = elan_i2c_read_cmd(client, ETP_I2C_XY_TRACENUM_CMD, val); in elan_i2c_get_num_traces()
429 dev_err(&client->dev, "failed to get trace info: %d\n", error); in elan_i2c_get_num_traces()
439 static int elan_i2c_get_pressure_adjustment(struct i2c_client *client, in elan_i2c_get_pressure_adjustment() argument
445 error = elan_i2c_read_cmd(client, ETP_I2C_PRESSURE_CMD, val); in elan_i2c_get_pressure_adjustment()
447 dev_err(&client->dev, "failed to get pressure format: %d\n", in elan_i2c_get_pressure_adjustment()
460 static int elan_i2c_iap_get_mode(struct i2c_client *client, enum tp_mode *mode) in elan_i2c_iap_get_mode() argument
466 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CTRL_CMD, val); in elan_i2c_iap_get_mode()
468 dev_err(&client->dev, in elan_i2c_iap_get_mode()
475 dev_dbg(&client->dev, "iap control reg: 0x%04x.\n", constant); in elan_i2c_iap_get_mode()
482 static int elan_i2c_iap_reset(struct i2c_client *client) in elan_i2c_iap_reset() argument
486 error = elan_i2c_write_cmd(client, ETP_I2C_IAP_RESET_CMD, in elan_i2c_iap_reset()
489 dev_err(&client->dev, "cannot reset IC: %d\n", error); in elan_i2c_iap_reset()
496 static int elan_i2c_set_flash_key(struct i2c_client *client) in elan_i2c_set_flash_key() argument
500 error = elan_i2c_write_cmd(client, ETP_I2C_IAP_CMD, in elan_i2c_set_flash_key()
503 dev_err(&client->dev, "cannot set flash key: %d\n", error); in elan_i2c_set_flash_key()
510 static int elan_i2c_prepare_fw_update(struct i2c_client *client) in elan_i2c_prepare_fw_update() argument
512 struct device *dev = &client->dev; in elan_i2c_prepare_fw_update()
519 error = elan_i2c_iap_get_mode(client, &mode); in elan_i2c_prepare_fw_update()
525 error = elan_i2c_iap_reset(client); in elan_i2c_prepare_fw_update()
533 error = elan_i2c_set_flash_key(client); in elan_i2c_prepare_fw_update()
541 error = elan_i2c_iap_get_mode(client, &mode); in elan_i2c_prepare_fw_update()
551 error = elan_i2c_set_flash_key(client); in elan_i2c_prepare_fw_update()
559 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CMD, val); in elan_i2c_prepare_fw_update()
575 static int elan_i2c_write_fw_block(struct i2c_client *client, in elan_i2c_write_fw_block() argument
578 struct device *dev = &client->dev; in elan_i2c_write_fw_block()
590 ret = i2c_master_send(client, page_store, sizeof(page_store)); in elan_i2c_write_fw_block()
600 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CTRL_CMD, val); in elan_i2c_write_fw_block()
616 static int elan_i2c_finish_fw_update(struct i2c_client *client, in elan_i2c_finish_fw_update() argument
619 struct device *dev = &client->dev; in elan_i2c_finish_fw_update()
624 len = i2c_master_recv(client, buffer, ETP_I2C_REPORT_LEN); in elan_i2c_finish_fw_update()
632 enable_irq(client->irq); in elan_i2c_finish_fw_update()
634 error = elan_i2c_write_cmd(client, ETP_I2C_STAND_CMD, ETP_I2C_RESET); in elan_i2c_finish_fw_update()
643 disable_irq(client->irq); in elan_i2c_finish_fw_update()
648 len = i2c_master_recv(client, buffer, ETP_I2C_INF_LENGTH); in elan_i2c_finish_fw_update()
659 static int elan_i2c_get_report(struct i2c_client *client, u8 *report) in elan_i2c_get_report() argument
663 len = i2c_master_recv(client, report, ETP_I2C_REPORT_LEN); in elan_i2c_get_report()
665 dev_err(&client->dev, "failed to read report data: %d\n", len); in elan_i2c_get_report()
670 dev_err(&client->dev, in elan_i2c_get_report()