diff options
Diffstat (limited to 'drivers/iio/trigger/stm32-timer-trigger.c')
-rw-r--r-- | drivers/iio/trigger/stm32-timer-trigger.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/iio/trigger/stm32-timer-trigger.c b/drivers/iio/trigger/stm32-timer-trigger.c index d523b056f468..b542dc484969 100644 --- a/drivers/iio/trigger/stm32-timer-trigger.c +++ b/drivers/iio/trigger/stm32-timer-trigger.c | |||
@@ -174,6 +174,7 @@ static void stm32_timer_stop(struct stm32_timer_trigger *priv) | |||
174 | clk_disable(priv->clk); | 174 | clk_disable(priv->clk); |
175 | 175 | ||
176 | /* Stop timer */ | 176 | /* Stop timer */ |
177 | regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, 0); | ||
177 | regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN, 0); | 178 | regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN, 0); |
178 | regmap_write(priv->regmap, TIM_PSC, 0); | 179 | regmap_write(priv->regmap, TIM_PSC, 0); |
179 | regmap_write(priv->regmap, TIM_ARR, 0); | 180 | regmap_write(priv->regmap, TIM_ARR, 0); |
@@ -713,8 +714,9 @@ static ssize_t stm32_count_set_preset(struct iio_dev *indio_dev, | |||
713 | if (ret) | 714 | if (ret) |
714 | return ret; | 715 | return ret; |
715 | 716 | ||
717 | /* TIMx_ARR register shouldn't be buffered (ARPE=0) */ | ||
718 | regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, 0); | ||
716 | regmap_write(priv->regmap, TIM_ARR, preset); | 719 | regmap_write(priv->regmap, TIM_ARR, preset); |
717 | regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, TIM_CR1_ARPE); | ||
718 | 720 | ||
719 | return len; | 721 | return len; |
720 | } | 722 | } |