Lines Matching refs:client

116 	struct i2c_client *client;  member
139 static int raydium_i2c_send(struct i2c_client *client, in raydium_i2c_send() argument
154 ret = i2c_master_send(client, buf, len + 1); in raydium_i2c_send()
166 dev_err(&client->dev, "%s failed: %d\n", __func__, ret); in raydium_i2c_send()
173 static int raydium_i2c_read(struct i2c_client *client, in raydium_i2c_read() argument
178 .addr = client->addr, in raydium_i2c_read()
183 .addr = client->addr, in raydium_i2c_read()
191 ret = i2c_transfer(client->adapter, xfer, ARRAY_SIZE(xfer)); in raydium_i2c_read()
198 static int raydium_i2c_read_message(struct i2c_client *client, in raydium_i2c_read_message() argument
210 error = raydium_i2c_send(client, RM_CMD_BANK_SWITCH, in raydium_i2c_read_message()
213 error = raydium_i2c_read(client, addr & 0xff, in raydium_i2c_read_message()
226 static int raydium_i2c_send_message(struct i2c_client *client, in raydium_i2c_send_message() argument
232 error = raydium_i2c_send(client, RM_CMD_BANK_SWITCH, in raydium_i2c_send_message()
235 error = raydium_i2c_send(client, addr & 0xff, data, len); in raydium_i2c_send_message()
240 static int raydium_i2c_sw_reset(struct i2c_client *client) in raydium_i2c_sw_reset() argument
245 error = raydium_i2c_send_message(client, RM_RESET_MSG_ADDR, in raydium_i2c_sw_reset()
248 dev_err(&client->dev, "software reset failed: %d\n", error); in raydium_i2c_sw_reset()
259 struct i2c_client *client = ts->client; in raydium_i2c_query_ts_info() local
266 error = raydium_i2c_read(client, RM_CMD_DATA_BANK, in raydium_i2c_query_ts_info()
277 dev_warn(&client->dev, in raydium_i2c_query_ts_info()
288 dev_dbg(&client->dev, in raydium_i2c_query_ts_info()
292 error = raydium_i2c_read(client, RM_CMD_QUERY_BANK, in raydium_i2c_query_ts_info()
298 error = raydium_i2c_read_message(client, in raydium_i2c_query_ts_info()
307 dev_err(&client->dev, "failed to query device parameters: %d\n", error); in raydium_i2c_query_ts_info()
313 struct i2c_client *client = ts->client; in raydium_i2c_check_fw_status() local
319 error = raydium_i2c_read(client, RM_CMD_BOOT_READ, buf, sizeof(buf)); in raydium_i2c_check_fw_status()
333 struct i2c_client *client = ts->client; in raydium_i2c_initialize() local
342 dev_err(&client->dev, in raydium_i2c_initialize()
367 static int raydium_i2c_bl_chk_state(struct i2c_client *client, in raydium_i2c_bl_chk_state() argument
381 error = raydium_i2c_read(client, RM_CMD_BOOT_CHK, in raydium_i2c_bl_chk_state()
389 error = raydium_i2c_read(client, RM_CMD_BOOT_CHK, in raydium_i2c_bl_chk_state()
397 dev_err(&client->dev, "%s: invalid target state %d\n", in raydium_i2c_bl_chk_state()
408 static int raydium_i2c_write_object(struct i2c_client *client, in raydium_i2c_write_object() argument
414 error = raydium_i2c_send(client, RM_CMD_BOOT_WRT, data, len); in raydium_i2c_write_object()
416 dev_err(&client->dev, "WRT obj command failed: %d\n", in raydium_i2c_write_object()
421 error = raydium_i2c_send(client, RM_CMD_BOOT_ACK, NULL, 0); in raydium_i2c_write_object()
423 dev_err(&client->dev, "Ack obj command failed: %d\n", error); in raydium_i2c_write_object()
427 error = raydium_i2c_bl_chk_state(client, state); in raydium_i2c_write_object()
429 dev_err(&client->dev, "BL check state failed: %d\n", error); in raydium_i2c_write_object()
435 static bool raydium_i2c_boot_trigger(struct i2c_client *client) in raydium_i2c_boot_trigger() argument
450 error = raydium_i2c_write_object(client, cmd[i], sizeof(cmd[i]), in raydium_i2c_boot_trigger()
453 dev_err(&client->dev, in raydium_i2c_boot_trigger()
463 static bool raydium_i2c_fw_trigger(struct i2c_client *client) in raydium_i2c_fw_trigger() argument
476 error = raydium_i2c_write_object(client, cmd[i], sizeof(cmd[i]), in raydium_i2c_fw_trigger()
479 dev_err(&client->dev, in raydium_i2c_fw_trigger()
489 static int raydium_i2c_check_path(struct i2c_client *client) in raydium_i2c_check_path() argument
494 error = raydium_i2c_write_object(client, cmd, sizeof(cmd), in raydium_i2c_check_path()
497 dev_err(&client->dev, "check path command failed: %d\n", error); in raydium_i2c_check_path()
504 static int raydium_i2c_enter_bl(struct i2c_client *client) in raydium_i2c_enter_bl() argument
509 error = raydium_i2c_write_object(client, cal_cmd, sizeof(cal_cmd), in raydium_i2c_enter_bl()
512 dev_err(&client->dev, "enter bl command failed: %d\n", error); in raydium_i2c_enter_bl()
520 static int raydium_i2c_leave_bl(struct i2c_client *client) in raydium_i2c_leave_bl() argument
525 error = raydium_i2c_write_object(client, leave_cmd, sizeof(leave_cmd), in raydium_i2c_leave_bl()
528 dev_err(&client->dev, "leave bl command failed: %d\n", error); in raydium_i2c_leave_bl()
536 static int raydium_i2c_write_checksum(struct i2c_client *client, in raydium_i2c_write_checksum() argument
545 error = raydium_i2c_write_object(client, in raydium_i2c_write_checksum()
549 dev_err(&client->dev, "failed to write checksum: %d\n", in raydium_i2c_write_checksum()
557 static int raydium_i2c_disable_watch_dog(struct i2c_client *client) in raydium_i2c_disable_watch_dog() argument
562 error = raydium_i2c_write_object(client, cmd, sizeof(cmd), in raydium_i2c_disable_watch_dog()
565 dev_err(&client->dev, "disable watchdog command failed: %d\n", in raydium_i2c_disable_watch_dog()
573 static int raydium_i2c_fw_write_page(struct i2c_client *client, in raydium_i2c_fw_write_page() argument
594 error = raydium_i2c_write_object(client, buf, RM_BL_WRT_LEN, in raydium_i2c_fw_write_page()
597 dev_err(&client->dev, in raydium_i2c_fw_write_page()
624 struct i2c_client *client = ts->client; in raydium_i2c_do_update_firmware() local
634 dev_err(&client->dev, "Invalid firmware length\n"); in raydium_i2c_do_update_firmware()
640 dev_err(&client->dev, "Unable to access IC %d\n", error); in raydium_i2c_do_update_firmware()
646 error = raydium_i2c_enter_bl(client); in raydium_i2c_do_update_firmware()
650 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
662 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
669 error = raydium_i2c_disable_watch_dog(client); in raydium_i2c_do_update_firmware()
673 error = raydium_i2c_check_path(client); in raydium_i2c_do_update_firmware()
677 error = raydium_i2c_boot_trigger(client); in raydium_i2c_do_update_firmware()
679 dev_err(&client->dev, "send boot trigger fail: %d\n", error); in raydium_i2c_do_update_firmware()
692 error = raydium_i2c_fw_write_page(client, page_nr++, data, len); in raydium_i2c_do_update_firmware()
702 error = raydium_i2c_leave_bl(client); in raydium_i2c_do_update_firmware()
704 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
709 dev_dbg(&client->dev, "left boot loader mode\n"); in raydium_i2c_do_update_firmware()
714 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
721 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
727 error = raydium_i2c_fw_trigger(client); in raydium_i2c_do_update_firmware()
729 dev_err(&client->dev, "failed to trigger fw: %d\n", error); in raydium_i2c_do_update_firmware()
735 error = raydium_i2c_write_checksum(client, fw->size, fw_checksum); in raydium_i2c_do_update_firmware()
744 struct i2c_client *client = ts->client; in raydium_i2c_fw_update() local
754 dev_dbg(&client->dev, "firmware name: %s\n", fw_file); in raydium_i2c_fw_update()
756 error = request_firmware(&fw, fw_file, &client->dev); in raydium_i2c_fw_update()
758 dev_err(&client->dev, "Unable to open firmware %s\n", fw_file); in raydium_i2c_fw_update()
762 disable_irq(client->irq); in raydium_i2c_fw_update()
766 dev_err(&client->dev, "firmware update failed: %d\n", error); in raydium_i2c_fw_update()
773 dev_err(&client->dev, in raydium_i2c_fw_update()
783 enable_irq(client->irq); in raydium_i2c_fw_update()
837 error = raydium_i2c_read_message(ts->client, ts->data_bank_addr, in raydium_i2c_irq()
845 dev_warn(&ts->client->dev, in raydium_i2c_irq()
860 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_fw_ver_show() local
861 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_fw_ver_show()
869 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_hw_ver_show() local
870 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_hw_ver_show()
879 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_boot_mode_show() local
880 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_boot_mode_show()
891 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_update_fw_store() local
892 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_update_fw_store()
910 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_calibrate_store() local
911 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_calibrate_store()
919 error = raydium_i2c_write_object(client, cal_cmd, sizeof(cal_cmd), in raydium_i2c_calibrate_store()
922 dev_err(&client->dev, "calibrate command failed: %d\n", error); in raydium_i2c_calibrate_store()
958 dev_err(&ts->client->dev, in raydium_i2c_power_on()
966 dev_err(&ts->client->dev, in raydium_i2c_power_on()
995 static int raydium_i2c_probe(struct i2c_client *client, in raydium_i2c_probe() argument
1002 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in raydium_i2c_probe()
1003 dev_err(&client->dev, in raydium_i2c_probe()
1008 ts = devm_kzalloc(&client->dev, sizeof(*ts), GFP_KERNEL); in raydium_i2c_probe()
1014 ts->client = client; in raydium_i2c_probe()
1015 i2c_set_clientdata(client, ts); in raydium_i2c_probe()
1017 ts->avdd = devm_regulator_get(&client->dev, "avdd"); in raydium_i2c_probe()
1021 dev_err(&client->dev, in raydium_i2c_probe()
1026 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in raydium_i2c_probe()
1030 dev_err(&client->dev, in raydium_i2c_probe()
1035 ts->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", in raydium_i2c_probe()
1040 dev_err(&client->dev, in raydium_i2c_probe()
1049 error = devm_add_action(&client->dev, raydium_i2c_power_off, ts); in raydium_i2c_probe()
1051 dev_err(&client->dev, in raydium_i2c_probe()
1058 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in raydium_i2c_probe()
1060 dev_err(&client->dev, "nothing at this address\n"); in raydium_i2c_probe()
1066 dev_err(&client->dev, "failed to initialize: %d\n", error); in raydium_i2c_probe()
1070 ts->report_data = devm_kmalloc(&client->dev, in raydium_i2c_probe()
1075 ts->input = devm_input_allocate_device(&client->dev); in raydium_i2c_probe()
1077 dev_err(&client->dev, "Failed to allocate input device\n"); in raydium_i2c_probe()
1097 dev_err(&client->dev, in raydium_i2c_probe()
1104 dev_err(&client->dev, in raydium_i2c_probe()
1109 error = devm_request_threaded_irq(&client->dev, client->irq, in raydium_i2c_probe()
1111 IRQF_ONESHOT, client->name, ts); in raydium_i2c_probe()
1113 dev_err(&client->dev, "Failed to register interrupt\n"); in raydium_i2c_probe()
1117 error = devm_device_add_group(&client->dev, in raydium_i2c_probe()
1120 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in raydium_i2c_probe()
1128 static void __maybe_unused raydium_enter_sleep(struct i2c_client *client) in raydium_enter_sleep() argument
1133 error = raydium_i2c_send(client, RM_CMD_ENTER_SLEEP, in raydium_enter_sleep()
1136 dev_err(&client->dev, in raydium_enter_sleep()
1142 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_suspend() local
1143 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_suspend()
1149 disable_irq(client->irq); in raydium_i2c_suspend()
1152 raydium_enter_sleep(client); in raydium_i2c_suspend()
1154 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in raydium_i2c_suspend()
1164 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_resume() local
1165 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_resume()
1169 disable_irq_wake(client->irq); in raydium_i2c_resume()
1170 raydium_i2c_sw_reset(client); in raydium_i2c_resume()
1176 enable_irq(client->irq); in raydium_i2c_resume()