From f6564c732ccf167570c219e603a4c18ada756cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20R=C3=A9tornaz?= Date: Tue, 20 Sep 2011 10:57:43 +0200 Subject: [PATCH] --- yaml --- r: 272847 b: refs/heads/master c: 40d97b89bd3c902144a0757249d9d5d5cf314214 h: refs/heads/master i: 272845: dc8985638a06f4819afb9d242815f2870f513fdc 272843: 59c753edb24653e21cd0d8e252963ddd22828710 272839: 7a93747ece5d433f08e5ad6d67efbe7e6cfe2920 272831: b24d8c6a743aa9ddc6ad29370e3208dceb1f77d0 v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-imx/mach-mx31moboard.c | 17 +++++++++++++++++ .../arch/arm/plat-mxc/include/mach/iomux-mx3.h | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 59ab827ff5d9..9b5c0f9e98e1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bbb433639c8e7b0ab68b7ed05871272880db4094 +refs/heads/master: 40d97b89bd3c902144a0757249d9d5d5cf314214 diff --git a/trunk/arch/arm/mach-imx/mach-mx31moboard.c b/trunk/arch/arm/mach-imx/mach-mx31moboard.c index b358383120e7..3c7d67b77716 100644 --- a/trunk/arch/arm/mach-imx/mach-mx31moboard.c +++ b/trunk/arch/arm/mach-imx/mach-mx31moboard.c @@ -28,6 +28,9 @@ #include #include #include +#include +#include +#include #include #include @@ -490,6 +493,18 @@ static int __init mx31moboard_init_cam(void) } +static void mx31moboard_poweroff(void) +{ + struct clk *clk = clk_get_sys("imx2-wdt.0", NULL); + + if (!IS_ERR(clk)) + clk_enable(clk); + + mxc_iomux_mode(MX31_PIN_WATCHDOG_RST__WATCHDOG_RST); + + __raw_writew(1 << 6 | 1 << 2, MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR)); +} + static int mx31moboard_baseboard; core_param(mx31moboard_baseboard, mx31moboard_baseboard, int, 0444); @@ -528,6 +543,8 @@ static void __init mx31moboard_init(void) moboard_usbh2_init(); + pm_power_off = mx31moboard_poweroff; + switch (mx31moboard_baseboard) { case MX31NOBOARD: break; diff --git a/trunk/arch/arm/plat-mxc/include/mach/iomux-mx3.h b/trunk/arch/arm/plat-mxc/include/mach/iomux-mx3.h index c92f0b1f216f..63f22a009a65 100644 --- a/trunk/arch/arm/plat-mxc/include/mach/iomux-mx3.h +++ b/trunk/arch/arm/plat-mxc/include/mach/iomux-mx3.h @@ -735,6 +735,7 @@ enum iomux_pins { #define MX31_PIN_KEY_COL5_KEY_COL5 IOMUX_MODE(MX31_PIN_KEY_COL5, IOMUX_CONFIG_FUNC) #define MX31_PIN_KEY_COL6_KEY_COL6 IOMUX_MODE(MX31_PIN_KEY_COL6, IOMUX_CONFIG_FUNC) #define MX31_PIN_KEY_COL7_KEY_COL7 IOMUX_MODE(MX31_PIN_KEY_COL7, IOMUX_CONFIG_FUNC) +#define MX31_PIN_WATCHDOG_RST__WATCHDOG_RST IOMUX_MODE(MX31_PIN_WATCHDOG_RST, IOMUX_CONFIG_FUNC) /*