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 bool 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 bool 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
763 dev_dbg(&client->dev, "firmware name: %s\n", fw_file); in raydium_i2c_fw_update()
765 error = request_firmware(&fw, fw_file, &client->dev); in raydium_i2c_fw_update()
767 dev_err(&client->dev, "Unable to open firmware %s\n", fw_file); in raydium_i2c_fw_update()
771 disable_irq(client->irq); in raydium_i2c_fw_update()
775 dev_err(&client->dev, "firmware update failed: %d\n", error); in raydium_i2c_fw_update()
782 dev_err(&client->dev, in raydium_i2c_fw_update()
792 enable_irq(client->irq); in raydium_i2c_fw_update()
846 error = raydium_i2c_read_message(ts->client, ts->data_bank_addr, in raydium_i2c_irq()
854 dev_warn(&ts->client->dev, in raydium_i2c_irq()
869 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_fw_ver_show() local
870 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_fw_ver_show()
878 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_hw_ver_show() local
879 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_hw_ver_show()
888 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_boot_mode_show() local
889 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_boot_mode_show()
900 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_update_fw_store() local
901 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_update_fw_store()
919 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_calibrate_store() local
920 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_calibrate_store()
928 error = raydium_i2c_write_object(client, cal_cmd, sizeof(cal_cmd), in raydium_i2c_calibrate_store()
931 dev_err(&client->dev, "calibrate command failed: %d\n", error); in raydium_i2c_calibrate_store()
967 dev_err(&ts->client->dev, in raydium_i2c_power_on()
975 dev_err(&ts->client->dev, in raydium_i2c_power_on()
1004 static int raydium_i2c_probe(struct i2c_client *client, in raydium_i2c_probe() argument
1011 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in raydium_i2c_probe()
1012 dev_err(&client->dev, in raydium_i2c_probe()
1017 ts = devm_kzalloc(&client->dev, sizeof(*ts), GFP_KERNEL); in raydium_i2c_probe()
1023 ts->client = client; in raydium_i2c_probe()
1024 i2c_set_clientdata(client, ts); in raydium_i2c_probe()
1026 ts->avdd = devm_regulator_get(&client->dev, "avdd"); in raydium_i2c_probe()
1030 dev_err(&client->dev, in raydium_i2c_probe()
1035 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in raydium_i2c_probe()
1039 dev_err(&client->dev, in raydium_i2c_probe()
1044 ts->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", in raydium_i2c_probe()
1049 dev_err(&client->dev, in raydium_i2c_probe()
1058 error = devm_add_action(&client->dev, raydium_i2c_power_off, ts); in raydium_i2c_probe()
1060 dev_err(&client->dev, in raydium_i2c_probe()
1067 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in raydium_i2c_probe()
1069 dev_err(&client->dev, "nothing at this address\n"); in raydium_i2c_probe()
1075 dev_err(&client->dev, "failed to initialize: %d\n", error); in raydium_i2c_probe()
1079 ts->report_data = devm_kmalloc(&client->dev, in raydium_i2c_probe()
1084 ts->input = devm_input_allocate_device(&client->dev); in raydium_i2c_probe()
1086 dev_err(&client->dev, "Failed to allocate input device\n"); in raydium_i2c_probe()
1106 dev_err(&client->dev, in raydium_i2c_probe()
1113 dev_err(&client->dev, in raydium_i2c_probe()
1118 error = devm_request_threaded_irq(&client->dev, client->irq, in raydium_i2c_probe()
1120 IRQF_ONESHOT, client->name, ts); in raydium_i2c_probe()
1122 dev_err(&client->dev, "Failed to register interrupt\n"); in raydium_i2c_probe()
1126 error = devm_device_add_group(&client->dev, in raydium_i2c_probe()
1129 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in raydium_i2c_probe()
1137 static void __maybe_unused raydium_enter_sleep(struct i2c_client *client) in raydium_enter_sleep() argument
1142 error = raydium_i2c_send(client, RM_CMD_ENTER_SLEEP, in raydium_enter_sleep()
1145 dev_err(&client->dev, in raydium_enter_sleep()
1151 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_suspend() local
1152 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_suspend()
1158 disable_irq(client->irq); in raydium_i2c_suspend()
1161 raydium_enter_sleep(client); in raydium_i2c_suspend()
1163 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in raydium_i2c_suspend()
1173 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_resume() local
1174 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_resume()
1178 disable_irq_wake(client->irq); in raydium_i2c_resume()
1179 raydium_i2c_sw_reset(client); in raydium_i2c_resume()
1185 enable_irq(client->irq); in raydium_i2c_resume()