pwm: ab8500: Fix wrong value shift for disable/enable PWM
authorAxel Lin <axel.lin@ingics.com>
Wed, 9 Apr 2014 13:19:54 +0000 (21:19 +0800)
committerThierry Reding <thierry.reding@gmail.com>
Wed, 21 May 2014 10:29:58 +0000 (12:29 +0200)
Current code only works when pdev->id is 1. Fix it by passing correct
bit values to abx500_mask_and_set_register_interruptible().

Having DISABLE_PWM/ENABLE_PWM does not make the code more readable
because the bit values depend on pdev->id. Thus drop the DISABLE_PWM
and ENABLE_PWM defines.

This patch also removes an unnecessary return in ab8500_pwm_disable().

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Alexandre BOURDIOL <alexandre.bourdiol@st.com>
Acked-by: Philippe Begnic <philippe.begnic@st.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-ab8500.c

index 9d53e8e..4c07a84 100644 (file)
 #define AB8500_PWM_OUT_CTRL2_REG       0x61
 #define AB8500_PWM_OUT_CTRL7_REG       0x66
 
-/* backlight driver constants */
-#define ENABLE_PWM                     1
-#define DISABLE_PWM                    0
-
 struct ab8500_pwm_chip {
        struct pwm_chip chip;
 };
@@ -64,7 +60,7 @@ static int ab8500_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
 
        ret = abx500_mask_and_set_register_interruptible(chip->dev,
                                AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG,
-                               1 << (chip->base - 1), ENABLE_PWM);
+                               1 << (chip->base - 1), 1 << (chip->base - 1));
        if (ret < 0)
                dev_err(chip->dev, "%s: Failed to enable PWM, Error %d\n",
                                                        pwm->label, ret);
@@ -77,11 +73,10 @@ static void ab8500_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
 
        ret = abx500_mask_and_set_register_interruptible(chip->dev,
                                AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG,
-                               1 << (chip->base - 1), DISABLE_PWM);
+                               1 << (chip->base - 1), 0);
        if (ret < 0)
                dev_err(chip->dev, "%s: Failed to disable PWM, Error %d\n",
                                                        pwm->label, ret);
-       return;
 }
 
 static const struct pwm_ops ab8500_pwm_ops = {