Lines Matching refs:lvts_data
22 static void lvts_write_device_nodelay(struct lvts_data *lvts_data, in lvts_write_device_nodelay() argument
27 base = GET_BASE_ADDR(lvts_data, tc_id); in lvts_write_device_nodelay()
32 static void lvts_write_data_check(struct lvts_data *lvts_data, uint32_t data, in lvts_write_data_check() argument
39 base = GET_BASE_ADDR(lvts_data, tc_id); in lvts_write_data_check()
52 void lvts_write_all_device(struct lvts_data *lvts_data, uint32_t data) in lvts_write_all_device() argument
55 struct tc_settings *tc = lvts_data->tc; in lvts_write_all_device()
57 for (tc_id = 0; tc_id < lvts_data->num_tc; tc_id++) { in lvts_write_all_device()
61 lvts_write_device_nodelay(lvts_data, data, tc_id); in lvts_write_all_device()
64 for (tc_id = 0; tc_id < lvts_data->num_tc; tc_id++) { in lvts_write_all_device()
68 lvts_write_data_check(lvts_data, data, tc_id); in lvts_write_all_device()
72 void lvts_write_device(struct lvts_data *lvts_data, uint32_t data, in lvts_write_device() argument
79 base = GET_BASE_ADDR(lvts_data, tc_id); in lvts_write_device()
98 uint32_t lvts_read_device(struct lvts_data *lvts_data, uint32_t reg_idx, in lvts_read_device() argument
106 base = GET_BASE_ADDR(lvts_data, tc_id); in lvts_read_device()
133 struct lvts_data *lvts_data) in lvts_thermal_check_all_sensing_point_idle() argument
138 struct tc_settings *tc = lvts_data->tc; in lvts_thermal_check_all_sensing_point_idle()
142 for (i = 0; i < lvts_data->num_tc; i++) { in lvts_thermal_check_all_sensing_point_idle()
146 base = GET_BASE_ADDR(lvts_data, i); in lvts_thermal_check_all_sensing_point_idle()
165 static void wait_all_tc_sensing_point_idle(struct lvts_data *lvts_data) in wait_all_tc_sensing_point_idle() argument
171 struct tc_settings *tc = lvts_data->tc; in wait_all_tc_sensing_point_idle()
177 temp = lvts_thermal_check_all_sensing_point_idle(lvts_data); in wait_all_tc_sensing_point_idle()
189 for (i = 0; i < lvts_data->num_tc; i++) { in wait_all_tc_sensing_point_idle()
193 base = GET_BASE_ADDR(lvts_data, i); in wait_all_tc_sensing_point_idle()
218 static void disable_all_sensing_points(struct lvts_data *lvts_data) in disable_all_sensing_points() argument
222 struct tc_settings *tc = lvts_data->tc; in disable_all_sensing_points()
224 for (i = 0; i < lvts_data->num_tc; i++) { in disable_all_sensing_points()
228 base = GET_BASE_ADDR(lvts_data, i); in disable_all_sensing_points()
234 static void enable_all_sensing_points(struct lvts_data *lvts_data) in enable_all_sensing_points() argument
236 struct tc_settings *tc = lvts_data->tc; in enable_all_sensing_points()
241 for (i = 0; i < lvts_data->num_tc; i++) { in enable_all_sensing_points()
245 base = GET_BASE_ADDR(lvts_data, i); in enable_all_sensing_points()
266 void set_polling_speed(struct lvts_data *lvts_data, unsigned int tc_id) in set_polling_speed() argument
268 struct tc_settings *tc = lvts_data->tc; in set_polling_speed()
272 base = GET_BASE_ADDR(lvts_data, tc_id); in set_polling_speed()
311 void set_hw_filter(struct lvts_data *lvts_data, unsigned int tc_id) in set_hw_filter() argument
313 struct tc_settings *tc = lvts_data->tc; in set_hw_filter()
317 base = GET_BASE_ADDR(lvts_data, tc_id); in set_hw_filter()
333 unsigned int get_dominator_index(struct lvts_data *lvts_data, in get_dominator_index() argument
336 struct tc_settings *tc = lvts_data->tc; in get_dominator_index()
356 static void set_all_tc_hw_reboot(struct lvts_data *lvts_data) in set_all_tc_hw_reboot() argument
358 struct tc_settings *tc = lvts_data->tc; in set_all_tc_hw_reboot()
362 for (i = 0; i < lvts_data->num_tc; i++) { in set_all_tc_hw_reboot()
372 disable_hw_reboot_interrupt(lvts_data, i); in set_all_tc_hw_reboot()
376 set_tc_hw_reboot_threshold(lvts_data, trip_point, i); in set_all_tc_hw_reboot()
380 static bool lvts_lk_init_check(struct lvts_data *lvts_data) in lvts_lk_init_check() argument
386 struct tc_settings *tc = lvts_data->tc; in lvts_lk_init_check()
388 for (i = 0; i < lvts_data->num_tc; i++) { in lvts_lk_init_check()
392 base = GET_BASE_ADDR(lvts_data, i); in lvts_lk_init_check()
409 static void lvts_set_init_flag_tfa(struct lvts_data *lvts_data) in lvts_set_init_flag_tfa() argument
413 struct tc_settings *tc = lvts_data->tc; in lvts_set_init_flag_tfa()
417 for (i = 0; i < lvts_data->num_tc; i++) { in lvts_set_init_flag_tfa()
421 base = GET_BASE_ADDR(lvts_data, i); in lvts_set_init_flag_tfa()
429 static void lvts_clear_init_flag_tfa(struct lvts_data *lvts_data) in lvts_clear_init_flag_tfa() argument
433 struct tc_settings *tc = lvts_data->tc; in lvts_clear_init_flag_tfa()
435 for (i = 0; i < lvts_data->num_tc; i++) { in lvts_clear_init_flag_tfa()
439 base = GET_BASE_ADDR(lvts_data, i); in lvts_clear_init_flag_tfa()
445 static int read_calibration_data(struct lvts_data *lvts_data) in read_calibration_data() argument
447 struct tc_settings *tc = lvts_data->tc; in read_calibration_data()
450 struct sensor_cal_data *cal_data = &lvts_data->cal_data; in read_calibration_data()
452 for (i = 0; i < lvts_data->num_tc; i++) { in read_calibration_data()
456 base = GET_BASE_ADDR(lvts_data, i); in read_calibration_data()
473 static int lvts_init(struct lvts_data *lvts_data) in lvts_init() argument
475 struct platform_ops *ops = &lvts_data->ops; in lvts_init()
483 lk_init = lvts_lk_init_check(lvts_data); in lvts_init()
485 ret = read_calibration_data(lvts_data); in lvts_init()
487 lvts_set_init_flag_tfa(lvts_data); in lvts_init()
488 lvts_data->init_done = true; in lvts_init()
494 ops->lvts_reset(lvts_data); in lvts_init()
497 ops->device_identification(lvts_data); in lvts_init()
500 ops->device_enable_and_init(lvts_data); in lvts_init()
502 if (IS_ENABLE(lvts_data, (int)FEATURE_DEVICE_AUTO_RCK)) { in lvts_init()
504 ops->device_enable_auto_rck(lvts_data); in lvts_init()
507 ops->device_read_count_rc_n(lvts_data); in lvts_init()
511 ops->set_cal_data(lvts_data); in lvts_init()
513 disable_all_sensing_points(lvts_data); in lvts_init()
514 wait_all_tc_sensing_point_idle(lvts_data); in lvts_init()
516 ops->init_controller(lvts_data); in lvts_init()
518 set_all_tc_hw_reboot(lvts_data); in lvts_init()
519 enable_all_sensing_points(lvts_data); in lvts_init()
520 lvts_set_init_flag_tfa(lvts_data); in lvts_init()
521 lvts_data->init_done = true; in lvts_init()
526 static int update_lvts_data_from_efuse(struct lvts_data *lvts_data) in update_lvts_data_from_efuse() argument
528 struct platform_ops *ops = &lvts_data->ops; in update_lvts_data_from_efuse()
531 ops->get_calibration_data(lvts_data); in update_lvts_data_from_efuse()
534 ops->efuse_to_cal_data(lvts_data); in update_lvts_data_from_efuse()
537 ops->check_cal_data(lvts_data); in update_lvts_data_from_efuse()
540 ops->update_coef_data(lvts_data); in update_lvts_data_from_efuse()
545 static void lvts_close(struct lvts_data *lvts_data) in lvts_close() argument
549 lvts_data->ops.lvts_reset(lvts_data); in lvts_close()
551 lvts_clear_init_flag_tfa(lvts_data); in lvts_close()
556 void set_calibration_data_v1(struct lvts_data *lvts_data) in set_calibration_data_v1() argument
558 struct tc_settings *tc = lvts_data->tc; in set_calibration_data_v1()
559 struct sensor_cal_data *cal_data = &lvts_data->cal_data; in set_calibration_data_v1()
564 for (i = 0; i < lvts_data->num_tc; i++) { in set_calibration_data_v1()
568 base = GET_BASE_ADDR(lvts_data, i); in set_calibration_data_v1()
575 if (IS_ENABLE(lvts_data, (int)FEATURE_DEVICE_AUTO_RCK)) in set_calibration_data_v1()
588 struct lvts_data *lvts_data; in lvts_thermal_init() local
591 lvts_data = &lvts_data_instance; in lvts_thermal_init()
593 ret = update_lvts_data_from_efuse(lvts_data); in lvts_thermal_init()
597 ret = lvts_init(lvts_data); in lvts_thermal_init()
605 static int lvts_suspend_callback(struct lvts_data *lvts_data) in lvts_suspend_callback() argument
607 lvts_close(lvts_data); in lvts_suspend_callback()
612 static int lvts_resume_callback(struct lvts_data *lvts_data) in lvts_resume_callback() argument
614 return lvts_init(lvts_data); in lvts_resume_callback()
621 struct lvts_data *lvts_data = &lvts_data_instance; in lvts_pm_suspend_event_handler() local
629 ret = lvts_suspend_callback(lvts_data); in lvts_pm_suspend_event_handler()
636 ret = lvts_resume_callback(lvts_data); in lvts_pm_suspend_event_handler()