[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