staticint wm831x_status_blink_set(struct led_classdev *led_cdev, unsignedlong *delay_on, unsignedlong *delay_off)
{ struct wm831x_status *led = to_wm831x_status(led_cdev); unsignedlong flags; int ret = 0;
/* Pick some defaults if we've not been given times */ if (*delay_on == 0 && *delay_off == 0) {
*delay_on = 250;
*delay_off = 250;
}
spin_lock_irqsave(&led->value_lock, flags);
/* We only have a limited selection of settings, see if we can
* support the configuration we're being given */ switch (*delay_on) { case 1000:
led->blink_time = 0; break; case 250:
led->blink_time = 1; break; case 125:
led->blink_time = 2; break; case 62: case 63: /* Actually 62.5ms */
led->blink_time = 3; break; default:
ret = -EINVAL; break;
}
if (ret == 0) { switch (*delay_off / *delay_on) { case 1:
led->blink_cyc = 0; break; case 3:
led->blink_cyc = 1; break; case 4:
led->blink_cyc = 2; break; case 8:
led->blink_cyc = 3; break; default:
ret = -EINVAL; break;
}
}
for (i = 0; i < ARRAY_SIZE(led_src_texts); i++) if (i == led->src)
ret += sprintf(&buf[ret], "[%s] ", led_src_texts[i]); else
ret += sprintf(&buf[ret], "%s ", led_src_texts[i]);
MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
MODULE_DESCRIPTION("WM831x status LED driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:wm831x-status");
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-04-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.