power: pm8921-charger: Support multiple vbus requests
ACA chargers can generate multiple vbus current draw requests
based on the number of USB peripherals connected to the dock.
Handle this by allowing runtime modification to the max target
current limit.
CRs-Fixed: 427933
Change-Id: Ie508a85bbbe129d77af48c05235376779d799128
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
diff --git a/drivers/power/pm8921-charger.c b/drivers/power/pm8921-charger.c
index 46bd3ae..7478ab9 100644
--- a/drivers/power/pm8921-charger.c
+++ b/drivers/power/pm8921-charger.c
@@ -1947,6 +1947,9 @@
if (usb_target_ma == 0 && mA > USB_WALL_THRESHOLD_MA)
usb_target_ma = mA;
+ if (usb_target_ma)
+ usb_target_ma = mA;
+
spin_lock_irqsave(&vbus_lock, flags);
if (the_chip) {
if (mA > USB_WALL_THRESHOLD_MA)
@@ -2917,6 +2920,8 @@
/* only increase iusb_max if vin loop not active */
if (usb_ma < usb_target_ma) {
increase_usb_ma_value(&usb_ma);
+ if (usb_ma > usb_target_ma)
+ usb_ma = usb_target_ma;
__pm8921_charger_vbus_draw(usb_ma);
pr_debug("usb_now=%d, usb_target = %d\n",
usb_ma, usb_target_ma);