Lines Matching refs:client
179 struct i2c_client *client; member
187 static int wdt87xx_i2c_xfer(struct i2c_client *client, in wdt87xx_i2c_xfer() argument
193 .addr = client->addr, in wdt87xx_i2c_xfer()
199 .addr = client->addr, in wdt87xx_i2c_xfer()
208 ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); in wdt87xx_i2c_xfer()
211 dev_err(&client->dev, "%s: i2c transfer failed: %d\n", in wdt87xx_i2c_xfer()
219 static int wdt87xx_get_desc(struct i2c_client *client, u8 desc_idx, in wdt87xx_get_desc() argument
227 error = wdt87xx_i2c_xfer(client, tx_buf, sizeof(tx_buf), in wdt87xx_get_desc()
230 dev_err(&client->dev, "get desc failed: %d\n", error); in wdt87xx_get_desc()
235 dev_err(&client->dev, "unexpected response to get desc: %d\n", in wdt87xx_get_desc()
245 static int wdt87xx_get_string(struct i2c_client *client, u8 str_idx, in wdt87xx_get_string() argument
256 error = wdt87xx_i2c_xfer(client, tx_buf, sizeof(tx_buf), in wdt87xx_get_string()
259 dev_err(&client->dev, "get string failed: %d\n", error); in wdt87xx_get_string()
264 dev_err(&client->dev, "unexpected response to get string: %d\n", in wdt87xx_get_string()
277 static int wdt87xx_get_feature(struct i2c_client *client, in wdt87xx_get_feature() argument
303 error = wdt87xx_i2c_xfer(client, tx_buf, tx_len, rx_buf, rx_len); in wdt87xx_get_feature()
305 dev_err(&client->dev, "get feature failed: %d\n", error); in wdt87xx_get_feature()
317 static int wdt87xx_set_feature(struct i2c_client *client, in wdt87xx_set_feature() argument
346 error = i2c_master_send(client, tx_buf, tx_len); in wdt87xx_set_feature()
348 dev_err(&client->dev, "set feature failed: %d\n", error); in wdt87xx_set_feature()
357 static int wdt87xx_send_command(struct i2c_client *client, int cmd, int value) in wdt87xx_send_command() argument
390 dev_err(&client->dev, "Invalid command: %d\n", cmd); in wdt87xx_send_command()
394 return wdt87xx_set_feature(client, cmd_buf, sizeof(cmd_buf)); in wdt87xx_send_command()
397 static int wdt87xx_sw_reset(struct i2c_client *client) in wdt87xx_sw_reset() argument
401 dev_dbg(&client->dev, "resetting device now\n"); in wdt87xx_sw_reset()
403 error = wdt87xx_send_command(client, VND_CMD_RESET, 0); in wdt87xx_sw_reset()
405 dev_err(&client->dev, "reset failed\n"); in wdt87xx_sw_reset()
434 static int wdt87xx_get_sysparam(struct i2c_client *client, in wdt87xx_get_sysparam() argument
440 error = wdt87xx_get_desc(client, WDT_GD_DEVICE, buf, 18); in wdt87xx_get_sysparam()
442 dev_err(&client->dev, "failed to get device desc\n"); in wdt87xx_get_sysparam()
449 error = wdt87xx_get_string(client, STRIDX_PARAMETERS, buf, 34); in wdt87xx_get_sysparam()
451 dev_err(&client->dev, "failed to get parameters\n"); in wdt87xx_get_sysparam()
470 error = wdt87xx_get_string(client, STRIDX_PLATFORM_ID, buf, 8); in wdt87xx_get_sysparam()
472 dev_err(&client->dev, "failed to get platform id\n"); in wdt87xx_get_sysparam()
479 error = wdt87xx_get_feature(client, buf, 16); in wdt87xx_get_sysparam()
481 dev_err(&client->dev, "failed to get firmware id\n"); in wdt87xx_get_sysparam()
486 dev_err(&client->dev, "wrong id of fw response: 0x%x\n", in wdt87xx_get_sysparam()
493 dev_info(&client->dev, in wdt87xx_get_sysparam()
513 dev_err(&wdt->client->dev, "check fw tag failed\n"); in wdt87xx_validate_firmware()
519 dev_err(&wdt->client->dev, in wdt87xx_validate_firmware()
531 dev_err(&wdt->client->dev, in wdt87xx_validate_firmware()
541 dev_err(&wdt->client->dev, in wdt87xx_validate_firmware()
563 static int wdt87xx_write_data(struct i2c_client *client, const char *data, in wdt87xx_write_data() argument
573 dev_err(&client->dev, in wdt87xx_write_data()
588 error = wdt87xx_set_feature(client, pkt_buf, sizeof(pkt_buf)); in wdt87xx_write_data()
641 static int wdt87xx_get_checksum(struct i2c_client *client, u16 *checksum, in wdt87xx_get_checksum() argument
649 error = wdt87xx_send_command(client, VND_SET_CHECKSUM_LENGTH, length); in wdt87xx_get_checksum()
651 dev_err(&client->dev, "failed to set checksum length\n"); in wdt87xx_get_checksum()
655 error = wdt87xx_send_command(client, VND_SET_CHECKSUM_CALC, address); in wdt87xx_get_checksum()
657 dev_err(&client->dev, "failed to set checksum address\n"); in wdt87xx_get_checksum()
668 error = wdt87xx_set_feature(client, cmd_buf, sizeof(cmd_buf)); in wdt87xx_get_checksum()
670 dev_err(&client->dev, "failed to request checksum\n"); in wdt87xx_get_checksum()
676 error = wdt87xx_get_feature(client, pkt_buf, sizeof(pkt_buf)); in wdt87xx_get_checksum()
678 dev_err(&client->dev, "failed to read checksum\n"); in wdt87xx_get_checksum()
686 static int wdt87xx_write_firmware(struct i2c_client *client, const void *chunk) in wdt87xx_write_firmware() argument
697 dev_dbg(&client->dev, "start 4k page program\n"); in wdt87xx_write_firmware()
699 error = wdt87xx_send_command(client, VND_CMD_STOP, MODE_STOP); in wdt87xx_write_firmware()
701 dev_err(&client->dev, "stop report mode failed\n"); in wdt87xx_write_firmware()
705 error = wdt87xx_send_command(client, VND_CMD_SFUNL, 0); in wdt87xx_write_firmware()
707 dev_err(&client->dev, "unlock failed\n"); in wdt87xx_write_firmware()
714 dev_dbg(&client->dev, "%s: %x, %x\n", __func__, in wdt87xx_write_firmware()
721 error = wdt87xx_send_command(client, VND_CMD_ERASE, in wdt87xx_write_firmware()
724 dev_err(&client->dev, in wdt87xx_write_firmware()
731 error = wdt87xx_write_data(client, data, start_addr, in wdt87xx_write_firmware()
734 dev_err(&client->dev, in wdt87xx_write_firmware()
740 error = wdt87xx_get_checksum(client, &device_checksum, in wdt87xx_write_firmware()
743 dev_err(&client->dev, in wdt87xx_write_firmware()
755 dev_err(&client->dev, in wdt87xx_write_firmware()
761 dev_err(&client->dev, "page write failed\n"); in wdt87xx_write_firmware()
771 err1 = wdt87xx_send_command(client, VND_CMD_SFLCK, 0); in wdt87xx_write_firmware()
773 dev_err(&client->dev, "lock failed\n"); in wdt87xx_write_firmware()
778 err1 = wdt87xx_send_command(client, VND_CMD_START, 0); in wdt87xx_write_firmware()
780 dev_err(&client->dev, "start to report failed\n"); in wdt87xx_write_firmware()
785 static int wdt87xx_load_chunk(struct i2c_client *client, in wdt87xx_load_chunk() argument
793 dev_err(&client->dev, "unable to locate chunk (type %d)\n", in wdt87xx_load_chunk()
800 dev_err(&client->dev, "invalid chunk (type %d): %d\n", in wdt87xx_load_chunk()
805 error = wdt87xx_write_firmware(client, chunk); in wdt87xx_load_chunk()
807 dev_err(&client->dev, in wdt87xx_load_chunk()
816 static int wdt87xx_do_update_firmware(struct i2c_client *client, in wdt87xx_do_update_firmware() argument
820 struct wdt87xx_data *wdt = i2c_get_clientdata(client); in wdt87xx_do_update_firmware()
831 disable_irq(client->irq); in wdt87xx_do_update_firmware()
833 error = wdt87xx_load_chunk(client, fw, chunk_id); in wdt87xx_do_update_firmware()
835 dev_err(&client->dev, in wdt87xx_do_update_firmware()
841 error = wdt87xx_sw_reset(client); in wdt87xx_do_update_firmware()
843 dev_err(&client->dev, "soft reset failed: %d\n", error); in wdt87xx_do_update_firmware()
848 error = wdt87xx_get_sysparam(client, &wdt->param); in wdt87xx_do_update_firmware()
850 dev_err(&client->dev, in wdt87xx_do_update_firmware()
853 enable_irq(client->irq); in wdt87xx_do_update_firmware()
862 struct i2c_client *client = to_i2c_client(dev); in wdt87xx_update_firmware() local
868 dev_err(&client->dev, "unable to retrieve firmware %s: %d\n", in wdt87xx_update_firmware()
873 error = wdt87xx_do_update_firmware(client, fw, chunk_id); in wdt87xx_update_firmware()
883 struct i2c_client *client = to_i2c_client(dev); in config_csum_show() local
884 struct wdt87xx_data *wdt = i2c_get_clientdata(client); in config_csum_show()
896 struct i2c_client *client = to_i2c_client(dev); in fw_version_show() local
897 struct wdt87xx_data *wdt = i2c_get_clientdata(client); in fw_version_show()
905 struct i2c_client *client = to_i2c_client(dev); in plat_id_show() local
906 struct wdt87xx_data *wdt = i2c_get_clientdata(client); in plat_id_show()
996 struct i2c_client *client = wdt->client; in wdt87xx_ts_interrupt() local
1001 error = i2c_master_recv(client, raw_buf, WDT_V1_RAW_BUF_COUNT); in wdt87xx_ts_interrupt()
1003 dev_err(&client->dev, "read v1 raw data failed: %d\n", error); in wdt87xx_ts_interrupt()
1026 struct device *dev = &wdt->client->dev; in wdt87xx_ts_create_input_device()
1067 static int wdt87xx_ts_probe(struct i2c_client *client, in wdt87xx_ts_probe() argument
1073 dev_dbg(&client->dev, "adapter=%d, client irq: %d\n", in wdt87xx_ts_probe()
1074 client->adapter->nr, client->irq); in wdt87xx_ts_probe()
1077 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) in wdt87xx_ts_probe()
1080 wdt = devm_kzalloc(&client->dev, sizeof(*wdt), GFP_KERNEL); in wdt87xx_ts_probe()
1084 wdt->client = client; in wdt87xx_ts_probe()
1086 i2c_set_clientdata(client, wdt); in wdt87xx_ts_probe()
1089 client->adapter->nr, client->addr); in wdt87xx_ts_probe()
1091 error = wdt87xx_get_sysparam(client, &wdt->param); in wdt87xx_ts_probe()
1099 error = devm_request_threaded_irq(&client->dev, client->irq, in wdt87xx_ts_probe()
1102 client->name, wdt); in wdt87xx_ts_probe()
1104 dev_err(&client->dev, "request irq failed: %d\n", error); in wdt87xx_ts_probe()
1108 error = sysfs_create_group(&client->dev.kobj, &wdt87xx_attr_group); in wdt87xx_ts_probe()
1110 dev_err(&client->dev, "create sysfs failed: %d\n", error); in wdt87xx_ts_probe()
1117 static int wdt87xx_ts_remove(struct i2c_client *client) in wdt87xx_ts_remove() argument
1119 sysfs_remove_group(&client->dev.kobj, &wdt87xx_attr_group); in wdt87xx_ts_remove()
1126 struct i2c_client *client = to_i2c_client(dev); in wdt87xx_suspend() local
1129 disable_irq(client->irq); in wdt87xx_suspend()
1131 error = wdt87xx_send_command(client, VND_CMD_STOP, MODE_IDLE); in wdt87xx_suspend()
1133 enable_irq(client->irq); in wdt87xx_suspend()
1134 dev_err(&client->dev, in wdt87xx_suspend()
1145 struct i2c_client *client = to_i2c_client(dev); in wdt87xx_resume() local
1154 error = wdt87xx_send_command(client, VND_CMD_START, 0); in wdt87xx_resume()
1156 dev_err(&client->dev, in wdt87xx_resume()
1160 enable_irq(client->irq); in wdt87xx_resume()