diff options
author | Elaine Zhang <zhangqing@rock-chips.com> | 2018-08-27 16:03:46 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-08-28 18:29:26 +0800 |
commit | 25353ec0055d43483c8f97ef7d2a299bc76bc090 (patch) | |
tree | bd0e0bb7ad78d477be0fafee19e4eb7ae489fb87 /drivers/thermal/rockchip_thermal.c | |
parent | 90a51eb7bcb1b61705edb4138a91f7872307c334 (diff) |
thermal: rockchip: add tsadc support for rk1808
Change-Id: Icc0bb8a076a3fbd5f8ab70db8d7e032165528ae8
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Diffstat (limited to 'drivers/thermal/rockchip_thermal.c')
-rw-r--r-- | drivers/thermal/rockchip_thermal.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c index 3b6dd43dc3fb..4b9be6fd2cfa 100644 --- a/drivers/thermal/rockchip_thermal.c +++ b/drivers/thermal/rockchip_thermal.c @@ -257,6 +257,45 @@ struct tsadc_table { int temp; }; +static const struct tsadc_table rk1808_code_table[] = { + {TSADCV2_DATA_MASK, -40000}, + {641, -40000}, + {633, -35000}, + {625, -30000}, + {617, -25000}, + {609, -20000}, + {601, -15000}, + {593, -10000}, + {585, -5000}, + {577, 0}, + {569, 5000}, + {561, 10000}, + {553, 15000}, + {545, 20000}, + {537, 25000}, + {529, 30000}, + {520, 35000}, + {512, 40000}, + {504, 45000}, + {496, 50000}, + {487, 55000}, + {479, 60000}, + {471, 65000}, + {463, 70000}, + {454, 75000}, + {446, 80000}, + {437, 85000}, + {429, 90000}, + {421, 95000}, + {412, 100000}, + {404, 105000}, + {395, 110000}, + {387, 115000}, + {378, 120000}, + {370, 125000}, + {0, 125000}, +}; + static const struct tsadc_table rk3228_code_table[] = { {0, -40000}, {588, -40000}, @@ -845,6 +884,30 @@ static void rk_tsadcv2_tshut_mode(int chn, void __iomem *regs, writel_relaxed(val, regs + TSADCV2_INT_EN); } +static const struct rockchip_tsadc_chip rk1808_tsadc_data = { + .chn_id[SENSOR_CPU] = 0, /* cpu sensor is channel 0 */ + .chn_num = 1, /* one channel for tsadc */ + + .tshut_mode = TSHUT_MODE_GPIO, /* default TSHUT via GPIO give PMIC */ + .tshut_polarity = TSHUT_LOW_ACTIVE, /* default TSHUT LOW ACTIVE */ + .tshut_temp = 95000, + + .initialize = rk_tsadcv2_initialize, + .irq_ack = rk_tsadcv3_irq_ack, + .control = rk_tsadcv3_control, + .get_temp = rk_tsadcv2_get_temp, + .set_alarm_temp = rk_tsadcv2_alarm_temp, + .set_tshut_temp = rk_tsadcv2_tshut_temp, + .set_tshut_mode = rk_tsadcv2_tshut_mode, + + .table = { + .id = rk1808_code_table, + .length = ARRAY_SIZE(rk1808_code_table), + .data_mask = TSADCV2_DATA_MASK, + .mode = ADC_DECREMENT, + }, +}; + static const struct rockchip_tsadc_chip rk3228_tsadc_data = { .chn_id[SENSOR_CPU] = 0, /* cpu sensor is channel 0 */ .chn_num = 1, /* one channel for tsadc */ @@ -1046,6 +1109,10 @@ static const struct of_device_id of_rockchip_thermal_match[] = { .data = (void *)&px30_tsadc_data, }, { + .compatible = "rockchip,rk1808-tsadc", + .data = (void *)&rk1808_tsadc_data, + }, + { .compatible = "rockchip,rk3228-tsadc", .data = (void *)&rk3228_tsadc_data, }, |