]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00178629 i.MX6 sabresd:support software power off by SNVS setting
authorRobin Gong <B38343@freescale.com>
Sun, 1 Apr 2012 04:38:22 +0000 (12:38 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:21 +0000 (08:34 +0200)
On sabresd board, PMIC_ON_REQ control pmic power on/off, we can set TOP and
DP_EN of SNVS_LPCR to implement power off by software. On this way,SNVS RTC
alarm can work after power off. The description of register can be found on
other SNVS block document which provided by IC team, not i.MX6 RM.

Signed-off-by: Robin Gong <B38343@freescale.com>
arch/arm/mach-mx6/board-mx6q_sabresd.c

index d9c44f0854bb89d6d19670746ebc136ca3c31a43..82beefa8f46a2764e37983eba9edb919aea786ce 100644 (file)
@@ -1412,6 +1412,17 @@ static struct mipi_csi2_platform_data mipi_csi2_pdata = {
        .pixel_clk = "emi_clk",
 };
 
+#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);
+}
+
 /*!
  * Board specific initialization.
  */
@@ -1597,6 +1608,8 @@ static void __init mx6_sabresd_board_init(void)
        gps_power_on(true);
        /* Register charger chips */
        platform_device_register(&sabresd_max8903_charger_1);
+       pm_power_off = mx6_snvs_poweroff;
+
 }
 
 extern void __iomem *twd_base;