[PATCH v5 37/46] input: misc: max8997: switch to the atomic PWM API
Boris Brezillon
boris.brezillon at free-electrons.com
Wed Mar 30 13:04:00 PDT 2016
pwm_config/enable/disable() have been deprecated and should be replaced
by pwm_apply_state().
Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com>
---
drivers/input/misc/max8997_haptic.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/drivers/input/misc/max8997_haptic.c b/drivers/input/misc/max8997_haptic.c
index a806ba3..fcc0eb7 100644
--- a/drivers/input/misc/max8997_haptic.c
+++ b/drivers/input/misc/max8997_haptic.c
@@ -72,8 +72,12 @@ static int max8997_haptic_set_duty_cycle(struct max8997_haptic *chip)
int ret = 0;
if (chip->mode == MAX8997_EXTERNAL_MODE) {
- unsigned int duty = chip->pwm_period * chip->level / 100;
- ret = pwm_config(chip->pwm, duty, chip->pwm_period);
+ struct pwm_state pstate;
+
+ pwm_get_state(chip->pwm, &pstate);
+ pstate.period = chip->pwm_period;
+ pstate.duty_cycle = chip->pwm_period * chip->level / 100;
+ ret = pwm_apply_state(chip->pwm, &pstate);
} else {
int i;
u8 duty_index = 0;
@@ -188,7 +192,11 @@ static void max8997_haptic_enable(struct max8997_haptic *chip)
}
max8997_haptic_configure(chip);
if (chip->mode == MAX8997_EXTERNAL_MODE) {
- error = pwm_enable(chip->pwm);
+ struct pwm_state pstate;
+
+ pwm_get_state(chip->pwm, &pstate);
+ pstate.enabled = true;
+ error = pwm_apply_state(chip->pwm, &pstate);
if (error) {
dev_err(chip->dev, "Failed to enable PWM\n");
regulator_disable(chip->regulator);
@@ -209,8 +217,13 @@ static void max8997_haptic_disable(struct max8997_haptic *chip)
if (chip->enabled) {
chip->enabled = false;
max8997_haptic_configure(chip);
- if (chip->mode == MAX8997_EXTERNAL_MODE)
- pwm_disable(chip->pwm);
+ if (chip->mode == MAX8997_EXTERNAL_MODE) {
+ struct pwm_state pstate;
+
+ pwm_get_state(chip->pwm, &pstate);
+ pstate.enabled = false;
+ pwm_apply_state(chip->pwm, &pstate);
+ }
regulator_disable(chip->regulator);
}
--
2.5.0
More information about the linux-arm-kernel
mailing list