/* Value related the movie mode */ #define KTD2692_MOVIE_MODE_CURRENT_LEVELS 16 #define KTD2692_MM_TO_FL_RATIO(x) ((x) / 3) #define KTD2692_MM_MIN_CURR_THRESHOLD_SCALE 8
/* Value related the flash mode */ #define KTD2692_FLASH_MODE_TIMEOUT_LEVELS 8 #define KTD2692_FLASH_MODE_TIMEOUT_DISABLE 0 #define KTD2692_FLASH_MODE_CURR_PERCENT(x) (((x) * 16) / 100)
/* Macro for getting offset of flash timeout */ #define GET_TIMEOUT_OFFSET(timeout, step) ((timeout) / (step))
/* KTD2692 default length of name */ #define KTD2692_NAME_LENGTH 20
/* Movie / Flash Mode Control */ enum ktd2692_led_mode {
KTD2692_MODE_DISABLE = 0, /* default */
KTD2692_MODE_MOVIE,
KTD2692_MODE_FLASH,
};
struct ktd2692_led_config_data { /* maximum LED current in movie mode */
u32 movie_max_microamp; /* maximum LED current in flash mode */
u32 flash_max_microamp; /* maximum flash timeout */
u32 flash_max_timeout; /* max LED brightness level */ enum led_brightness max_brightness;
};
led->props.ctrl_gpio = devm_gpiod_get(dev, "ctrl", GPIOD_ASIS);
ret = PTR_ERR_OR_ZERO(led->props.ctrl_gpio); if (ret) return dev_err_probe(dev, ret, "cannot get ctrl-gpios\n");
led->aux_gpio = devm_gpiod_get_optional(dev, "aux", GPIOD_ASIS); if (IS_ERR(led->aux_gpio)) return dev_err_probe(dev, PTR_ERR(led->aux_gpio), "cannot get aux-gpios\n");
led->regulator = devm_regulator_get(dev, "vin"); if (IS_ERR(led->regulator))
led->regulator = NULL;
if (led->regulator) {
ret = regulator_enable(led->regulator); if (ret) {
dev_err(dev, "Failed to enable supply: %d\n", ret);
} else {
ret = devm_add_action_or_reset(dev,
regulator_disable_action, dev); if (ret) return ret;
}
}
struct device_node *child_node __free(device_node) =
of_get_next_available_child(np, NULL); if (!child_node) {
dev_err(dev, "No DT child node found for connected LED.\n"); return -EINVAL;
}
MODULE_IMPORT_NS("EXPRESSWIRE");
MODULE_AUTHOR("Ingi Kim <ingi2.kim@samsung.com>");
MODULE_DESCRIPTION("Kinetic KTD2692 LED driver");
MODULE_LICENSE("GPL v2");
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-04-29)
¤
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.