From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH v2 4/7] reset_source: implement helper to set a device as reset source
Date: Sun, 25 Aug 2019 17:58:41 +0200 [thread overview]
Message-ID: <20190825155844.18455-5-u.kleine-koenig@pengutronix.de> (raw)
In-Reply-To: <20190825155844.18455-1-u.kleine-koenig@pengutronix.de>
This allows to remove some boilerplate from drivers.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
common/reset_source.c | 27 +++++++++++++++++++++++++--
include/reset_source.h | 2 ++
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/common/reset_source.c b/common/reset_source.c
index f32b4eac2818..8fdf05215753 100644
--- a/common/reset_source.c
+++ b/common/reset_source.c
@@ -34,6 +34,7 @@ static const char * const reset_src_names[] = {
static enum reset_src_type reset_source;
static unsigned int reset_source_priority;
static int reset_source_instance;
+static struct device_d *reset_source_device;
enum reset_src_type reset_source_get(void)
{
@@ -53,8 +54,15 @@ int reset_source_get_instance(void)
}
EXPORT_SYMBOL(reset_source_get_instance);
-void reset_source_set_prinst(enum reset_src_type st,
- unsigned int priority, int instance)
+struct device_d *reset_source_get_device(void)
+{
+ return reset_source_device;
+}
+EXPORT_SYMBOL(reset_source_get_device);
+
+static void __reset_source_set(struct device_d *dev,
+ enum reset_src_type st,
+ unsigned int priority, int instance)
{
if (priority <= reset_source_priority)
return;
@@ -62,12 +70,27 @@ void reset_source_set_prinst(enum reset_src_type st,
reset_source = st;
reset_source_priority = priority;
reset_source_instance = instance;
+ reset_source_device = NULL;
pr_debug("Setting reset source to %s with priority %d\n",
reset_src_names[reset_source], priority);
}
+
+void reset_source_set_prinst(enum reset_src_type st,
+ unsigned int priority, int instance)
+{
+ __reset_source_set(NULL, st, priority, instance);
+}
EXPORT_SYMBOL(reset_source_set_prinst);
+void reset_source_set_device(struct device_d *dev, enum reset_src_type st)
+{
+ int priority = of_get_reset_source_priority(dev->device_node);
+
+ __reset_source_set(dev, st, priority, -1);
+}
+EXPORT_SYMBOL(reset_source_set_device);
+
static int reset_source_init(void)
{
globalvar_add_simple_enum("system.reset", (unsigned int *)&reset_source,
diff --git a/include/reset_source.h b/include/reset_source.h
index 22c51a0ea674..27ee077cc672 100644
--- a/include/reset_source.h
+++ b/include/reset_source.h
@@ -30,7 +30,9 @@ enum reset_src_type {
enum reset_src_type reset_source_get(void);
const char *reset_source_name(void);
int reset_source_get_instance(void);
+struct device_d *reset_source_get_device(void);
+void reset_source_set_device(struct device_d *dev, enum reset_src_type st);
void reset_source_set_prinst(enum reset_src_type,
unsigned int priority, int instance);
--
2.20.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2019-08-25 15:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-25 15:58 [PATCH v2 0/7] clean up and complement reset source handling Uwe Kleine-König
2019-08-25 15:58 ` [PATCH v2 1/7] reset_source: use instance = -1 as default Uwe Kleine-König
2019-08-25 15:58 ` [PATCH v2 2/7] reset_source: fix ordering of exported functions Uwe Kleine-König
2019-08-25 15:58 ` [PATCH v2 3/7] reset_source: drop reset_source_set_instance() Uwe Kleine-König
2019-08-25 15:58 ` Uwe Kleine-König [this message]
2019-08-25 15:58 ` [PATCH v2 5/7] mfd: da9053: use new reset_source_set_device() Uwe Kleine-König
2019-08-25 15:58 ` [PATCH v2 6/7] mfd: da9063: " Uwe Kleine-König
2019-08-25 15:58 ` [PATCH v2 7/7] oftree: expose reset_source device in device tree Uwe Kleine-König
2019-08-28 11:34 ` [PATCH v2 0/7] clean up and complement reset source handling Sascha Hauer
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=20190825155844.18455-5-u.kleine-koenig@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--cc=barebox@lists.infradead.org \
/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