aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pwm/pwm-ab8500.c
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2014-04-09 09:19:54 -0400
committerThierry Reding <thierry.reding@gmail.com>2014-05-21 06:29:58 -0400
commit54b02347d71802a010ceace3dd25ed3774ba8a1e (patch)
tree15d3a234708434767ef9005508da5ea85a328f3a /drivers/pwm/pwm-ab8500.c
parent3bdf878102110c916dd6a9fb0df9ecfde93a3c83 (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.c9
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
27struct ab8500_pwm_chip { 23struct 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
87static const struct pwm_ops ab8500_pwm_ops = { 82static const struct pwm_ops ab8500_pwm_ops = {