diff options
author | Axel Lin <axel.lin@ingics.com> | 2014-04-09 09:19:54 -0400 |
---|---|---|
committer | Thierry Reding <thierry.reding@gmail.com> | 2014-05-21 06:29:58 -0400 |
commit | 54b02347d71802a010ceace3dd25ed3774ba8a1e (patch) | |
tree | 15d3a234708434767ef9005508da5ea85a328f3a /drivers/pwm/pwm-ab8500.c | |
parent | 3bdf878102110c916dd6a9fb0df9ecfde93a3c83 (diff) |
pwm: ab8500: Fix wrong value shift for disable/enable PWM
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>
Diffstat (limited to 'drivers/pwm/pwm-ab8500.c')
-rw-r--r-- | drivers/pwm/pwm-ab8500.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/pwm/pwm-ab8500.c b/drivers/pwm/pwm-ab8500.c index 9d53e8ef90d0..4c07a8420b37 100644 --- a/drivers/pwm/pwm-ab8500.c +++ b/drivers/pwm/pwm-ab8500.c | |||
@@ -20,10 +20,6 @@ | |||
20 | #define AB8500_PWM_OUT_CTRL2_REG 0x61 | 20 | #define AB8500_PWM_OUT_CTRL2_REG 0x61 |
21 | #define AB8500_PWM_OUT_CTRL7_REG 0x66 | 21 | #define AB8500_PWM_OUT_CTRL7_REG 0x66 |
22 | 22 | ||
23 | /* backlight driver constants */ | ||
24 | #define ENABLE_PWM 1 | ||
25 | #define DISABLE_PWM 0 | ||
26 | |||
27 | struct ab8500_pwm_chip { | 23 | struct ab8500_pwm_chip { |
28 | struct pwm_chip chip; | 24 | struct pwm_chip chip; |
29 | }; | 25 | }; |
@@ -64,7 +60,7 @@ static int ab8500_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) | |||
64 | 60 | ||
65 | ret = abx500_mask_and_set_register_interruptible(chip->dev, | 61 | ret = abx500_mask_and_set_register_interruptible(chip->dev, |
66 | AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, | 62 | AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, |
67 | 1 << (chip->base - 1), ENABLE_PWM); | 63 | 1 << (chip->base - 1), 1 << (chip->base - 1)); |
68 | if (ret < 0) | 64 | if (ret < 0) |
69 | dev_err(chip->dev, "%s: Failed to enable PWM, Error %d\n", | 65 | dev_err(chip->dev, "%s: Failed to enable PWM, Error %d\n", |
70 | pwm->label, ret); | 66 | pwm->label, ret); |
@@ -77,11 +73,10 @@ static void ab8500_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm) | |||
77 | 73 | ||
78 | ret = abx500_mask_and_set_register_interruptible(chip->dev, | 74 | ret = abx500_mask_and_set_register_interruptible(chip->dev, |
79 | AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, | 75 | AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, |
80 | 1 << (chip->base - 1), DISABLE_PWM); | 76 | 1 << (chip->base - 1), 0); |
81 | if (ret < 0) | 77 | if (ret < 0) |
82 | dev_err(chip->dev, "%s: Failed to disable PWM, Error %d\n", | 78 | dev_err(chip->dev, "%s: Failed to disable PWM, Error %d\n", |
83 | pwm->label, ret); | 79 | pwm->label, ret); |
84 | return; | ||
85 | } | 80 | } |
86 | 81 | ||
87 | static const struct pwm_ops ab8500_pwm_ops = { | 82 | static const struct pwm_ops ab8500_pwm_ops = { |