Lines Matching refs:client

118 	struct i2c_client *client;  member
150 static int raydium_i2c_xfer(struct i2c_client *client, u32 addr, in raydium_i2c_xfer() argument
161 ret = i2c_transfer(client->adapter, &xfer[xfer_start_idx], xfer_count); in raydium_i2c_xfer()
168 static int raydium_i2c_send(struct i2c_client *client, in raydium_i2c_send() argument
201 .addr = client->addr, in raydium_i2c_send()
206 .addr = client->addr, in raydium_i2c_send()
212 error = raydium_i2c_xfer(client, addr, xfer, ARRAY_SIZE(xfer)); in raydium_i2c_send()
219 dev_err(&client->dev, "%s failed: %d\n", __func__, error); in raydium_i2c_send()
223 static int raydium_i2c_read(struct i2c_client *client, in raydium_i2c_read() argument
248 .addr = client->addr, in raydium_i2c_read()
253 .addr = client->addr, in raydium_i2c_read()
258 .addr = client->addr, in raydium_i2c_read()
265 error = raydium_i2c_xfer(client, addr, xfer, ARRAY_SIZE(xfer)); in raydium_i2c_read()
277 static int raydium_i2c_sw_reset(struct i2c_client *client) in raydium_i2c_sw_reset() argument
282 error = raydium_i2c_send(client, RM_RESET_MSG_ADDR, &soft_rst_cmd, in raydium_i2c_sw_reset()
285 dev_err(&client->dev, "software reset failed: %d\n", error); in raydium_i2c_sw_reset()
296 struct i2c_client *client = ts->client; in raydium_i2c_query_ts_bootloader_info() local
303 error = raydium_i2c_send(client, RM_CMD_BOOT_WRT, in raydium_i2c_query_ts_bootloader_info()
306 dev_err(&client->dev, "WRT HWID command failed: %d\n", error); in raydium_i2c_query_ts_bootloader_info()
310 error = raydium_i2c_send(client, RM_CMD_BOOT_ACK, rbuf, 1); in raydium_i2c_query_ts_bootloader_info()
312 dev_err(&client->dev, "Ack HWID command failed: %d\n", error); in raydium_i2c_query_ts_bootloader_info()
316 error = raydium_i2c_read(client, RM_CMD_BOOT_CHK, rbuf, sizeof(rbuf)); in raydium_i2c_query_ts_bootloader_info()
318 dev_err(&client->dev, "Read HWID command failed: %d (%4ph)\n", in raydium_i2c_query_ts_bootloader_info()
334 struct i2c_client *client = ts->client; in raydium_i2c_query_ts_info() local
341 error = raydium_i2c_read(client, RM_CMD_DATA_BANK, in raydium_i2c_query_ts_info()
352 dev_warn(&client->dev, in raydium_i2c_query_ts_info()
363 dev_dbg(&client->dev, in raydium_i2c_query_ts_info()
367 error = raydium_i2c_read(client, RM_CMD_QUERY_BANK, in raydium_i2c_query_ts_info()
373 error = raydium_i2c_read(client, le32_to_cpu(query_bank_addr), in raydium_i2c_query_ts_info()
381 dev_err(&client->dev, "failed to query device parameters: %d\n", error); in raydium_i2c_query_ts_info()
387 struct i2c_client *client = ts->client; in raydium_i2c_check_fw_status() local
393 error = raydium_i2c_read(client, RM_CMD_BOOT_READ, buf, sizeof(buf)); in raydium_i2c_check_fw_status()
407 struct i2c_client *client = ts->client; in raydium_i2c_initialize() local
416 dev_err(&client->dev, in raydium_i2c_initialize()
438 static int raydium_i2c_bl_chk_state(struct i2c_client *client, in raydium_i2c_bl_chk_state() argument
452 error = raydium_i2c_read(client, RM_CMD_BOOT_CHK, in raydium_i2c_bl_chk_state()
460 error = raydium_i2c_read(client, RM_CMD_BOOT_CHK, in raydium_i2c_bl_chk_state()
468 dev_err(&client->dev, "%s: invalid target state %d\n", in raydium_i2c_bl_chk_state()
479 static int raydium_i2c_write_object(struct i2c_client *client, in raydium_i2c_write_object() argument
486 error = raydium_i2c_send(client, RM_CMD_BOOT_WRT, data, len); in raydium_i2c_write_object()
488 dev_err(&client->dev, "WRT obj command failed: %d\n", in raydium_i2c_write_object()
493 error = raydium_i2c_send(client, RM_CMD_BOOT_ACK, cmd, sizeof(cmd)); in raydium_i2c_write_object()
495 dev_err(&client->dev, "Ack obj command failed: %d\n", error); in raydium_i2c_write_object()
499 error = raydium_i2c_bl_chk_state(client, state); in raydium_i2c_write_object()
501 dev_err(&client->dev, "BL check state failed: %d\n", error); in raydium_i2c_write_object()
507 static int raydium_i2c_boot_trigger(struct i2c_client *client) in raydium_i2c_boot_trigger() argument
522 error = raydium_i2c_write_object(client, cmd[i], sizeof(cmd[i]), in raydium_i2c_boot_trigger()
525 dev_err(&client->dev, in raydium_i2c_boot_trigger()
535 static int raydium_i2c_fw_trigger(struct i2c_client *client) in raydium_i2c_fw_trigger() argument
548 error = raydium_i2c_write_object(client, cmd[i], sizeof(cmd[i]), in raydium_i2c_fw_trigger()
551 dev_err(&client->dev, in raydium_i2c_fw_trigger()
561 static int raydium_i2c_check_path(struct i2c_client *client) in raydium_i2c_check_path() argument
566 error = raydium_i2c_write_object(client, cmd, sizeof(cmd), in raydium_i2c_check_path()
569 dev_err(&client->dev, "check path command failed: %d\n", error); in raydium_i2c_check_path()
576 static int raydium_i2c_enter_bl(struct i2c_client *client) in raydium_i2c_enter_bl() argument
581 error = raydium_i2c_write_object(client, cal_cmd, sizeof(cal_cmd), in raydium_i2c_enter_bl()
584 dev_err(&client->dev, "enter bl command failed: %d\n", error); in raydium_i2c_enter_bl()
592 static int raydium_i2c_leave_bl(struct i2c_client *client) in raydium_i2c_leave_bl() argument
597 error = raydium_i2c_write_object(client, leave_cmd, sizeof(leave_cmd), in raydium_i2c_leave_bl()
600 dev_err(&client->dev, "leave bl command failed: %d\n", error); in raydium_i2c_leave_bl()
608 static int raydium_i2c_write_checksum(struct i2c_client *client, in raydium_i2c_write_checksum() argument
617 error = raydium_i2c_write_object(client, in raydium_i2c_write_checksum()
621 dev_err(&client->dev, "failed to write checksum: %d\n", in raydium_i2c_write_checksum()
629 static int raydium_i2c_disable_watch_dog(struct i2c_client *client) in raydium_i2c_disable_watch_dog() argument
634 error = raydium_i2c_write_object(client, cmd, sizeof(cmd), in raydium_i2c_disable_watch_dog()
637 dev_err(&client->dev, "disable watchdog command failed: %d\n", in raydium_i2c_disable_watch_dog()
645 static int raydium_i2c_fw_write_page(struct i2c_client *client, in raydium_i2c_fw_write_page() argument
666 error = raydium_i2c_write_object(client, buf, RM_BL_WRT_LEN, in raydium_i2c_fw_write_page()
669 dev_err(&client->dev, in raydium_i2c_fw_write_page()
696 struct i2c_client *client = ts->client; in raydium_i2c_do_update_firmware() local
706 dev_err(&client->dev, "Invalid firmware length\n"); in raydium_i2c_do_update_firmware()
712 dev_err(&client->dev, "Unable to access IC %d\n", error); in raydium_i2c_do_update_firmware()
718 error = raydium_i2c_enter_bl(client); in raydium_i2c_do_update_firmware()
722 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
734 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
741 error = raydium_i2c_disable_watch_dog(client); in raydium_i2c_do_update_firmware()
745 error = raydium_i2c_check_path(client); in raydium_i2c_do_update_firmware()
749 error = raydium_i2c_boot_trigger(client); in raydium_i2c_do_update_firmware()
751 dev_err(&client->dev, "send boot trigger fail: %d\n", error); in raydium_i2c_do_update_firmware()
764 error = raydium_i2c_fw_write_page(client, page_nr++, data, len); in raydium_i2c_do_update_firmware()
774 error = raydium_i2c_leave_bl(client); in raydium_i2c_do_update_firmware()
776 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
781 dev_dbg(&client->dev, "left boot loader mode\n"); in raydium_i2c_do_update_firmware()
786 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
793 dev_err(&client->dev, in raydium_i2c_do_update_firmware()
799 error = raydium_i2c_fw_trigger(client); in raydium_i2c_do_update_firmware()
801 dev_err(&client->dev, "failed to trigger fw: %d\n", error); in raydium_i2c_do_update_firmware()
807 error = raydium_i2c_write_checksum(client, fw->size, fw_checksum); in raydium_i2c_do_update_firmware()
816 struct i2c_client *client = ts->client; in raydium_i2c_fw_update() local
826 dev_dbg(&client->dev, "firmware name: %s\n", fw_file); in raydium_i2c_fw_update()
828 error = request_firmware(&fw, fw_file, &client->dev); in raydium_i2c_fw_update()
830 dev_err(&client->dev, "Unable to open firmware %s\n", fw_file); in raydium_i2c_fw_update()
834 disable_irq(client->irq); in raydium_i2c_fw_update()
838 dev_err(&client->dev, "firmware update failed: %d\n", error); in raydium_i2c_fw_update()
845 dev_err(&client->dev, in raydium_i2c_fw_update()
855 enable_irq(client->irq); in raydium_i2c_fw_update()
909 error = raydium_i2c_read(ts->client, ts->data_bank_addr, in raydium_i2c_irq()
917 dev_warn(&ts->client->dev, in raydium_i2c_irq()
932 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_fw_ver_show() local
933 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_fw_ver_show()
941 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_hw_ver_show() local
942 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_hw_ver_show()
951 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_boot_mode_show() local
952 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_boot_mode_show()
963 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_update_fw_store() local
964 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_update_fw_store()
982 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_calibrate_store() local
983 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_calibrate_store()
991 error = raydium_i2c_write_object(client, cal_cmd, sizeof(cal_cmd), in raydium_i2c_calibrate_store()
994 dev_err(&client->dev, "calibrate command failed: %d\n", error); in raydium_i2c_calibrate_store()
1030 dev_err(&ts->client->dev, in raydium_i2c_power_on()
1038 dev_err(&ts->client->dev, in raydium_i2c_power_on()
1067 static int raydium_i2c_probe(struct i2c_client *client, in raydium_i2c_probe() argument
1074 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in raydium_i2c_probe()
1075 dev_err(&client->dev, in raydium_i2c_probe()
1080 ts = devm_kzalloc(&client->dev, sizeof(*ts), GFP_KERNEL); in raydium_i2c_probe()
1086 ts->client = client; in raydium_i2c_probe()
1087 i2c_set_clientdata(client, ts); in raydium_i2c_probe()
1089 ts->avdd = devm_regulator_get(&client->dev, "avdd"); in raydium_i2c_probe()
1093 dev_err(&client->dev, in raydium_i2c_probe()
1098 ts->vccio = devm_regulator_get(&client->dev, "vccio"); in raydium_i2c_probe()
1102 dev_err(&client->dev, in raydium_i2c_probe()
1107 ts->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", in raydium_i2c_probe()
1112 dev_err(&client->dev, in raydium_i2c_probe()
1121 error = devm_add_action_or_reset(&client->dev, in raydium_i2c_probe()
1124 dev_err(&client->dev, in raydium_i2c_probe()
1130 if (i2c_smbus_xfer(client->adapter, client->addr, 0, in raydium_i2c_probe()
1132 dev_err(&client->dev, "nothing at this address\n"); in raydium_i2c_probe()
1138 dev_err(&client->dev, "failed to initialize: %d\n", error); in raydium_i2c_probe()
1142 ts->report_data = devm_kmalloc(&client->dev, in raydium_i2c_probe()
1147 ts->input = devm_input_allocate_device(&client->dev); in raydium_i2c_probe()
1149 dev_err(&client->dev, "Failed to allocate input device\n"); in raydium_i2c_probe()
1169 dev_err(&client->dev, in raydium_i2c_probe()
1176 dev_err(&client->dev, in raydium_i2c_probe()
1181 error = devm_request_threaded_irq(&client->dev, client->irq, in raydium_i2c_probe()
1183 IRQF_ONESHOT, client->name, ts); in raydium_i2c_probe()
1185 dev_err(&client->dev, "Failed to register interrupt\n"); in raydium_i2c_probe()
1189 error = devm_device_add_group(&client->dev, in raydium_i2c_probe()
1192 dev_err(&client->dev, "failed to create sysfs attributes: %d\n", in raydium_i2c_probe()
1200 static void __maybe_unused raydium_enter_sleep(struct i2c_client *client) in raydium_enter_sleep() argument
1205 error = raydium_i2c_send(client, RM_CMD_ENTER_SLEEP, in raydium_enter_sleep()
1208 dev_err(&client->dev, in raydium_enter_sleep()
1214 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_suspend() local
1215 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_suspend()
1221 disable_irq(client->irq); in raydium_i2c_suspend()
1224 raydium_enter_sleep(client); in raydium_i2c_suspend()
1226 ts->wake_irq_enabled = (enable_irq_wake(client->irq) == 0); in raydium_i2c_suspend()
1236 struct i2c_client *client = to_i2c_client(dev); in raydium_i2c_resume() local
1237 struct raydium_data *ts = i2c_get_clientdata(client); in raydium_i2c_resume()
1241 disable_irq_wake(client->irq); in raydium_i2c_resume()
1242 raydium_i2c_sw_reset(client); in raydium_i2c_resume()
1248 enable_irq(client->irq); in raydium_i2c_resume()