TWL4030_ADJUSTABLE_LDO(VDD2, 0x63, 16, 1000, 0x08),
	TWL4030_FIXED_LDO(VUSB1V5, 0x71, 1500, 17, 100, 0x08),
	TWL4030_FIXED_LDO(VUSB1V8, 0x74, 1800, 18, 100, 0x08),
	TWL4030_FIXED_LDO(VUSB3V1, 0x77, 3100, 19, 150, 0x08),
	/* VUSBCP is managed *only* by the USB subchip */

	/* 6030 REG with base as PMC Slave Misc : 0x0030 */
	/* Turnon-delay and remap configuration values for 6030 are not
	   verified since the specification is not public */
	TWL6030_ADJUSTABLE_LDO(VAUX1_6030, 0x54, 1000, 3300, 1),
	TWL6030_ADJUSTABLE_LDO(VAUX2_6030, 0x58, 1000, 3300, 2),
	TWL6030_ADJUSTABLE_LDO(VAUX3_6030, 0x5c, 1000, 3300, 3),
	TWL6030_ADJUSTABLE_LDO(VMMC, 0x68, 1000, 3300, 4),
	TWL6030_ADJUSTABLE_LDO(VPP, 0x6c, 1000, 3300, 5),
	TWL6030_ADJUSTABLE_LDO(VUSIM, 0x74, 1000, 3300, 7),
	TWL6030_FIXED_LDO(VANA, 0x50, 2100, 15, 0),
	TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 16, 0),
	TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 17, 0),
	TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 18, 0),
	TWL6030_FIXED_RESOURCE(CLK32KG, 0x8C, 48, 0),
};

static int __devinit twlreg_probe(struct platform_device *pdev)
{
	int				i;
	struct twlreg_info		*info;
	struct regulator_init_data	*initdata;
	struct regulation_constraints	*c;
	struct regulator_dev		*rdev;

	for (i = 0, info = NULL; i < ARRAY_SIZE(twl_regs); i++) {
	TWL4030_ADJUSTABLE_LDO(VDD2, 0x63, 16, 1000, 0x08),
	TWL4030_FIXED_LDO(VUSB1V5, 0x71, 1500, 17, 100, 0x08),
	TWL4030_FIXED_LDO(VUSB1V8, 0x74, 1800, 18, 100, 0x08),
	TWL4030_FIXED_LDO(VUSB3V1, 0x77, 3100, 19, 150, 0x08),
	/* VUSBCP is managed *only* by the USB subchip */

	/* 6030 REG with base as PMC Slave Misc : 0x0030 */
	/* Turnon-delay and remap configuration values for 6030 are not
	   verified since the specification is not public */
	TWL6030_ADJUSTABLE_LDO(VAUX1_6030, 0x54, 1000, 3300, 1, 0x21),
	TWL6030_ADJUSTABLE_LDO(VAUX2_6030, 0x58, 1000, 3300, 2, 0x21),
	TWL6030_ADJUSTABLE_LDO(VAUX3_6030, 0x5c, 1000, 3300, 3, 0x21),
	TWL6030_ADJUSTABLE_LDO(VMMC, 0x68, 1000, 3300, 4, 0x21),
	TWL6030_ADJUSTABLE_LDO(VPP, 0x6c, 1000, 3300, 5, 0x21),
	TWL6030_ADJUSTABLE_LDO(VUSIM, 0x74, 1000, 3300, 7, 0x21),
	TWL6030_FIXED_LDO(VANA, 0x50, 2100, 15, 0, 0x21),
	//TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 16, 0, 0x21),
    TWL6030_ADJUSTABLE_LDO(VCXIO, 0x60, 1800,1800, 16, 0x21),
	//TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 17, 0, 0x21),
    TWL6030_ADJUSTABLE_LDO(VDAC, 0x64, 1800, 1800,17, 0x21),
//	TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 18, 0, 0x21)
    TWL6030_ADJUSTABLE_LDO(VUSB, 0x70, 3300,3300, 18, 0x21)
};

static int __devinit twlreg_probe(struct platform_device *pdev)
{
	int				i;
    int             group;
	struct twlreg_info		*info;
	struct regulator_init_data	*initdata;
	struct regulation_constraints	*c;
	TWL4030_FIXED_LDO(VUSB1V5, 0x71, 1500, 17, 100, 0x08),
	TWL4030_FIXED_LDO(VUSB1V8, 0x74, 1800, 18, 100, 0x08),
	TWL4030_FIXED_LDO(VUSB3V1, 0x77, 3100, 19, 150, 0x08),
	/* VUSBCP is managed *only* by the USB subchip */

	/* 6030 REG with base as PMC Slave Misc : 0x0030 */
	/* Turnon-delay and remap configuration values for 6030 are not
	   verified since the specification is not public */
	TWL6030_ADJUSTABLE_LDO(VAUX1_6030, 0x54, 1000, 3300, 37, 0x21),
	TWL6030_ADJUSTABLE_LDO(VAUX2_6030, 0x58, 1000, 3300, 38, 0x21),
	TWL6030_ADJUSTABLE_LDO(VAUX3_6030, 0x5c, 1000, 3300, 39, 0x21),
	TWL6030_ADJUSTABLE_LDO(VMMC, 0x68, 1000, 3300, 40, 0x21),
	TWL6030_ADJUSTABLE_LDO(VPP, 0x6c, 1000, 3300, 41, 0x21),
	TWL6030_ADJUSTABLE_LDO(VUSIM, 0x74, 1000, 3300, 42, 0x21),

	TWL6030_FIXED_LDO(VANA, 0x50, 2100, 43, 0, 0x21),
	TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 44, 0, 0x21),
	TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 45, 0, 0x21),
	TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 46, 0, 0x21)
};

static int twlreg_probe(struct platform_device *pdev)
{
	int				i;
	struct twlreg_info		*info;
	struct regulator_init_data	*initdata;
	struct regulation_constraints	*c;
	struct regulator_dev		*rdev;

	for (i = 0, info = NULL; i < ARRAY_SIZE(twl_regs); i++) {
		if (twl_regs[i].desc.id != pdev->id)