diff options
author | David Brownell <dbrownell@users.sourceforge.net> | 2008-12-07 13:10:58 -0500 |
---|---|---|
committer | Samuel Ortiz <samuel@sortiz.org> | 2009-01-04 06:17:40 -0500 |
commit | b73eac7871d002835be17d4602cced2c15c0db4b (patch) | |
tree | 0d664f8baf38f20eb8557ad6148377a1eef21899 /drivers/mfd | |
parent | dad759ff8ba79927766e3f0159bfc5fb6de0f982 (diff) |
mfd: twl4030 regulator bug fixes
This contains two bugfixes to the initial twl4030 regulator
support patch related to USB:
(a) always overwrite the old list of consumers ... else
the regulator handles all use 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@users.sourceforge.net>
Signed-off-by: Samuel Ortiz <sameo@openedhand.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/twl4030-core.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/mfd/twl4030-core.c b/drivers/mfd/twl4030-core.c index 8ab9ee8543a6..fdfbd313ae09 100644 --- a/drivers/mfd/twl4030-core.c +++ b/drivers/mfd/twl4030-core.c | |||
@@ -433,7 +433,7 @@ add_regulator_linked(int num, struct regulator_init_data *pdata, | |||
433 | if (!pdata) | 433 | if (!pdata) |
434 | return NULL; | 434 | return NULL; |
435 | 435 | ||
436 | if (consumers && !pdata->consumer_supplies) { | 436 | if (consumers) { |
437 | pdata->consumer_supplies = consumers; | 437 | pdata->consumer_supplies = consumers; |
438 | pdata->num_consumer_supplies = num_consumers; | 438 | pdata->num_consumer_supplies = num_consumers; |
439 | } | 439 | } |
@@ -556,9 +556,6 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features) | |||
556 | static struct regulator_consumer_supply usb3v1 = { | 556 | static struct regulator_consumer_supply usb3v1 = { |
557 | .supply = "usb3v1", | 557 | .supply = "usb3v1", |
558 | }; | 558 | }; |
559 | static struct regulator_consumer_supply usbcp = { | ||
560 | .supply = "usbcp", | ||
561 | }; | ||
562 | 559 | ||
563 | /* this is a template that gets copied */ | 560 | /* this is a template that gets copied */ |
564 | struct regulator_init_data usb_fixed = { | 561 | struct regulator_init_data usb_fixed = { |
@@ -573,7 +570,6 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features) | |||
573 | usb1v5.dev = usb_transceiver; | 570 | usb1v5.dev = usb_transceiver; |
574 | usb1v8.dev = usb_transceiver; | 571 | usb1v8.dev = usb_transceiver; |
575 | usb3v1.dev = usb_transceiver; | 572 | usb3v1.dev = usb_transceiver; |
576 | usbcp.dev = usb_transceiver; | ||
577 | 573 | ||
578 | child = add_regulator_linked(TWL4030_REG_VUSB1V5, &usb_fixed, | 574 | child = add_regulator_linked(TWL4030_REG_VUSB1V5, &usb_fixed, |
579 | &usb1v5, 1); | 575 | &usb1v5, 1); |
@@ -589,11 +585,6 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features) | |||
589 | &usb3v1, 1); | 585 | &usb3v1, 1); |
590 | if (IS_ERR(child)) | 586 | if (IS_ERR(child)) |
591 | return PTR_ERR(child); | 587 | return PTR_ERR(child); |
592 | |||
593 | child = add_regulator_linked(TWL4030_REG_VUSBCP, &usb_fixed, | ||
594 | &usbcp, 1); | ||
595 | if (IS_ERR(child)) | ||
596 | return PTR_ERR(child); | ||
597 | } | 588 | } |
598 | 589 | ||
599 | /* maybe add LDOs that are omitted on cost-reduced parts */ | 590 | /* maybe add LDOs that are omitted on cost-reduced parts */ |