Lines Matching refs:led
272 static void set_select(struct tca6507_chip *tca, int led, int val) in set_select() argument
274 int mask = (1 << led); in set_select()
373 static void led_release(struct tca6507_led *led) in led_release() argument
376 struct tca6507_chip *tca = led->chip; in led_release()
377 if (led->bank >= 0) { in led_release()
378 struct bank *b = tca->bank + led->bank; in led_release()
379 if (led->blink) in led_release()
383 led->blink = 0; in led_release()
384 led->bank = -1; in led_release()
387 static int led_prepare(struct tca6507_led *led) in led_prepare() argument
391 int level = TO_LEVEL(led->led_cdev.brightness); in led_prepare()
392 struct tca6507_chip *tca = led->chip; in led_prepare()
398 led->led_cdev.brightness = TO_BRIGHT(level); in led_prepare()
400 set_select(tca, led->num, TCA6507_LS_LED_OFF); in led_prepare()
404 if (led->ontime == 0 || led->offtime == 0) { in led_prepare()
415 set_select(tca, led->num, TCA6507_LS_LED_ON); in led_prepare()
434 set_select(tca, led->num, TCA6507_LS_LED_ON); in led_prepare()
435 led->led_cdev.brightness = LED_FULL; in led_prepare()
443 led->bank = best; in led_prepare()
444 set_select(tca, led->num, bank_source[best]); in led_prepare()
445 led->led_cdev.brightness = TO_BRIGHT(tca->bank[best].level); in led_prepare()
454 if (choose_times(led->ontime, &c1, &c2) < 0) in led_prepare()
456 if (choose_times(led->offtime, &c1, &c2) < 0) in led_prepare()
475 led->on_dflt || in led_prepare()
476 tca->bank[i].ontime == led->ontime)) in led_prepare()
481 led->off_dflt || in led_prepare()
482 tca->bank[i].offtime == led->offtime)) in led_prepare()
498 led->bank = i; in led_prepare()
501 !led->on_dflt || in led_prepare()
503 b->ontime = led->ontime; in led_prepare()
504 b->on_dflt = led->on_dflt; in led_prepare()
509 !led->off_dflt || in led_prepare()
511 b->offtime = led->offtime; in led_prepare()
512 b->off_dflt = led->off_dflt; in led_prepare()
519 led->ontime = b->ontime; in led_prepare()
520 led->offtime = b->offtime; in led_prepare()
523 led->blink = 1; in led_prepare()
524 led->led_cdev.brightness = TO_BRIGHT(b->level); in led_prepare()
525 set_select(tca, led->num, blink_source[i]); in led_prepare()
529 static int led_assign(struct tca6507_led *led) in led_assign() argument
531 struct tca6507_chip *tca = led->chip; in led_assign()
536 led_release(led); in led_assign()
537 err = led_prepare(led); in led_assign()
543 led->ontime = 0; in led_assign()
544 led->offtime = 0; in led_assign()
545 led_prepare(led); in led_assign()
557 struct tca6507_led *led = container_of(led_cdev, struct tca6507_led, in tca6507_brightness_set() local
559 led->led_cdev.brightness = brightness; in tca6507_brightness_set()
560 led->ontime = 0; in tca6507_brightness_set()
561 led->offtime = 0; in tca6507_brightness_set()
562 led_assign(led); in tca6507_brightness_set()
569 struct tca6507_led *led = container_of(led_cdev, struct tca6507_led, in tca6507_blink_set() local
573 led->on_dflt = 1; in tca6507_blink_set()
575 led->on_dflt = 0; in tca6507_blink_set()
576 led->ontime = *delay_on; in tca6507_blink_set()
579 led->off_dflt = 1; in tca6507_blink_set()
581 led->off_dflt = 0; in tca6507_blink_set()
582 led->offtime = *delay_off; in tca6507_blink_set()
584 if (led->ontime == 0) in tca6507_blink_set()
585 led->ontime = 512; in tca6507_blink_set()
586 if (led->offtime == 0) in tca6507_blink_set()
587 led->offtime = 512; in tca6507_blink_set()
589 if (led->led_cdev.brightness == LED_OFF) in tca6507_blink_set()
590 led->led_cdev.brightness = LED_FULL; in tca6507_blink_set()
591 if (led_assign(led) < 0) { in tca6507_blink_set()
592 led->ontime = 0; in tca6507_blink_set()
593 led->offtime = 0; in tca6507_blink_set()
594 led->led_cdev.brightness = LED_OFF; in tca6507_blink_set()
597 *delay_on = led->ontime; in tca6507_blink_set()
598 *delay_off = led->offtime; in tca6507_blink_set()
704 struct led_info led; in tca6507_led_dt_init() local
708 led.name = in tca6507_led_dt_init()
710 led.default_trigger = in tca6507_led_dt_init()
712 led.flags = 0; in tca6507_led_dt_init()
714 led.flags |= TCA6507_MAKE_GPIO; in tca6507_led_dt_init()
719 tca_leds[reg] = led; in tca6507_led_dt_init()