aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/ti_am335x_tscadc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mfd/ti_am335x_tscadc.c b/drivers/mfd/ti_am335x_tscadc.c
index dd4bf5816221..8b119ce20b93 100644
--- a/drivers/mfd/ti_am335x_tscadc.c
+++ b/drivers/mfd/ti_am335x_tscadc.c
@@ -53,7 +53,7 @@ void am335x_tsc_se_set_cache(struct ti_tscadc_dev *tsadc, u32 val)
53 unsigned long flags; 53 unsigned long flags;
54 54
55 spin_lock_irqsave(&tsadc->reg_lock, flags); 55 spin_lock_irqsave(&tsadc->reg_lock, flags);
56 tsadc->reg_se_cache = val; 56 tsadc->reg_se_cache |= val;
57 if (tsadc->adc_waiting) 57 if (tsadc->adc_waiting)
58 wake_up(&tsadc->reg_se_wait); 58 wake_up(&tsadc->reg_se_wait);
59 else if (!tsadc->adc_in_use) 59 else if (!tsadc->adc_in_use)
@@ -96,6 +96,7 @@ static void am335x_tscadc_need_adc(struct ti_tscadc_dev *tsadc)
96void am335x_tsc_se_set_once(struct ti_tscadc_dev *tsadc, u32 val) 96void am335x_tsc_se_set_once(struct ti_tscadc_dev *tsadc, u32 val)
97{ 97{
98 spin_lock_irq(&tsadc->reg_lock); 98 spin_lock_irq(&tsadc->reg_lock);
99 tsadc->reg_se_cache |= val;
99 am335x_tscadc_need_adc(tsadc); 100 am335x_tscadc_need_adc(tsadc);
100 101
101 tscadc_writel(tsadc, REG_SE, val); 102 tscadc_writel(tsadc, REG_SE, val);