[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220917081339.3354075-3-jjhiblot@traphandler.com>
Date: Sat, 17 Sep 2022 10:13:37 +0200
From: Jean-Jacques Hiblot <jjhiblot@...phandler.com>
To: <pavel@....cz>, <robh+dt@...nel.org>,
<sven.schwermer@...ruptive-technologies.com>,
<krzysztof.kozlowski+dt@...aro.org>
CC: <johan+linaro@...nel.org>, <marijn.suijten@...ainline.org>,
<bjorn.andersson@...aro.org>, <andy.shevchenko@...il.com>,
<linux-leds@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <sha@...gutronix.de>,
Jean-Jacques Hiblot <jjhiblot@...phandler.com>
Subject: [RESEND PATCH v3 2/4] leds: class: store the color index in struct led_classdev
This information might be useful for more than only deriving the led's
name.
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@...phandler.com>
---
drivers/leds/led-class.c | 7 +++++++
include/linux/leds.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
index 2c0d979d0c8a..537379f09801 100644
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -350,6 +350,10 @@ int led_classdev_register_ext(struct device *parent,
if (fwnode_property_present(init_data->fwnode,
"retain-state-shutdown"))
led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN;
+
+ if (fwnode_property_present(init_data->fwnode, "color"))
+ fwnode_property_read_u32(init_data->fwnode, "color",
+ &led_cdev->color);
}
} else {
proposed_name = led_cdev->name;
@@ -359,6 +363,9 @@ int led_classdev_register_ext(struct device *parent,
if (ret < 0)
return ret;
+ if (led_cdev->color >= LED_COLOR_ID_MAX)
+ dev_warn(parent, "LED %s color identifier out of range\n", final_name);
+
mutex_init(&led_cdev->led_access);
mutex_lock(&led_cdev->led_access);
led_cdev->dev = device_create_with_groups(leds_class, parent, 0,
diff --git a/include/linux/leds.h b/include/linux/leds.h
index ba4861ec73d3..fe6346604e36 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -71,6 +71,7 @@ struct led_classdev {
const char *name;
unsigned int brightness;
unsigned int max_brightness;
+ unsigned int color;
int flags;
/* Lower 16 bits reflect status */
--
2.25.1
Powered by blists - more mailing lists