]> Git Repo - J-linux.git/commitdiff
pwm: stm32: Change prototype of helper that detects npwm to prepare further changes
authorUwe Kleine-König <[email protected]>
Wed, 14 Feb 2024 09:32:43 +0000 (10:32 +0100)
committerUwe Kleine-König <[email protected]>
Thu, 22 Feb 2024 13:39:24 +0000 (14:39 +0100)
When the stm32 pwm driver is converted to pwmchip_alloc(), the number of
available PWM lines must be known before the driver private data can be
allocated. So rework the helper function that determines this number to
not take the driver private data struct as input parameter.

Link: https://lore.kernel.org/r/13d4d3e90a9ee1bcd04674dfdc16f242615b8320.1707900770.git.u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König <[email protected]>
drivers/pwm/pwm-stm32.c

index 4d12f3d849cd28dc15cb53e8bf781966aa957893..1440b706ee57b33b1955ec4fdc87c8c3ed30f4b1 100644 (file)
@@ -606,7 +606,7 @@ static void stm32_pwm_detect_complementary(struct stm32_pwm *priv)
        priv->have_complementary_output = (ccer != 0);
 }
 
-static unsigned int stm32_pwm_detect_channels(struct stm32_pwm *priv,
+static unsigned int stm32_pwm_detect_channels(struct regmap *regmap,
                                              unsigned int *num_enabled)
 {
        u32 ccer, ccer_backup;
@@ -615,10 +615,10 @@ static unsigned int stm32_pwm_detect_channels(struct stm32_pwm *priv,
         * If channels enable bits don't exist writing 1 will have no
         * effect so we can detect and count them.
         */
-       regmap_read(priv->regmap, TIM_CCER, &ccer_backup);
-       regmap_set_bits(priv->regmap, TIM_CCER, TIM_CCER_CCXE);
-       regmap_read(priv->regmap, TIM_CCER, &ccer);
-       regmap_write(priv->regmap, TIM_CCER, ccer_backup);
+       regmap_read(regmap, TIM_CCER, &ccer_backup);
+       regmap_set_bits(regmap, TIM_CCER, TIM_CCER_CCXE);
+       regmap_read(regmap, TIM_CCER, &ccer);
+       regmap_write(regmap, TIM_CCER, ccer_backup);
 
        *num_enabled = hweight32(ccer_backup & TIM_CCER_CCXE);
 
@@ -657,7 +657,7 @@ static int stm32_pwm_probe(struct platform_device *pdev)
 
        chip->dev = dev;
        chip->ops = &stm32pwm_ops;
-       chip->npwm = stm32_pwm_detect_channels(priv, &num_enabled);
+       chip->npwm = stm32_pwm_detect_channels(ddata->regmap, &num_enabled);
 
        /* Initialize clock refcount to number of enabled PWM channels. */
        for (i = 0; i < num_enabled; i++)
This page took 0.042939 seconds and 4 git commands to generate.