Lines Matching defs:pwm
20 #include <linux/pwm.h>
48 struct pwm_device *pwm;
55 pwm = &jz4740_pwm_list[id - 2];
56 if (pwm->used)
59 pwm->used = true;
66 ret = gpio_request(pwm->gpio, label);
69 printk(KERN_ERR "Failed to request pwm gpio: %d\n", ret);
70 pwm->used = false;
74 jz_gpio_set_function(pwm->gpio, JZ_GPIO_FUNC_PWM);
78 return pwm;
81 void pwm_free(struct pwm_device *pwm)
83 pwm_disable(pwm);
84 jz4740_timer_set_ctrl(pwm->id, 0);
86 jz_gpio_set_function(pwm->gpio, JZ_GPIO_FUNC_NONE);
87 gpio_free(pwm->gpio);
89 jz4740_timer_stop(pwm->id);
91 pwm->used = false;
94 int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns)
99 unsigned int id = pwm->id;
127 pwm_disable(pwm);
139 pwm_enable(pwm);
144 int pwm_enable(struct pwm_device *pwm)
146 uint32_t ctrl = jz4740_timer_get_ctrl(pwm->id);
149 jz4740_timer_set_ctrl(pwm->id, ctrl);
150 jz4740_timer_enable(pwm->id);
155 void pwm_disable(struct pwm_device *pwm)
157 uint32_t ctrl = jz4740_timer_get_ctrl(pwm->id);
160 jz4740_timer_disable(pwm->id);
161 jz4740_timer_set_ctrl(pwm->id, ctrl);