From mboxrd@z Thu Jan 1 00:00:00 1970 From: Li Ye-B37916 Date: Fri, 12 Sep 2014 18:27:18 +0800 Subject: [U-Boot] [PATCH] imx: imx6q/dlsabreauto: Add PMIC Pfuze100 support In-Reply-To: <5412AC27.2020100@denx.de> References: <1410328333-24326-1-git-send-email-B37916@freescale.com> <5412AC27.2020100@denx.de> Message-ID: <5412CA86.5000000@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 >> --- >> 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 >> * >> @@ -23,6 +23,8 @@ >> #include >> #include >> #include >> +#include >> +#include >> >> 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