staticvoid pm8058_led_set(struct led_classdev *cled, enum led_brightness value)
{ struct pm8058_led *led; int ret = 0; unsignedint mask = 0; unsignedint val = 0;
led = container_of(cled, struct pm8058_led, cdev); switch (led->ledtype) { case PM8058_LED_TYPE_COMMON:
mask = PM8058_LED_TYPE_COMMON_MASK;
val = value << PM8058_LED_TYPE_COMMON_SHIFT; break; case PM8058_LED_TYPE_KEYPAD: case PM8058_LED_TYPE_FLASH:
mask = PM8058_LED_TYPE_KEYPAD_MASK;
val = value << PM8058_LED_TYPE_KEYPAD_SHIFT; break; default: break;
}
ret = regmap_update_bits(led->map, led->reg, mask, val); if (ret)
pr_err("Failed to set LED brightness\n");
}
led = container_of(cled, struct pm8058_led, cdev);
ret = regmap_read(led->map, led->reg, &val); if (ret) {
pr_err("Failed to get LED brightness\n"); return LED_OFF;
}
switch (led->ledtype) { case PM8058_LED_TYPE_COMMON:
val &= PM8058_LED_TYPE_COMMON_MASK;
val >>= PM8058_LED_TYPE_COMMON_SHIFT; break; case PM8058_LED_TYPE_KEYPAD: case PM8058_LED_TYPE_FLASH:
val &= PM8058_LED_TYPE_KEYPAD_MASK;
val >>= PM8058_LED_TYPE_KEYPAD_SHIFT; break; default:
val = LED_OFF; break;
}
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.