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_version(struct i2c_client *client, in elan_i2c_get_version() argument
248 error = elan_i2c_read_cmd(client, in elan_i2c_get_version()
253 dev_err(&client->dev, "failed to get %s version: %d\n", in elan_i2c_get_version()
262 static int elan_i2c_get_sm_version(struct i2c_client *client, in elan_i2c_get_sm_version() argument
268 error = elan_i2c_read_cmd(client, ETP_I2C_SM_VERSION_CMD, val); in elan_i2c_get_sm_version()
270 dev_err(&client->dev, "failed to get SM version: %d\n", error); in elan_i2c_get_sm_version()
279 static int elan_i2c_get_product_id(struct i2c_client *client, u16 *id) in elan_i2c_get_product_id() argument
284 error = elan_i2c_read_cmd(client, ETP_I2C_UNIQUEID_CMD, val); in elan_i2c_get_product_id()
286 dev_err(&client->dev, "failed to get product ID: %d\n", error); in elan_i2c_get_product_id()
294 static int elan_i2c_get_checksum(struct i2c_client *client, in elan_i2c_get_checksum() argument
300 error = elan_i2c_read_cmd(client, in elan_i2c_get_checksum()
305 dev_err(&client->dev, "failed to get %s checksum: %d\n", in elan_i2c_get_checksum()
314 static int elan_i2c_get_max(struct i2c_client *client, in elan_i2c_get_max() argument
320 error = elan_i2c_read_cmd(client, ETP_I2C_MAX_X_AXIS_CMD, val); in elan_i2c_get_max()
322 dev_err(&client->dev, "failed to get X dimension: %d\n", error); in elan_i2c_get_max()
328 error = elan_i2c_read_cmd(client, ETP_I2C_MAX_Y_AXIS_CMD, val); in elan_i2c_get_max()
330 dev_err(&client->dev, "failed to get Y dimension: %d\n", error); in elan_i2c_get_max()
339 static int elan_i2c_get_resolution(struct i2c_client *client, in elan_i2c_get_resolution() argument
345 error = elan_i2c_read_cmd(client, ETP_I2C_RESOLUTION_CMD, val); in elan_i2c_get_resolution()
347 dev_err(&client->dev, "failed to get resolution: %d\n", error); in elan_i2c_get_resolution()
357 static int elan_i2c_get_num_traces(struct i2c_client *client, in elan_i2c_get_num_traces() argument
364 error = elan_i2c_read_cmd(client, ETP_I2C_XY_TRACENUM_CMD, val); in elan_i2c_get_num_traces()
366 dev_err(&client->dev, "failed to get trace info: %d\n", error); in elan_i2c_get_num_traces()
376 static int elan_i2c_get_pressure_adjustment(struct i2c_client *client, in elan_i2c_get_pressure_adjustment() argument
382 error = elan_i2c_read_cmd(client, ETP_I2C_PRESSURE_CMD, val); in elan_i2c_get_pressure_adjustment()
384 dev_err(&client->dev, "failed to get pressure format: %d\n", in elan_i2c_get_pressure_adjustment()
397 static int elan_i2c_iap_get_mode(struct i2c_client *client, enum tp_mode *mode) in elan_i2c_iap_get_mode() argument
403 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CTRL_CMD, val); in elan_i2c_iap_get_mode()
405 dev_err(&client->dev, in elan_i2c_iap_get_mode()
412 dev_dbg(&client->dev, "iap control reg: 0x%04x.\n", constant); in elan_i2c_iap_get_mode()
419 static int elan_i2c_iap_reset(struct i2c_client *client) in elan_i2c_iap_reset() argument
423 error = elan_i2c_write_cmd(client, ETP_I2C_IAP_RESET_CMD, in elan_i2c_iap_reset()
426 dev_err(&client->dev, "cannot reset IC: %d\n", error); in elan_i2c_iap_reset()
433 static int elan_i2c_set_flash_key(struct i2c_client *client) in elan_i2c_set_flash_key() argument
437 error = elan_i2c_write_cmd(client, ETP_I2C_IAP_CMD, in elan_i2c_set_flash_key()
440 dev_err(&client->dev, "cannot set flash key: %d\n", error); in elan_i2c_set_flash_key()
447 static int elan_i2c_prepare_fw_update(struct i2c_client *client) in elan_i2c_prepare_fw_update() argument
449 struct device *dev = &client->dev; in elan_i2c_prepare_fw_update()
456 error = elan_i2c_iap_get_mode(client, &mode); in elan_i2c_prepare_fw_update()
462 error = elan_i2c_iap_reset(client); in elan_i2c_prepare_fw_update()
470 error = elan_i2c_set_flash_key(client); in elan_i2c_prepare_fw_update()
478 error = elan_i2c_iap_get_mode(client, &mode); in elan_i2c_prepare_fw_update()
488 error = elan_i2c_set_flash_key(client); in elan_i2c_prepare_fw_update()
496 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CMD, val); in elan_i2c_prepare_fw_update()
512 static int elan_i2c_write_fw_block(struct i2c_client *client, in elan_i2c_write_fw_block() argument
515 struct device *dev = &client->dev; in elan_i2c_write_fw_block()
527 ret = i2c_master_send(client, page_store, sizeof(page_store)); in elan_i2c_write_fw_block()
537 error = elan_i2c_read_cmd(client, ETP_I2C_IAP_CTRL_CMD, val); in elan_i2c_write_fw_block()
553 static int elan_i2c_finish_fw_update(struct i2c_client *client, in elan_i2c_finish_fw_update() argument
556 struct device *dev = &client->dev; in elan_i2c_finish_fw_update()
563 enable_irq(client->irq); in elan_i2c_finish_fw_update()
565 error = elan_i2c_write_cmd(client, ETP_I2C_STAND_CMD, ETP_I2C_RESET); in elan_i2c_finish_fw_update()
569 disable_irq(client->irq); in elan_i2c_finish_fw_update()
583 len = i2c_master_recv(client, buffer, ETP_I2C_INF_LENGTH); in elan_i2c_finish_fw_update()
594 static int elan_i2c_get_report(struct i2c_client *client, u8 *report) in elan_i2c_get_report() argument
598 len = i2c_master_recv(client, report, ETP_I2C_REPORT_LEN); in elan_i2c_get_report()
600 dev_err(&client->dev, "failed to read report data: %d\n", len); in elan_i2c_get_report()
605 dev_err(&client->dev, in elan_i2c_get_report()