[PATCH 2/2] ARM: imx6: gw54xx: fixup watchdog nodes on pre rev E boards
Lucas Stach
dev at lynxeye.de
Mon May 29 13:02:42 PDT 2017
Older boards before revision E don't have the external watchdog signal
wired up to the PMIC, so they must use watchdog 1, which is able to
reset the SoC internally.
Signed-off-by: Lucas Stach <dev at lynxeye.de>
---
arch/arm/boards/gateworks-ventana/board.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/arch/arm/boards/gateworks-ventana/board.c b/arch/arm/boards/gateworks-ventana/board.c
index 82dba7c..3ff142e 100644
--- a/arch/arm/boards/gateworks-ventana/board.c
+++ b/arch/arm/boards/gateworks-ventana/board.c
@@ -24,6 +24,19 @@
#include "gsc.h"
+static int gw54xx_wdog_of_fixup(struct device_node *root, void *context)
+{
+ struct device_node *np;
+
+ /* switch to the watchdog with internal reset capabilities */
+ np = of_find_node_by_name(root, "wdog at 020c0000");
+ of_device_disable(np);
+ np = of_find_node_by_name(root, "wdog at 020bc000");
+ of_device_enable(np);
+
+ return 0;
+}
+
static int gw54xx_devices_init(void)
{
struct i2c_client client;
@@ -60,6 +73,10 @@ static int gw54xx_devices_init(void)
of_eth_register_ethaddr(dnode, mac);
}
+ /* boards before rev E don't have the external watchdog signal */
+ if (gsc_get_rev(&client) < 'E')
+ of_register_fixup(gw54xx_wdog_of_fixup, NULL);
+
imx6_bbu_nand_register_handler("nand", BBU_HANDLER_FLAG_DEFAULT);
barebox_set_hostname("gw54xx");
--
2.9.4
More information about the barebox
mailing list