On 9/12/2014 4:17 PM, Stefano Babic wrote: > Hi Ye, > > On 10/09/2014 07:52, Ye.Li wrote: >> Initialize the Pfuze100 at board late init. >> >> Signed-off-by: Ye.Li <b37...@freescale.com> >> --- >> board/freescale/mx6qsabreauto/mx6qsabreauto.c | 52 >> ++++++++++++++++++++++++- >> include/configs/mx6qsabreauto.h | 6 +++ >> 2 files changed, 57 insertions(+), 1 deletions(-) >> >> diff --git a/board/freescale/mx6qsabreauto/mx6qsabreauto.c >> b/board/freescale/mx6qsabreauto/mx6qsabreauto.c >> index bfb9b6a..76b024b 100644 >> --- a/board/freescale/mx6qsabreauto/mx6qsabreauto.c >> +++ b/board/freescale/mx6qsabreauto/mx6qsabreauto.c >> @@ -1,5 +1,5 @@ >> /* >> - * Copyright (C) 2012 Freescale Semiconductor, Inc. >> + * Copyright (C) 2012-2014 Freescale Semiconductor, Inc. >> * >> * Author: Fabio Estevam <fabio.este...@freescale.com> >> * >> @@ -23,6 +23,8 @@ >> #include <netdev.h> >> #include <asm/arch/sys_proto.h> >> #include <i2c.h> >> +#include <power/pmic.h> >> +#include <power/pfuze100_pmic.h> >> >> DECLARE_GLOBAL_DATA_PTR; >> >> @@ -43,6 +45,8 @@ DECLARE_GLOBAL_DATA_PTR; >> >> #define PC MUX_PAD_CTRL(I2C_PAD_CTRL) >> >> +#define I2C_PMIC 1 >> + >> int dram_init(void) >> { >> gd->ram_size = (phys_size_t)CONFIG_DDR_MB * 1024 * 1024; >> @@ -259,6 +263,51 @@ int board_init(void) >> return 0; >> } >> >> +static int pfuze_init(void) >> +{ >> + struct pmic *p; >> + int ret; >> + unsigned int reg; >> + >> + ret = power_pfuze100_init(I2C_PMIC); >> + if (ret) >> + return ret; >> + >> + p = pmic_get("PFUZE100"); >> + ret = pmic_probe(p); >> + if (ret) >> + return ret; >> + >> + pmic_reg_read(p, PFUZE100_DEVICEID, ®); >> + printf("PMIC: PFUZE100 ID=0x%02x\n", reg); >> + >> + /* Set SW1AB stanby volage to 0.975V */ >> + pmic_reg_read(p, PFUZE100_SW1ABSTBY, ®); >> + reg &= ~0x3f; >> + reg |= 0x1b; >> + pmic_reg_write(p, PFUZE100_SW1ABSTBY, reg); >> + >> + /* Set SW1AB/VDDARM step ramp up time from 16us to 4us/25mV */ >> + pmic_reg_read(p, PUZE_100_SW1ABCONF, ®); >> + reg &= ~0xc0; >> + reg |= 0x40; >> + pmic_reg_write(p, PUZE_100_SW1ABCONF, reg); >> + >> + /* Set SW1C standby voltage to 0.975V */ >> + pmic_reg_read(p, PFUZE100_SW1CSTBY, ®); >> + reg &= ~0x3f; >> + reg |= 0x1b; >> + pmic_reg_write(p, PFUZE100_SW1CSTBY, reg); >> + >> + /* Set SW1C/VDDSOC step ramp up time from 16us to 4us/25mV */ >> + pmic_reg_read(p, PFUZE100_SW1CCONF, ®); >> + reg &= ~0xc0; >> + reg |= 0x40; >> + pmic_reg_write(p, PFUZE100_SW1CCONF, reg); >> + >> + return 0; >> +} > The initialization, with the exception of VGEN3/VGEN5, is identical to > the sabresd. Any possibility to improve code and factorize the function > for sabre* boards ? > > Best regards, > Stefano Babic > Yes. The pfuze codes are similar on these boards. I will try to factorize the function. How about moving the common codes to "board/freescale/imx" ?
Best regards, Ye Li _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot