All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] support rockchip dwc3 driver
@ 2016-05-09 11:46 William Wu
  2016-05-09 11:46 ` [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip William Wu
                   ` (4 more replies)
  0 siblings, 5 replies; 28+ messages in thread
From: William Wu @ 2016-05-09 11:46 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: briannorris, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb, William Wu

This series add support for rockchip dwc3 driver,
and add additional optional properties for specific
platforms (e.g., rockchip platform).

William Wu (4):
  usb: dwc3: of-simple: add compatible for rockchip
  usb: dwc3: add dis_u2_freeclk_exists_quirk
  usb: dwc3: make usb2 phy interface configurable in DT
  usb: dwc3: add dis_del_phy_power_chg_quirk

Tested on RK3399 EVB board.

 Documentation/devicetree/bindings/usb/dwc3.txt |  7 +++++++
 drivers/usb/dwc3/core.c                        | 27 ++++++++++++++++++++++++++
 drivers/usb/dwc3/core.h                        | 16 +++++++++++++++
 drivers/usb/dwc3/dwc3-of-simple.c              |  1 +
 drivers/usb/dwc3/platform_data.h               |  3 +++
 5 files changed, 54 insertions(+)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-09 11:46 [PATCH 0/4] support rockchip dwc3 driver William Wu
@ 2016-05-09 11:46 ` William Wu
  2016-05-09 15:16   ` Doug Anderson
  2016-05-09 19:24   ` Brian Norris
  2016-05-09 11:46 ` [PATCH 2/4] usb: dwc3: add dis_u2_freeclk_exists_quirk William Wu
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 28+ messages in thread
From: William Wu @ 2016-05-09 11:46 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: briannorris, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb, William Wu

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
 drivers/usb/dwc3/dwc3-of-simple.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
