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

Commit 59acfa20 authored by Huang Rui's avatar Huang Rui Committed by Felipe Balbi
Browse files

usb: dwc3: add disable usb3 suspend phy quirk



This patch adds disable usb3 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 6b6a0c9a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ Optional properties:
 - snps,tx_de_emphasis_quirk: when set core will set Tx de-emphasis value.
 - snps,tx_de_emphasis: the value driven to the PHY is controlled by the
			LTSSM during USB3 Compliance mode.
 - snps,dis_u3_susphy_quirk: when set core will disable USB3 suspend phy.

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

+6 −0
Original line number Diff line number Diff line
@@ -404,6 +404,9 @@ static void dwc3_phy_setup(struct dwc3 *dwc)
	if (dwc->tx_de_emphasis_quirk)
		reg |= DWC3_GUSB3PIPECTL_TX_DEEPH(dwc->tx_de_emphasis);

	if (dwc->dis_u3_susphy_quirk && dwc->is_fpga)
		reg &= ~DWC3_GUSB3PIPECTL_SUSPHY;

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

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

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

		dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk;
		if (pdata->tx_de_emphasis)
+2 −0
Original line number Diff line number Diff line
@@ -697,6 +697,7 @@ struct dwc3_scratchpad_array {
 * @del_phy_power_chg_quirk: set if we enable delay phy power change 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
 * @dis_u3_susphy_quirk: set if we disable usb3 suspend phy
 * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
 * @tx_de_emphasis: Tx de-emphasis value
 * 	0	- -6dB de-emphasis
@@ -818,6 +819,7 @@ struct dwc3 {
	unsigned		del_phy_power_chg_quirk:1;
	unsigned		lfps_filter_quirk:1;
	unsigned		rx_detect_poll_quirk:1;
	unsigned		dis_u3_susphy_quirk:1;

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

	unsigned tx_de_emphasis_quirk:1;
	unsigned tx_de_emphasis:2;