Skip to content

Commit 0a56eab

Browse files
Fabrice Gasnierjic23
authored andcommitted
iio: trigger: stm32-timer: preset shouldn't be buffered
Currently, setting preset value (ARR) will update directly 'Auto reload value' only on 1st write access. But then, ARPE is set. This makes ARR a shadow register. Preset value should be updated upon each write request: ensure ARPE is 0. This fixes successive writes to preset attribute. Fixes: 4adec7d ("iio: stm32 trigger: Add quadrature encoder device") Signed-off-by: Fabrice Gasnier <[email protected]> Cc: <[email protected]> Signed-off-by: Jonathan Cameron <[email protected]>
1 parent 5306384 commit 0a56eab

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/iio/trigger/stm32-timer-trigger.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,8 +681,9 @@ static ssize_t stm32_count_set_preset(struct iio_dev *indio_dev,
681681
if (ret)
682682
return ret;
683683

684+
/* TIMx_ARR register shouldn't be buffered (ARPE=0) */
685+
regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, 0);
684686
regmap_write(priv->regmap, TIM_ARR, preset);
685-
regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, TIM_CR1_ARPE);
686687

687688
return len;
688689
}

0 commit comments

Comments
 (0)