mail archive of the barebox mailing list
 help / color / mirror / Atom feed
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

  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