static void rk30_tsadc_get(unsigned int chn, int *temp, int *code)
{
    *temp = 0;
    *code = 0;

    if (!g_dev || chn > 1)
        return;

    mutex_lock(&tsadc_mutex);

    clk_enable(g_dev->pclk);
    clk_enable(g_dev->clk);

    msleep(10);
    tsadc_writel(0, TSADC_CTRL);
    tsadc_writel(TSADC_CTRL_POWER_UP | TSADC_CTRL_CH(chn), TSADC_CTRL);
    msleep(10);
    if ((tsadc_readl(TSADC_STAS) & TSADC_STAS_BUSY_MASK) != TSADC_STAS_BUSY) {
        int i;
        *code = tsadc_readl(TSADC_DATA) & TSADC_DATA_MASK;
        for (i = 0; i < ARRAY_SIZE(table) - 1; i++) {
            if ((*code) <= table[i].code && (*code) > table[i + 1].code) {
                *temp = table[i].temp + (table[i + 1].temp - table[i].temp) * (table[i].code - (*code)) / (table[i].code - table[i + 1].code);
            }
        }
    }
    tsadc_writel(0, TSADC_CTRL);
    msleep(10);

    clk_disable(g_dev->clk);
    clk_disable(g_dev->pclk);

    mutex_unlock(&tsadc_mutex);
}
static void rockchip_tsadc_get(int chn, int *temp, int *code)
{
	int i;
	*temp = 0;
	*code = 0;

	if (!g_dev || chn > 4){
		*temp = INVALID_TEMP;
		return ;
	}
#if 0
	mutex_lock(&tsadc_mutex);

	clk_enable(g_dev->pclk);
	clk_enable(g_dev->clk);

	msleep(10);
	tsadc_writel(0, TSADC_USER_CON);
	tsadc_writel(TSADC_CTRL_POWER_UP | TSADC_CTRL_CH(chn), TSADC_USER_CON);
	msleep(20);
	if ((tsadc_readl(TSADC_USER_CON) & TSADC_STAS_BUSY_MASK) != TSADC_STAS_BUSY) {
		*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) {
				*temp = table[i].temp + (table[i + 1].temp - table[i].temp) * (table[i].code - (*code)) / (table[i].code - table[i + 1].code);
			}
		}
	}
	
	tsadc_writel(0, TSADC_USER_CON);

	clk_disable(g_dev->clk);
	clk_disable(g_dev->pclk);

	mutex_unlock(&tsadc_mutex);
#else
	*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)
			*temp = table[i].temp + (table[i + 1].temp
			- table[i].temp) * (table[i].code - (*code))
			/ (table[i].code - table[i + 1].code);
	}
#endif
}