summaryrefslogtreecommitdiffstats
path: root/board
diff options
context:
space:
mode:
authorTim Harvey <tharvey@gateworks.com>2015-04-08 12:54:44 -0700
committerStefano Babic <sbabic@denx.de>2015-04-22 14:39:09 +0200
commit0c81b14fac27ce12fc04c2a678cb61948792bd67 (patch)
tree486172c1bc03abfc8573f6cc7bd9e0202ba583b7 /board
parent1274bd2c27e65a33eba32cc4e4bf19ccbbbbc64d (diff)
downloadblackbird-obmc-uboot-0c81b14fac27ce12fc04c2a678cb61948792bd67.tar.gz
blackbird-obmc-uboot-0c81b14fac27ce12fc04c2a678cb61948792bd67.zip
imx: ventana: disable IMX6 watchdogs on GW51xx RevA and RevB
A board level errata causes the IMX6 watchdog to be unstable on the GW51xx RevA and RevB boards which can cause the watchdog to trip extremely early (under 5seconds) under certain operating conditions. Disable the watchdog node in the device-tree to work around this issue. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Diffstat (limited to 'board')
-rw-r--r--board/gateworks/gw_ventana/gw_ventana.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c
index 3914f28bd3..9ea24f43f7 100644
--- a/board/gateworks/gw_ventana/gw_ventana.c
+++ b/board/gateworks/gw_ventana/gw_ventana.c
@@ -1515,6 +1515,16 @@ int ft_board_setup(void *blob, bd_t *bd)
{ "fsl,imx6q-gpmi-nand", MTD_DEV_TYPE_NAND, }, /* NAND flash */
};
const char *model = getenv("model");
+ int i;
+ char rev = 0;
+
+ /* determine board revision */
+ for (i = sizeof(ventana_info.model) - 1; i > 0; i--) {
+ if (ventana_info.model[i] >= 'A') {
+ rev = ventana_info.model[i];
+ break;
+ }
+ }
if (getenv("fdt_noauto")) {
puts(" Skiping ft_board_setup (fdt_noauto defined)\n");
@@ -1540,6 +1550,17 @@ int ft_board_setup(void *blob, bd_t *bd)
strlen((const char *)info->model) + 1);
/*
+ * disable wdog1/wdog2 nodes for GW51xx below revC to work around
+ * errata causing wdog timer to be unreliable.
+ */
+ if (board_type == GW51xx && rev >= 'A' && rev < 'C') {
+ i = fdt_path_offset(blob,
+ "/soc/aips-bus@02000000/wdog@020bc000");
+ if (i)
+ fdt_status_disabled(blob, i);
+ }
+
+ /*
* Peripheral Config:
* remove nodes by alias path if EEPROM config tells us the
* peripheral is not loaded on the board.
OpenPOWER on IntegriCloud