diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2014-04-02 14:42:02 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2014-04-02 14:42:02 +0200 |
commit | 816f26b3411b447e6637fa36bbd50b4bc720f417 (patch) | |
tree | ebb7e82441a7678e072652a06957a76ee48c2de5 | |
parent | 26a3b58b789bfe94c87e4a49f0f0a16c63dbfb61 (diff) |
board-apalis_imx6: add pm_power_off callback
function taken from board-mx6q_sabresd.c
-rw-r--r-- | arch/arm/mach-mx6/board-apalis_imx6.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/board-apalis_imx6.c b/arch/arm/mach-mx6/board-apalis_imx6.c index 752c99d194f9..48e5c2308bcd 100644 --- a/arch/arm/mach-mx6/board-apalis_imx6.c +++ b/arch/arm/mach-mx6/board-apalis_imx6.c @@ -1351,6 +1351,16 @@ static int __init caam_setup(char *__unused) } early_param("caam", caam_setup); +#define SNVS_LPCR 0x38 +static void mx6_snvs_poweroff(void) +{ + void __iomem *mx6_snvs_base = MX6_IO_ADDRESS(MX6Q_SNVS_BASE_ADDR); + u32 value; + value = readl(mx6_snvs_base + SNVS_LPCR); + /*set TOP and DP_EN bit*/ + writel(value | 0x60, mx6_snvs_base + SNVS_LPCR); +} + static const struct imx_pcie_platform_data pcie_data __initconst = { .pcie_pwr_en = -EINVAL, .pcie_rst = -EINVAL, @@ -1570,6 +1580,7 @@ static void __init board_init(void) rate = clk_round_rate(clko2, 24000000); clk_set_rate(clko2, rate); clk_enable(clko2); + pm_power_off = mx6_snvs_poweroff; imx6q_add_busfreq(); imx6q_add_pcie(&pcie_data); |