From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Fri, 12 Sep 2014 12:37:31 +0200 Subject: [U-Boot] [PATCH] imx: imx6q/dlsabreauto: Add PMIC Pfuze100 support In-Reply-To: <5412CA86.5000000@freescale.com> References: <1410328333-24326-1-git-send-email-B37916@freescale.com> <5412AC27.2020100@denx.de> <5412CA86.5000000@freescale.com> Message-ID: <5412CCEB.5030009@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Ye, On 12/09/2014 12:27, Li Ye-B37916 wrote: > > 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" ? > Agree. The imx directory can contain all common code shared among Freescale's board. Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================