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

Commit 5c3cf242 authored by Elson Roy Serrao's avatar Elson Roy Serrao Committed by Jack Pham
Browse files

usb: dwc3: Enable PHY deep low power mode in L1 suspend



Currently controller is enabling only shallow low power mode during
L1 suspend in host mode. Power savings can be improved by allowing
deep low power mode allowing PLL to be turned OFF. Configuring
the GUCTL1 register to enable this feature.

Change-Id: Iea6cfa2c9085a01f45a9f0d633c80368ad085806
Signed-off-by: default avatarElson Roy Serrao <eserrao@codeaurora.org>
Signed-off-by: default avatarJack Pham <jackp@codeaurora.org>
parent 16817354
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -265,6 +265,7 @@
#define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS	BIT(28)
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW	BIT(24)
#define DWC3_GUCTL1_IP_GAP_ADD_ON(n)	(n << 21)
#define DWC3_GUCTL1_L1_SUSP_THRLD_EN_FOR_HOST	BIT(8)

/* Global Status Register */
#define DWC3_GSTS_OTG_IP	BIT(10)
+8 −0
Original line number Diff line number Diff line
@@ -2436,6 +2436,10 @@ static void dwc3_en_sleep_mode(struct dwc3_msm *mdwc)
	reg = dwc3_msm_read_reg(mdwc->base, DWC3_GUSB2PHYCFG(0));
	reg |= DWC3_GUSB2PHYCFG_ENBLSLPM;
	dwc3_msm_write_reg(mdwc->base, DWC3_GUSB2PHYCFG(0), reg);

	reg = dwc3_msm_read_reg(mdwc->base, DWC3_GUCTL1);
	reg |= DWC3_GUCTL1_L1_SUSP_THRLD_EN_FOR_HOST;
	dwc3_msm_write_reg(mdwc->base, DWC3_GUCTL1, reg);
}

static void dwc3_dis_sleep_mode(struct dwc3_msm *mdwc)
@@ -2445,6 +2449,10 @@ static void dwc3_dis_sleep_mode(struct dwc3_msm *mdwc)
	reg = dwc3_msm_read_reg(mdwc->base, DWC3_GUSB2PHYCFG(0));
	reg &= ~DWC3_GUSB2PHYCFG_ENBLSLPM;
	dwc3_msm_write_reg(mdwc->base, DWC3_GUSB2PHYCFG(0), reg);

	reg = dwc3_msm_read_reg(mdwc->base, DWC3_GUCTL1);
	reg &= ~DWC3_GUCTL1_L1_SUSP_THRLD_EN_FOR_HOST;
	dwc3_msm_write_reg(mdwc->base, DWC3_GUCTL1, reg);
}

static void dwc3_msm_power_collapse_por(struct dwc3_msm *mdwc)