From: Christian Marangi <ansuelsmth@gmail.com>
To: Tom Rini <trini@konsulko.com>,
Joe Hershberger <joe.hershberger@ni.com>,
Ramon Fried <rfried.dev@gmail.com>,
Dario Binacchi <dario.binacchi@amarulasolutions.com>,
Christian Marangi <ansuelsmth@gmail.com>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Heinrich Schuchardt <xypron.glpk@gmx.de>,
Arseniy Krasnov <avkrasnov@salutedevices.com>,
Martin Kurbanov <mmkurbanov@salutedevices.com>,
Dmitry Dunaev <dunaev@tecon.ru>, Simon Glass <sjg@chromium.org>,
Marek Vasut <marek.vasut+renesas@mailbox.org>,
Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
Sean Anderson <sean.anderson@seco.com>,
Shiji Yang <yangshiji66@outlook.com>,
Vasileios Amoiridis <vassilisamir@gmail.com>,
Leo Yu-Chi Liang <ycliang@andestech.com>,
Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>,
Michael Polyntsov <michael.polyntsov@iopsys.eu>,
Doug Zobel <douglas.zobel@climate.com>,
u-boot@lists.denx.de
Subject: [PATCH v2 2/9] led: implement led_set_state/period_by_label
Date: Wed, 7 Aug 2024 21:54:05 +0200 [thread overview]
Message-ID: <20240807195413.30456-3-ansuelsmth@gmail.com> (raw)
In-Reply-To: <20240807195413.30456-1-ansuelsmth@gmail.com>
Introduce new API led_set_state/period_by label as a shorthand to set
LED state and LED blink period by referencing them by label.
This is needed for the upcoming additional API that will declare LED in
.confg and reference them by their LED label name.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
drivers/led/led-uclass.c | 28 ++++++++++++++++++++++++++++
include/led.h | 18 ++++++++++++++++++
2 files changed, 46 insertions(+)
diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c
index 199d68bc25a..b2b96d7d48b 100644
--- a/drivers/led/led-uclass.c
+++ b/drivers/led/led-uclass.c
@@ -65,6 +65,20 @@ int led_set_state(struct udevice *dev, enum led_state_t state)
return ops->set_state(dev, state);
}
+int led_set_state_by_label(const char *label, enum led_state_t state)
+{
+ struct udevice *dev;
+ int ret;
+
+ ret = led_get_by_label(label, &dev);
+ if (ret) {
+ printf("Failed to get LED by label %s\n", label);
+ return ret;
+ }
+
+ return led_set_state(dev, state);
+}
+
enum led_state_t led_get_state(struct udevice *dev)
{
struct led_ops *ops = led_get_ops(dev);
@@ -94,6 +108,20 @@ int led_set_period(struct udevice *dev, int period_ms)
return -ENOSYS;
}
+int led_set_period_by_label(const char *label, int period_ms)
+{
+ struct udevice *dev;
+ int ret;
+
+ ret = led_get_by_label(label, &dev);
+ if (ret) {
+ printf("Failed to get LED by label %s\n", label);
+ return ret;
+ }
+
+ return led_set_period(dev, period_ms);
+}
+
static int led_post_bind(struct udevice *dev)
{
struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
diff --git a/include/led.h b/include/led.h
index 99f93c5ef86..c1f3380f253 100644
--- a/include/led.h
+++ b/include/led.h
@@ -111,6 +111,15 @@ int led_get_by_label(const char *label, struct udevice **devp);
*/
int led_set_state(struct udevice *dev, enum led_state_t state);
+/**
+ * led_set_state_by_label - set the state of an LED referenced by Label
+ *
+ * @label: LED label
+ * @state: LED state to set
+ * Return: 0 if OK, -ve on error
+ */
+int led_set_state_by_label(const char *label, enum led_state_t state);
+
/**
* led_get_state() - get the state of an LED
*
@@ -128,6 +137,15 @@ enum led_state_t led_get_state(struct udevice *dev);
*/
int led_set_period(struct udevice *dev, int period_ms);
+/**
+ * led_set_period_by_label - set the blink period of an LED referenced by Label
+ *
+ * @label: LED label
+ * @period_ms: LED blink period in milliseconds
+ * Return: 0 if OK, -ve on error
+ */
+int led_set_period_by_label(const char *label, int period_ms);
+
/**
* led_bind_generic() - bind children of parent to given driver
*
--
2.45.2
next prev parent reply other threads:[~2024-08-07 19:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-07 19:54 [PATCH v2 0/9] led: introduce LED boot and activity function Christian Marangi
2024-08-07 19:54 ` [PATCH v2 1/9] led: turn LED ON on initial SW blink Christian Marangi
2024-08-07 19:54 ` Christian Marangi [this message]
2024-08-07 19:54 ` [PATCH v2 3/9] led: implement LED boot API Christian Marangi
2024-08-07 19:54 ` [PATCH v2 4/9] common: board_r: rework BOOT LED handling Christian Marangi
2024-08-07 19:54 ` [PATCH v2 5/9] led: implement LED activity API Christian Marangi
2024-08-07 19:54 ` [PATCH v2 6/9] tftp: implement support for LED activity Christian Marangi
2024-08-07 19:54 ` [PATCH v2 7/9] mtd: " Christian Marangi
2024-08-07 19:54 ` [PATCH v2 8/9] ubi: " Christian Marangi
2024-08-07 19:54 ` [PATCH v2 9/9] doc: introduce led.rst documentation Christian Marangi
2024-08-08 6:34 ` Alexander Dahl
2024-08-09 13:59 ` Christian Marangi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240807195413.30456-3-ansuelsmth@gmail.com \
--to=ansuelsmth@gmail.com \
--cc=avkrasnov@salutedevices.com \
--cc=dario.binacchi@amarulasolutions.com \
--cc=douglas.zobel@climate.com \
--cc=dunaev@tecon.ru \
--cc=joe.hershberger@ni.com \
--cc=marek.vasut+renesas@mailbox.org \
--cc=michael.polyntsov@iopsys.eu \
--cc=mikhail.kshevetskiy@iopsys.eu \
--cc=miquel.raynal@bootlin.com \
--cc=mmkurbanov@salutedevices.com \
--cc=rasmus.villemoes@prevas.dk \
--cc=rfried.dev@gmail.com \
--cc=sean.anderson@seco.com \
--cc=sjg@chromium.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=vassilisamir@gmail.com \
--cc=xypron.glpk@gmx.de \
--cc=yangshiji66@outlook.com \
--cc=ycliang@andestech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox