@ -100,31 +100,34 @@ static struct regulator_ops max14577_charger_ops = {
. set_current_limit = max14577_reg_set_current_limit ,
} ;
# define MAX14577_SAFEOUT_REG { \
. name = " SAFEOUT " , \
. of_match = of_match_ptr ( " SAFEOUT " ) , \
. regulators_node = of_match_ptr ( " regulators " ) , \
. id = MAX14577_SAFEOUT , \
. ops = & max14577_safeout_ops , \
. type = REGULATOR_VOLTAGE , \
. owner = THIS_MODULE , \
. n_voltages = 1 , \
. min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE , \
. enable_reg = MAX14577_REG_CONTROL2 , \
. enable_mask = CTRL2_SFOUTORD_MASK , \
}
# define MAX14577_CHARGER_REG { \
. name = " CHARGER " , \
. of_match = of_match_ptr ( " CHARGER " ) , \
. regulators_node = of_match_ptr ( " regulators " ) , \
. id = MAX14577_CHARGER , \
. ops = & max14577_charger_ops , \
. type = REGULATOR_CURRENT , \
. owner = THIS_MODULE , \
. enable_reg = MAX14577_CHG_REG_CHG_CTRL2 , \
. enable_mask = CHGCTRL2_MBCHOSTEN_MASK , \
}
static const struct regulator_desc max14577_supported_regulators [ ] = {
[ MAX14577_SAFEOUT ] = {
. name = " SAFEOUT " ,
. of_match = of_match_ptr ( " SAFEOUT " ) ,
. regulators_node = of_match_ptr ( " regulators " ) ,
. id = MAX14577_SAFEOUT ,
. ops = & max14577_safeout_ops ,
. type = REGULATOR_VOLTAGE ,
. owner = THIS_MODULE ,
. n_voltages = 1 ,
. min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE ,
. enable_reg = MAX14577_REG_CONTROL2 ,
. enable_mask = CTRL2_SFOUTORD_MASK ,
} ,
[ MAX14577_CHARGER ] = {
. name = " CHARGER " ,
. of_match = of_match_ptr ( " CHARGER " ) ,
. regulators_node = of_match_ptr ( " regulators " ) ,
. id = MAX14577_CHARGER ,
. ops = & max14577_charger_ops ,
. type = REGULATOR_CURRENT ,
. owner = THIS_MODULE ,
. enable_reg = MAX14577_CHG_REG_CHG_CTRL2 ,
. enable_mask = CHGCTRL2_MBCHOSTEN_MASK ,
} ,
[ MAX14577_SAFEOUT ] = MAX14577_SAFEOUT_REG ,
[ MAX14577_CHARGER ] = MAX14577_CHARGER_REG ,
} ;
static struct regulator_ops max77836_ldo_ops = {
@ -138,63 +141,28 @@ static struct regulator_ops max77836_ldo_ops = {
/* TODO: add .set_suspend_mode */
} ;
# define MAX77836_LDO_REG(num) { \
. name = " LDO " # num , \
. of_match = of_match_ptr ( " LDO " # num ) , \
. regulators_node = of_match_ptr ( " regulators " ) , \
. id = MAX77836_LDO # # num , \
. ops = & max77836_ldo_ops , \
. type = REGULATOR_VOLTAGE , \
. owner = THIS_MODULE , \
. n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM , \
. min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN , \
. uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP , \
. enable_reg = MAX77836_LDO_REG_CNFG1_LDO # # num , \
. enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK , \
. vsel_reg = MAX77836_LDO_REG_CNFG1_LDO # # num , \
. vsel_mask = MAX77836_CNFG1_LDO_TV_MASK , \
}
static const struct regulator_desc max77836_supported_regulators [ ] = {
[ MAX14577_SAFEOUT ] = {
. name = " SAFEOUT " ,
. of_match = of_match_ptr ( " SAFEOUT " ) ,
. regulators_node = of_match_ptr ( " regulators " ) ,
. id = MAX14577_SAFEOUT ,
. ops = & max14577_safeout_ops ,
. type = REGULATOR_VOLTAGE ,
. owner = THIS_MODULE ,
. n_voltages = 1 ,
. min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE ,
. enable_reg = MAX14577_REG_CONTROL2 ,
. enable_mask = CTRL2_SFOUTORD_MASK ,
} ,
[ MAX14577_CHARGER ] = {
. name = " CHARGER " ,
. of_match = of_match_ptr ( " CHARGER " ) ,
. regulators_node = of_match_ptr ( " regulators " ) ,
. id = MAX14577_CHARGER ,
. ops = & max14577_charger_ops ,
. type = REGULATOR_CURRENT ,
. owner = THIS_MODULE ,
. enable_reg = MAX14577_CHG_REG_CHG_CTRL2 ,
. enable_mask = CHGCTRL2_MBCHOSTEN_MASK ,
} ,
[ MAX77836_LDO1 ] = {
. name = " LDO1 " ,
. of_match = of_match_ptr ( " LDO1 " ) ,
. regulators_node = of_match_ptr ( " regulators " ) ,
. id = MAX77836_LDO1 ,
. ops = & max77836_ldo_ops ,
. type = REGULATOR_VOLTAGE ,
. owner = THIS_MODULE ,
. n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM ,
. min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN ,
. uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP ,
. enable_reg = MAX77836_LDO_REG_CNFG1_LDO1 ,
. enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK ,
. vsel_reg = MAX77836_LDO_REG_CNFG1_LDO1 ,
. vsel_mask = MAX77836_CNFG1_LDO_TV_MASK ,
} ,
[ MAX77836_LDO2 ] = {
. name = " LDO2 " ,
. of_match = of_match_ptr ( " LDO2 " ) ,
. regulators_node = of_match_ptr ( " regulators " ) ,
. id = MAX77836_LDO2 ,
. ops = & max77836_ldo_ops ,
. type = REGULATOR_VOLTAGE ,
. owner = THIS_MODULE ,
. n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM ,
. min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN ,
. uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP ,
. enable_reg = MAX77836_LDO_REG_CNFG1_LDO2 ,
. enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK ,
. vsel_reg = MAX77836_LDO_REG_CNFG1_LDO2 ,
. vsel_mask = MAX77836_CNFG1_LDO_TV_MASK ,
} ,
[ MAX14577_SAFEOUT ] = MAX14577_SAFEOUT_REG ,
[ MAX14577_CHARGER ] = MAX14577_CHARGER_REG ,
[ MAX77836_LDO1 ] = MAX77836_LDO_REG ( 1 ) ,
[ MAX77836_LDO2 ] = MAX77836_LDO_REG ( 2 ) ,
} ;
# ifdef CONFIG_OF