
To normal mode, use APS switching mode. To standy mode, use PFM switching mode.
Signed-off-by: Peng Fan Peng.Fan@freescale.com Acked-by: Przemyslaw Marczak p.marczak@samsung.com ---
Changes v5: Add Acked-by: Przemyslaw Marczak p.marczak@samsung.com
Changes v4: none
Changes v3: Following Fabio's comments, correct return value
Changes v2: none
board/freescale/mx6qsabreauto/mx6qsabreauto.c | 6 ++++++ board/freescale/mx6sabresd/mx6sabresd.c | 6 +++++- board/freescale/mx6sxsabresd/mx6sxsabresd.c | 6 +++++- 3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/board/freescale/mx6qsabreauto/mx6qsabreauto.c b/board/freescale/mx6qsabreauto/mx6qsabreauto.c index 59387ff..b12e74e 100644 --- a/board/freescale/mx6qsabreauto/mx6qsabreauto.c +++ b/board/freescale/mx6qsabreauto/mx6qsabreauto.c @@ -29,6 +29,7 @@ #include <asm/arch/crm_regs.h> #include <pca953x.h> #include <power/pmic.h> +#include <power/pfuze100_pmic.h> #include "../common/pfuze.h"
DECLARE_GLOBAL_DATA_PTR; @@ -515,11 +516,16 @@ int board_spi_cs_gpio(unsigned bus, unsigned cs) int power_init_board(void) { struct pmic *p; + unsigned int ret;
p = pfuze_common_init(I2C_PMIC); if (!p) return -ENODEV;
+ ret = pfuze_mode_init(p, APS_PFM); + if (ret < 0) + return ret; + return 0; }
diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c index 2f7198d..bb2dd96 100644 --- a/board/freescale/mx6sabresd/mx6sabresd.c +++ b/board/freescale/mx6sabresd/mx6sabresd.c @@ -631,12 +631,16 @@ int board_init(void) int power_init_board(void) { struct pmic *p; - unsigned int reg; + unsigned int reg, ret;
p = pfuze_common_init(I2C_PMIC); if (!p) return -ENODEV;
+ ret = pfuze_mode_init(p, APS_PFM); + if (ret < 0) + return ret; + /* Increase VGEN3 from 2.5 to 2.8V */ pmic_reg_read(p, PFUZE100_VGEN3VOL, ®); reg &= ~LDO_VOL_MASK; diff --git a/board/freescale/mx6sxsabresd/mx6sxsabresd.c b/board/freescale/mx6sxsabresd/mx6sxsabresd.c index a2c9aae..2ff960e 100644 --- a/board/freescale/mx6sxsabresd/mx6sxsabresd.c +++ b/board/freescale/mx6sxsabresd/mx6sxsabresd.c @@ -199,12 +199,16 @@ static struct i2c_pads_info i2c_pad_info1 = { int power_init_board(void) { struct pmic *p; - unsigned int reg; + unsigned int reg, ret;
p = pfuze_common_init(I2C_PMIC); if (!p) return -ENODEV;
+ ret = pfuze_mode_init(p, APS_PFM); + if (ret < 0) + return ret; + /* Enable power of VGEN5 3V3, needed for SD3 */ pmic_reg_read(p, PFUZE100_VGEN5VOL, ®); reg &= ~LDO_VOL_MASK;