index 9743353..1f3665b 100644
--- a/drivers/usb/dwc3/dwc3-of-simple.c
+++ b/drivers/usb/dwc3/dwc3-of-simple.c
@@ -162,6 +162,7 @@ static const struct dev_pm_ops dwc3_of_simple_dev_pm_ops = {
 static const struct of_device_id of_dwc3_simple_match[] = {
 	{ .compatible = "qcom,dwc3" },
 	{ .compatible = "xlnx,zynqmp-dwc3" },
+	{ .compatible = "rockchip,dwc3" },
 	{ /* Sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, of_dwc3_simple_match);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 2/4] usb: dwc3: add dis_u2_freeclk_exists_quirk
  2016-05-09 11:46 [PATCH 0/4] support rockchip dwc3 driver William Wu
  2016-05-09 11:46 ` [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip William Wu
@ 2016-05-09 11:46 ` William Wu
  2016-05-09 11:46 ` [PATCH 3/4] usb: dwc3: make usb2 phy interface configurable in DT William Wu
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-09 11:46 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: briannorris, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb, William Wu

Add a quirk to clear the GUSB2PHYCFG.U2_FREECLK_EXISTS bit,
which specifies whether the USB2.0 PHY provides a free-running
PHY clock, which is active when the clock control input is active.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
 Documentation/devicetree/bindings/usb/dwc3.txt | 3 +++
 drivers/usb/dwc3/core.c                        | 7 +++++++
 drivers/usb/dwc3/core.h                        | 5 +++++
 drivers/usb/dwc3/platform_data.h               | 1 +
 4 files changed, 16 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7d7ce08..1ada121 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -39,6 +39,9 @@ Optional properties:
 			disabling the suspend signal to the PHY.
  - snps,dis_rxdet_inp3_quirk: when set core will disable receiver detection
 			in PHY P3 power state.
+ - snps,dis_u2_freeclk_exists_quirk: when set, clear the u2_freeclk_exists
+			in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
+			a free-running PHY clock.
  - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
 			utmi_l1_suspend_n, false when asserts utmi_sleep_n
  - snps,hird-threshold: HIRD threshold
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index a590cd2..8bcd3cc 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -502,6 +502,9 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
 	if (dwc->dis_enblslpm_quirk)
 		reg &= ~DWC3_GUSB2PHYCFG_ENBLSLPM;
 
+	if (dwc->dis_u2_freeclk_exists_quirk)
+		reg &= ~DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS;
+
 	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
 
 	return 0;
@@ -901,6 +904,8 @@ static int dwc3_probe(struct platform_device *pdev)
 				"snps,dis_enblslpm_quirk");
 	dwc->dis_rxdet_inp3_quirk = device_property_read_bool(dev,
 				"snps,dis_rxdet_inp3_quirk");
+	dwc->dis_u2_freeclk_exists_quirk = device_property_read_bool(dev,
+				"snps,dis_u2_freeclk_exists_quirk");
 
 	dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
 				"snps,tx_de_emphasis_quirk");
@@ -935,6 +940,8 @@ static int dwc3_probe(struct platform_device *pdev)
 		dwc->dis_u2_susphy_quirk = pdata->dis_u2_susphy_quirk;
 		dwc->dis_enblslpm_quirk = pdata->dis_enblslpm_quirk;
 		dwc->dis_rxdet_inp3_quirk = pdata->dis_rxdet_inp3_quirk;
+		dwc->dis_u2_freeclk_exists_quirk =
+					pdata->dis_u2_freeclk_exists_quirk;
 
 		dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk;
 		if (pdata->tx_de_emphasis)
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 7ddf944..ac2e6b5 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -196,6 +196,7 @@
 
 /* Global USB2 PHY Configuration Register */
 #define DWC3_GUSB2PHYCFG_PHYSOFTRST	(1 << 31)
+#define	DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS	(1 << 30)
 #define DWC3_GUSB2PHYCFG_SUSPHY		(1 << 6)
 #define DWC3_GUSB2PHYCFG_ULPI_UTMI	(1 << 4)
 #define DWC3_GUSB2PHYCFG_ENBLSLPM	(1 << 8)
@@ -770,6 +771,9 @@ struct dwc3_scratchpad_array {
  * @dis_u2_susphy_quirk: set if we disable usb2 suspend phy
  * @dis_enblslpm_quirk: set if we clear enblslpm in GUSB2PHYCFG,
  *                      disabling the suspend signal to the PHY.
+ * @dis_u2_freeclk_exists_quirk : set if we clear u2_freeclk_exists
+ *			in GUSB2PHYCFG, specify that USB2 PHY doesn't
+ *			provide a free-running PHY clock.
  * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
  * @tx_de_emphasis: Tx de-emphasis value
  * 	0	- -6dB de-emphasis
@@ -913,6 +917,7 @@ struct dwc3 {
 	unsigned		dis_u2_susphy_quirk:1;
 	unsigned		dis_enblslpm_quirk:1;
 	unsigned		dis_rxdet_inp3_quirk:1;
+	unsigned		dis_u2_freeclk_exists_quirk:1;
 
 	unsigned		tx_de_emphasis_quirk:1;
 	unsigned		tx_de_emphasis:2;
diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
index 8826cca..e1a1631 100644
--- a/drivers/usb/dwc3/platform_data.h
+++ b/drivers/usb/dwc3/platform_data.h
@@ -43,6 +43,7 @@ struct dwc3_platform_data {
 	unsigned dis_u2_susphy_quirk:1;
 	unsigned dis_enblslpm_quirk:1;
 	unsigned dis_rxdet_inp3_quirk:1;
+	unsigned dis_u2_freeclk_exists_quirk:1;
 
 	unsigned tx_de_emphasis_quirk:1;
 	unsigned tx_de_emphasis:2;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 3/4] usb: dwc3: make usb2 phy interface configurable in DT
  2016-05-09 11:46 [PATCH 0/4] support rockchip dwc3 driver William Wu
  2016-05-09 11:46 ` [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip William Wu
  2016-05-09 11:46 ` [PATCH 2/4] usb: dwc3: add dis_u2_freeclk_exists_quirk William Wu
@ 2016-05-09 11:46 ` William Wu
  2016-05-09 12:18   ` Felipe Balbi
  2016-05-09 11:46 ` [PATCH 4/4] usb: dwc3: add dis_del_phy_power_chg_quirk William Wu
  2016-05-13  9:24 ` [PATCH v2 0/5] support rockchip dwc3 driver William Wu
  4 siblings, 1 reply; 28+ messages in thread
From: William Wu @ 2016-05-09 11:46 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: briannorris, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb, William Wu

Add snps,phyif_utmi_16_bits devicetree property. USB2 phy
interface is hardware property, and it's platform dependent,
so we need to configure it in devicetree to set the core to
support a UTMI+ PHY with an 8- or 16-bit interface.

And refer to the dwc3 databook, the GUSB2PHYCFG.USBTRDTIM
must set to the corresponding value according to the usb2
phy interface.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
 Documentation/devicetree/bindings/usb/dwc3.txt |  2 ++
 drivers/usb/dwc3/core.c                        | 13 +++++++++++++
 drivers/usb/dwc3/core.h                        |  8 ++++++++
 drivers/usb/dwc3/platform_data.h               |  1 +
 4 files changed, 24 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 1ada121..c5e72c8 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -19,6 +19,8 @@ Optional properties:
 	Only really useful for FPGA builds.
  - snps,has-lpm-erratum: true when DWC3 was configured with LPM Erratum enabled
  - snps,lpm-nyet-threshold: LPM NYET threshold
+ - snps,phyif_utmi_16_bits: true when configure the core to support
+			UTMI+ PHY with an 16-bit interface.
  - snps,u2exit_lfps_quirk: set if we want to enable u2exit lfps quirk
  - snps,u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
  - snps,req_p1p2p3_quirk: when set, the core will always request for
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 8bcd3cc..0205196 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -410,6 +410,7 @@ static void dwc3_cache_hwparams(struct dwc3 *dwc)
 static int dwc3_phy_setup(struct dwc3 *dwc)
 {
 	u32 reg;
+	u32 usbtrdtim;
 	int ret;
 
 	reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
@@ -505,6 +506,15 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
 	if (dwc->dis_u2_freeclk_exists_quirk)
 		reg &= ~DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS;
 
+	if (dwc->phyif_utmi_16_bits)
+		reg |= DWC3_GUSB2PHYCFG_PHYIF;
+
+	usbtrdtim = (reg & DWC3_GUSB2PHYCFG_PHYIF) ?
+		    USBTRDTIM_UTMI_16_BIT : USBTRDTIM_UTMI_8_BIT;
+
+	reg &= ~DWC3_GUSB2PHYCFG_USBTRDTIM_MASK;
+	reg |= (usbtrdtim << DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT);
+
 	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
 
 	return 0;
@@ -879,6 +889,8 @@ static int dwc3_probe(struct platform_device *pdev)
 				&hird_threshold);
 	dwc->usb3_lpm_capable = device_property_read_bool(dev,
 				"snps,usb3_lpm_capable");
+	dwc->phyif_utmi_16_bits = device_property_read_bool(dev,
+				  "snps,phyif_utmi_16_bits");
 
 	dwc->disable_scramble_quirk = device_property_read_bool(dev,
 				"snps,disable_scramble_quirk");
@@ -926,6 +938,7 @@ static int dwc3_probe(struct platform_device *pdev)
 			hird_threshold = pdata->hird_threshold;
 
 		dwc->usb3_lpm_capable = pdata->usb3_lpm_capable;
+		dwc->phyif_utmi_16_bits = pdata->phyif_utmi_16_bits;
 		dwc->dr_mode = pdata->dr_mode;
 
 		dwc->disable_scramble_quirk = pdata->disable_scramble_quirk;
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index ac2e6b5..1736f87 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -200,6 +200,11 @@
 #define DWC3_GUSB2PHYCFG_SUSPHY		(1 << 6)
 #define DWC3_GUSB2PHYCFG_ULPI_UTMI	(1 << 4)
 #define DWC3_GUSB2PHYCFG_ENBLSLPM	(1 << 8)
+#define DWC3_GUSB2PHYCFG_PHYIF		(1 << 3)
+#define DWC3_GUSB2PHYCFG_USBTRDTIM_MASK	(0xf << 10)
+#define DWC3_GUSB2PHYCFG_USBTRDTIM_SHIFT	10
+#define USBTRDTIM_UTMI_8_BIT		9
+#define USBTRDTIM_UTMI_16_BIT		5
 
 /* Global USB2 PHY Vendor Control Register */
 #define DWC3_GUSB2PHYACC_NEWREGREQ	(1 << 25)
@@ -759,6 +764,8 @@ struct dwc3_scratchpad_array {
  * @start_config_issued: true when StartConfig command has been issued
  * @three_stage_setup: set if we perform a three phase setup
  * @usb3_lpm_capable: set if hadrware supports Link Power Management
+ * @phyif_utmi_16_bits: set if configure the core to support UTMI+ PHY
+ *			with an 16-bit interface
  * @disable_scramble_quirk: set if we enable the disable scramble quirk
  * @u2exit_lfps_quirk: set if we enable u2exit lfps quirk
  * @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
@@ -904,6 +911,7 @@ struct dwc3 {
 	unsigned		setup_packet_pending:1;
 	unsigned		three_stage_setup:1;
 	unsigned		usb3_lpm_capable:1;
+	unsigned		phyif_utmi_16_bits:1;
 
 	unsigned		disable_scramble_quirk:1;
 	unsigned		u2exit_lfps_quirk:1;
diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
index e1a1631..2ce5e2f 100644
--- a/drivers/usb/dwc3/platform_data.h
+++ b/drivers/usb/dwc3/platform_data.h
@@ -24,6 +24,7 @@ struct dwc3_platform_data {
 	enum usb_device_speed maximum_speed;
 	enum usb_dr_mode dr_mode;
 	bool usb3_lpm_capable;
+	bool phyif_utmi_16_bits;
 
 	unsigned is_utmi_l1_suspend:1;
 	u8 hird_threshold;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 4/4] usb: dwc3: add dis_del_phy_power_chg_quirk
  2016-05-09 11:46 [PATCH 0/4] support rockchip dwc3 driver William Wu
                   ` (2 preceding siblings ...)
  2016-05-09 11:46 ` [PATCH 3/4] usb: dwc3: make usb2 phy interface configurable in DT William Wu
@ 2016-05-09 11:46 ` William Wu
  2016-05-13  9:24 ` [PATCH v2 0/5] support rockchip dwc3 driver William Wu
  4 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-09 11:46 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: briannorris, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb, William Wu

Add a quirk to clear the GUSB3PIPECTL.DELAYP1TRANS bit,
which specifies whether disable delay PHY power change
from P0 to P1/P2/P3 when link state changing from U0
to U1/U2/U3 respectively.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
 Documentation/devicetree/bindings/usb/dwc3.txt | 2 ++
 drivers/usb/dwc3/core.c                        | 7 +++++++
 drivers/usb/dwc3/core.h                        | 3 +++
 drivers/usb/dwc3/platform_data.h               | 1 +
 4 files changed, 13 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index c5e72c8..91b0708 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -44,6 +44,8 @@ Optional properties:
  - snps,dis_u2_freeclk_exists_quirk: when set, clear the u2_freeclk_exists
 			in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
 			a free-running PHY clock.
+ - snps,dis_del_phy_power_chg_quirk: when set core will change PHY power
+			from P0 to P1/P2/P3 without delay.
  - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
 			utmi_l1_suspend_n, false when asserts utmi_sleep_n
  - snps,hird-threshold: HIRD threshold
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 0205196..db8bad6 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -451,6 +451,9 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
 	if (dwc->dis_u3_susphy_quirk)
 		reg &= ~DWC3_GUSB3PIPECTL_SUSPHY;
 
+	if (dwc->dis_del_phy_power_chg_quirk)
+		reg &= ~DWC3_GUSB3PIPECTL_DEPOCHANGE;
+
 	dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg);
 
 	reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
@@ -918,6 +921,8 @@ static int dwc3_probe(struct platform_device *pdev)
 				"snps,dis_rxdet_inp3_quirk");
 	dwc->dis_u2_freeclk_exists_quirk = device_property_read_bool(dev,
 				"snps,dis_u2_freeclk_exists_quirk");
+	dwc->dis_del_phy_power_chg_quirk = device_property_read_bool(dev,
+				"snps,dis_del_phy_power_chg_quirk");
 
 	dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
 				"snps,tx_de_emphasis_quirk");
@@ -955,6 +960,8 @@ static int dwc3_probe(struct platform_device *pdev)
 		dwc->dis_rxdet_inp3_quirk = pdata->dis_rxdet_inp3_quirk;
 		dwc->dis_u2_freeclk_exists_quirk =
 					pdata->dis_u2_freeclk_exists_quirk;
+		dwc->dis_del_phy_power_chg_quirk =
+					pdata->dis_del_phy_power_chg_quirk;
 
 		dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk;
 		if (pdata->tx_de_emphasis)
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 1736f87..e15e307 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -781,6 +781,8 @@ struct dwc3_scratchpad_array {
  * @dis_u2_freeclk_exists_quirk : set if we clear u2_freeclk_exists
  *			in GUSB2PHYCFG, specify that USB2 PHY doesn't
  *			provide a free-running PHY clock.
+ * @dis_del_phy_power_chg_quirk: set if we disable delay phy power
+ *			change quirk.
  * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
  * @tx_de_emphasis: Tx de-emphasis value
  * 	0	- -6dB de-emphasis
@@ -926,6 +928,7 @@ struct dwc3 {
 	unsigned		dis_enblslpm_quirk:1;
 	unsigned		dis_rxdet_inp3_quirk:1;
 	unsigned		dis_u2_freeclk_exists_quirk:1;
+	unsigned		dis_del_phy_power_chg_quirk:1;
 
 	unsigned		tx_de_emphasis_quirk:1;
 	unsigned		tx_de_emphasis:2;
diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
index 2ce5e2f..412f84d 100644
--- a/drivers/usb/dwc3/platform_data.h
+++ b/drivers/usb/dwc3/platform_data.h
@@ -45,6 +45,7 @@ struct dwc3_platform_data {
 	unsigned dis_enblslpm_quirk:1;
 	unsigned dis_rxdet_inp3_quirk:1;
 	unsigned dis_u2_freeclk_exists_quirk:1;
+	unsigned dis_del_phy_power_chg_quirk:1;
 
 	unsigned tx_de_emphasis_quirk:1;
 	unsigned tx_de_emphasis:2;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH 3/4] usb: dwc3: make usb2 phy interface configurable in DT
  2016-05-09 11:46 ` [PATCH 3/4] usb: dwc3: make usb2 phy interface configurable in DT William Wu
@ 2016-05-09 12:18   ` Felipe Balbi
  2016-05-09 13:28     ` William Wu
  0 siblings, 1 reply; 28+ messages in thread
From: Felipe Balbi @ 2016-05-09 12:18 UTC (permalink / raw)
  To: William Wu, gregkh, heiko
  Cc: briannorris, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb, William Wu

[-- Attachment #1: Type: text/plain, Size: 1515 bytes --]


Hi,

William Wu <william.wu@rock-chips.com> writes:
> Add snps,phyif_utmi_16_bits devicetree property. USB2 phy

this needs a quirk_ prefix...

> interface is hardware property, and it's platform dependent,
> so we need to configure it in devicetree to set the core to
> support a UTMI+ PHY with an 8- or 16-bit interface.
>
> And refer to the dwc3 databook, the GUSB2PHYCFG.USBTRDTIM
> must set to the corresponding value according to the usb2
> phy interface.

right, that's fine. But also note on section 8.1.1 Table 8-1 where it
states:

|-------------+------------------------------------------------------------|
| GUSB2PHYCFG | Program the following PHY configuration fields: USBTrdTim, |
|             | FSIntf, PHYIf, TOUTCal, or leave the default values if     |
|             | the correct power-on values were selected during           |
|             | coreConsultant configuration.  Note: The PHY must not      |
|             | be enabled for auto-resume in device mode. Hence the       |
|             | field GUSB2PHYCFG[15] (ULPIAutoRes) must be written        |
|             | with '0' during the power-on initialization in case        |
|             | the reset value is '1'.                                    |
|             |                                                            |
|-------------+------------------------------------------------------------|

You only need this because your core was badly configured in
coreConsultant.

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 3/4] usb: dwc3: make usb2 phy interface configurable in DT
  2016-05-09 12:18   ` Felipe Balbi
@ 2016-05-09 13:28     ` William Wu
  2016-05-09 13:32       ` Felipe Balbi
  0 siblings, 1 reply; 28+ messages in thread
From: William Wu @ 2016-05-09 13:28 UTC (permalink / raw)
  To: Felipe Balbi, gregkh, heiko
  Cc: briannorris, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb

On 05/09/2016 08:18 PM, Felipe Balbi wrote:
> Hi,
>
> William Wu <william.wu@rock-chips.com> writes:
>> Add snps,phyif_utmi_16_bits devicetree property. USB2 phy
> this needs a quirk_ prefix...
      Yes, maybe a quirk is more proper. As you mentioned,
      the PHYIf can be configured during coreconsultant.
      But for some specific usb cores(e.g. rk3399 soc dwc3),
      the default PHYIf configuration is error, so we need to
      reconfigure it by software.
>
>> interface is hardware property, and it's platform dependent,
>> so we need to configure it in devicetree to set the core to
>> support a UTMI+ PHY with an 8- or 16-bit interface.
>>
>> And refer to the dwc3 databook, the GUSB2PHYCFG.USBTRDTIM
>> must set to the corresponding value according to the usb2
>> phy interface.
> right, that's fine. But also note on section 8.1.1 Table 8-1 where it
> states:
>
> |-------------+------------------------------------------------------------|
> | GUSB2PHYCFG | Program the following PHY configuration fields: USBTrdTim, |
> |             | FSIntf, PHYIf, TOUTCal, or leave the default values if     |
> |             | the correct power-on values were selected during           |
> |             | coreConsultant configuration.  Note: The PHY must not      |
> |             | be enabled for auto-resume in device mode. Hence the       |
> |             | field GUSB2PHYCFG[15] (ULPIAutoRes) must be written        |
> |             | with '0' during the power-on initialization in case        |
> |             | the reset value is '1'.                                    |
> |             |                                                            |
> |-------------+------------------------------------------------------------|
>
> You only need this because your core was badly configured in
> coreConsultant.
>

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 3/4] usb: dwc3: make usb2 phy interface configurable in DT
  2016-05-09 13:28     ` William Wu
@ 2016-05-09 13:32       ` Felipe Balbi
  0 siblings, 0 replies; 28+ messages in thread
From: Felipe Balbi @ 2016-05-09 13:32 UTC (permalink / raw)
  To: William Wu, gregkh, heiko
  Cc: briannorris, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb

[-- Attachment #1: Type: text/plain, Size: 644 bytes --]


Hi William,

William Wu <william.wu@rock-chips.com> writes:
> On 05/09/2016 08:18 PM, Felipe Balbi wrote:
>> Hi,
>>
>> William Wu <william.wu@rock-chips.com> writes:
>>> Add snps,phyif_utmi_16_bits devicetree property. USB2 phy
>> this needs a quirk_ prefix...
>       Yes, maybe a quirk is more proper. As you mentioned,
>       the PHYIf can be configured during coreconsultant.
>       But for some specific usb cores(e.g. rk3399 soc dwc3),
>       the default PHYIf configuration is error, so we need to
>       reconfigure it by software.

alright, thanks for confirming. Let's call this one a quirk, then.

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-09 11:46 ` [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip William Wu
@ 2016-05-09 15:16   ` Doug Anderson
  2016-05-10  7:14     ` Felipe Balbi
  2016-05-09 19:24   ` Brian Norris
  1 sibling, 1 reply; 28+ messages in thread
From: Doug Anderson @ 2016-05-09 15:16 UTC (permalink / raw)
  To: William Wu
  Cc: Greg Kroah-Hartman, Felipe Balbi, Heiko Stübner,
	Brian Norris, Kever Yang, Tao Huang, frank.wang, Eddie Cai,
	John Youn, linux-kernel, linux-usb

William,

On Mon, May 9, 2016 at 4:46 AM, William Wu <william.wu@rock-chips.com> wrote:
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> ---
>  drivers/usb/dwc3/dwc3-of-simple.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
> index 9743353..1f3665b 100644
> --- a/drivers/usb/dwc3/dwc3-of-simple.c
> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
> @@ -162,6 +162,7 @@ static const struct dev_pm_ops dwc3_of_simple_dev_pm_ops = {
>  static const struct of_device_id of_dwc3_simple_match[] = {
>         { .compatible = "qcom,dwc3" },
>         { .compatible = "xlnx,zynqmp-dwc3" },
> +       { .compatible = "rockchip,dwc3" },

It is, of course, up to Felipe.  ...but personally I'd prefer that
things here be sorted alphabetically.  Sorting things in a consistent
manner tends to reduce merge conflicts as the list gets longer and
also makes it easier to find things.

-Doug

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-09 11:46 ` [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip William Wu
  2016-05-09 15:16   ` Doug Anderson
@ 2016-05-09 19:24   ` Brian Norris
  2016-05-10  7:15     ` Felipe Balbi
  1 sibling, 1 reply; 28+ messages in thread
From: Brian Norris @ 2016-05-09 19:24 UTC (permalink / raw)
  To: William Wu
  Cc: gregkh, balbi, heiko, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb

Hi William,

Did you leave off linux-rockchip@lists.infradead.org intentionally? IMO,
it's nice to have that list in CC, so interested parties can follow your
work, even if they aren't as fortunate as me to have been CC'd on your
patch directly.

On Mon, May 09, 2016 at 07:46:14PM +0800, William Wu wrote:
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> ---
>  drivers/usb/dwc3/dwc3-of-simple.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
> index 9743353..1f3665b 100644
> --- a/drivers/usb/dwc3/dwc3-of-simple.c
> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
> @@ -162,6 +162,7 @@ static const struct dev_pm_ops dwc3_of_simple_dev_pm_ops = {
>  static const struct of_device_id of_dwc3_simple_match[] = {
>  	{ .compatible = "qcom,dwc3" },
>  	{ .compatible = "xlnx,zynqmp-dwc3" },
> +	{ .compatible = "rockchip,dwc3" },

Add to Documentation/devicetree/bindings/. Do we need a new
Documentation/devicetree/bindings/usb/rockchip,dwc3.txt, to match the
pattern of qcom and xlnx? Or can we just add to dwc3.txt, since so far,
all bindings are documented in the common file?

Brian

>  	{ /* Sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, of_dwc3_simple_match);
> -- 
> 1.9.1
> 
> 

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-09 15:16   ` Doug Anderson
@ 2016-05-10  7:14     ` Felipe Balbi
  2016-05-10  7:39       ` William Wu
  0 siblings, 1 reply; 28+ messages in thread
From: Felipe Balbi @ 2016-05-10  7:14 UTC (permalink / raw)
  To: Doug Anderson, William Wu
  Cc: Greg Kroah-Hartman, Heiko Stübner, Brian Norris, Kever Yang,
	Tao Huang, frank.wang, Eddie Cai, John Youn, linux-kernel,
	linux-usb

[-- Attachment #1: Type: text/plain, Size: 1107 bytes --]


Hi,

Doug Anderson <dianders@google.com> writes:
> William,
>
> On Mon, May 9, 2016 at 4:46 AM, William Wu <william.wu@rock-chips.com> wrote:
>> Signed-off-by: William Wu <william.wu@rock-chips.com>
>> ---
>>  drivers/usb/dwc3/dwc3-of-simple.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
>> index 9743353..1f3665b 100644
>> --- a/drivers/usb/dwc3/dwc3-of-simple.c
>> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
>> @@ -162,6 +162,7 @@ static const struct dev_pm_ops dwc3_of_simple_dev_pm_ops = {
>>  static const struct of_device_id of_dwc3_simple_match[] = {
>>         { .compatible = "qcom,dwc3" },
>>         { .compatible = "xlnx,zynqmp-dwc3" },
>> +       { .compatible = "rockchip,dwc3" },
>
> It is, of course, up to Felipe.  ...but personally I'd prefer that
> things here be sorted alphabetically.  Sorting things in a consistent
> manner tends to reduce merge conflicts as the list gets longer and
> also makes it easier to find things.

I agree, let's keep it sorted :-)

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-09 19:24   ` Brian Norris
@ 2016-05-10  7:15     ` Felipe Balbi
  2016-05-10  8:14       ` William Wu
  0 siblings, 1 reply; 28+ messages in thread
From: Felipe Balbi @ 2016-05-10  7:15 UTC (permalink / raw)
  To: Brian Norris, William Wu
  Cc: gregkh, heiko, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb

[-- Attachment #1: Type: text/plain, Size: 1389 bytes --]


Hi,

Brian Norris <briannorris@chromium.org> writes:
> Hi William,
>
> Did you leave off linux-rockchip@lists.infradead.org intentionally? IMO,
> it's nice to have that list in CC, so interested parties can follow your
> work, even if they aren't as fortunate as me to have been CC'd on your
> patch directly.
>
> On Mon, May 09, 2016 at 07:46:14PM +0800, William Wu wrote:
>> Signed-off-by: William Wu <william.wu@rock-chips.com>
>> ---
>>  drivers/usb/dwc3/dwc3-of-simple.c | 1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
>> index 9743353..1f3665b 100644
>> --- a/drivers/usb/dwc3/dwc3-of-simple.c
>> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
>> @@ -162,6 +162,7 @@ static const struct dev_pm_ops dwc3_of_simple_dev_pm_ops = {
>>  static const struct of_device_id of_dwc3_simple_match[] = {
>>  	{ .compatible = "qcom,dwc3" },
>>  	{ .compatible = "xlnx,zynqmp-dwc3" },
>> +	{ .compatible = "rockchip,dwc3" },
>
> Add to Documentation/devicetree/bindings/. Do we need a new
> Documentation/devicetree/bindings/usb/rockchip,dwc3.txt, to match the
> pattern of qcom and xlnx? Or can we just add to dwc3.txt, since so far,
> all bindings are documented in the common file?

dwc3.txt is for dwc3.ko. We need separate files for rockchip, xilinx and
qualcomn :-)

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-10  7:14     ` Felipe Balbi
@ 2016-05-10  7:39       ` William Wu
  2016-05-10  8:11         ` Felipe Balbi
  0 siblings, 1 reply; 28+ messages in thread
From: William Wu @ 2016-05-10  7:39 UTC (permalink / raw)
  To: Felipe Balbi, Doug Anderson
  Cc: Greg Kroah-Hartman, Heiko Stübner, Brian Norris, Kever Yang,
	Tao Huang, frank.wang, Eddie Cai, John Youn, linux-kernel,
	linux-usb

Dear Felipe & Doug,
         Thanks for your proposal. It's a good idea to sort the list.
          I'll fix it next patch version.

On 05/10/2016 03:14 PM, Felipe Balbi wrote:
> Hi,
>
> Doug Anderson <dianders@google.com> writes:
>> William,
>>
>> On Mon, May 9, 2016 at 4:46 AM, William Wu <william.wu@rock-chips.com> wrote:
>>> Signed-off-by: William Wu <william.wu@rock-chips.com>
>>> ---
>>>   drivers/usb/dwc3/dwc3-of-simple.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
>>> index 9743353..1f3665b 100644
>>> --- a/drivers/usb/dwc3/dwc3-of-simple.c
>>> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
>>> @@ -162,6 +162,7 @@ static const struct dev_pm_ops dwc3_of_simple_dev_pm_ops = {
>>>   static const struct of_device_id of_dwc3_simple_match[] = {
>>>          { .compatible = "qcom,dwc3" },
>>>          { .compatible = "xlnx,zynqmp-dwc3" },
>>> +       { .compatible = "rockchip,dwc3" },
>> It is, of course, up to Felipe.  ...but personally I'd prefer that
>> things here be sorted alphabetically.  Sorting things in a consistent
>> manner tends to reduce merge conflicts as the list gets longer and
>> also makes it easier to find things.
> I agree, let's keep it sorted :-)
>

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-10  7:39       ` William Wu
@ 2016-05-10  8:11         ` Felipe Balbi
  2016-05-10  8:27           ` William Wu
  0 siblings, 1 reply; 28+ messages in thread
From: Felipe Balbi @ 2016-05-10  8:11 UTC (permalink / raw)
  To: William Wu, Doug Anderson
  Cc: Greg Kroah-Hartman, Heiko Stübner, Brian Norris, Kever Yang,
	Tao Huang, frank.wang, Eddie Cai, John Youn, linux-kernel,
	linux-usb

[-- Attachment #1: Type: text/plain, Size: 298 bytes --]


Hi William,

William Wu <william.wu@rock-chips.com> writes:
> Dear Felipe & Doug,
>          Thanks for your proposal. It's a good idea to sort the list.
>           I'll fix it next patch version.

cool, thanks.

ps: top-posting is frowned upon here. Please avoid it ;-)

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-10  7:15     ` Felipe Balbi
@ 2016-05-10  8:14       ` William Wu
  0 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-10  8:14 UTC (permalink / raw)
  To: Felipe Balbi, Brian Norris
  Cc: gregkh, heiko, dianders, kever.yang, huangtao, frank.wang,
	eddie.cai, John.Youn, linux-kernel, linux-usb

Dear Felipe and Brian,

On 05/10/2016 03:15 PM, Felipe Balbi wrote:
> Hi,
>
> Brian Norris <briannorris@chromium.org> writes:
>> Hi William,
>>
>> Did you leave off linux-rockchip@lists.infradead.org intentionally? IMO,
>> it's nice to have that list in CC, so interested parties can follow your
>> work, even if they aren't as fortunate as me to have been CC'd on your
>> patch directly.
Actually, I don't know the linux-rockchip@lists.infradead.org before.
I'll add the list in CC next patch version.
Thanks~
>>
>> On Mon, May 09, 2016 at 07:46:14PM +0800, William Wu wrote:
>>> Signed-off-by: William Wu <william.wu@rock-chips.com>
>>> ---
>>>   drivers/usb/dwc3/dwc3-of-simple.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
>>> index 9743353..1f3665b 100644
>>> --- a/drivers/usb/dwc3/dwc3-of-simple.c
>>> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
>>> @@ -162,6 +162,7 @@ static const struct dev_pm_ops dwc3_of_simple_dev_pm_ops = {
>>>   static const struct of_device_id of_dwc3_simple_match[] = {
>>>   	{ .compatible = "qcom,dwc3" },
>>>   	{ .compatible = "xlnx,zynqmp-dwc3" },
>>> +	{ .compatible = "rockchip,dwc3" },
>> Add to Documentation/devicetree/bindings/. Do we need a new
>> Documentation/devicetree/bindings/usb/rockchip,dwc3.txt, to match the
>> pattern of qcom and xlnx? Or can we just add to dwc3.txt, since so far,
>> all bindings are documented in the common file?
> dwc3.txt is for dwc3.ko. We need separate files for rockchip, xilinx and
> qualcomn :-)
I have already prepared a new 
Documentation/devicetree/bindings/usb/rockchip,dwc3.txt,
But considering that rockchip,dwc3.txt should contains phys node 
description which are
not ready yet, so I don't add the dt-bindings patch here.
Is it better to add the dt-bindings patch(rockchip,dwc3.txt) without 
phys node description here?
If it is, I'll add  rockchip,dwc3.txt next patch verison.

And I have some doubts about the name format of the usb dwc3 documents.
I notice that there are at least two types of name format:
1. dwc3-xx.txt  (e.g. dwc3-st.txt )
2. xx, dwc3.txt (e.g. qcom,dwc3.txt)

Which one do you prefer?
>

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-10  8:11         ` Felipe Balbi
@ 2016-05-10  8:27           ` William Wu
  0 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-10  8:27 UTC (permalink / raw)
  To: Felipe Balbi, Doug Anderson
  Cc: Greg Kroah-Hartman, Heiko Stübner, Brian Norris, Kever Yang,
	Tao Huang, frank.wang, Eddie Cai, John Youn, linux-kernel,
	linux-usb

Dear Felipe,

On 05/10/2016 04:11 PM, Felipe Balbi wrote:
> Hi William,
>
> William Wu <william.wu@rock-chips.com> writes:
>> Dear Felipe & Doug,
>>           Thanks for your proposal. It's a good idea to sort the list.
>>            I'll fix it next patch version.
> cool, thanks.
>
> ps: top-posting is frowned upon here. Please avoid it ;-)
>
Thank you for reminding me. I'll pay attention to this problem next 
time.:-)

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v2 0/5] support rockchip dwc3 driver
  2016-05-09 11:46 [PATCH 0/4] support rockchip dwc3 driver William Wu
                   ` (3 preceding siblings ...)
  2016-05-09 11:46 ` [PATCH 4/4] usb: dwc3: add dis_del_phy_power_chg_quirk William Wu
@ 2016-05-13  9:24 ` William Wu
  2016-05-13  9:24   ` [PATCH v2 1/5] usb: dwc3: of-simple: add compatible for rockchip William Wu
                     ` (5 more replies)
  4 siblings, 6 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:24 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: linux-rockchip, briannorris, dianders, kever.yang, huangtao,
	frank.wang, eddie.cai, John.Youn, linux-kernel, linux-usb,
	William Wu

This series add support for rockchip dwc3 driver,
and add additional optional properties for specific
platforms (e.g., rockchip platform).

William Wu (5):
  usb: dwc3: of-simple: add compatible for rockchip
  usb: dwc3: add dis_u2_freeclk_exists_quirk
  usb: dwc3: add phyif_utmi_quirk
  usb: dwc3: add dis_del_phy_power_chg_quirk
  usb: dwc3: rockchip: add devicetree bindings documentation

 Documentation/devicetree/bindings/usb/dwc3.txt     |  9 +++++
 .../devicetree/bindings/usb/rockchip,dwc3.txt      | 45 ++++++++++++++++++++++
 drivers/usb/dwc3/core.c                            | 39 ++++++++++++++++++-
 drivers/usb/dwc3/core.h                            | 20 ++++++++++
 drivers/usb/dwc3/dwc3-of-simple.c                  |  1 +
 drivers/usb/dwc3/platform_data.h                   |  4 ++
 6 files changed, 117 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/usb/rockchip,dwc3.txt

-- 
1.9.1

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v2 1/5] usb: dwc3: of-simple: add compatible for rockchip
  2016-05-13  9:24 ` [PATCH v2 0/5] support rockchip dwc3 driver William Wu
@ 2016-05-13  9:24   ` William Wu
  2016-05-13  9:24     ` William Wu
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:24 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: linux-rockchip, briannorris, dianders, kever.yang, huangtao,
	frank.wang, eddie.cai, John.Youn, linux-kernel, linux-usb,
	William Wu

Rockchip platform merely enable usb3 clocks and
populate its children. So we can use this generic
glue layer to support Rockchip dwc3.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
Changes in v2:
- sort the list of_dwc3_simple_match (Doug)

 drivers/usb/dwc3/dwc3-of-simple.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
index 9743353..6da9656 100644
--- a/drivers/usb/dwc3/dwc3-of-simple.c
+++ b/drivers/usb/dwc3/dwc3-of-simple.c
@@ -161,6 +161,7 @@ static const struct dev_pm_ops dwc3_of_simple_dev_pm_ops = {
 
 static const struct of_device_id of_dwc3_simple_match[] = {
 	{ .compatible = "qcom,dwc3" },
+	{ .compatible = "rockchip,dwc3" },
 	{ .compatible = "xlnx,zynqmp-dwc3" },
 	{ /* Sentinel */ }
 };
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 2/5] usb: dwc3: add dis_u2_freeclk_exists_quirk
@ 2016-05-13  9:24     ` William Wu
  0 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:24 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: linux-rockchip, briannorris, dianders, kever.yang, huangtao,
	frank.wang, eddie.cai, John.Youn, linux-kernel, linux-usb,
	William Wu

Add a quirk to clear the GUSB2PHYCFG.U2_FREECLK_EXISTS bit,
which specifies whether the USB2.0 PHY provides a free-running
PHY clock, which is active when the clock control input is active.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
Changes in v2:
- None

 Documentation/devicetree/bindings/usb/dwc3.txt | 3 +++
 drivers/usb/dwc3/core.c                        | 7 +++++++
 drivers/usb/dwc3/core.h                        | 5 +++++
 drivers/usb/dwc3/platform_data.h               | 1 +
 4 files changed, 16 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7d7ce08..1ada121 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -39,6 +39,9 @@ Optional properties:
 			disabling the suspend signal to the PHY.
  - snps,dis_rxdet_inp3_quirk: when set core will disable receiver detection
 			in PHY P3 power state.
+ - snps,dis_u2_freeclk_exists_quirk: when set, clear the u2_freeclk_exists
+			in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
+			a free-running PHY clock.
  - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
 			utmi_l1_suspend_n, false when asserts utmi_sleep_n
  - snps,hird-threshold: HIRD threshold
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index a590cd2..8bcd3cc 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -502,6 +502,9 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
 	if (dwc->dis_enblslpm_quirk)
 		reg &= ~DWC3_GUSB2PHYCFG_ENBLSLPM;
 
+	if (dwc->dis_u2_freeclk_exists_quirk)
+		reg &= ~DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS;
+
 	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
 
 	return 0;
@@ -901,6 +904,8 @@ static int dwc3_probe(struct platform_device *pdev)
 				"snps,dis_enblslpm_quirk");
 	dwc->dis_rxdet_inp3_quirk = device_property_read_bool(dev,
 				"snps,dis_rxdet_inp3_quirk");
+	dwc->dis_u2_freeclk_exists_quirk = device_property_read_bool(dev,
+				"snps,dis_u2_freeclk_exists_quirk");
 
 	dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
 				"snps,tx_de_emphasis_quirk");
@@ -935,6 +940,8 @@ static int dwc3_probe(struct platform_device *pdev)
 		dwc->dis_u2_susphy_quirk = pdata->dis_u2_susphy_quirk;
 		dwc->dis_enblslpm_quirk = pdata->dis_enblslpm_quirk;
 		dwc->dis_rxdet_inp3_quirk = pdata->dis_rxdet_inp3_quirk;
+		dwc->dis_u2_freeclk_exists_quirk =
+					pdata->dis_u2_freeclk_exists_quirk;
 
 		dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk;
 		if (pdata->tx_de_emphasis)
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 7ddf944..ac2e6b5 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -196,6 +196,7 @@
 
 /* Global USB2 PHY Configuration Register */
 #define DWC3_GUSB2PHYCFG_PHYSOFTRST	(1 << 31)
+#define	DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS	(1 << 30)
 #define DWC3_GUSB2PHYCFG_SUSPHY		(1 << 6)
 #define DWC3_GUSB2PHYCFG_ULPI_UTMI	(1 << 4)
 #define DWC3_GUSB2PHYCFG_ENBLSLPM	(1 << 8)
@@ -770,6 +771,9 @@ struct dwc3_scratchpad_array {
  * @dis_u2_susphy_quirk: set if we disable usb2 suspend phy
  * @dis_enblslpm_quirk: set if we clear enblslpm in GUSB2PHYCFG,
  *                      disabling the suspend signal to the PHY.
+ * @dis_u2_freeclk_exists_quirk : set if we clear u2_freeclk_exists
+ *			in GUSB2PHYCFG, specify that USB2 PHY doesn't
+ *			provide a free-running PHY clock.
  * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
  * @tx_de_emphasis: Tx de-emphasis value
  * 	0	- -6dB de-emphasis
@@ -913,6 +917,7 @@ struct dwc3 {
 	unsigned		dis_u2_susphy_quirk:1;
 	unsigned		dis_enblslpm_quirk:1;
 	unsigned		dis_rxdet_inp3_quirk:1;
+	unsigned		dis_u2_freeclk_exists_quirk:1;
 
 	unsigned		tx_de_emphasis_quirk:1;
 	unsigned		tx_de_emphasis:2;
diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
index 8826cca..e1a1631 100644
--- a/drivers/usb/dwc3/platform_data.h
+++ b/drivers/usb/dwc3/platform_data.h
@@ -43,6 +43,7 @@ struct dwc3_platform_data {
 	unsigned dis_u2_susphy_quirk:1;
 	unsigned dis_enblslpm_quirk:1;
 	unsigned dis_rxdet_inp3_quirk:1;
+	unsigned dis_u2_freeclk_exists_quirk:1;
 
 	unsigned tx_de_emphasis_quirk:1;
 	unsigned tx_de_emphasis:2;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 2/5] usb: dwc3: add dis_u2_freeclk_exists_quirk
@ 2016-05-13  9:24     ` William Wu
  0 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:24 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	balbi-DgEjT+Ai2ygdnm+yROfE0A, heiko-4mtYJXux2i+zQB+pC5nmwQ
  Cc: huangtao-TNX95d0MmH7DzftRWevZcw,
	frank.wang-TNX95d0MmH7DzftRWevZcw,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA,
	kever.yang-TNX95d0MmH7DzftRWevZcw,
	dianders-hpIqsD4AKlfQT0dZR+AlfA,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	eddie.cai-TNX95d0MmH7DzftRWevZcw, William Wu,
	briannorris-hpIqsD4AKlfQT0dZR+AlfA,
	John.Youn-HKixBCOQz3hWk0Htik3J/w

Add a quirk to clear the GUSB2PHYCFG.U2_FREECLK_EXISTS bit,
which specifies whether the USB2.0 PHY provides a free-running
PHY clock, which is active when the clock control input is active.

Signed-off-by: William Wu <william.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
---
Changes in v2:
- None

 Documentation/devicetree/bindings/usb/dwc3.txt | 3 +++
 drivers/usb/dwc3/core.c                        | 7 +++++++
 drivers/usb/dwc3/core.h                        | 5 +++++
 drivers/usb/dwc3/platform_data.h               | 1 +
 4 files changed, 16 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7d7ce08..1ada121 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -39,6 +39,9 @@ Optional properties:
 			disabling the suspend signal to the PHY.
  - snps,dis_rxdet_inp3_quirk: when set core will disable receiver detection
 			in PHY P3 power state.
+ - snps,dis_u2_freeclk_exists_quirk: when set, clear the u2_freeclk_exists
+			in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
+			a free-running PHY clock.
  - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
 			utmi_l1_suspend_n, false when asserts utmi_sleep_n
  - snps,hird-threshold: HIRD threshold
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index a590cd2..8bcd3cc 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -502,6 +502,9 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
 	if (dwc->dis_enblslpm_quirk)
 		reg &= ~DWC3_GUSB2PHYCFG_ENBLSLPM;
 
+	if (dwc->dis_u2_freeclk_exists_quirk)
+		reg &= ~DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS;
+
 	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
 
 	return 0;
@@ -901,6 +904,8 @@ static int dwc3_probe(struct platform_device *pdev)
 				"snps,dis_enblslpm_quirk");
 	dwc->dis_rxdet_inp3_quirk = device_property_read_bool(dev,
 				"snps,dis_rxdet_inp3_quirk");
+	dwc->dis_u2_freeclk_exists_quirk = device_property_read_bool(dev,
+				"snps,dis_u2_freeclk_exists_quirk");
 
 	dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
 				"snps,tx_de_emphasis_quirk");
@@ -935,6 +940,8 @@ static int dwc3_probe(struct platform_device *pdev)
 		dwc->dis_u2_susphy_quirk = pdata->dis_u2_susphy_quirk;
 		dwc->dis_enblslpm_quirk = pdata->dis_enblslpm_quirk;
 		dwc->dis_rxdet_inp3_quirk = pdata->dis_rxdet_inp3_quirk;
+		dwc->dis_u2_freeclk_exists_quirk =
+					pdata->dis_u2_freeclk_exists_quirk;
 
 		dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk;
 		if (pdata->tx_de_emphasis)
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 7ddf944..ac2e6b5 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -196,6 +196,7 @@
 
 /* Global USB2 PHY Configuration Register */
 #define DWC3_GUSB2PHYCFG_PHYSOFTRST	(1 << 31)
+#define	DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS	(1 << 30)
 #define DWC3_GUSB2PHYCFG_SUSPHY		(1 << 6)
 #define DWC3_GUSB2PHYCFG_ULPI_UTMI	(1 << 4)
 #define DWC3_GUSB2PHYCFG_ENBLSLPM	(1 << 8)
@@ -770,6 +771,9 @@ struct dwc3_scratchpad_array {
  * @dis_u2_susphy_quirk: set if we disable usb2 suspend phy
  * @dis_enblslpm_quirk: set if we clear enblslpm in GUSB2PHYCFG,
  *                      disabling the suspend signal to the PHY.
+ * @dis_u2_freeclk_exists_quirk : set if we clear u2_freeclk_exists
+ *			in GUSB2PHYCFG, specify that USB2 PHY doesn't
+ *			provide a free-running PHY clock.
  * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
  * @tx_de_emphasis: Tx de-emphasis value
  * 	0	- -6dB de-emphasis
@@ -913,6 +917,7 @@ struct dwc3 {
 	unsigned		dis_u2_susphy_quirk:1;
 	unsigned		dis_enblslpm_quirk:1;
 	unsigned		dis_rxdet_inp3_quirk:1;
+	unsigned		dis_u2_freeclk_exists_quirk:1;
 
 	unsigned		tx_de_emphasis_quirk:1;
 	unsigned		tx_de_emphasis:2;
diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
index 8826cca..e1a1631 100644
--- a/drivers/usb/dwc3/platform_data.h
+++ b/drivers/usb/dwc3/platform_data.h
@@ -43,6 +43,7 @@ struct dwc3_platform_data {
 	unsigned dis_u2_susphy_quirk:1;
 	unsigned dis_enblslpm_quirk:1;
 	unsigned dis_rxdet_inp3_quirk:1;
+	unsigned dis_u2_freeclk_exists_quirk:1;
 
 	unsigned tx_de_emphasis_quirk:1;
 	unsigned tx_de_emphasis:2;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 3/5] usb: dwc3: add phyif_utmi_quirk
  2016-05-13  9:24 ` [PATCH v2 0/5] support rockchip dwc3 driver William Wu
  2016-05-13  9:24   ` [PATCH v2 1/5] usb: dwc3: of-simple: add compatible for rockchip William Wu
  2016-05-13  9:24     ` William Wu
@ 2016-05-13  9:24   ` William Wu
  2016-05-13  9:25     ` William Wu
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:24 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: linux-rockchip, briannorris, dianders, kever.yang, huangtao,
	frank.wang, eddie.cai, John.Youn, linux-kernel, linux-usb,
	William Wu

Add a quirk to configure the core to support the
UTMI+ PHY with an 8- or 16-bit interface. UTMI+ PHY
interface is hardware property, and it's platform
dependent. Normall, the PHYIf can be configured
during coreconsultant. But for some specific usb
cores(e.g. rk3399 soc dwc3), the default PHYIf
configuration value is fault, so we need to
reconfigure it by software.

And refer to the dwc3 databook, the GUSB2PHYCFG.USBTRDTIM
must be set to the corresponding value according to
the UTMI+ PHY interface.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
Changes in v2:
- add a quirk for phyif_utmi (Felipe)

 Documentation/devicetree/bindings/usb/dwc3.txt |  4 ++++
 drivers/usb/dwc3/core.c                        | 23 +++++++++++++++++++++++
 drivers/usb/dwc3/core.h                        | 12 ++++++++++++
 drivers/usb/dwc3/platform_data.h               |  2 ++
 4 files changed, 41 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 1ada121..34d13a5 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -42,6 +42,10 @@ Optional properties:
  - snps,dis_u2_freeclk_exists_quirk: when set, clear the u2_freeclk_exists
 			in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
 			a free-running PHY clock.
+ - snps,phyif_utmi_quirk: when set core will set phyif UTMI+ interface.
+ - snps,phyif_utmi: the value to configure the core to support a UTMI+ PHY
+			with an 8- or 16-bit interface. Value 0 select 8-bit
+			interface, value 1 select 16-bit interface.
  - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
 			utmi_l1_suspend_n, false when asserts utmi_sleep_n
  - snps,hird-threshold: HIRD threshold
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 8bcd3cc..d99c170 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -410,6 +410,7 @@ static void dwc3_cache_hwparams(struct dwc3 *dwc)
 static int dwc3_phy_setup(struct dwc3 *dwc)
 {
 	u32 reg;
+	u32 usbtrdtim;
 	int ret;
 
 	reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
@@ -505,6 +506,15 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
 	if (dwc->dis_u2_freeclk_exists_quirk)
 		reg &= ~DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS;
 
+	if (dwc->phyif_utmi_quirk) {
+		reg &= ~(DWC3_GUSB2PHYCFG_PHYIF_MASK |
+		       DWC3_GUSB2PHYCFG_USBTRDTIM_MASK);
+		usbtrdtim = dwc->phyif_utmi ? USBTRDTIM_UTMI_16_BIT :
+			    USBTRDTIM_UTMI_8_BIT;
+		reg |= DWC3_GUSB2PHYCFG_PHYIF(dwc->phyif_utmi) |
+		       DWC3_GUSB2PHYCFG_USBTRDTIM(usbtrdtim);
+	}
+
 	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
 
 	return 0;
@@ -800,6 +810,7 @@ static int dwc3_probe(struct platform_device *pdev)
 	struct resource		*res;
 	struct dwc3		*dwc;
 	u8			lpm_nyet_threshold;
+	u8			phyif_utmi;
 	u8			tx_de_emphasis;
 	u8			hird_threshold;
 	u32			fladj = 0;
@@ -857,6 +868,9 @@ static int dwc3_probe(struct platform_device *pdev)
 	/* default to highest possible threshold */
 	lpm_nyet_threshold = 0xff;
 
+	/* default to UTMI+ 8-bit interface */
+	phyif_utmi = 0;
+
 	/* default to -3.5dB de-emphasis */
 	tx_de_emphasis = 1;
 
@@ -907,6 +921,10 @@ static int dwc3_probe(struct platform_device *pdev)
 	dwc->dis_u2_freeclk_exists_quirk = device_property_read_bool(dev,
 				"snps,dis_u2_freeclk_exists_quirk");
 
+	dwc->phyif_utmi_quirk = device_property_read_bool(dev,
+				"snps,phyif_utmi_quirk");
+	device_property_read_u8(dev, "snps,phyif_utmi",
+				&phyif_utmi);
 	dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
 				"snps,tx_de_emphasis_quirk");
 	device_property_read_u8(dev, "snps,tx_de_emphasis",
@@ -943,6 +961,10 @@ static int dwc3_probe(struct platform_device *pdev)
 		dwc->dis_u2_freeclk_exists_quirk =
 					pdata->dis_u2_freeclk_exists_quirk;
 
+		dwc->phyif_utmi_quirk = pdata->phyif_utmi_quirk;
+		if (pdata->phyif_utmi)
+			phyif_utmi = pdata->phyif_utmi;
+
 		dwc->tx_de_emphasis_quirk = pdata->tx_de_emphasis_quirk;
 		if (pdata->tx_de_emphasis)
 			tx_de_emphasis = pdata->tx_de_emphasis;
@@ -952,6 +974,7 @@ static int dwc3_probe(struct platform_device *pdev)
 	}
 
 	dwc->lpm_nyet_threshold = lpm_nyet_threshold;
+	dwc->phyif_utmi = phyif_utmi;
 	dwc->tx_de_emphasis = tx_de_emphasis;
 
 	dwc->hird_threshold = hird_threshold
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index ac2e6b5..e1fcae8 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -200,6 +200,12 @@
 #define DWC3_GUSB2PHYCFG_SUSPHY		(1 << 6)
 #define DWC3_GUSB2PHYCFG_ULPI_UTMI	(1 << 4)
 #define DWC3_GUSB2PHYCFG_ENBLSLPM	(1 << 8)
+#define DWC3_GUSB2PHYCFG_PHYIF(n)	(n << 3)
+#define DWC3_GUSB2PHYCFG_PHYIF_MASK	DWC3_GUSB2PHYCFG_PHYIF(1)
+#define DWC3_GUSB2PHYCFG_USBTRDTIM(n)	(n << 10)
+#define DWC3_GUSB2PHYCFG_USBTRDTIM_MASK	DWC3_GUSB2PHYCFG_USBTRDTIM(0xf)
+#define USBTRDTIM_UTMI_8_BIT		9
+#define USBTRDTIM_UTMI_16_BIT		5
 
 /* Global USB2 PHY Vendor Control Register */
 #define DWC3_GUSB2PHYACC_NEWREGREQ	(1 << 25)
@@ -774,6 +780,10 @@ struct dwc3_scratchpad_array {
  * @dis_u2_freeclk_exists_quirk : set if we clear u2_freeclk_exists
  *			in GUSB2PHYCFG, specify that USB2 PHY doesn't
  *			provide a free-running PHY clock.
+ * @phyif_utmi_quirk: set if we enable phyif UTMI+ quirk
+ * @phyif_utmi: UTMI+ PHY interface value
+ *	0	- 8 bits
+ *	1	- 16 bits
  * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
  * @tx_de_emphasis: Tx de-emphasis value
  * 	0	- -6dB de-emphasis
@@ -919,6 +929,8 @@ struct dwc3 {
 	unsigned		dis_rxdet_inp3_quirk:1;
 	unsigned		dis_u2_freeclk_exists_quirk:1;
 
+	unsigned		phyif_utmi_quirk:1;
+	unsigned		phyif_utmi:1;
 	unsigned		tx_de_emphasis_quirk:1;
 	unsigned		tx_de_emphasis:2;
 };
diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
index e1a1631..b521565 100644
--- a/drivers/usb/dwc3/platform_data.h
+++ b/drivers/usb/dwc3/platform_data.h
@@ -45,6 +45,8 @@ struct dwc3_platform_data {
 	unsigned dis_rxdet_inp3_quirk:1;
 	unsigned dis_u2_freeclk_exists_quirk:1;
 
+	unsigned phyif_utmi_quirk:1;
+	unsigned phyif_utmi:1;
 	unsigned tx_de_emphasis_quirk:1;
 	unsigned tx_de_emphasis:2;
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 4/5] usb: dwc3: add dis_del_phy_power_chg_quirk
@ 2016-05-13  9:25     ` William Wu
  0 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:25 UTC (permalink / raw)
  To: gregkh, balbi, heiko
  Cc: linux-rockchip, briannorris, dianders, kever.yang, huangtao,
	frank.wang, eddie.cai, John.Youn, linux-kernel, linux-usb,
	William Wu

Add a quirk to clear the GUSB3PIPECTL.DELAYP1TRANS bit,
which specifies whether disable delay PHY power change
from P0 to P1/P2/P3 when link state changing from U0
to U1/U2/U3 respectively.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
Changes in v2:
- None

 Documentation/devicetree/bindings/usb/dwc3.txt | 2 ++
 drivers/usb/dwc3/core.c                        | 7 +++++++
 drivers/usb/dwc3/core.h                        | 3 +++
 drivers/usb/dwc3/platform_data.h               | 1 +
 4 files changed, 13 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 34d13a5..bd5bef0 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -42,6 +42,8 @@ Optional properties:
  - snps,dis_u2_freeclk_exists_quirk: when set, clear the u2_freeclk_exists
 			in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
 			a free-running PHY clock.
+ - snps,dis_del_phy_power_chg_quirk: when set core will change PHY power
+			from P0 to P1/P2/P3 without delay.
  - snps,phyif_utmi_quirk: when set core will set phyif UTMI+ interface.
  - snps,phyif_utmi: the value to configure the core to support a UTMI+ PHY
 			with an 8- or 16-bit interface. Value 0 select 8-bit
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index d99c170..c06870c 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -451,6 +451,9 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
 	if (dwc->dis_u3_susphy_quirk)
 		reg &= ~DWC3_GUSB3PIPECTL_SUSPHY;
 
+	if (dwc->dis_del_phy_power_chg_quirk)
+		reg &= ~DWC3_GUSB3PIPECTL_DEPOCHANGE;
+
 	dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg);
 
 	reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
@@ -920,6 +923,8 @@ static int dwc3_probe(struct platform_device *pdev)
 				"snps,dis_rxdet_inp3_quirk");
 	dwc->dis_u2_freeclk_exists_quirk = device_property_read_bool(dev,
 				"snps,dis_u2_freeclk_exists_quirk");
+	dwc->dis_del_phy_power_chg_quirk = device_property_read_bool(dev,
+				"snps,dis_del_phy_power_chg_quirk");
 
 	dwc->phyif_utmi_quirk = device_property_read_bool(dev,
 				"snps,phyif_utmi_quirk");
@@ -960,6 +965,8 @@ static int dwc3_probe(struct platform_device *pdev)
 		dwc->dis_rxdet_inp3_quirk = pdata->dis_rxdet_inp3_quirk;
 		dwc->dis_u2_freeclk_exists_quirk =
 					pdata->dis_u2_freeclk_exists_quirk;
+		dwc->dis_del_phy_power_chg_quirk =
+					pdata->dis_del_phy_power_chg_quirk;
 
 		dwc->phyif_utmi_quirk = pdata->phyif_utmi_quirk;
 		if (pdata->phyif_utmi)
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index e1fcae8..abed84f 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -780,6 +780,8 @@ struct dwc3_scratchpad_array {
  * @dis_u2_freeclk_exists_quirk : set if we clear u2_freeclk_exists
  *			in GUSB2PHYCFG, specify that USB2 PHY doesn't
  *			provide a free-running PHY clock.
+ * @dis_del_phy_power_chg_quirk: set if we disable delay phy power
+ *			change quirk.
  * @phyif_utmi_quirk: set if we enable phyif UTMI+ quirk
  * @phyif_utmi: UTMI+ PHY interface value
  *	0	- 8 bits
@@ -928,6 +930,7 @@ struct dwc3 {
 	unsigned		dis_enblslpm_quirk:1;
 	unsigned		dis_rxdet_inp3_quirk:1;
 	unsigned		dis_u2_freeclk_exists_quirk:1;
+	unsigned		dis_del_phy_power_chg_quirk:1;
 
 	unsigned		phyif_utmi_quirk:1;
 	unsigned		phyif_utmi:1;
diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
index b521565..ab45d91 100644
--- a/drivers/usb/dwc3/platform_data.h
+++ b/drivers/usb/dwc3/platform_data.h
@@ -44,6 +44,7 @@ struct dwc3_platform_data {
 	unsigned dis_enblslpm_quirk:1;
 	unsigned dis_rxdet_inp3_quirk:1;
 	unsigned dis_u2_freeclk_exists_quirk:1;
+	unsigned dis_del_phy_power_chg_quirk:1;
 
 	unsigned phyif_utmi_quirk:1;
 	unsigned phyif_utmi:1;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 4/5] usb: dwc3: add dis_del_phy_power_chg_quirk
@ 2016-05-13  9:25     ` William Wu
  0 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:25 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	balbi-DgEjT+Ai2ygdnm+yROfE0A, heiko-4mtYJXux2i+zQB+pC5nmwQ
  Cc: huangtao-TNX95d0MmH7DzftRWevZcw,
	frank.wang-TNX95d0MmH7DzftRWevZcw,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA,
	kever.yang-TNX95d0MmH7DzftRWevZcw,
	dianders-hpIqsD4AKlfQT0dZR+AlfA,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	eddie.cai-TNX95d0MmH7DzftRWevZcw, William Wu,
	briannorris-hpIqsD4AKlfQT0dZR+AlfA,
	John.Youn-HKixBCOQz3hWk0Htik3J/w

Add a quirk to clear the GUSB3PIPECTL.DELAYP1TRANS bit,
which specifies whether disable delay PHY power change
from P0 to P1/P2/P3 when link state changing from U0
to U1/U2/U3 respectively.

Signed-off-by: William Wu <william.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
---
Changes in v2:
- None

 Documentation/devicetree/bindings/usb/dwc3.txt | 2 ++
 drivers/usb/dwc3/core.c                        | 7 +++++++
 drivers/usb/dwc3/core.h                        | 3 +++
 drivers/usb/dwc3/platform_data.h               | 1 +
 4 files changed, 13 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 34d13a5..bd5bef0 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -42,6 +42,8 @@ Optional properties:
  - snps,dis_u2_freeclk_exists_quirk: when set, clear the u2_freeclk_exists
 			in GUSB2PHYCFG, specify that USB2 PHY doesn't provide
 			a free-running PHY clock.
+ - snps,dis_del_phy_power_chg_quirk: when set core will change PHY power
+			from P0 to P1/P2/P3 without delay.
  - snps,phyif_utmi_quirk: when set core will set phyif UTMI+ interface.
  - snps,phyif_utmi: the value to configure the core to support a UTMI+ PHY
 			with an 8- or 16-bit interface. Value 0 select 8-bit
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index d99c170..c06870c 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -451,6 +451,9 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
 	if (dwc->dis_u3_susphy_quirk)
 		reg &= ~DWC3_GUSB3PIPECTL_SUSPHY;
 
+	if (dwc->dis_del_phy_power_chg_quirk)
+		reg &= ~DWC3_GUSB3PIPECTL_DEPOCHANGE;
+
 	dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg);
 
 	reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
@@ -920,6 +923,8 @@ static int dwc3_probe(struct platform_device *pdev)
 				"snps,dis_rxdet_inp3_quirk");
 	dwc->dis_u2_freeclk_exists_quirk = device_property_read_bool(dev,
 				"snps,dis_u2_freeclk_exists_quirk");
+	dwc->dis_del_phy_power_chg_quirk = device_property_read_bool(dev,
+				"snps,dis_del_phy_power_chg_quirk");
 
 	dwc->phyif_utmi_quirk = device_property_read_bool(dev,
 				"snps,phyif_utmi_quirk");
@@ -960,6 +965,8 @@ static int dwc3_probe(struct platform_device *pdev)
 		dwc->dis_rxdet_inp3_quirk = pdata->dis_rxdet_inp3_quirk;
 		dwc->dis_u2_freeclk_exists_quirk =
 					pdata->dis_u2_freeclk_exists_quirk;
+		dwc->dis_del_phy_power_chg_quirk =
+					pdata->dis_del_phy_power_chg_quirk;
 
 		dwc->phyif_utmi_quirk = pdata->phyif_utmi_quirk;
 		if (pdata->phyif_utmi)
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index e1fcae8..abed84f 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -780,6 +780,8 @@ struct dwc3_scratchpad_array {
  * @dis_u2_freeclk_exists_quirk : set if we clear u2_freeclk_exists
  *			in GUSB2PHYCFG, specify that USB2 PHY doesn't
  *			provide a free-running PHY clock.
+ * @dis_del_phy_power_chg_quirk: set if we disable delay phy power
+ *			change quirk.
  * @phyif_utmi_quirk: set if we enable phyif UTMI+ quirk
  * @phyif_utmi: UTMI+ PHY interface value
  *	0	- 8 bits
@@ -928,6 +930,7 @@ struct dwc3 {
 	unsigned		dis_enblslpm_quirk:1;
 	unsigned		dis_rxdet_inp3_quirk:1;
 	unsigned		dis_u2_freeclk_exists_quirk:1;
+	unsigned		dis_del_phy_power_chg_quirk:1;
 
 	unsigned		phyif_utmi_quirk:1;
 	unsigned		phyif_utmi:1;
diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h
index b521565..ab45d91 100644
--- a/drivers/usb/dwc3/platform_data.h
+++ b/drivers/usb/dwc3/platform_data.h
@@ -44,6 +44,7 @@ struct dwc3_platform_data {
 	unsigned dis_enblslpm_quirk:1;
 	unsigned dis_rxdet_inp3_quirk:1;
 	unsigned dis_u2_freeclk_exists_quirk:1;
+	unsigned dis_del_phy_power_chg_quirk:1;
 
 	unsigned phyif_utmi_quirk:1;
 	unsigned phyif_utmi:1;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 0/5] support rockchip dwc3 driver
  2016-05-13  9:24 ` [PATCH v2 0/5] support rockchip dwc3 driver William Wu
                     ` (3 preceding siblings ...)
  2016-05-13  9:25     ` William Wu
@ 2016-05-13  9:30   ` Heiko Stuebner
  2016-05-13  9:37     ` Felipe Balbi
  5 siblings, 0 replies; 28+ messages in thread
From: Heiko Stuebner @ 2016-05-13  9:30 UTC (permalink / raw)
  To: William Wu
  Cc: gregkh, balbi, linux-rockchip, briannorris, dianders, kever.yang,
	huangtao, frank.wang, eddie.cai, John.Youn, linux-kernel,
	linux-usb

Hi William,

Am Freitag, 13. Mai 2016, 17:24:56 schrieb William Wu:
> This series add support for rockchip dwc3 driver,
> and add additional optional properties for specific
> platforms (e.g., rockchip platform).

when submitting new versions of patchsets please also start a new thread.
It is hard to find such new versions in a big threaded mail view later on.

No need to resend this v2, just to keep in mind for later patches.


Heiko

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 0/5] support rockchip dwc3 driver
@ 2016-05-13  9:37     ` Felipe Balbi
  0 siblings, 0 replies; 28+ messages in thread
From: Felipe Balbi @ 2016-05-13  9:37 UTC (permalink / raw)
  To: William Wu, gregkh, heiko
  Cc: linux-rockchip, briannorris, dianders, kever.yang, huangtao,
	frank.wang, eddie.cai, John.Youn, linux-kernel, linux-usb,
	William Wu

[-- Attachment #1: Type: text/plain, Size: 1084 bytes --]


Hi,

William Wu <william.wu@rock-chips.com> writes:
> This series add support for rockchip dwc3 driver,
> and add additional optional properties for specific
> platforms (e.g., rockchip platform).
>
> William Wu (5):
>   usb: dwc3: of-simple: add compatible for rockchip
>   usb: dwc3: add dis_u2_freeclk_exists_quirk
>   usb: dwc3: add phyif_utmi_quirk
>   usb: dwc3: add dis_del_phy_power_chg_quirk
>   usb: dwc3: rockchip: add devicetree bindings documentation
>
>  Documentation/devicetree/bindings/usb/dwc3.txt     |  9 +++++
>  .../devicetree/bindings/usb/rockchip,dwc3.txt      | 45 ++++++++++++++++++++++
>  drivers/usb/dwc3/core.c                            | 39 ++++++++++++++++++-
>  drivers/usb/dwc3/core.h                            | 20 ++++++++++
>  drivers/usb/dwc3/dwc3-of-simple.c                  |  1 +
>  drivers/usb/dwc3/platform_data.h                   |  4 ++
>  6 files changed, 117 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/usb/rockchip,dwc3.txt

I didn't get patch 5/5 :-s

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 0/5] support rockchip dwc3 driver
@ 2016-05-13  9:37     ` Felipe Balbi
  0 siblings, 0 replies; 28+ messages in thread
From: Felipe Balbi @ 2016-05-13  9:37 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, heiko-4mtYJXux2i+zQB+pC5nmwQ
  Cc: linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	briannorris-hpIqsD4AKlfQT0dZR+AlfA,
	dianders-hpIqsD4AKlfQT0dZR+AlfA,
	kever.yang-TNX95d0MmH7DzftRWevZcw,
	huangtao-TNX95d0MmH7DzftRWevZcw,
	frank.wang-TNX95d0MmH7DzftRWevZcw,
	eddie.cai-TNX95d0MmH7DzftRWevZcw,
	John.Youn-HKixBCOQz3hWk0Htik3J/w,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, William Wu

[-- Attachment #1: Type: text/plain, Size: 1109 bytes --]


Hi,

William Wu <william.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org> writes:
> This series add support for rockchip dwc3 driver,
> and add additional optional properties for specific
> platforms (e.g., rockchip platform).
>
> William Wu (5):
>   usb: dwc3: of-simple: add compatible for rockchip
>   usb: dwc3: add dis_u2_freeclk_exists_quirk
>   usb: dwc3: add phyif_utmi_quirk
>   usb: dwc3: add dis_del_phy_power_chg_quirk
>   usb: dwc3: rockchip: add devicetree bindings documentation
>
>  Documentation/devicetree/bindings/usb/dwc3.txt     |  9 +++++
>  .../devicetree/bindings/usb/rockchip,dwc3.txt      | 45 ++++++++++++++++++++++
>  drivers/usb/dwc3/core.c                            | 39 ++++++++++++++++++-
>  drivers/usb/dwc3/core.h                            | 20 ++++++++++
>  drivers/usb/dwc3/dwc3-of-simple.c                  |  1 +
>  drivers/usb/dwc3/platform_data.h                   |  4 ++
>  6 files changed, 117 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/usb/rockchip,dwc3.txt

I didn't get patch 5/5 :-s

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 0/5] support rockchip dwc3 driver
@ 2016-05-13  9:48       ` William Wu
  0 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:48 UTC (permalink / raw)
  To: Felipe Balbi, gregkh, heiko
  Cc: linux-rockchip, briannorris, dianders, kever.yang, huangtao,
	frank.wang, eddie.cai, John.Youn, linux-kernel, linux-usb

Dear Felipe,
On 05/13/2016 05:37 PM, Felipe Balbi wrote:
> Hi,
>
> William Wu <william.wu@rock-chips.com> writes:
>> This series add support for rockchip dwc3 driver,
>> and add additional optional properties for specific
>> platforms (e.g., rockchip platform).
>>
>> William Wu (5):
>>    usb: dwc3: of-simple: add compatible for rockchip
>>    usb: dwc3: add dis_u2_freeclk_exists_quirk
>>    usb: dwc3: add phyif_utmi_quirk
>>    usb: dwc3: add dis_del_phy_power_chg_quirk
>>    usb: dwc3: rockchip: add devicetree bindings documentation
>>
>>   Documentation/devicetree/bindings/usb/dwc3.txt     |  9 +++++
>>   .../devicetree/bindings/usb/rockchip,dwc3.txt      | 45 ++++++++++++++++++++++
>>   drivers/usb/dwc3/core.c                            | 39 ++++++++++++++++++-
>>   drivers/usb/dwc3/core.h                            | 20 ++++++++++
>>   drivers/usb/dwc3/dwc3-of-simple.c                  |  1 +
>>   drivers/usb/dwc3/platform_data.h                   |  4 ++
>>   6 files changed, 117 insertions(+), 1 deletion(-)
>>   create mode 100644 Documentation/devicetree/bindings/usb/rockchip,dwc3.txt
> I didn't get patch 5/5 :-s
Sorry, maybe there are something wrong with our mailbox server.
I'll resend patch 5/5 later.
>

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 0/5] support rockchip dwc3 driver
@ 2016-05-13  9:48       ` William Wu
  0 siblings, 0 replies; 28+ messages in thread
From: William Wu @ 2016-05-13  9:48 UTC (permalink / raw)
  To: Felipe Balbi, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	heiko-4mtYJXux2i+zQB+pC5nmwQ
  Cc: linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	briannorris-hpIqsD4AKlfQT0dZR+AlfA,
	dianders-hpIqsD4AKlfQT0dZR+AlfA,
	kever.yang-TNX95d0MmH7DzftRWevZcw,
	huangtao-TNX95d0MmH7DzftRWevZcw,
	frank.wang-TNX95d0MmH7DzftRWevZcw,
	eddie.cai-TNX95d0MmH7DzftRWevZcw,
	John.Youn-HKixBCOQz3hWk0Htik3J/w,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA

Dear Felipe,
On 05/13/2016 05:37 PM, Felipe Balbi wrote:
> Hi,
>
> William Wu <william.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org> writes:
>> This series add support for rockchip dwc3 driver,
>> and add additional optional properties for specific
>> platforms (e.g., rockchip platform).
>>
>> William Wu (5):
>>    usb: dwc3: of-simple: add compatible for rockchip
>>    usb: dwc3: add dis_u2_freeclk_exists_quirk
>>    usb: dwc3: add phyif_utmi_quirk
>>    usb: dwc3: add dis_del_phy_power_chg_quirk
>>    usb: dwc3: rockchip: add devicetree bindings documentation
>>
>>   Documentation/devicetree/bindings/usb/dwc3.txt     |  9 +++++
>>   .../devicetree/bindings/usb/rockchip,dwc3.txt      | 45 ++++++++++++++++++++++
>>   drivers/usb/dwc3/core.c                            | 39 ++++++++++++++++++-
>>   drivers/usb/dwc3/core.h                            | 20 ++++++++++
>>   drivers/usb/dwc3/dwc3-of-simple.c                  |  1 +
>>   drivers/usb/dwc3/platform_data.h                   |  4 ++
>>   6 files changed, 117 insertions(+), 1 deletion(-)
>>   create mode 100644 Documentation/devicetree/bindings/usb/rockchip,dwc3.txt
> I didn't get patch 5/5 :-s
Sorry, maybe there are something wrong with our mailbox server.
I'll resend patch 5/5 later.
>


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2016-05-13  9:49 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-09 11:46 [PATCH 0/4] support rockchip dwc3 driver William Wu
2016-05-09 11:46 ` [PATCH 1/4] usb: dwc3: of-simple: add compatible for rockchip William Wu
2016-05-09 15:16   ` Doug Anderson
2016-05-10  7:14     ` Felipe Balbi
2016-05-10  7:39       ` William Wu
2016-05-10  8:11         ` Felipe Balbi
2016-05-10  8:27           ` William Wu
2016-05-09 19:24   ` Brian Norris
2016-05-10  7:15     ` Felipe Balbi
2016-05-10  8:14       ` William Wu
2016-05-09 11:46 ` [PATCH 2/4] usb: dwc3: add dis_u2_freeclk_exists_quirk William Wu
2016-05-09 11:46 ` [PATCH 3/4] usb: dwc3: make usb2 phy interface configurable in DT William Wu
2016-05-09 12:18   ` Felipe Balbi
2016-05-09 13:28     ` William Wu
2016-05-09 13:32       ` Felipe Balbi
2016-05-09 11:46 ` [PATCH 4/4] usb: dwc3: add dis_del_phy_power_chg_quirk William Wu
2016-05-13  9:24 ` [PATCH v2 0/5] support rockchip dwc3 driver William Wu
2016-05-13  9:24   ` [PATCH v2 1/5] usb: dwc3: of-simple: add compatible for rockchip William Wu
2016-05-13  9:24   ` [PATCH v2 2/5] usb: dwc3: add dis_u2_freeclk_exists_quirk William Wu
2016-05-13  9:24     ` William Wu
2016-05-13  9:24   ` [PATCH v2 3/5] usb: dwc3: add phyif_utmi_quirk William Wu
2016-05-13  9:25   ` [PATCH v2 4/5] usb: dwc3: add dis_del_phy_power_chg_quirk William Wu
2016-05-13  9:25     ` William Wu
2016-05-13  9:30   ` [PATCH v2 0/5] support rockchip dwc3 driver Heiko Stuebner
2016-05-13  9:37   ` Felipe Balbi
2016-05-13  9:37     ` Felipe Balbi
2016-05-13  9:48     ` William Wu
2016-05-13  9:48       ` William Wu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.