Lines Matching full:client

74 static int elan_i2c_read_block(struct i2c_client *client,  in elan_i2c_read_block()  argument
82 .addr = client->addr, in elan_i2c_read_block()
83 .flags = client->flags & I2C_M_TEN, in elan_i2c_read_block()
88 .addr = client->addr, in elan_i2c_read_block()
89 .flags = (client->flags & I2C_M_TEN) | I2C_M_RD, in elan_i2c_read_block()
96 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in elan_i2c_read_block()
100 static int elan_i2c_read_cmd(struct i2c_client *client, u16 reg, u8 *val) in elan_i2c_read_cmd() argument
104 retval = elan_i2c_read_block(client, reg, val, ETP_I2C_INF_LENGTH); in elan_i2c_read_cmd()
106 dev_err(&client->dev, "reading cmd (0x%04x) fail.\n", reg); in elan_i2c_read_cmd()
113 static int elan_i2c_write_cmd(struct i2c_client *client, u16 reg, u16 cmd) in elan_i2c_write_cmd() argument
120 .addr = client->addr, in elan_i2c_write_cmd()
121 .flags = client->flags & I2C_M_TEN, in elan_i2c_write_cmd()
127 ret = i2c_transfer(client->adapter, &msg, 1); in elan_i2c_write_cmd()
131 dev_err(&client->dev, "writing cmd (0x%04x) failed: %d\n", in elan_i2c_write_cmd()
139 static int elan_i2c_initialize(struct i2c_client *client) in elan_i2c_initialize() argument
141 struct device *dev = &client->dev; in elan_i2c_initialize()
145 error = elan_i2c_write_cmd(client, ETP_I2C_STAND_CMD, ETP_I2C_RESET); in elan_i2c_initialize()
155 error = i2c_master_recv(client, val, ETP_I2C_INF_LENGTH); in elan_i2c_initialize()
161 error = elan_i2c_read_block(client, ETP_I2C_DESC_CMD, in elan_i2c_initialize()
168 error = elan_i2c_read_block(client, ETP_I2C_REPORT_DESC_CMD, in elan_i2c_initialize()
178 static int elan_i2c_sleep_control(struct i2c_client *client, bool sleep) in elan_i2c_sleep_control() argument
180 return elan_i2c_write_cmd(client, ETP_I2C_STAND_CMD, in elan_i2c_sleep_control()
184 static int elan_i2c_power_control(struct i2c_client *client, bool enable) in elan_i2c_power_control() argument
190 error = elan_i2c_read_cmd(client, ETP_I2C_POWER_CMD, val); in elan_i2c_power_control()
192 dev_err(&client->dev, in elan_i2c_power_control()
204 error = elan_i2c_write_cmd(client, ETP_I2C_POWER_CMD, reg); in elan_i2c_power_control()
206 dev_err(&client->dev, in elan_i2c_power_control()
215 static int elan_i2c_set_mode(struct i2c_client *client, u8 mode) in elan_i2c_set_mode() argument
217 return elan_i2c_write_cmd(client, ETP_I2C_SET_CMD, mode); in elan_i2c_set_mode()
221 static int elan_i2c_calibrate(struct i2c_client *client) in elan_i2c_calibrate() argument
223 return elan_i2c_write_cmd(client, ETP_I2C_CALIBRATE_CMD, 1); in elan_i2c_calibrate()
226 static int elan_i2c_calibrate_result(struct i2c_client *client, u8 *val) in elan_i2c_calibrate_result() argument
228 return elan_i2c_read_block(client, ETP_I2C_CALIBRATE_CMD, val, 1); in elan_i2c_calibrate_result()
231 static int elan_i2c_get_baseline_data(struct i2c_client *client, in elan_i2c_get_baseline_data() argument
237 error = elan_i2c_read_cmd(client, in elan_i2c_get_baseline_data()
249 static int elan_i2c_get_pattern(struct i2c_client *client, u8 *pattern) in elan_i2c_get_pattern() argument
254 error = elan_i2c_read_cmd(client, ETP_I2C_PATTERN_CMD, val); in elan_i2c_get_pattern()
256 dev_err(&client->dev, "failed to get pattern: %d\n", error); in elan_i2c_get_pattern()
270 static int elan_i2c_get_version(struct i2c_client *client, in elan_i2c_get_version() argument
284 error = elan_i2c_read_cmd(client, cmd, val); in elan_i2c_get_version()
286 dev_err(&client->dev, "failed to get %s version: %d\n", in elan_i2c_get_version()
298 static int elan_i2c_get_sm_version(struct i2c_client *client, u8 pattern, in elan_i2c_get_sm_version() argument
305 error = elan_i2c_read_cmd(client, ETP_I2C_IC_TYPE_CMD, val); in elan_i2c_get_sm_version()
307 dev_err(&client->dev, "failed to get ic type: %d\n", in elan_i2c_get_sm_version()
313 error = elan_i2c_read_cmd(client, ETP_I2C_NSM_VERSION_CMD, in elan_i2c_get_sm_version()
316 dev_err(&client->dev, "failed to get SM version: %d\n", in elan_i2c_get_sm_version()
323 error = elan_i2c_read_cmd(client, ETP_I2C_OSM_VERSION_CMD, val); in elan_i2c_get_sm_version()
325 dev_err(&client->dev, "failed to get SM version: %d\n", in elan_i2c_get_sm_version()
331 error = elan_i2c_read_cmd(client, ETP_I2C_IC_TYPE_P0_CMD, val); in elan_i2c_get_sm_version()
333 dev_err(&client->dev, "failed to get ic type: %d\n", in elan_i2c_get_sm_version()
339 error = elan_i2c_read_cmd(client, ETP_I2C_NSM_VERSION_CMD, in elan_i2c_get_sm_version()
342 dev_err(&client->dev, "failed to get SM version: %d\n", in elan_i2c_get_sm_version()
352 static int elan_i2c_get_product_id(struct i2c_client *client, u16 *id) in elan_i2c_get_product_id() argument
357 error = elan_i2c_read_cmd(client, ETP_I2C_UNIQUEID_CMD, val); in elan_i2c_get_product_id()
359 dev_err(&client->dev, "failed to get product ID: %d\n", error); in elan_i2c_get_product_id()
367 static int elan_i2c_get_checksum(struct i2c_client *client, in elan_i2c_get_checksum() argument
373 error = elan_i2c_read_cmd(client, in elan_i2c_get_checksum()
378 dev_err(&client->dev, "failed to get %s checksum: %d\n", in elan_i2c_get_checksum()
387 static int elan_i2c_get_max(struct i2c_client *client, in elan_i2c_get_max() argument
393 error = elan_i2c_read_cmd(client, ETP_I2C_MAX_X_AXIS_CMD, val); in elan_i2c_get_max()
395 dev_err(&client->dev, "failed to get X dimension: %d\n", error); in elan_i2c_get_max()
401 error = elan_i2c_read_cmd(client, ETP_I2C_MAX_Y_AXIS_CMD, val); in elan_i2c_get_max()
403 dev_err(&client->dev, "failed to get Y dimension: %d\n", error); in elan_i2c_get_max()
412 static int elan_i2c_get_resolution(struct i2c_client *client, in elan_i2c_get_resolution() argument
418 error = elan_i2c_read_cmd(client, ETP_I2C_RESOLUTION_CMD, val); in elan_i2c_get_resolution()
420 dev_err(&client->dev, "failed to get resolution: %d\n", error); in elan_i2c_get_resolution()
430 static int elan_i2c_get_num_traces(struct i2c_client *client, in elan_i2c_get_num_traces() argument
437 error = elan_i2c_read_cmd(client, ETP_I2C_XY_TRACENUM_CMD, val); in elan_i2c_get_num_traces()
439 dev_err(&client->dev, "failed to get trace info: %d\n", error); in elan_i2c_get_num_traces()
449 static int elan_i2c_get_pressure_adjustment(struct i2c_client *client, in elan_i2c_get_pressure_adjustment() argument
455 error = elan_i2c_read_cmd(client, ETP_I2C_PRESSURE_CMD, val); in elan_i2c_get_pressure_adjustment()
457 dev_err(&client->dev, "failed to get pressure format: %d\n", in elan_i2c_get_pressure_adjustment()
470 static int elan_i2c_iap_get_mode(struct i2c_client *client, enum tp_mode *mode) in elan_i2c_iap_get_mode() argument
476 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CTRL_CMD, val); in elan_i2c_iap_get_mode()
478 dev_err(&client->dev, in elan_i2c_iap_get_mode()
485 dev_dbg(&client->dev, "iap control reg: 0x%04x.\n", constant); in elan_i2c_iap_get_mode()
492 static int elan_i2c_iap_reset(struct i2c_client *client) in elan_i2c_iap_reset() argument
496 error = elan_i2c_write_cmd(client, ETP_I2C_IAP_RESET_CMD, in elan_i2c_iap_reset()
499 dev_err(&client->dev, "cannot reset IC: %d\n", error); in elan_i2c_iap_reset()
506 static int elan_i2c_set_flash_key(struct i2c_client *client) in elan_i2c_set_flash_key() argument
510 error = elan_i2c_write_cmd(client, ETP_I2C_IAP_CMD, in elan_i2c_set_flash_key()
513 dev_err(&client->dev, "cannot set flash key: %d\n", error); in elan_i2c_set_flash_key()
520 static int elan_read_write_iap_type(struct i2c_client *client, u16 fw_page_size) in elan_read_write_iap_type() argument
528 error = elan_i2c_write_cmd(client, ETP_I2C_IAP_TYPE_CMD, in elan_read_write_iap_type()
531 dev_err(&client->dev, in elan_read_write_iap_type()
536 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_TYPE_CMD, val); in elan_read_write_iap_type()
538 dev_err(&client->dev, in elan_read_write_iap_type()
544 dev_dbg(&client->dev, "iap type reg: 0x%04x\n", constant); in elan_read_write_iap_type()
551 dev_err(&client->dev, "cannot set iap type\n"); in elan_read_write_iap_type()
555 static int elan_i2c_prepare_fw_update(struct i2c_client *client, u16 ic_type, in elan_i2c_prepare_fw_update() argument
558 struct device *dev = &client->dev; in elan_i2c_prepare_fw_update()
565 error = elan_i2c_iap_get_mode(client, &mode); in elan_i2c_prepare_fw_update()
571 error = elan_i2c_iap_reset(client); in elan_i2c_prepare_fw_update()
579 error = elan_i2c_set_flash_key(client); in elan_i2c_prepare_fw_update()
587 error = elan_i2c_iap_get_mode(client, &mode); in elan_i2c_prepare_fw_update()
597 error = elan_read_write_iap_type(client, fw_page_size); in elan_i2c_prepare_fw_update()
603 error = elan_i2c_set_flash_key(client); in elan_i2c_prepare_fw_update()
611 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CMD, val); in elan_i2c_prepare_fw_update()
627 static int elan_i2c_write_fw_block(struct i2c_client *client, u16 fw_page_size, in elan_i2c_write_fw_block() argument
630 struct device *dev = &client->dev; in elan_i2c_write_fw_block()
646 ret = i2c_master_send(client, page_store, fw_page_size + 4); in elan_i2c_write_fw_block()
656 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CTRL_CMD, val); in elan_i2c_write_fw_block()
675 static int elan_i2c_finish_fw_update(struct i2c_client *client, in elan_i2c_finish_fw_update() argument
678 struct device *dev = &client->dev; in elan_i2c_finish_fw_update()
683 len = i2c_master_recv(client, buffer, ETP_I2C_REPORT_MAX_LEN); in elan_i2c_finish_fw_update()
691 enable_irq(client->irq); in elan_i2c_finish_fw_update()
693 error = elan_i2c_write_cmd(client, ETP_I2C_STAND_CMD, ETP_I2C_RESET); in elan_i2c_finish_fw_update()
702 disable_irq(client->irq); in elan_i2c_finish_fw_update()
707 len = i2c_master_recv(client, buffer, ETP_I2C_INF_LENGTH); in elan_i2c_finish_fw_update()
718 static int elan_i2c_get_report_features(struct i2c_client *client, u8 pattern, in elan_i2c_get_report_features() argument
728 static int elan_i2c_get_report(struct i2c_client *client, in elan_i2c_get_report() argument
733 len = i2c_master_recv(client, report, report_len); in elan_i2c_get_report()
735 dev_err(&client->dev, "failed to read report data: %d\n", len); in elan_i2c_get_report()
740 dev_err(&client->dev, in elan_i2c_get_report()