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

Commit 42012f26 authored by Azhar Shaikh's avatar Azhar Shaikh Committed by Gerrit - the friendly Code Review server
Browse files

usb: dwc3: Add current override module params for DCP/HVDCP chargers



In case of DCP and HVDCP chargers, the current drawn is 1500mA and 1800mA
respectively. In case more current needs to be drawn, add module params
to override these values.
The DCP current can be modified as:
   echo 1600 > /sys/module/dwc3_msm/parameters/dcp_max_current
and for HVDCP it can be modified as:
   echo 2000 > /sys/module/dwc3_msm/parameters/hvdcp_max_current

Change-Id: I37f9a03c1e8f6cbeac22e56a236100c1a9b8953a
Signed-off-by: default avatarAzhar Shaikh <azhars@codeaurora.org>
parent 9358212a
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -85,6 +85,16 @@ static bool usb_lpm_override;
module_param(usb_lpm_override, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(usb_lpm_override, "Override no_suspend_resume with USB");

/* Max current to be drawn for HVDCP charger */
static int hvdcp_max_current = DWC3_HVDCP_CHG_MAX;
module_param(hvdcp_max_current, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(hvdcp_max_current, "max current drawn for HVDCP charger");

/* Max current to be drawn for DCP charger */
int dcp_max_current = DWC3_IDEV_CHG_MAX;
module_param(dcp_max_current, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(dcp_max_current, "max current drawn for DCP charger");

/* XHCI registers */
#define USB3_HCSPARAMS1		(0x4)
#define USB3_PORTSC		(0x420)
@@ -2299,7 +2309,7 @@ static int dwc3_msm_power_set_property_usb(struct power_supply *psy,
			break;
		case POWER_SUPPLY_TYPE_USB_HVDCP:
			mdwc->charger.chg_type = DWC3_DCP_CHARGER;
			usb_phy_set_power(phy, DWC3_HVDCP_CHG_MAX);
			usb_phy_set_power(phy, hvdcp_max_current);
			break;
		case POWER_SUPPLY_TYPE_USB_CDP:
			mdwc->charger.chg_type = DWC3_CDP_CHARGER;
+1 −1
Original line number Diff line number Diff line
@@ -562,7 +562,7 @@ static void dwc3_otg_sm_work(struct work_struct *w)
				case DWC3_PROPRIETARY_CHARGER:
					dev_dbg(phy->dev, "lpm, DCP charger\n");
					dwc3_otg_set_power(phy,
							DWC3_IDEV_CHG_MAX);
						dcp_max_current);
					dbg_event(0xFF, "PROPCHG put", 0);
					pm_runtime_put_sync(phy->dev);
					break;
+6 −0
Original line number Diff line number Diff line
@@ -25,6 +25,12 @@
#define DWC3_IDEV_CHG_MAX 1500
#define DWC3_HVDCP_CHG_MAX 1800

/*
 * Module param to override current drawn for DCP charger
 * Declared in dwc3-msm module
 */
extern int dcp_max_current;

struct dwc3_charger;

/**