summaryrefslogtreecommitdiff
path: root/board/omap3
diff options
context:
space:
mode:
authorTom Rix <Tom.Rix@windriver.com>2009-06-28 12:52:29 -0500
committerHeiko Schocher <hs@denx.de>2009-07-28 08:56:31 +0200
commitcd7826359ee71e8f6f3d68331930ab9cbe1c990e (patch)
tree65e02888c85295c7bfb266b1beeb070e83f70385 /board/omap3
parent8966eb4c1c2d894b2a76174ba904c26c5af815b8 (diff)
downloadu-boot-imx-cd7826359ee71e8f6f3d68331930ab9cbe1c990e.zip
u-boot-imx-cd7826359ee71e8f6f3d68331930ab9cbe1c990e.tar.gz
u-boot-imx-cd7826359ee71e8f6f3d68331930ab9cbe1c990e.tar.bz2
TWL4030 Add power reset button
The Zoom2 power reset button is on the top right side of the main board. Press and hold for about to 8 seconds to completely reset the board. Some of the beta boards have a hardware problem that prevents using this feature. If is difficult to further characterize the boards that fail. So disable resetting for all beta boards. The Zoom1 reset button is the red circle on the top right, front of the board. Press and hold the button for 8 seconds to completely reset the board. After analyzing beagle, it was determined that other boards that use the twl4030 for power managment can also make use this function. The resetting is done by the power management part of the twl4030. Since there is no existing drivers/power, add one. The compilation of power/twl4030.h is controlled by the config variable CONFIG_TWL4030_POWER Signed-off-by: Tom Rix <Tom.Rix@windriver.com> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Heiko Schocher <hs@denx.de>
Diffstat (limited to 'board/omap3')
-rw-r--r--board/omap3/zoom1/zoom1.c9
-rw-r--r--board/omap3/zoom2/zoom2.c14
2 files changed, 23 insertions, 0 deletions
diff --git a/board/omap3/zoom1/zoom1.c b/board/omap3/zoom1/zoom1.c
index db4d087..94437d5 100644
--- a/board/omap3/zoom1/zoom1.c
+++ b/board/omap3/zoom1/zoom1.c
@@ -31,6 +31,7 @@
* MA 02111-1307 USA
*/
#include <common.h>
+#include <twl4030.h>
#include <asm/io.h>
#include <asm/arch/mux.h>
#include <asm/arch/sys_proto.h>
@@ -62,6 +63,14 @@ int misc_init_r(void)
{
power_init_r();
dieid_num_r();
+
+ /*
+ * Board Reset
+ * The board is reset by holding the red button on the
+ * top right front face for eight seconds.
+ */
+ twl4030_power_reset_init();
+
return 0;
}
diff --git a/board/omap3/zoom2/zoom2.c b/board/omap3/zoom2/zoom2.c
index 08fdafb..d0fd55b 100644
--- a/board/omap3/zoom2/zoom2.c
+++ b/board/omap3/zoom2/zoom2.c
@@ -32,6 +32,7 @@
#ifdef CONFIG_STATUS_LED
#include <status_led.h>
#endif
+#include <twl4030.h>
#include <asm/io.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mem.h>
@@ -156,6 +157,19 @@ int misc_init_r(void)
zoom2_identify();
power_init_r();
dieid_num_r();
+
+ /*
+ * Board Reset
+ * The board is reset by holding the the large button
+ * on the top right side of the main board for
+ * eight seconds.
+ *
+ * There are reported problems of some beta boards
+ * continously resetting. For those boards, disable resetting.
+ */
+ if (ZOOM2_REVISION_PRODUCTION <= zoom2_get_revision())
+ twl4030_power_reset_init();
+
return 0;
}