]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
leds: core: Introduce led_get_color_name() function
authorThomas Weißschuh <linux@weissschuh.net>
Thu, 13 Jun 2024 14:48:36 +0000 (16:48 +0200)
committerLee Jones <lee@kernel.org>
Fri, 21 Jun 2024 10:41:32 +0000 (11:41 +0100)
This is similar to the existing led_colors[] array but is safer to use and
usable by everyone.

Getting string representations of color ids is useful for drivers
which are handling color IDs anyways, for example for the multicolor API.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20240613-cros_ec-led-v3-1-500b50f41e0f@weissschuh.net
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/led-core.c
include/linux/leds.h

index 89c9806cc97f3d2ba10447c1dc63467989791d81..e0dd2284e84a2d14136f68c7cd43f4a38959ae32 100644 (file)
@@ -534,6 +534,15 @@ int led_compose_name(struct device *dev, struct led_init_data *init_data,
 }
 EXPORT_SYMBOL_GPL(led_compose_name);
 
+const char *led_get_color_name(u8 color_id)
+{
+       if (color_id >= ARRAY_SIZE(led_colors))
+               return NULL;
+
+       return led_colors[color_id];
+}
+EXPORT_SYMBOL_GPL(led_get_color_name);
+
 enum led_default_state led_init_default_state_get(struct fwnode_handle *fwnode)
 {
        const char *state = NULL;
index 6300313c46b79957a2febfc5a312eab8d7fd9a05..dedea965afbfead17d0f4d7002af1087ecb9bfb0 100644 (file)
@@ -427,6 +427,16 @@ void led_sysfs_enable(struct led_classdev *led_cdev);
 int led_compose_name(struct device *dev, struct led_init_data *init_data,
                     char *led_classdev_name);
 
+/**
+ * led_get_color_name - get string representation of color ID
+ * @color_id: The LED_COLOR_ID_* constant
+ *
+ * Get the string name of a LED_COLOR_ID_* constant.
+ *
+ * Returns: A string constant or NULL on an invalid ID.
+ */
+const char *led_get_color_name(u8 color_id);
+
 /**
  * led_sysfs_is_disabled - check if LED sysfs interface is disabled
  * @led_cdev: the LED to query