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

Commit 0effe0a3 authored by Huang Rui's avatar Huang Rui Committed by Felipe Balbi
Browse files

usb: dwc3: add disable usb2 suspend phy quirk



This patch adds disable usb2 suspend phy quirk, and some special platforms
can configure that if it is needed.

Signed-off-by: default avatarHuang Rui <ray.huang@amd.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 59acfa20
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -33,6 +33,7 @@ Optional properties:
 - snps,tx_de_emphasis: the value driven to the PHY is controlled by the
 - snps,tx_de_emphasis: the value driven to the PHY is controlled by the
			LTSSM during USB3 Compliance mode.
			LTSSM during USB3 Compliance mode.
 - snps,dis_u3_susphy_quirk: when set core will disable USB3 suspend phy.
 - snps,dis_u3_susphy_quirk: when set core will disable USB3 suspend phy.
 - snps,dis_u2_susphy_quirk: when set core will disable USB2 suspend phy.


This is usually a subnode to DWC3 glue to which it is connected.
This is usually a subnode to DWC3 glue to which it is connected.


+6 −0
Original line number Original line Diff line number Diff line
@@ -422,6 +422,9 @@ static void dwc3_phy_setup(struct dwc3 *dwc)
	if (dwc->revision > DWC3_REVISION_194A)
	if (dwc->revision > DWC3_REVISION_194A)
		reg |= DWC3_GUSB2PHYCFG_SUSPHY;
		reg |= DWC3_GUSB2PHYCFG_SUSPHY;


	if (dwc->dis_u2_susphy_quirk && dwc->is_fpga)
		reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;

	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);


	mdelay(100);
	mdelay(100);
@@ -817,6 +820,8 @@ static int dwc3_probe(struct platform_device *pdev)
				"snps,rx_detect_poll_quirk");
				"snps,rx_detect_poll_quirk");
		dwc->dis_u3_susphy_quirk = of_property_read_bool(node,
		dwc->dis_u3_susphy_quirk = of_property_read_bool(node,
				"snps,dis_u3_susphy_quirk");
				"snps,dis_u3_susphy_quirk");
		dwc->dis_u2_susphy_quirk = of_property_read_bool(node,
				"snps,dis_u2_susphy_quirk");


		dwc->tx_de_emphasis_quirk = of_property_read_bool(node,
		dwc->tx_de_emphasis_quirk = of_property_read_bool(node,
				"snps,tx_de_emphasis_quirk");
				"snps,tx_de_emphasis_quirk");
@@ -840,6 +845,7 @@ static int dwc3_probe(struct platform_device *pdev)
		dwc->lfps_filter_quirk = pdata->lfps_filter_quirk;
		dwc->lfps_filter_quirk = pdata->lfps_filter_quirk;
		dwc->rx_detect_poll_quirk = pdata->rx_detect_poll_quirk;
		dwc->rx_detect_poll_quirk = pdata->rx_detect_poll_quirk;
		dwc->dis_u3_susphy_quirk = pdata->dis_u3_susphy_quirk;
		dwc->dis_u3_susphy_quirk = pdata->dis_u3_susphy_quirk;
		dwc->dis_u2_susphy_quirk = pdata->dis_u2_susphy_quirk;


		dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk;
		dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk;
		if (pdata->tx_de_emphasis)
		if (pdata->tx_de_emphasis)
+2 −0
Original line number Original line Diff line number Diff line
@@ -698,6 +698,7 @@ struct dwc3_scratchpad_array {
 * @lfps_filter_quirk: set if we enable LFPS filter quirk
 * @lfps_filter_quirk: set if we enable LFPS filter quirk
 * @rx_detect_poll_quirk: set if we enable rx_detect to polling lfps quirk
 * @rx_detect_poll_quirk: set if we enable rx_detect to polling lfps quirk
 * @dis_u3_susphy_quirk: set if we disable usb3 suspend phy
 * @dis_u3_susphy_quirk: set if we disable usb3 suspend phy
 * @dis_u2_susphy_quirk: set if we disable usb2 suspend phy
 * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
 * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
 * @tx_de_emphasis: Tx de-emphasis value
 * @tx_de_emphasis: Tx de-emphasis value
 * 	0	- -6dB de-emphasis
 * 	0	- -6dB de-emphasis
@@ -820,6 +821,7 @@ struct dwc3 {
	unsigned		lfps_filter_quirk:1;
	unsigned		lfps_filter_quirk:1;
	unsigned		rx_detect_poll_quirk:1;
	unsigned		rx_detect_poll_quirk:1;
	unsigned		dis_u3_susphy_quirk:1;
	unsigned		dis_u3_susphy_quirk:1;
	unsigned		dis_u2_susphy_quirk:1;


	unsigned		tx_de_emphasis_quirk:1;
	unsigned		tx_de_emphasis_quirk:1;
	unsigned		tx_de_emphasis:2;
	unsigned		tx_de_emphasis:2;
+1 −0
Original line number Original line Diff line number Diff line
@@ -37,6 +37,7 @@ struct dwc3_platform_data {
	unsigned lfps_filter_quirk:1;
	unsigned lfps_filter_quirk:1;
	unsigned rx_detect_poll_quirk:1;
	unsigned rx_detect_poll_quirk:1;
	unsigned dis_u3_susphy_quirk:1;
	unsigned dis_u3_susphy_quirk:1;
	unsigned dis_u2_susphy_quirk:1;


	unsigned tx_de_emphasis_quirk:1;
	unsigned tx_de_emphasis_quirk:1;
	unsigned tx_de_emphasis:2;
	unsigned tx_de_emphasis:2;