summaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorMichael Grzeschik <m.grzeschik@pengutronix.de>2016-12-14 13:52:52 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2017-01-10 08:27:33 +0100
commit6f20bcdb7b234fae03b28175a6a3e0d1ae44dc90 (patch)
tree057f1c9e095e935450226ab388637d42a2fa2fbc /drivers/mfd
parent40df35f5cb0d64469b400c31a91e598c8869b83b (diff)
downloadbarebox-6f20bcdb7b234fae03b28175a6a3e0d1ae44dc90.tar.gz
barebox-6f20bcdb7b234fae03b28175a6a3e0d1ae44dc90.tar.xz
da9053: reset FAULTLOG after read
The driver has to reset the FAULTLOG register after every read by writing the value back. In the current case the FALUTLOG register keep its value over every software reset and will only reset on power-off. This drives the reset-source value unreliable. Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/da9053.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/mfd/da9053.c b/drivers/mfd/da9053.c
index 250c0556ec..ccee9d6dd7 100644
--- a/drivers/mfd/da9053.c
+++ b/drivers/mfd/da9053.c
@@ -240,6 +240,10 @@ static void da9053_detect_reset_source(struct da9053_priv *da9053)
priority = of_get_reset_source_priority(da9053->dev->device_node);
reset_source_set_priority(type, priority);
+
+ ret = da9053_reg_write(da9053, DA9053_FAULTLOG_REG, val);
+ if (ret < 0)
+ return;
}
static void __noreturn da9053_force_system_reset(struct restart_handler *rst)