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>,
Simon Glass <sjg@chromium.org>,
Christian Marangi <ansuelsmth@gmail.com>,
Heinrich Schuchardt <xypron.glpk@gmx.de>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Arseniy Krasnov <avkrasnov@salutedevices.com>,
Heiko Schocher <hs@denx.de>,
Michael Trimarchi <michael@amarulasolutions.com>,
Martin Kurbanov <mmkurbanov@salutedevices.com>,
Alexey Romanov <avromanov@salutedevices.com>,
Dmitry Dunaev <dunaev@tecon.ru>,
Marek Vasut <marek.vasut+renesas@mailbox.org>,
Sean Anderson <sean.anderson@seco.com>,
Artur Rojek <artur@conclusive.pl>,
Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
Leo Yu-Chi Liang <ycliang@andestech.com>,
Vasileios Amoiridis <vassilisamir@gmail.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 v3 2/9] led: implement led_set_state/period_by_label
Date: Mon, 12 Aug 2024 12:32:44 +0200 [thread overview]
Message-ID: <20240812103254.26972-3-ansuelsmth@gmail.com> (raw)
In-Reply-To: <20240812103254.26972-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-12 10:33 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-12 10:32 [PATCH v3 0/9] led: introduce LED boot and activity function Christian Marangi
2024-08-12 10:32 ` [PATCH v3 1/9] led: turn LED ON on initial SW blink Christian Marangi
2024-08-12 22:00 ` Heinrich Schuchardt
2024-08-22 10:47 ` Christian Marangi
2024-09-19 17:20 ` Heinrich Schuchardt
2024-09-19 14:13 ` Simon Glass
2024-09-19 16:26 ` Christian Marangi
2024-08-12 10:32 ` Christian Marangi [this message]
2024-09-19 14:14 ` [PATCH v3 2/9] led: implement led_set_state/period_by_label Simon Glass
2024-08-12 10:32 ` [PATCH v3 3/9] led: implement LED boot API Christian Marangi
2024-09-19 14:14 ` Simon Glass
2024-08-12 10:32 ` [PATCH v3 4/9] common: board_r: rework BOOT LED handling Christian Marangi
2024-09-19 14:13 ` Simon Glass
2024-08-12 10:32 ` [PATCH v3 5/9] led: implement LED activity API Christian Marangi
2024-09-19 14:13 ` Simon Glass
2024-08-12 10:32 ` [PATCH v3 6/9] tftp: implement support for LED activity Christian Marangi
2024-09-19 14:13 ` Simon Glass
2024-08-12 10:32 ` [PATCH v3 7/9] mtd: " Christian Marangi
2024-08-12 10:32 ` [PATCH v3 8/9] ubi: " Christian Marangi
2024-08-14 4:33 ` Heiko Schocher
2024-08-14 8:17 ` Michael Nazzareno Trimarchi
2024-08-18 16:01 ` Christian Marangi
2024-08-18 19:32 ` Michael Nazzareno Trimarchi
2024-08-22 10:45 ` Christian Marangi
2024-08-18 15:58 ` Christian Marangi
2024-08-12 10:32 ` [PATCH v3 9/9] doc: introduce led.rst documentation 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=20240812103254.26972-3-ansuelsmth@gmail.com \
--to=ansuelsmth@gmail.com \
--cc=artur@conclusive.pl \
--cc=avkrasnov@salutedevices.com \
--cc=avromanov@salutedevices.com \
--cc=dario.binacchi@amarulasolutions.com \
--cc=douglas.zobel@climate.com \
--cc=dunaev@tecon.ru \
--cc=hs@denx.de \
--cc=joe.hershberger@ni.com \
--cc=marek.vasut+renesas@mailbox.org \
--cc=michael.polyntsov@iopsys.eu \
--cc=michael@amarulasolutions.com \
--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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.