MA-10732[Android] Change pmic sw3 mode to avoid DDR power off
authorZhang Bo <bo.zhang@nxp.com>
Thu, 23 Nov 2017 06:29:28 +0000 (14:29 +0800)
committerZhang Bo <bo.zhang@nxp.com>
Thu, 25 Jan 2018 11:19:40 +0000 (19:19 +0800)
Write 1 to bit5 of PMIC SW3MODE(0x3f) register to change sw3 mode to avoid DDR
power off. It will avoid DRAM lose data when reset or reboot.

This feature is essental for pstore/ramoops work normally.

Change-Id: I92a1e198d57d77ae117d0d49675fc8afffec9656
Signed-off-by: Zhang Bo <bo.zhang@nxp.com>
board/freescale/mx7dsabresd/mx7dsabresd.c

index 6096e3c..e3b7516 100644 (file)
@@ -624,6 +624,7 @@ int power_init_board(void)
 {
        struct udevice *dev;
        int ret, dev_id, rev_id;
+       u32 sw3mode;
 
        ret = pmic_get("pfuze3000", &dev);
        if (ret == -ENODEV)
@@ -637,6 +638,12 @@ int power_init_board(void)
 
        pmic_clrsetbits(dev, PFUZE3000_LDOGCTL, 0, 1);
 
+       /* change sw3 mode to avoid DDR power off */
+       sw3mode = pmic_reg_read(dev, PFUZE3000_SW3MODE);
+       ret = pmic_reg_write(dev, PFUZE3000_SW3MODE, sw3mode | 0x20);
+       if (ret < 0)
+               printf("PMIC: PFUZE3000 change sw3 mode failed\n");
+
        return 0;
 }
 #endif