Skip to contentSkip to conversation

twl4030 usb regulator support tweaks

PATCH In review David Brownell 2 participants 2 messages Dec 1, 2008 – Dec 15, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 twl4030 usb regulator support tweaks

From: David Brownell <[email protected]>

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.

---
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(-)
drivers/mfd/twl4030-core.c +1 -10
@@ -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 */
drivers/regulator/twl4030-regulator.c +1 -1
@@ -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)
include/linux/i2c/twl4030.h +0 -1
@@ -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 */
maintainer
#1 lore raw
Quoted 11 lines · David Brownell

From: David Brownell <[email protected]>

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.

Quoted 5 lines

---
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.

Pushing this to l-o tree today.

Tony

Quoted 71 lines
 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(-)
drivers/mfd/twl4030-core.c +1 -10
@@ -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 */
drivers/regulator/twl4030-regulator.c +1 -1
@@ -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)
include/linux/i2c/twl4030.h +0 -2
@@ -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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html