summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-05-09 14:17:05 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2018-05-09 14:17:05 +0200
commita126440dd736cfbd60ddbdf9e2a9be78abfff4fe (patch)
tree554c55c784b5464f94b5607319bae3648eea9655 /common
parent93c5d36b6520b8caed7cedcc5e4f18c8c68dc25c (diff)
parent046ac573e07cb10987230f281e5c13d32a2a9119 (diff)
downloadbarebox-a126440dd736cfbd60ddbdf9e2a9be78abfff4fe.tar.gz
barebox-a126440dd736cfbd60ddbdf9e2a9be78abfff4fe.tar.xz
Merge branch 'for-next/imx-reset-reason'
Diffstat (limited to 'common')
-rw-r--r--common/reset_source.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/common/reset_source.c b/common/reset_source.c
index 06e2ca85f5..338d7b9acb 100644
--- a/common/reset_source.c
+++ b/common/reset_source.c
@@ -32,6 +32,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;
enum reset_src_type reset_source_get(void)
{
@@ -39,6 +40,12 @@ enum reset_src_type reset_source_get(void)
}
EXPORT_SYMBOL(reset_source_get);
+int reset_source_get_instance(void)
+{
+ return reset_source_instance;
+}
+EXPORT_SYMBOL(reset_source_get_instance);
+
void reset_source_set_priority(enum reset_src_type st, unsigned int priority)
{
if (priority <= reset_source_priority)
@@ -46,17 +53,33 @@ void reset_source_set_priority(enum reset_src_type st, unsigned int priority)
reset_source = st;
reset_source_priority = priority;
+ reset_source_instance = 0;
pr_debug("Setting reset source to %s with priority %d\n",
reset_src_names[reset_source], priority);
}
EXPORT_SYMBOL(reset_source_set_priority);
+const char *reset_source_name(void)
+{
+ return reset_src_names[reset_source];
+}
+EXPORT_SYMBOL(reset_source_name);
+
+void reset_source_set_instance(enum reset_src_type type, int instance)
+{
+ if (reset_source == type)
+ reset_source_instance = instance;
+}
+EXPORT_SYMBOL(reset_source_set_instance);
+
static int reset_source_init(void)
{
globalvar_add_simple_enum("system.reset", (unsigned int *)&reset_source,
reset_src_names, ARRAY_SIZE(reset_src_names));
+ globalvar_add_simple_int("system.reset_instance", &reset_source_instance,
+ "%d");
return 0;
}