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 9b9053494daf..eb212f8c8879 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)  		clk_disable(priv->clk);  	/* Stop timer */ +	regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, 0);  	regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN, 0);  	regmap_write(priv->regmap, TIM_PSC, 0);  	regmap_write(priv->regmap, TIM_ARR, 0); @@ -715,8 +716,9 @@ static ssize_t stm32_count_set_preset(struct iio_dev *indio_dev,  	if (ret)  		return ret; +	/* TIMx_ARR register shouldn't be buffered (ARPE=0) */ +	regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, 0);  	regmap_write(priv->regmap, TIM_ARR, preset); -	regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, TIM_CR1_ARPE);  	return len;  } | 
