Lines Matching defs:led
17 * 500usec intervals in each 8msec that the led is 'on'. The levels
52 * blink. When a led changes, it relinquishes access and tries again,
141 /* Convert an led.brightness level (0..255) to a TCA6507 level (0..15) */
259 * given led.
261 static void set_select(struct tca6507_chip *tca, int led, int val)
263 int mask = (1 << led);
364 static void led_release(struct tca6507_led *led)
366 /* If led owns any resource, release it. */
367 struct tca6507_chip *tca = led->chip;
368 if (led->bank >= 0) {
369 struct bank *b = tca->bank + led->bank;
370 if (led->blink)
374 led->blink = 0;
375 led->bank = -1;
378 static int led_prepare(struct tca6507_led *led)
380 /* Assign this led to a bank, configuring that bank if
382 int level = TO_LEVEL(led->led_cdev.brightness);
383 struct tca6507_chip *tca = led->chip;
389 led->led_cdev.brightness = TO_BRIGHT(level);
391 set_select(tca, led->num, TCA6507_LS_LED_OFF);
395 if (led->ontime == 0 || led->offtime == 0) {
406 set_select(tca, led->num, TCA6507_LS_LED_ON);
425 set_select(tca, led->num, TCA6507_LS_LED_ON);
426 led->led_cdev.brightness = LED_FULL;
434 led->bank = best;
435 set_select(tca, led->num, bank_source[best]);
436 led->led_cdev.brightness = TO_BRIGHT(tca->bank[best].level);
445 if (choose_times(led->ontime, &c1, &c2) < 0)
447 if (choose_times(led->offtime, &c1, &c2) < 0)
466 led->on_dflt ||
467 tca->bank[i].ontime == led->ontime))
472 led->off_dflt ||
473 tca->bank[i].offtime == led->offtime))
489 led->bank = i;
492 !led->on_dflt ||
494 b->ontime = led->ontime;
495 b->on_dflt = led->on_dflt;
500 !led->off_dflt ||
502 b->offtime = led->offtime;
503 b->off_dflt = led->off_dflt;
510 led->ontime = b->ontime;
511 led->offtime = b->offtime;
514 led->blink = 1;
515 led->led_cdev.brightness = TO_BRIGHT(b->level);
516 set_select(tca, led->num, blink_source[i]);
520 static int led_assign(struct tca6507_led *led)
522 struct tca6507_chip *tca = led->chip;
527 led_release(led);
528 err = led_prepare(led);
534 led->ontime = 0;
535 led->offtime = 0;
536 led_prepare(led);
548 struct tca6507_led *led = container_of(led_cdev, struct tca6507_led,
550 led->led_cdev.brightness = brightness;
551 led->ontime = 0;
552 led->offtime = 0;
553 led_assign(led);
560 struct tca6507_led *led = container_of(led_cdev, struct tca6507_led,
564 led->on_dflt = 1;
566 led->on_dflt = 0;
567 led->ontime = *delay_on;
570 led->off_dflt = 1;
572 led->off_dflt = 0;
573 led->offtime = *delay_off;
575 if (led->ontime == 0)
576 led->ontime = 512;
577 if (led->offtime == 0)
578 led->offtime = 512;
580 if (led->led_cdev.brightness == LED_OFF)
581 led->led_cdev.brightness = LED_FULL;
582 if (led_assign(led) < 0) {
583 led->ontime = 0;
584 led->offtime = 0;
585 led->led_cdev.brightness = LED_OFF;
588 *delay_on = led->ontime;
589 *delay_off = led->offtime;
687 struct led_info led;
691 if (fwnode_property_read_string(child, "label", &led.name))
692 led.name = fwnode_get_name(child);
695 &led.default_trigger))
696 led.default_trigger = NULL;
698 led.flags = 0;
700 led.flags |= TCA6507_MAKE_GPIO;
708 tca_leds[reg] = led;