aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/thermal/rockchip_thermal.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/thermal/rockchip_thermal.c')
-rw-r--r--drivers/thermal/rockchip_thermal.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
index 4c7796512453..206035139110 100644
--- a/drivers/thermal/rockchip_thermal.c
+++ b/drivers/thermal/rockchip_thermal.c
@@ -320,6 +320,44 @@ static const struct tsadc_table rk3288_code_table[] = {
320 {0, 125000}, 320 {0, 125000},
321}; 321};
322 322
323static const struct tsadc_table rk3328_code_table[] = {
324 {0, -40000},
325 {296, -40000},
326 {304, -35000},
327 {313, -30000},
328 {331, -20000},
329 {340, -15000},
330 {349, -10000},
331 {359, -5000},
332 {368, 0},
333 {378, 5000},
334 {388, 10000},
335 {398, 15000},
336 {408, 20000},
337 {418, 25000},
338 {429, 30000},
339 {440, 35000},
340 {451, 40000},
341 {462, 45000},
342 {473, 50000},
343 {485, 55000},
344 {496, 60000},
345 {508, 65000},
346 {521, 70000},
347 {533, 75000},
348 {546, 80000},
349 {559, 85000},
350 {572, 90000},
351 {586, 95000},
352 {600, 100000},
353 {614, 105000},
354 {629, 110000},
355 {644, 115000},
356 {659, 120000},
357 {675, 125000},
358 {TSADCV2_DATA_MASK, 125000},
359};
360
323static const struct tsadc_table rk3368_code_table[] = { 361static const struct tsadc_table rk3368_code_table[] = {
324 {0, -40000}, 362 {0, -40000},
325 {106, -40000}, 363 {106, -40000},
@@ -790,6 +828,29 @@ static const struct rockchip_tsadc_chip rk3288_tsadc_data = {
790 }, 828 },
791}; 829};
792 830
831static const struct rockchip_tsadc_chip rk3328_tsadc_data = {
832 .chn_id[SENSOR_CPU] = 0, /* cpu sensor is channel 0 */
833 .chn_num = 1, /* one channels for tsadc */
834
835 .tshut_mode = TSHUT_MODE_CRU, /* default TSHUT via CRU */
836 .tshut_temp = 95000,
837
838 .initialize = rk_tsadcv2_initialize,
839 .irq_ack = rk_tsadcv3_irq_ack,
840 .control = rk_tsadcv3_control,
841 .get_temp = rk_tsadcv2_get_temp,
842 .set_alarm_temp = rk_tsadcv2_alarm_temp,
843 .set_tshut_temp = rk_tsadcv2_tshut_temp,
844 .set_tshut_mode = rk_tsadcv2_tshut_mode,
845
846 .table = {
847 .id = rk3328_code_table,
848 .length = ARRAY_SIZE(rk3328_code_table),
849 .data_mask = TSADCV2_DATA_MASK,
850 .mode = ADC_INCREMENT,
851 },
852};
853
793static const struct rockchip_tsadc_chip rk3366_tsadc_data = { 854static const struct rockchip_tsadc_chip rk3366_tsadc_data = {
794 .chn_id[SENSOR_CPU] = 0, /* cpu sensor is channel 0 */ 855 .chn_id[SENSOR_CPU] = 0, /* cpu sensor is channel 0 */
795 .chn_id[SENSOR_GPU] = 1, /* gpu sensor is channel 1 */ 856 .chn_id[SENSOR_GPU] = 1, /* gpu sensor is channel 1 */
@@ -875,6 +936,10 @@ static const struct of_device_id of_rockchip_thermal_match[] = {
875 .data = (void *)&rk3288_tsadc_data, 936 .data = (void *)&rk3288_tsadc_data,
876 }, 937 },
877 { 938 {
939 .compatible = "rockchip,rk3328-tsadc",
940 .data = (void *)&rk3328_tsadc_data,
941 },
942 {
878 .compatible = "rockchip,rk3366-tsadc", 943 .compatible = "rockchip,rk3366-tsadc",
879 .data = (void *)&rk3366_tsadc_data, 944 .data = (void *)&rk3366_tsadc_data,
880 }, 945 },