mirror of https://gitee.com/openkylin/linux.git
pwm: jz4740: Implement ->set_polarity()
This permits clients of this driver to specify the polarity to use for their PWM channel. Signed-off-by: Paul Cercueil <paul@crapouillou.net> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
This commit is contained in:
parent
df56b1712d
commit
174dcc8eae
|
@ -130,10 +130,29 @@ static int jz4740_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int jz4740_pwm_set_polarity(struct pwm_chip *chip,
|
||||
struct pwm_device *pwm, enum pwm_polarity polarity)
|
||||
{
|
||||
uint32_t ctrl = jz4740_timer_get_ctrl(pwm->pwm);
|
||||
|
||||
switch (polarity) {
|
||||
case PWM_POLARITY_NORMAL:
|
||||
ctrl &= ~JZ_TIMER_CTRL_PWM_ACTIVE_LOW;
|
||||
break;
|
||||
case PWM_POLARITY_INVERSED:
|
||||
ctrl |= JZ_TIMER_CTRL_PWM_ACTIVE_LOW;
|
||||
break;
|
||||
}
|
||||
|
||||
jz4740_timer_set_ctrl(pwm->hwpwm, ctrl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct pwm_ops jz4740_pwm_ops = {
|
||||
.request = jz4740_pwm_request,
|
||||
.free = jz4740_pwm_free,
|
||||
.config = jz4740_pwm_config,
|
||||
.set_polarity = jz4740_pwm_set_polarity,
|
||||
.enable = jz4740_pwm_enable,
|
||||
.disable = jz4740_pwm_disable,
|
||||
.owner = THIS_MODULE,
|
||||
|
|
Loading…
Reference in New Issue