• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7800-V1.0.2.28/target/linux/generic/files/drivers/pwm/

Lines Matching refs:pwm

2  * drivers/pwm/pwm.c
32 #include <linux/pwm/pwm.h>
34 static int __pwm_create_sysfs(struct pwm_device *pwm);
42 int pwm_register(struct pwm_device *pwm)
48 spin_lock_init(&pwm->list_lock);
50 p = kcalloc(pwm->nchan, sizeof(*p), GFP_KERNEL);
54 for (wchan = 0; wchan < pwm->nchan; wchan++) {
58 p[wchan].pwm = pwm;
61 pwm->channels = p;
65 list_add_tail(&pwm->list, &pwm_device_list);
66 ret = __pwm_create_sysfs(pwm);
74 dev_info(pwm->dev, "%d channel%s\n", pwm->nchan,
75 pwm->nchan > 1 ? "s" : "");
90 int pwm_unregister(struct pwm_device *pwm)
97 for (wchan = 0; wchan < pwm->nchan; wchan++) {
98 if (pwm->channels[wchan].flags & BIT(FLAG_REQUESTED)) {
104 for (wchan = 0; wchan < pwm->nchan; wchan++) {
106 &pwm->channels[wchan],
114 kfree(pwm->channels);
115 list_del(&pwm->list);
143 if (p->pwm->request) {
144 ret = p->pwm->request(p);
202 if (p->pwm->free)
203 p->pwm->free(p);
204 module_put(p->pwm->owner);
274 if (!p->pwm->config_nosleep)
280 return p->pwm->config_nosleep(p, c);
289 if (unlikely(!p->pwm->config))
320 dev_dbg(p->pwm->dev, "%s: config_mask %d period_ticks %lu duty_ticks %lu"
327 return p->pwm->config(p, c);
409 if (p->pwm != to_p->pwm) {
414 if (!p->pwm->synchronize)
417 return p->pwm->synchronize(p, to_p);
424 if (from_p && (p->pwm != from_p->pwm)) {
429 if (!p->pwm->unsynchronize)
432 return p->pwm->unsynchronize(p, from_p);
447 dev_dbg(p->pwm->dev, "handler %p scheduled with data %p\n",
455 if (p->pwm->set_callback) {
459 return p->pwm->set_callback(p, handler ? __pwm_callback : NULL);
585 static int __pwm_create_sysfs(struct pwm_device *pwm)
591 for (wchan = 0; wchan < pwm->nchan; wchan++) {
592 dev = device_create(&pwm_class, pwm->dev, MKDEV(0, 0),
593 pwm->channels + wchan,
594 "%s:%d", pwm->bus_id, wchan);
605 for (wchan = 0; wchan < pwm->nchan; wchan++) {
607 &pwm->channels[wchan],
623 .name = "pwm",