Lines Matching defs:pwm

126 	/* pwm lock */
147 struct lm8323_pwm pwm[LM8323_NUM_PWMS];
351 static void pwm_done(struct lm8323_pwm *pwm)
353 mutex_lock(&pwm->lock);
354 pwm->running = false;
355 if (pwm->desired_brightness != pwm->brightness)
356 schedule_work(&pwm->work);
357 mutex_unlock(&pwm->lock);
391 "pwm%d engine completed\n", i);
392 pwm_done(&lm->pwm[i]);
416 static void lm8323_write_pwm_one(struct lm8323_pwm *pwm, int pos, u16 cmd)
418 lm8323_write(pwm->chip, 4, LM8323_CMD_PWM_WRITE, (pos << 2) | pwm->id,
428 static void lm8323_write_pwm(struct lm8323_pwm *pwm, int kill,
434 lm8323_write_pwm_one(pwm, i, cmds[i]);
436 lm8323_write_pwm_one(pwm, i++, PWM_END(kill));
437 lm8323_write(pwm->chip, 2, LM8323_CMD_START_PWM, pwm->id);
438 pwm->running = true;
443 struct lm8323_pwm *pwm = work_to_pwm(work);
448 mutex_lock(&pwm->lock);
456 if (pwm->running || pwm->desired_brightness == pwm->brightness)
459 kill = (pwm->desired_brightness == 0);
460 up = (pwm->desired_brightness > pwm->brightness);
461 steps = abs(pwm->desired_brightness - pwm->brightness);
467 if ((pwm->fade_time / steps) > (32768 / 512)) {
475 perstep = (hz * pwm->fade_time) / (steps * 1000);
490 lm8323_write_pwm(pwm, kill, num_cmds, pwm_cmds);
491 pwm->brightness = pwm->desired_brightness;
494 mutex_unlock(&pwm->lock);
500 struct lm8323_pwm *pwm = cdev_to_pwm(led_cdev);
501 struct lm8323_chip *lm = pwm->chip;
503 mutex_lock(&pwm->lock);
504 pwm->desired_brightness = brightness;
505 mutex_unlock(&pwm->lock);
508 schedule_work(&pwm->work);
515 schedule_work(&pwm->work);
517 lm8323_pwm_work(&pwm->work);
526 struct lm8323_pwm *pwm = cdev_to_pwm(led_cdev);
528 return sprintf(buf, "%d\n", pwm->fade_time);
535 struct lm8323_pwm *pwm = cdev_to_pwm(led_cdev);
543 pwm->fade_time = time;
558 struct lm8323_pwm *pwm;
563 pwm = &lm->pwm[id - 1];
565 pwm->id = id;
566 pwm->fade_time = 0;
567 pwm->brightness = 0;
568 pwm->desired_brightness = 0;
569 pwm->running = false;
570 pwm->enabled = false;
571 INIT_WORK(&pwm->work, lm8323_pwm_work);
572 mutex_init(&pwm->lock);
573 pwm->chip = lm;
576 pwm->cdev.name = name;
577 pwm->cdev.brightness_set = lm8323_pwm_set_brightness;
578 pwm->cdev.groups = lm8323_pwm_groups;
580 err = devm_led_classdev_register(dev, &pwm->cdev);
585 pwm->enabled = true;
630 int pwm;
700 for (pwm = 0; pwm < LM8323_NUM_PWMS; pwm++) {
701 err = init_pwm(lm, pwm + 1, &client->dev,
702 pdata->pwm_names[pwm]);
766 if (lm->pwm[i].enabled)
767 led_classdev_suspend(&lm->pwm[i].cdev);
783 if (lm->pwm[i].enabled)
784 led_classdev_resume(&lm->pwm[i].cdev);