From mboxrd@z Thu Jan 1 00:00:00 1970 From: Li Ye-B37916 Date: Tue, 4 Nov 2014 17:37:05 +0800 Subject: [U-Boot] [PATCH 2/4] imx: mx6slevk: Add PMIC Pfuze support In-Reply-To: <54589B30.9020500@freescale.com> References: <1410340097-19804-1-git-send-email-B37916@freescale.com> <1410340097-19804-2-git-send-email-B37916@freescale.com> <545214A8.8010405@denx.de> <54589B30.9020500@freescale.com> Message-ID: <54589E41.20508@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 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 >>> --- >> 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 >>> #include >>> #include >>> +#include >>> +#include >>> >>> 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, ®); >>> + 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 &= ~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; >>> +} >>> + >>> +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