[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150224043352.4243.84042.stgit@notabene.brown>
Date: Tue, 24 Feb 2015 15:33:52 +1100
From: NeilBrown <neilb@...e.de>
To: Samuel Ortiz <sameo@...ux.intel.com>,
Tony Lindgren <tony@...mide.com>,
Lee Jones <lee.jones@...aro.org>,
Sebastian Reichel <sre@...nel.org>,
Dmitry Eremin-Solenikov <dbaryshkov@...il.com>,
David Woodhouse <dwmw2@...radead.org>
Cc: GTA04 owners <gta04-owner@...delico.com>,
linux-omap@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-pm@...r.kernel.org
Subject: [PATCH 10/15] twl4030_charger: only draw USB current as negotiated
with host.
If the phy has been told what current it can draw, it tells us
and now we use that number.
Note that 'vbus_draw' is in mA, while usb_cur is in uA.
Signed-off-by: NeilBrown <neilb@...e.de>
---
drivers/power/twl4030_charger.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/power/twl4030_charger.c b/drivers/power/twl4030_charger.c
index b0242786d047..01090a440583 100644
--- a/drivers/power/twl4030_charger.c
+++ b/drivers/power/twl4030_charger.c
@@ -597,6 +597,7 @@ static void twl4030_bci_usb_work(struct work_struct *data)
switch (bci->event) {
case USB_EVENT_VBUS:
case USB_EVENT_CHARGER:
+ case USB_EVENT_ENUMERATED:
twl4030_charger_enable_usb(bci, true);
break;
case USB_EVENT_NONE:
@@ -609,6 +610,7 @@ static int twl4030_bci_usb_ncb(struct notifier_block *nb, unsigned long val,
void *priv)
{
struct twl4030_bci *bci = container_of(nb, struct twl4030_bci, usb_nb);
+ unsigned *vbus_draw = priv;
dev_dbg(bci->dev, "OTG notify %lu\n", val);
@@ -619,6 +621,9 @@ static int twl4030_bci_usb_ncb(struct notifier_block *nb, unsigned long val,
bci->usb_cur = 100000;
bci->event = val;
+ if (val == USB_EVENT_ENUMERATED && vbus_draw &&
+ *vbus_draw * 1000 > bci->usb_cur)
+ bci->usb_cur = *vbus_draw * 1000;
schedule_work(&bci->work);
return NOTIFY_OK;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists