Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b73eac78 authored by David Brownell's avatar David Brownell Committed by Samuel Ortiz
Browse files

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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarSamuel Ortiz <sameo@openedhand.com>
parent dad759ff
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -433,7 +433,7 @@ add_regulator_linked(int num, struct regulator_init_data *pdata,
	if (!pdata)
		return NULL;

	if (consumers && !pdata->consumer_supplies) {
	if (consumers) {
		pdata->consumer_supplies = consumers;
		pdata->num_consumer_supplies = num_consumers;
	}
@@ -556,9 +556,6 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features)
		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 = {
@@ -573,7 +570,6 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features)
		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);
@@ -589,11 +585,6 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features)
				&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 */
+0 −1
Original line number Diff line number Diff line
@@ -354,6 +354,5 @@ int twl4030_set_gpio_debounce(int gpio, int enable);
#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 */