@ -25,6 +25,7 @@
# include <netdev.h>
# include <power/pmic.h>
# include <power/pfuze100_pmic.h>
# include "../common/pfuze.h"
DECLARE_GLOBAL_DATA_PTR ;
@ -193,52 +194,19 @@ static struct i2c_pads_info i2c_pad_info1 = {
} ,
} ;
static int pfuze_init ( void )
int power_init_board ( 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: PFUZE100 ID=0x%02x \n " , reg ) ;
/* Set SW1AB standby voltage 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 ) ;
p = pfuze_common_init ( I2C_PMIC ) ;
if ( ! p )
return - ENODEV ;
/* Enable power of VGEN5 3V3, needed for SD3 */
pmic_reg_read ( p , PFUZE100_VGEN5VOL , & reg ) ;
reg & = ~ 0x1F ;
reg | = 0x1F ;
reg & = ~ LDO_VOL_MASK ;
reg | = ( LDOB_3_30V | ( 1 < < LDO_EN ) ) ;
pmic_reg_write ( p , PFUZE100_VGEN5VOL , reg ) ;
return 0 ;
@ -369,8 +337,6 @@ int board_init(void)
int board_late_init ( void )
{
pfuze_init ( ) ;
return 0 ;
}