@ -12,6 +12,17 @@
# define STMPU1_NUM_OF_REGS 0x100
# ifndef CONFIG_SPL_BUILD
static const struct pmic_child_info stpmu1_children_info [ ] = {
{ . prefix = " ldo " , . driver = " stpmu1_ldo " } ,
{ . prefix = " buck " , . driver = " stpmu1_buck " } ,
{ . prefix = " vref_ddr " , . driver = " stpmu1_vref_ddr " } ,
{ . prefix = " pwr_sw " , . driver = " stpmu1_pwr_sw " } ,
{ . prefix = " boost " , . driver = " stpmu1_boost " } ,
{ } ,
} ;
# endif /* CONFIG_SPL_BUILD */
static int stpmu1_reg_count ( struct udevice * dev )
{
return STMPU1_NUM_OF_REGS ;
@ -42,6 +53,28 @@ static int stpmu1_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
return ret ;
}
static int stpmu1_bind ( struct udevice * dev )
{
# ifndef CONFIG_SPL_BUILD
ofnode regulators_node ;
int children ;
regulators_node = dev_read_subnode ( dev , " regulators " ) ;
if ( ! ofnode_valid ( regulators_node ) ) {
dev_dbg ( dev , " regulators subnode not found! " ) ;
return - ENXIO ;
}
dev_dbg ( dev , " found regulators subnode \n " ) ;
children = pmic_bind_children ( dev , regulators_node ,
stpmu1_children_info ) ;
if ( ! children )
dev_dbg ( dev , " no child found \n " ) ;
# endif /* CONFIG_SPL_BUILD */
return 0 ;
}
static struct dm_pmic_ops stpmu1_ops = {
. reg_count = stpmu1_reg_count ,
. read = stpmu1_read ,
@ -57,5 +90,6 @@ U_BOOT_DRIVER(pmic_stpmu1) = {
. name = " stpmu1_pmic " ,
. id = UCLASS_PMIC ,
. of_match = stpmu1_ids ,
. bind = stpmu1_bind ,
. ops = & stpmu1_ops ,
} ;