Lines Matching refs:client
125 struct i2c_client *client; member
148 static int raydium_i2c_send(struct i2c_client *client, in raydium_i2c_send() argument
163 ret = i2c_master_send(client, buf, len + 1); in raydium_i2c_send()
175 dev_err(&client->dev, "%s failed: %d\n", __func__, ret); in raydium_i2c_send()
182 static int raydium_i2c_read(struct i2c_client *client, in raydium_i2c_read() argument
187 .addr = client->addr, in raydium_i2c_read()
192 .addr = client->addr, in raydium_i2c_read()
200 ret = i2c_transfer(client->adapter, xfer, ARRAY_SIZE(xfer)); in raydium_i2c_read()
207 static int raydium_i2c_read_message(struct i2c_client *client, in raydium_i2c_read_message() argument
219 error = raydium_i2c_send(client, RM_CMD_BANK_SWITCH, in raydium_i2c_read_message()
222 error = raydium_i2c_read(client, addr & 0xff, in raydium_i2c_read_message()
235 static int raydium_i2c_send_message(struct i2c_client *client, in raydium_i2c_send_message() argument
241 error = raydium_i2c_send(client, RM_CMD_BANK_SWITCH, in raydium_i2c_send_message()
244 error = raydium_i2c_send(client, addr & 0xff, data, len); in raydium_i2c_send_message()
249 static int raydium_i2c_sw_reset(struct i2c_client *client) in raydium_i2c_sw_reset() argument
254 error = raydium_i2c_send_message(client, RM_RESET_MSG_ADDR, in raydium_i2c_sw_reset()
257 dev_err(&client->dev, "software reset failed: %d\n", error); in raydium_i2c_sw_reset()
268 struct i2c_client *client = ts->client; in raydium_i2c_query_ts_info() local
275 error = raydium_i2c_read(client, RM_CMD_DATA_BANK, in raydium_i2c_query_ts_info()
286 dev_warn(&client->dev, in raydium_i2c_query_ts_info()
297 dev_dbg(&client->dev, in raydium_i2c_query_ts_info()
301 error = raydium_i2c_read(client, RM_CMD_QUERY_BANK, in raydium_i2c_query_ts_info()
307 error = raydium_i2c_read_message(client, in raydium_i2c_query_ts_info()
316 dev_err(&client->dev, "failed to query device parameters: %d\n", error); in raydium_i2c_query_ts_info()
322 struct i2c_client *client = ts->client; in raydium_i2c_check_fw_status() local
328 error = raydium_i2c_read(client, RM_CMD_BOOT_READ, buf, sizeof(buf)); in raydium_i2c_check_fw_status()
342 struct i2c_client *client = ts->client; in raydium_i2c_initialize() local
351 dev_err(&client->dev, in raydium_i2c_initialize()
376 static int raydium_i2c_bl_chk_state(struct i2c_client *client, in raydium_i2c_bl_chk_state() argument
390 error = raydium_i2c_read(client, RM_CMD_BOOT_CHK, in raydium_i2c_bl_chk_state()
398 error = raydium_i2c_read(client, RM_CMD_BOOT_CHK, in raydium_i2c_bl_chk_state()
406 dev_err(&client->dev, "%s: invalid target state %d\n", in raydium_i2c_bl_chk_state()
417 static int raydium_i2c_write_object(struct i2c_client *client, in raydium_i2c_write_object() argument
423 error = raydium_i2c_send(client, RM_CMD_BOOT_WRT, data, len); in raydium_i2c_write_object()
425 dev_err(&client->dev, "WRT obj command failed: %d\n", in raydium_i2c_write_object()
430 error = raydium_i2c_send(client, RM_CMD_BOOT_ACK, NULL, 0); in raydium_i2c_write_object()
432 dev_err(&client->dev, "Ack obj command failed: %d\n", error); in raydium_i2c_write_object()
436 error = raydium_i2c_bl_chk_state(client, state); in raydium_i2c_write_object()
438 dev_err(&client->dev, "BL check state failed: %d\n", error); in raydium_i2c_write_object()
444 static int raydium_i2c_boot_trigger(struct i2c_client *client) in raydium_i2c_boot_trigger() argument
459 error = raydium_i2c_write_object(client, cmd[i], sizeof(cmd[i]), in raydium_i2c_boot_trigger()
462 dev_err(&client->dev, in raydium_i2c_boot_trigger()
472 static int raydium_i2c_fw_trigger(struct i2c_client *client) in raydium_i2c_fw_trigger() argument
485 error = raydium_i2c_write_object(client, cmd[i], sizeof(cmd[i]), in raydium_i2c_fw_trigger()
488 dev_err(&client->dev, in raydium_i2c_fw_trigger()
498 static int raydium_i2c_check_path(struct i2c_client *client) in raydium_i2c_check_path() argument
503 error = raydium_i2c_write_object(client, cmd, sizeof(cmd), in raydium_i2c_check_path()
506 dev_err(&client->dev, "check path command failed: %d\n", error); in raydium_i2c_check_path()
513 static int raydium_i2c_enter_bl(struct i2c_client *client) in raydium_i2c_enter_bl() argument
518 error = raydium_i2c_write_object(client, cal_cmd, sizeof(cal_cmd), in raydium_i2c_enter_bl()
521 dev_err(&client->dev, "enter bl command failed: %d\n", error); in raydium_i2c_enter_bl()
529 static int raydium_i2c_leave_bl(struct i2c_client *client) in raydium_i2c_leave_bl() argument
534 error = raydium_i2c_write_object(client, leave_cmd, sizeof(leave_cmd), in raydium_i2c_leave_bl()
537 dev_err(&client->dev, "leave bl command failed: %d\n", error); in raydium_i2c_leave_bl()
545 static int raydium_i2c_write_checksum(struct i2c_client *client, in raydium_i2c_write_checksum() argument
554 error = raydium_i2c_write_object(client, in raydium_i2c_write_checksum()
558 dev_err(&client->dev, "failed to write checksum: %d\n", in raydium_i2c_write_checksum()
566 static int raydium_i2c_disable_watch_dog(struct i2c_client *client) in raydium_i2c_disable_watch_dog() argument
571 error = raydium_i2c_write_object(client, cmd, sizeof(cmd), in raydium_i2c_disable_watch_dog()
574 dev_err(&client->dev, "disable watchdog command failed: %d\n", in raydium_i2c_disable_watch_dog()
582 static int raydium_i2c_fw_write_page(struct i2c_client *client, in raydium_i2c_fw_write_page() argument
603 error = raydium_i2c_write_object(client, buf, RM_BL_WRT_LEN, in raydium_i2c_fw_write_page()
606 dev_err(&client->dev, in raydium_i2c_fw_write_page()
633 struct i2c_client *client = ts->client; in raydium_i2c_do_update_firmware() local
643 dev_err(&client->dev, "Invalid firmware length\n"); in raydium_i2c_do_update_firmware()
649 dev_err(&client->dev, "Unable to access IC %d\n", error); in raydium_i2c_do_update_firmware()
655 error = raydium_i2c_enter_bl(client); in raydium_i2c_do_update_firmware()
659 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
671 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
678 error = raydium_i2c_disable_watch_dog(client); in raydium_i2c_do_update_firmware()
682 error = raydium_i2c_check_path(client); in raydium_i2c_do_update_firmware()
686 error = raydium_i2c_boot_trigger(client); in raydium_i2c_do_update_firmware()
688 dev_err(&client->dev, "send boot trigger fail: %d\n", error); in raydium_i2c_do_update_firmware()
701 error = raydium_i2c_fw_write_page(client, page_nr++, data, len); in raydium_i2c_do_update_firmware()
711 error = raydium_i2c_leave_bl(client); in raydium_i2c_do_update_firmware()
713 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
718 dev_dbg(&client->dev, "left boot loader mode\n"); in raydium_i2c_do_update_firmware()
723 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
730 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
736 error = raydium_i2c_fw_trigger(client); in raydium_i2c_do_update_firmware()
738 dev_err(&client->dev, "failed to trigger fw: %d\n", error); in raydium_i2c_do_update_firmware()
744 error = raydium_i2c_write_checksum(client, fw->size, fw_checksum); in raydium_i2c_do_update_firmware()
753 struct i2c_client *client = ts->client; in raydium_i2c_fw_update() local
758 error = request_firmware(&fw, fw_file, &client->dev); in raydium_i2c_fw_update()
760 dev_err(&client->dev, "Unable to open firmware %s\n", fw_file); in raydium_i2c_fw_update()
764 disable_irq(client->irq); in raydium_i2c_fw_update()
768 dev_err(&client->dev, "firmware update failed: %d\n", error); in raydium_i2c_fw_update()
775 dev_err(&client->dev, in raydium_i2c_fw_update()
785 enable_irq(client->irq); in raydium_i2c_fw_update()
836 error = raydium_i2c_read_message(ts->client, ts->data_bank_addr, in raydium_i2c_irq()
844 dev_warn(&ts->client->dev, in raydium_i2c_irq()
859 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_fw_ver_show() local
860 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_fw_ver_show()
868 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_hw_ver_show() local
869 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_hw_ver_show()
878 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_boot_mode_show() local
879 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_boot_mode_show()
890 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_update_fw_store() local
891 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_update_fw_store()
909 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_calibrate_store() local
910 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_calibrate_store()
918 error = raydium_i2c_write_object(client, cal_cmd, sizeof(cal_cmd), in raydium_i2c_calibrate_store()
921 dev_err(&client->dev, "calibrate command failed: %d\n", error); in raydium_i2c_calibrate_store()
950 sysfs_remove_group(&ts->client->dev.kobj, &raydium_i2c_attribute_group); in raydium_i2c_remove_sysfs_group()
964 dev_err(&ts->client->dev, in raydium_i2c_power_on()
972 dev_err(&ts->client->dev, in raydium_i2c_power_on()
1001 static int raydium_i2c_probe(struct i2c_client *client, in raydium_i2c_probe() argument
1008 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in raydium_i2c_probe()
1009 dev_err(&client->dev, in raydium_i2c_probe()
1014 ts = devm_kzalloc(&client->dev, sizeof(*ts), GFP_KERNEL); in raydium_i2c_probe()
1020 ts->client = client; in raydium_i2c_probe()
1021 i2c_set_clientdata(client, ts); in raydium_i2c_probe()
1023 ts->avdd = devm_regulator_get(&client->dev, "avdd"); in raydium_i2c_probe()
1027 dev_err(&client->dev, in raydium_i2c_probe()
1032 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in raydium_i2c_probe()
1036 dev_err(&client->dev, in raydium_i2c_probe()
1041 ts->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", in raydium_i2c_probe()
1046 dev_err(&client->dev, in raydium_i2c_probe()
1055 error = devm_add_action(&client->dev, raydium_i2c_power_off, ts); in raydium_i2c_probe()
1057 dev_err(&client->dev, in raydium_i2c_probe()
1064 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in raydium_i2c_probe()
1066 dev_err(&client->dev, "nothing at this address\n"); in raydium_i2c_probe()
1072 dev_err(&client->dev, "failed to initialize: %d\n", error); in raydium_i2c_probe()
1076 ts->report_data = devm_kmalloc(&client->dev, in raydium_i2c_probe()
1081 ts->input = devm_input_allocate_device(&client->dev); in raydium_i2c_probe()
1083 dev_err(&client->dev, "Failed to allocate input device\n"); in raydium_i2c_probe()
1103 dev_err(&client->dev, in raydium_i2c_probe()
1110 dev_err(&client->dev, in raydium_i2c_probe()
1115 error = devm_request_threaded_irq(&client->dev, client->irq, in raydium_i2c_probe()
1117 IRQF_ONESHOT, client->name, ts); in raydium_i2c_probe()
1119 dev_err(&client->dev, "Failed to register interrupt\n"); in raydium_i2c_probe()
1123 error = sysfs_create_group(&client->dev.kobj, in raydium_i2c_probe()
1126 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in raydium_i2c_probe()
1131 error = devm_add_action(&client->dev, in raydium_i2c_probe()
1135 dev_err(&client->dev, in raydium_i2c_probe()
1143 static void __maybe_unused raydium_enter_sleep(struct i2c_client *client) in raydium_enter_sleep() argument
1148 error = raydium_i2c_send(client, RM_CMD_ENTER_SLEEP, in raydium_enter_sleep()
1151 dev_err(&client->dev, in raydium_enter_sleep()
1157 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_suspend() local
1158 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_suspend()
1164 disable_irq(client->irq); in raydium_i2c_suspend()
1167 raydium_enter_sleep(client); in raydium_i2c_suspend()
1169 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in raydium_i2c_suspend()
1179 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_resume() local
1180 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_resume()
1184 disable_irq_wake(client->irq); in raydium_i2c_resume()
1185 raydium_i2c_sw_reset(client); in raydium_i2c_resume()
1191 enable_irq(client->irq); in raydium_i2c_resume()