diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index f2b062e33..7f307244f 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -198,6 +198,26 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) } EXPORT_SYMBOL_GPL(pwm_config); +void pwm_set_period(struct pwm_device *pwm, unsigned int period_ns) +{ + pwm->period_ns = period_ns; +} + +unsigned int pwm_get_period(struct pwm_device *pwm) +{ + return pwm->period_ns; +} + +void pwm_set_duty_cycle(struct pwm_device *pwm, unsigned int duty_ns) +{ + pwm->duty_ns = duty_ns; +} + +unsigned int pwm_get_duty_cycle(struct pwm_device *pwm) +{ + return pwm->duty_ns; +} + /* * pwm_enable - start a PWM output toggling */ diff --git a/include/pwm.h b/include/pwm.h index bdc2fdd85..5ca9fa056 100644 --- a/include/pwm.h +++ b/include/pwm.h @@ -29,6 +29,11 @@ int pwm_enable(struct pwm_device *pwm); */ void pwm_disable(struct pwm_device *pwm); +void pwm_set_period(struct pwm_device *pwm, unsigned int period); +unsigned int pwm_get_period(struct pwm_device *pwm); +void pwm_set_duty_cycle(struct pwm_device *pwm, unsigned int duty); +unsigned int pwm_get_duty_cycle(struct pwm_device *pwm); + struct pwm_chip; /**