xref: /linux-6.15/include/linux/pwm.h (revision 5243ef8b)
11a189b97SRussell King #ifndef __LINUX_PWM_H
21a189b97SRussell King #define __LINUX_PWM_H
31a189b97SRussell King 
41a189b97SRussell King struct pwm_device;
51a189b97SRussell King 
61a189b97SRussell King /*
71a189b97SRussell King  * pwm_request - request a PWM device
81a189b97SRussell King  */
91a189b97SRussell King struct pwm_device *pwm_request(int pwm_id, const char *label);
101a189b97SRussell King 
111a189b97SRussell King /*
121a189b97SRussell King  * pwm_free - free a PWM device
131a189b97SRussell King  */
141a189b97SRussell King void pwm_free(struct pwm_device *pwm);
151a189b97SRussell King 
161a189b97SRussell King /*
171a189b97SRussell King  * pwm_config - change a PWM device configuration
181a189b97SRussell King  */
191a189b97SRussell King int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns);
201a189b97SRussell King 
211a189b97SRussell King /*
221a189b97SRussell King  * pwm_enable - start a PWM output toggling
231a189b97SRussell King  */
241a189b97SRussell King int pwm_enable(struct pwm_device *pwm);
251a189b97SRussell King 
261a189b97SRussell King /*
271a189b97SRussell King  * pwm_disable - stop a PWM output toggling
281a189b97SRussell King  */
291a189b97SRussell King void pwm_disable(struct pwm_device *pwm);
301a189b97SRussell King 
31*5243ef8bSMark Vels #endif /* __LINUX_PWM_H */
32