summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2019-08-25 17:58:44 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2019-09-09 10:44:30 +0200
commite208e049f98de40157eb3d8f8f7cbb61147a5040 (patch)
tree55c919d8ec72d82cb0433e3e9715452dcecefc86 /common
parent33f699d2eeef7735a40398ec8e0a7f457d6f2f54 (diff)
downloadbarebox-e208e049f98de40157eb3d8f8f7cbb61147a5040.tar.gz
barebox-e208e049f98de40157eb3d8f8f7cbb61147a5040.tar.xz
oftree: expose reset_source device in device tree
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r--common/oftree.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/common/oftree.c b/common/oftree.c
index 28a3b965ff..09cb660212 100644
--- a/common/oftree.c
+++ b/common/oftree.c
@@ -145,6 +145,7 @@ static int of_fixup_bootargs(struct device_node *root, void *unused)
const char *str;
int err;
int instance = reset_source_get_instance();
+ struct device_d *dev;
str = linux_bootargs_get();
if (!str)
@@ -164,6 +165,19 @@ static int of_fixup_bootargs(struct device_node *root, void *unused)
if (instance >= 0)
of_property_write_u32(node, "reset-source-instance", instance);
+
+ dev = reset_source_get_device();
+ if (dev && dev->device_node) {
+ phandle phandle;
+
+ phandle = of_node_create_phandle(dev->device_node);
+
+ err = of_property_write_u32(node,
+ "reset-source-device", phandle);
+ if (err)
+ return err;
+ }
+
return of_fixup_bootargs_bootsource(root, node);
}