From: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> This contains two bugfixes to the initial twl4030 regulator support patch related to USB: (a) always overwrite the old list of consumers ... else the regulators all share the same "usb1v5" name; (b) don't set up the "usbcp" regulator, which turns out to be managed through separate controls, usually ULPI directly from the OTG controller. Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> --- NOTE: the version of this patch going to mainline doesn't include the twl4030-regulator.c fragment, since that driver has not yet gone to mainline. drivers/mfd/twl4030-core.c | 11 +---------- drivers/regulator/twl4030-regulator.c | 2 +- include/linux/i2c/twl4030.h | 1 - 3 files changed, 2 insertions(+), 12 deletions(-) --- a/drivers/mfd/twl4030-core.c +++ b/drivers/mfd/twl4030-core.c @@ -441,7 +441,7 @@ add_regulator_linked(int num, struct reg if (!pdata) return NULL; - if (consumers && !pdata->consumer_supplies) { + if (consumers) { pdata->consumer_supplies = consumers; pdata->num_consumer_supplies = num_consumers; } @@ -564,9 +564,6 @@ add_children(struct twl4030_platform_dat static struct regulator_consumer_supply usb3v1 = { .supply = "usb3v1", }; - static struct regulator_consumer_supply usbcp = { - .supply = "usbcp", - }; /* this is a template that gets copied */ struct regulator_init_data usb_fixed = { @@ -581,7 +578,6 @@ add_children(struct twl4030_platform_dat usb1v5.dev = usb_transceiver; usb1v8.dev = usb_transceiver; usb3v1.dev = usb_transceiver; - usbcp.dev = usb_transceiver; child = add_regulator_linked(TWL4030_REG_VUSB1V5, &usb_fixed, &usb1v5, 1); @@ -597,11 +593,6 @@ add_children(struct twl4030_platform_dat &usb3v1, 1); if (IS_ERR(child)) return PTR_ERR(child); - - child = add_regulator_linked(TWL4030_REG_VUSBCP, &usb_fixed, - &usbcp, 1); - if (IS_ERR(child)) - return PTR_ERR(child); } /* maybe add LDOs that are omitted on cost-reduced parts */ --- a/drivers/regulator/twl4030-regulator.c +++ b/drivers/regulator/twl4030-regulator.c @@ -391,7 +391,7 @@ static struct twlreg_info twl4030_regs[] TWL_FIXED_LDO(VUSB1V5, 0x71, 1500, 17), TWL_FIXED_LDO(VUSB1V8, 0x74, 1800, 18), TWL_FIXED_LDO(VUSB3V1, 0x77, 3100, 19), - TWL_FIXED_LDO(VUSBCP, 0x7a, 4800, 21), + /* VUSBCP is managed *only* by the USB subchip */ }; static int twl4030reg_probe(struct platform_device *pdev) --- a/include/linux/i2c/twl4030.h +++ b/include/linux/i2c/twl4030.h @@ -417,6 +417,5 @@ int twl4030_sih_setup(int module); #define TWL4030_REG_VUSB1V5 17 #define TWL4030_REG_VUSB1V8 18 #define TWL4030_REG_VUSB3V1 19 -#define TWL4030_REG_VUSBCP 20 #endif /* End of __TWL4030_H */ -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html