mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-03 19:53:32 +00:00
pwm: stm32: Pass breakinput instead of its values
Instead of passing the individual values of the breakpoint, pass a pointer to the breakpoint. Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
This commit is contained in:
parent
8e53622594
commit
9e1b4999a1
@ -491,18 +491,18 @@ static const struct pwm_ops stm32pwm_ops = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static int stm32_pwm_set_breakinput(struct stm32_pwm *priv,
|
static int stm32_pwm_set_breakinput(struct stm32_pwm *priv,
|
||||||
int index, int level, int filter)
|
const struct stm32_breakinput *bi)
|
||||||
{
|
{
|
||||||
u32 shift = TIM_BDTR_BKF_SHIFT(index);
|
u32 shift = TIM_BDTR_BKF_SHIFT(bi->index);
|
||||||
u32 bke = TIM_BDTR_BKE(index);
|
u32 bke = TIM_BDTR_BKE(bi->index);
|
||||||
u32 bkp = TIM_BDTR_BKP(index);
|
u32 bkp = TIM_BDTR_BKP(bi->index);
|
||||||
u32 bkf = TIM_BDTR_BKF(index);
|
u32 bkf = TIM_BDTR_BKF(bi->index);
|
||||||
u32 mask = bkf | bkp | bke;
|
u32 mask = bkf | bkp | bke;
|
||||||
u32 bdtr;
|
u32 bdtr;
|
||||||
|
|
||||||
bdtr = (filter & TIM_BDTR_BKF_MASK) << shift | bke;
|
bdtr = (bi->filter & TIM_BDTR_BKF_MASK) << shift | bke;
|
||||||
|
|
||||||
if (level)
|
if (bi->level)
|
||||||
bdtr |= bkp;
|
bdtr |= bkp;
|
||||||
|
|
||||||
regmap_update_bits(priv->regmap, TIM_BDTR, mask, bdtr);
|
regmap_update_bits(priv->regmap, TIM_BDTR, mask, bdtr);
|
||||||
@ -518,10 +518,7 @@ static int stm32_pwm_apply_breakinputs(struct stm32_pwm *priv)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
for (i = 0; i < priv->num_breakinputs; i++) {
|
for (i = 0; i < priv->num_breakinputs; i++) {
|
||||||
ret = stm32_pwm_set_breakinput(priv,
|
ret = stm32_pwm_set_breakinput(priv, &priv->breakinputs[i]);
|
||||||
priv->breakinputs[i].index,
|
|
||||||
priv->breakinputs[i].level,
|
|
||||||
priv->breakinputs[i].filter);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user