Lines Matching refs:pwm
50 static int jz4740_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm) in jz4740_pwm_request() argument
52 unsigned int gpio = jz4740_pwm_gpio_list[pwm->hwpwm]; in jz4740_pwm_request()
59 if (pwm->hwpwm < 2) in jz4740_pwm_request()
62 ret = gpio_request(gpio, pwm->label); in jz4740_pwm_request()
71 jz4740_timer_start(pwm->hwpwm); in jz4740_pwm_request()
76 static void jz4740_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm) in jz4740_pwm_free() argument
78 unsigned int gpio = jz4740_pwm_gpio_list[pwm->hwpwm]; in jz4740_pwm_free()
80 jz4740_timer_set_ctrl(pwm->hwpwm, 0); in jz4740_pwm_free()
85 jz4740_timer_stop(pwm->hwpwm); in jz4740_pwm_free()
88 static int jz4740_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) in jz4740_pwm_enable() argument
90 uint32_t ctrl = jz4740_timer_get_ctrl(pwm->pwm); in jz4740_pwm_enable()
93 jz4740_timer_set_ctrl(pwm->hwpwm, ctrl); in jz4740_pwm_enable()
94 jz4740_timer_enable(pwm->hwpwm); in jz4740_pwm_enable()
99 static void jz4740_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm) in jz4740_pwm_disable() argument
101 uint32_t ctrl = jz4740_timer_get_ctrl(pwm->hwpwm); in jz4740_pwm_disable()
104 jz4740_timer_disable(pwm->hwpwm); in jz4740_pwm_disable()
105 jz4740_timer_set_ctrl(pwm->hwpwm, ctrl); in jz4740_pwm_disable()
108 static int jz4740_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, in jz4740_pwm_config() argument
111 struct jz4740_pwm_chip *jz4740 = to_jz4740(pwm->chip); in jz4740_pwm_config()
137 is_enabled = jz4740_timer_is_enabled(pwm->hwpwm); in jz4740_pwm_config()
139 jz4740_pwm_disable(chip, pwm); in jz4740_pwm_config()
141 jz4740_timer_set_count(pwm->hwpwm, 0); in jz4740_pwm_config()
142 jz4740_timer_set_duty(pwm->hwpwm, duty); in jz4740_pwm_config()
143 jz4740_timer_set_period(pwm->hwpwm, period); in jz4740_pwm_config()
148 jz4740_timer_set_ctrl(pwm->hwpwm, ctrl); in jz4740_pwm_config()
151 jz4740_pwm_enable(chip, pwm); in jz4740_pwm_config()