[U-Boot] [PATCH 2/4] imx: mx6slevk: Add PMIC Pfuze support

Li Ye-B37916 b37916 at freescale.com
Tue Nov 4 10:37:05 CET 2014


Hi Przemyslaw,

On 11/4/2014 5:24 PM, Li Ye-B37916 wrote:
> Hi Przemyslaw,
>
>
> On 10/30/2014 6:36 PM, Stefano Babic wrote:
>> Hi Ye,
>>
>> On 10/09/2014 11:08, Ye.Li wrote:
>>> Initialize the Pfuze on I2C1 at board late init. The mx6slevk board
>>> has Pfuze100 or Pfuze200, print the chip type by parsing the ID.
>>>
>>> Signed-off-by: Ye.Li <B37916 at freescale.com>
>>> ---
>> Slowly (sorry for that..) I am checking again all PMIC related patches
>> you sent last month. However, these patches do not fit very well in the
>> current development.
>>
>> In the last U-Boot mini summit we get the decision to post new PMIC
>> drivers according to the Device Model rules. Przemyslaw is the new
>> custodian for PMICs, and he will take care of all related issues
>> regarding power management.
> Can you share me more information about the new PMIC drivers development that Stefano mentioned above.
> 1. Have you completed the APIs define for new PMIC drivers?  If yes, where I can get them.
> 2. When will the new PMIC drivers deliver?
> 3. Will the PMIC devices already supported in current release stay supported by new PMIC drivers?
>
> Best regards,
> Ye Li
>> Please rethink your patches and post them again, not forgetting to add
>> Przemyslaw in CC.
>>
>> Best regards,
>> Stefano Babic
>>
>>>  board/freescale/mx6slevk/mx6slevk.c |   57 +++++++++++++++++++++++++++++++++++
>>>  include/configs/mx6slevk.h          |    7 ++++
>>>  2 files changed, 64 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/board/freescale/mx6slevk/mx6slevk.c b/board/freescale/mx6slevk/mx6slevk.c
>>> index fedd5c3..8b6a79c 100644
>>> --- a/board/freescale/mx6slevk/mx6slevk.c
>>> +++ b/board/freescale/mx6slevk/mx6slevk.c
>>> @@ -21,6 +21,8 @@
>>>  #include <mmc.h>
>>>  #include <netdev.h>
>>>  #include <i2c.h>
>>> +#include <power/pmic.h>
>>> +#include <power/pfuze100_pmic.h>
>>>  
>>>  DECLARE_GLOBAL_DATA_PTR;
>>>  
>>> @@ -48,6 +50,8 @@ DECLARE_GLOBAL_DATA_PTR;
>>>  
>>>  #define PC MUX_PAD_CTRL(I2C_PAD_CTRL)
>>>  
>>> +#define I2C_PMIC	0
>>> +
>>>  /* I2C1 for PMIC */
>>>  struct i2c_pads_info i2c_pad_info0 = {
>>>  	.sda = {
>>> @@ -191,6 +195,59 @@ 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, &reg);
>>> +	printf("PMIC:  PFUZE%s ID=0x%02x\n",
>>> +		((reg & 0xf) == 0) ? "100" : "200", reg);
>>> +
>>> +	/* Set SW1AB stanby volage to 0.975V */
>>> +	pmic_reg_read(p, PFUZE100_SW1ABSTBY, &reg);
>>> +	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);
>>> +	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);
>>> +	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);
>>> +	reg &= ~0xc0;
>>> +	reg |= 0x40;
>>> +	pmic_reg_write(p, PFUZE100_SW1CCONF, reg);
>>> +
>>> +	return 0;
>>> +}
>>> +
>>> +int board_late_init(void)
>>> +{
>>> +	pfuze_init();
>>> +
>>> +	return 0;
>>> +}
>>> +
>>>  u32 get_board_rev(void)
>>>  {
>>>  	return get_cpu_rev();
>>> diff --git a/include/configs/mx6slevk.h b/include/configs/mx6slevk.h
>>> index bf5066f..09d0896 100644
>>> --- a/include/configs/mx6slevk.h
>>> +++ b/include/configs/mx6slevk.h
>>> @@ -30,6 +30,7 @@
>>>  #define CONFIG_SYS_MALLOC_LEN		(3 * SZ_1M)
>>>  
>>>  #define CONFIG_BOARD_EARLY_INIT_F
>>> +#define CONFIG_BOARD_LATE_INIT
>>>  #define CONFIG_MXC_GPIO
>>>  
>>>  #define CONFIG_MXC_UART
>>> @@ -66,6 +67,12 @@
>>>  #define CONFIG_SYS_I2C_MXC
>>>  #define CONFIG_SYS_I2C_SPEED		  100000
>>>  
>>> +/* PMIC */
>>> +#define CONFIG_POWER
>>> +#define CONFIG_POWER_I2C
>>> +#define CONFIG_POWER_PFUZE100
>>> +#define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
>>> +
>>>  /* allow to overwrite serial and ethaddr */
>>>  #define CONFIG_ENV_OVERWRITE
>>>  #define CONFIG_CONS_INDEX		1
>>>

Please help to answer my questions in the emails thread.  A incorrect email address was given, so I resend the email now.

Best regards,
Ye Li


More information about the U-Boot mailing list