Commit c1fc1480 authored by Kyle Manna's avatar Kyle Manna Committed by Mark Brown

regulator: TPS65910: Create an array for init data

Create an array of fixed size for the platform to pass regulator
initalization data through.

Passing an array of pointers to init data also allows more flexible
definition of init data as well as prevents reading past the end of the
array should the platform define an incorrectly sized array.
Signed-off-by: default avatarKyle Manna <kyle.manna@fuel7.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 72c108cc
...@@ -861,8 +861,6 @@ static __devinit int tps65910_probe(struct platform_device *pdev) ...@@ -861,8 +861,6 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
if (!pmic_plat_data) if (!pmic_plat_data)
return -EINVAL; return -EINVAL;
reg_data = pmic_plat_data->tps65910_pmic_init_data;
pmic = kzalloc(sizeof(*pmic), GFP_KERNEL); pmic = kzalloc(sizeof(*pmic), GFP_KERNEL);
if (!pmic) if (!pmic)
return -ENOMEM; return -ENOMEM;
...@@ -913,7 +911,16 @@ static __devinit int tps65910_probe(struct platform_device *pdev) ...@@ -913,7 +911,16 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
goto err_free_info; goto err_free_info;
} }
for (i = 0; i < pmic->num_regulators; i++, info++, reg_data++) { for (i = 0; i < pmic->num_regulators && i < TPS65910_NUM_REGS;
i++, info++) {
reg_data = pmic_plat_data->tps65910_pmic_init_data[i];
/* Regulator API handles empty constraints but not NULL
* constraints */
if (!reg_data)
continue;
/* Register the regulators */ /* Register the regulators */
pmic->info[i] = info; pmic->info[i] = info;
......
...@@ -764,6 +764,9 @@ ...@@ -764,6 +764,9 @@
#define TPS65911_REG_LDO7 11 #define TPS65911_REG_LDO7 11
#define TPS65911_REG_LDO8 12 #define TPS65911_REG_LDO8 12
/* Max number of TPS65910/11 regulators */
#define TPS65910_NUM_REGS 13
/** /**
* struct tps65910_board * struct tps65910_board
* Board platform data may be used to initialize regulators. * Board platform data may be used to initialize regulators.
...@@ -775,7 +778,7 @@ struct tps65910_board { ...@@ -775,7 +778,7 @@ struct tps65910_board {
int irq_base; int irq_base;
int vmbch_threshold; int vmbch_threshold;
int vmbch2_threshold; int vmbch2_threshold;
struct regulator_init_data *tps65910_pmic_init_data; struct regulator_init_data *tps65910_pmic_init_data[TPS65910_NUM_REGS];
}; };
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment