Loading drivers/pwm/pwm-jz4740.c +19 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/pwm/pwm-jz4740.c +19 −0 Original line number Diff line number Diff line Loading @@ -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