mirror of https://gitee.com/openkylin/linux.git
mx31moboard: Add poweroff support
This patch add poweroff support on mx31moboard platform. A watchdog timeout is generated while enabling the watchdog reset IO to trigger a PMIC poweroff. Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
bbb433639c
commit
40d97b89bd
|
@ -28,6 +28,9 @@
|
|||
#include <linux/spi/spi.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
#include <linux/usb/otg.h>
|
||||
#include <linux/usb/ulpi.h>
|
||||
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue