|  | @@ -102,3 +102,116 @@ static int omap3_batt_table[] = {
 | 
	
		
			
				|  |  |  8020,  7730,  7460,  7200,  6950,  6710,  6470,  6250,  6040,  5830,
 | 
	
		
			
				|  |  |  5640,  5450,  5260,  5090,  4920,  4760,  4600,  4450,  4310,  4170,
 | 
	
		
			
				|  |  |  4040,  3910,  3790,  3670,  3550
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct twl4030_bci_platform_data omap3_bci_pdata = {
 | 
	
		
			
				|  |  | +	.battery_tmp_tbl	= omap3_batt_table,
 | 
	
		
			
				|  |  | +	.tblsize		= ARRAY_SIZE(omap3_batt_table),
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct twl4030_madc_platform_data omap3_madc_pdata = {
 | 
	
		
			
				|  |  | +	.irq_line	= 1,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct twl4030_codec_data omap3_codec;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct twl4030_audio_data omap3_audio_pdata = {
 | 
	
		
			
				|  |  | +	.audio_mclk = 26000000,
 | 
	
		
			
				|  |  | +	.codec = &omap3_codec,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct regulator_consumer_supply omap3_vdda_dac_supplies[] = {
 | 
	
		
			
				|  |  | +	REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct regulator_init_data omap3_vdac_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,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.num_consumer_supplies	= ARRAY_SIZE(omap3_vdda_dac_supplies),
 | 
	
		
			
				|  |  | +	.consumer_supplies	= omap3_vdda_dac_supplies,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct regulator_consumer_supply omap3_vpll2_supplies[] = {
 | 
	
		
			
				|  |  | +	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
 | 
	
		
			
				|  |  | +	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi.0"),
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct regulator_init_data omap3_vpll2_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,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.num_consumer_supplies		= ARRAY_SIZE(omap3_vpll2_supplies),
 | 
	
		
			
				|  |  | +	.consumer_supplies		= omap3_vpll2_supplies,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct regulator_consumer_supply omap3_vdd1_supply[] = {
 | 
	
		
			
				|  |  | +	REGULATOR_SUPPLY("vcc", "cpu0"),
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct regulator_consumer_supply omap3_vdd2_supply[] = {
 | 
	
		
			
				|  |  | +	REGULATOR_SUPPLY("vcc", "l3_main.0"),
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct regulator_init_data omap3_vdd1 = {
 | 
	
		
			
				|  |  | +	.constraints = {
 | 
	
		
			
				|  |  | +		.name			= "vdd_mpu_iva",
 | 
	
		
			
				|  |  | +		.min_uV			= 600000,
 | 
	
		
			
				|  |  | +		.max_uV			= 1450000,
 | 
	
		
			
				|  |  | +		.valid_modes_mask	= REGULATOR_MODE_NORMAL,
 | 
	
		
			
				|  |  | +		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.num_consumer_supplies		= ARRAY_SIZE(omap3_vdd1_supply),
 | 
	
		
			
				|  |  | +	.consumer_supplies		= omap3_vdd1_supply,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct regulator_init_data omap3_vdd2 = {
 | 
	
		
			
				|  |  | +	.constraints = {
 | 
	
		
			
				|  |  | +		.name			= "vdd_core",
 | 
	
		
			
				|  |  | +		.min_uV			= 600000,
 | 
	
		
			
				|  |  | +		.max_uV			= 1450000,
 | 
	
		
			
				|  |  | +		.valid_modes_mask	= REGULATOR_MODE_NORMAL,
 | 
	
		
			
				|  |  | +		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.num_consumer_supplies		= ARRAY_SIZE(omap3_vdd2_supply),
 | 
	
		
			
				|  |  | +	.consumer_supplies		= omap3_vdd2_supply,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct twl_regulator_driver_data omap3_vdd1_drvdata = {
 | 
	
		
			
				|  |  | +	.get_voltage = twl_get_voltage,
 | 
	
		
			
				|  |  | +	.set_voltage = twl_set_voltage,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct twl_regulator_driver_data omap3_vdd2_drvdata = {
 | 
	
		
			
				|  |  | +	.get_voltage = twl_get_voltage,
 | 
	
		
			
				|  |  | +	.set_voltage = twl_set_voltage,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +void __init omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
 | 
	
		
			
				|  |  | +				  u32 pdata_flags, u32 regulators_flags)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +	if (!pmic_data->vdd1) {
 | 
	
		
			
				|  |  | +		omap3_vdd1.driver_data = &omap3_vdd1_drvdata;
 | 
	
		
			
				|  |  | +		omap3_vdd1_drvdata.data = voltdm_lookup("mpu_iva");
 | 
	
		
			
				|  |  | +		pmic_data->vdd1 = &omap3_vdd1;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if (!pmic_data->vdd2) {
 | 
	
		
			
				|  |  | +		omap3_vdd2.driver_data = &omap3_vdd2_drvdata;
 | 
	
		
			
				|  |  | +		omap3_vdd2_drvdata.data = voltdm_lookup("core");
 | 
	
		
			
				|  |  | +		pmic_data->vdd2 = &omap3_vdd2;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/* Common platform data configurations */
 | 
	
		
			
				|  |  | +	if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
 | 
	
		
			
				|  |  | +		pmic_data->usb = &omap3_usb_pdata;
 | 
	
		
			
				|  |  | +
 |