From 89b6245b0b5544730a7a65f3b120980019314528 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=83=AD=E6=AF=85?= Date: Mon, 17 Nov 2014 15:53:08 +0800 Subject: [PATCH] Revert "hwmon: rockchip_tsadc: dynamically control pclk" This reverts commit da8f8281e989dd44b126ed6cfef6c21a2f9ca0e6. --- drivers/hwmon/rockchip_tsadc.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/hwmon/rockchip_tsadc.c b/drivers/hwmon/rockchip_tsadc.c index b0d351e170ad..4290f1a6ae51 100755 --- a/drivers/hwmon/rockchip_tsadc.c +++ b/drivers/hwmon/rockchip_tsadc.c @@ -194,7 +194,6 @@ void rockchip_tsadc_auto_ht_work(struct work_struct *work) // printk("%s,line=%d\n", __func__,__LINE__); mutex_lock(&tsadc_mutex); - clk_enable(g_dev->pclk); val = tsadc_readl(TSADC_INT_PD); tsadc_writel(val &(~ (1 <<8) ), TSADC_INT_PD); @@ -204,8 +203,6 @@ void rockchip_tsadc_auto_ht_work(struct work_struct *work) printk("rockchip tsadc is over temp . %s,line=%d\n", __func__,__LINE__); pm_power_off(); //power_off } - - clk_disable(g_dev->pclk); mutex_unlock(&tsadc_mutex); } @@ -274,10 +271,14 @@ static void rockchip_tsadc_auto_mode_set(int chn, int int_temp, return; mutex_lock(&tsadc_mutex); + clk_enable(g_dev->pclk); - + clk_enable(g_dev->clk); + + msleep(10); tsadc_writel(0, TSADC_AUTO_CON); tsadc_writel(1 << (4+chn), TSADC_AUTO_CON); + msleep(10); if ((tsadc_readl(TSADC_AUTO_CON) & TSADC_AUTO_STAS_BUSY_MASK) != TSADC_AUTO_STAS_BUSY) { rockchip_tsadc_set_cmpn_int_vale(chn,int_temp); rockchip_tsadc_set_cmpn_shut_vale(chn,shut_temp), @@ -293,11 +294,11 @@ static void rockchip_tsadc_auto_mode_set(int chn, int int_temp, rockchip_tsadc_set_auto_int_en(chn,int_en,shut_en); } + msleep(10); + ret = tsadc_readl(TSADC_AUTO_CON); tsadc_writel(ret | (1 <<0) , TSADC_AUTO_CON); - usleep_range(10000, 11000); - clk_disable(g_dev->pclk); mutex_unlock(&tsadc_mutex); } @@ -346,7 +347,6 @@ static void rockchip_tsadc_get(int chn, int *temp, int *code) mutex_unlock(&tsadc_mutex); #else - clk_enable(g_dev->pclk); *code = tsadc_readl((TSADC_DATA0 + chn*4)) & TSADC_DATA_MASK; for (i = 0; i < ARRAY_SIZE(table) - 1; i++) { if ((*code) <= table[i].code && (*code) > table[i + 1].code) @@ -354,7 +354,6 @@ static void rockchip_tsadc_get(int chn, int *temp, int *code) - table[i].temp) * (table[i].code - (*code)) / (table[i].code - table[i + 1].code); } - clk_disable(g_dev->pclk); #endif } @@ -464,7 +463,7 @@ int rockchip_hwmon_init(struct rockchip_temp *data) ret = PTR_ERR(rockchip_tsadc_data->pclk); return -EPERM; } - clk_prepare(rockchip_tsadc_data->pclk); + clk_prepare_enable(rockchip_tsadc_data->pclk); platform_set_drvdata(data->pdev, rockchip_tsadc_data); g_dev = rockchip_tsadc_data; -- 2.34.1