mfd: twl4030-power: Simplify probing of power scripts and resources
Increase lisibility when probing power scripts and resources by creating dedicated functions. Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
637d6895f8
commit
f58cb40763
@ -492,6 +492,39 @@ int twl4030_remove_script(u8 flags)
|
||||
return err;
|
||||
}
|
||||
|
||||
int twl4030_power_configure_scripts(struct twl4030_power_data *pdata)
|
||||
{
|
||||
int err;
|
||||
int i;
|
||||
u8 address = twl4030_start_script_address;
|
||||
|
||||
for (i = 0; i < pdata->num; i++) {
|
||||
err = load_twl4030_script(pdata->scripts[i], address);
|
||||
if (err)
|
||||
return err;
|
||||
address += pdata->scripts[i]->size;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int twl4030_power_configure_resources(struct twl4030_power_data *pdata)
|
||||
{
|
||||
struct twl4030_resconfig *resconfig = pdata->resource_config;
|
||||
int err;
|
||||
|
||||
if (resconfig) {
|
||||
while (resconfig->resource) {
|
||||
err = twl4030_configure_resource(resconfig);
|
||||
if (err)
|
||||
return err;
|
||||
resconfig++;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* In master mode, start the power off sequence.
|
||||
* After a successful execution, TWL shuts down the power to the SoC
|
||||
@ -511,9 +544,7 @@ int twl4030_power_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct twl4030_power_data *pdata = pdev->dev.platform_data;
|
||||
int err = 0;
|
||||
int i;
|
||||
struct twl4030_resconfig *resconfig;
|
||||
u8 val, address = twl4030_start_script_address;
|
||||
u8 val;
|
||||
|
||||
err = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, TWL4030_PM_MASTER_KEY_CFG1,
|
||||
TWL4030_PM_MASTER_PROTECT_KEY);
|
||||
@ -525,23 +556,12 @@ int twl4030_power_probe(struct platform_device *pdev)
|
||||
if (err)
|
||||
goto unlock;
|
||||
|
||||
for (i = 0; i < pdata->num; i++) {
|
||||
err = load_twl4030_script(pdata->scripts[i], address);
|
||||
if (err)
|
||||
goto load;
|
||||
address += pdata->scripts[i]->size;
|
||||
}
|
||||
|
||||
resconfig = pdata->resource_config;
|
||||
if (resconfig) {
|
||||
while (resconfig->resource) {
|
||||
err = twl4030_configure_resource(resconfig);
|
||||
if (err)
|
||||
goto resource;
|
||||
resconfig++;
|
||||
|
||||
}
|
||||
}
|
||||
err = twl4030_power_configure_scripts(pdata);
|
||||
if (err)
|
||||
goto load;
|
||||
err = twl4030_power_configure_resources(pdata);
|
||||
if (err)
|
||||
goto resource;
|
||||
|
||||
/* Board has to be wired properly to use this feature */
|
||||
if (pdata->use_poweroff && !pm_power_off) {
|
||||
|
Loading…
Reference in New Issue
Block a user