Change VDD_SOC into 0.9v for over drive mode for new pmic.

Signed-off-by: Joy Zou <joy....@nxp.com>
---
 board/freescale/imx93_evk/spl.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/board/freescale/imx93_evk/spl.c b/board/freescale/imx93_evk/spl.c
index 1aa2977b40..f0dbd0f0a5 100644
--- a/board/freescale/imx93_evk/spl.c
+++ b/board/freescale/imx93_evk/spl.c
@@ -55,6 +55,7 @@ int power_init_board(void)
 {
        struct udevice *dev;
        int ret;
+       unsigned int val = 0;
 
        ret = pmic_get("pmic@25", &dev);
        if (ret == -ENODEV) {
@@ -64,13 +65,24 @@ int power_init_board(void)
        if (ret != 0)
                return ret;
 
+       ret = pmic_reg_read(dev, PCA9450_PWR_CTRL);
+       if (ret < 0)
+               return ret;
+       else
+               val = ret;
+
        /* BUCKxOUT_DVS0/1 control BUCK123 output */
        pmic_reg_write(dev, PCA9450_BUCK123_DVS, 0x29);
 
        /* 0.9v
         */
-       pmic_reg_write(dev, PCA9450_BUCK1OUT_DVS0, 0x18);
-       pmic_reg_write(dev, PCA9450_BUCK3OUT_DVS0, 0x18);
+       if (val & PCA9450_REG_PWRCTRL_TOFF_DEB) {
+               pmic_reg_write(dev, PCA9450_BUCK1OUT_DVS0, 0x14);
+               pmic_reg_write(dev, PCA9450_BUCK3OUT_DVS0, 0x14);
+       } else {
+               pmic_reg_write(dev, PCA9450_BUCK1OUT_DVS0, 0x18);
+               pmic_reg_write(dev, PCA9450_BUCK3OUT_DVS0, 0x18);
+       }
 
        /* I2C_LT_EN*/
        pmic_reg_write(dev, 0xa, 0x3);
-- 
2.37.1

Reply via email to