mfd: twl4030-power: Add support for board specific configuration
With the recommended twl4030 configuration added, we can now add board specific changes as modifications to the recommended configuration. Note that the data is private to this driver, and the data must always have a NULL resource in the sentinel. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
76714d2c09
commit
482e7db160
|
@ -567,13 +567,34 @@ twl4030_power_configure_scripts(const struct twl4030_power_data *pdata)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void twl4030_patch_rconfig(struct twl4030_resconfig *common,
|
||||
struct twl4030_resconfig *board)
|
||||
{
|
||||
while (common->resource) {
|
||||
struct twl4030_resconfig *b = board;
|
||||
|
||||
while (b->resource) {
|
||||
if (b->resource == common->resource) {
|
||||
*common = *b;
|
||||
break;
|
||||
}
|
||||
b++;
|
||||
}
|
||||
common++;
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
twl4030_power_configure_resources(const struct twl4030_power_data *pdata)
|
||||
{
|
||||
struct twl4030_resconfig *resconfig = pdata->resource_config;
|
||||
struct twl4030_resconfig *boardconf = pdata->board_config;
|
||||
int err;
|
||||
|
||||
if (resconfig) {
|
||||
if (boardconf)
|
||||
twl4030_patch_rconfig(resconfig, boardconf);
|
||||
|
||||
while (resconfig->resource) {
|
||||
err = twl4030_configure_resource(resconfig);
|
||||
if (err)
|
||||
|
|
|
@ -662,6 +662,7 @@ struct twl4030_power_data {
|
|||
struct twl4030_script **scripts;
|
||||
unsigned num;
|
||||
struct twl4030_resconfig *resource_config;
|
||||
struct twl4030_resconfig *board_config;
|
||||
#define TWL4030_RESCONFIG_UNDEF ((u8)-1)
|
||||
bool use_poweroff; /* Board is wired for TWL poweroff */
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue