summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2016-06-03 17:03:58 -0700
committerMax Krummenacher <max.krummenacher@toradex.com>2016-06-22 14:36:39 +0200
commitbb16fd04f867518f832fe3595bd775ffe385ecca (patch)
tree452b1ddd2fa1b02e1b2ef1873d139848445739bd
parenta43897f9f36c7996fcb0499deaa013360a729382 (diff)
colibri_imx7: implement reset through PMIC
To properly reset a Colibri iMX7 the PMIC reset capabilities need to be used. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
-rw-r--r--board/toradex/colibri_imx7/colibri_imx7.c10
-rw-r--r--drivers/watchdog/imx_watchdog.c2
2 files changed, 12 insertions, 0 deletions
diff --git a/board/toradex/colibri_imx7/colibri_imx7.c b/board/toradex/colibri_imx7/colibri_imx7.c
index b1c2cce935..22f544b39a 100644
--- a/board/toradex/colibri_imx7/colibri_imx7.c
+++ b/board/toradex/colibri_imx7/colibri_imx7.c
@@ -598,6 +598,16 @@ int power_init_board(void)
return 0;
}
+
+void reset_cpu(ulong addr)
+{
+ struct pmic *p;
+ p = pmic_get("RN5T567");
+
+ /* Use PMIC to reset, set REPWRTIM to 0 and REPWRON to 1 */
+ pmic_reg_write(p, RN5T567_REPCNT, 0x1);
+ pmic_reg_write(p, RN5T567_SLPCNT, 0x1);
+}
#endif
int board_late_init(void)
diff --git a/drivers/watchdog/imx_watchdog.c b/drivers/watchdog/imx_watchdog.c
index 5f3c0fc696..f22bde540e 100644
--- a/drivers/watchdog/imx_watchdog.c
+++ b/drivers/watchdog/imx_watchdog.c
@@ -51,6 +51,7 @@ void hw_watchdog_init(void)
}
#endif
+#ifndef CONFIG_TARGET_COLIBRI_IMX7
void reset_cpu(ulong addr)
{
struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
@@ -68,3 +69,4 @@ void reset_cpu(ulong addr)
*/
}
}
+#endif