[U-Boot] [PATCH] imx: imx6q/dlsabreauto: Add PMIC Pfuze100 support
Stefano Babic
sbabic at denx.de
Fri Sep 12 12:37:31 CEST 2014
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 <B37916 at 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.estevam at 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" ?
>
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
=====================================================================
More information about the U-Boot
mailing list