diff options
| -rw-r--r-- | arch/arm/mach-omap2/twl-common.c | 43 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/twl-common.h | 2 | 
2 files changed, 45 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index ee6596b4521..119d5a910f3 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c @@ -266,6 +266,7 @@ static struct regulator_init_data omap4_vdac_idata = {  		.valid_ops_mask		= REGULATOR_CHANGE_MODE  					| REGULATOR_CHANGE_STATUS,  	}, +	.supply_regulator	= "V2V1",  };  static struct regulator_init_data omap4_vaux2_idata = { @@ -356,6 +357,7 @@ static struct regulator_init_data omap4_vcxio_idata = {  	},  	.num_consumer_supplies	= ARRAY_SIZE(omap4_vcxio_supply),  	.consumer_supplies	= omap4_vcxio_supply, +	.supply_regulator	= "V2V1",  };  static struct regulator_init_data omap4_vusb_idata = { @@ -439,6 +441,41 @@ static struct twl_regulator_driver_data omap4_vdd3_drvdata = {  	.set_voltage = twl_set_voltage,  }; +static struct regulator_consumer_supply omap4_v1v8_supply[] = { +	REGULATOR_SUPPLY("vio", "1-004b"), +}; + +static struct regulator_init_data omap4_v1v8_idata = { +	.constraints = { +		.min_uV			= 1800000, +		.max_uV			= 1800000, +		.valid_modes_mask	= REGULATOR_MODE_NORMAL +					| REGULATOR_MODE_STANDBY, +		.valid_ops_mask		= REGULATOR_CHANGE_MODE +					| REGULATOR_CHANGE_STATUS, +		.always_on		= true, +	}, +	.num_consumer_supplies	= ARRAY_SIZE(omap4_v1v8_supply), +	.consumer_supplies	= omap4_v1v8_supply, +}; + +static struct regulator_consumer_supply omap4_v2v1_supply[] = { +	REGULATOR_SUPPLY("v2v1", "1-004b"), +}; + +static struct regulator_init_data omap4_v2v1_idata = { +	.constraints = { +		.min_uV			= 2100000, +		.max_uV			= 2100000, +		.valid_modes_mask	= REGULATOR_MODE_NORMAL +					| REGULATOR_MODE_STANDBY, +		.valid_ops_mask		= REGULATOR_CHANGE_MODE +					| REGULATOR_CHANGE_STATUS, +	}, +	.num_consumer_supplies	= ARRAY_SIZE(omap4_v2v1_supply), +	.consumer_supplies	= omap4_v2v1_supply, +}; +  void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,  				  u32 pdata_flags, u32 regulators_flags)  { @@ -497,5 +534,11 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,  	if (regulators_flags & TWL_COMMON_REGULATOR_CLK32KG &&  	    !pmic_data->clk32kg)  		pmic_data->clk32kg = &omap4_clk32kg_idata; + +	if (regulators_flags & TWL_COMMON_REGULATOR_V1V8 && !pmic_data->v1v8) +		pmic_data->v1v8 = &omap4_v1v8_idata; + +	if (regulators_flags & TWL_COMMON_REGULATOR_V2V1 && !pmic_data->v2v1) +		pmic_data->v2v1 = &omap4_v2v1_idata;  }  #endif /* CONFIG_ARCH_OMAP4 */ diff --git a/arch/arm/mach-omap2/twl-common.h b/arch/arm/mach-omap2/twl-common.h index 09627483a57..8fe71cfd002 100644 --- a/arch/arm/mach-omap2/twl-common.h +++ b/arch/arm/mach-omap2/twl-common.h @@ -22,6 +22,8 @@  #define TWL_COMMON_REGULATOR_VCXIO	(1 << 8)  #define TWL_COMMON_REGULATOR_VUSB	(1 << 9)  #define TWL_COMMON_REGULATOR_CLK32KG	(1 << 10) +#define TWL_COMMON_REGULATOR_V1V8	(1 << 11) +#define TWL_COMMON_REGULATOR_V2V1	(1 << 12)  /* TWL4030 LDO regulators */  #define TWL_COMMON_REGULATOR_VPLL1	(1 << 4)  |