summaryrefslogtreecommitdiff
path: root/drivers/power/reset/syscon-reboot-mode.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/power/reset/syscon-reboot-mode.c')
-rw-r--r--drivers/power/reset/syscon-reboot-mode.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/power/reset/syscon-reboot-mode.c b/drivers/power/reset/syscon-reboot-mode.c
index d1521d810ea2..27ef0b3151bd 100644
--- a/drivers/power/reset/syscon-reboot-mode.c
+++ b/drivers/power/reset/syscon-reboot-mode.c
@@ -29,6 +29,15 @@ static int syscon_reboot_mode_write(int magic)
return 0;
}
+static int syscon_reboot_mode_read(void)
+{
+ u32 val = 0;
+
+ regmap_read(map, offset, &val);
+
+ return val;
+}
+
static int syscon_reboot_mode_probe(struct platform_device *pdev)
{
int ret;
@@ -39,7 +48,8 @@ static int syscon_reboot_mode_probe(struct platform_device *pdev)
if (of_property_read_u32(pdev->dev.of_node, "offset", &offset))
return -EINVAL;
of_property_read_u32(pdev->dev.of_node, "mask", &mask);
- ret = reboot_mode_register(&pdev->dev, syscon_reboot_mode_write);
+ ret = reboot_mode_register(&pdev->dev, syscon_reboot_mode_write,
+ syscon_reboot_mode_read);
if (ret)
dev_err(&pdev->dev, "can't register reboot mode\n");