[PATCH] dt-bindings: usb: dwc3: Add snps,enable_guctl1_ipd_quirk

Radhey Shyam Pandey posted 1 patch 1 year, 11 months ago
Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 7 +++++++
1 file changed, 7 insertions(+)
[PATCH] dt-bindings: usb: dwc3: Add snps,enable_guctl1_ipd_quirk
Posted by Radhey Shyam Pandey 1 year, 11 months ago
From: Piyush Mehta <piyush.mehta@amd.com>

SNPS controller when configured in HOST mode maintains Inter Packet
Delay (IPD) of ~380ns which works with most of the super-speed hubs
except VIA-LAB hubs. When IPD is ~380ns HOST controller fails to
enumerate FS/LS devices when connected behind VIA-LAB hubs.

To address the above issue, add 'snps,enable_guctl1_ipd_quirk' quirk,
This quirk set the bit 9 of GUCTL1 that enables the workaround in HW to
reduce the ULPI clock latency by 1 cycle, thus reducing the IPD (~360ns).

Signed-off-by: Piyush Mehta <piyush.mehta@amd.com>
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
---
In the zynqmp public database GUCTL1 bit 9 is reserved but it is used to
enable a fix related to Inter Packet Delay in HW. The documentation team
is working to update GUCTL1 bit 9 description.
---
 Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
index 8f5d250070c7..b226457a6e50 100644
--- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
@@ -280,6 +280,13 @@ properties:
       xhci reset. And the vbus will back to 5V automatically when reset done.
     type: boolean
 
+  snps,enable_guctl1_ipd_quirk:
+    description:
+      When set, HW reduce the ULPI clock latency by 1 cycle, thus reducing
+      the IPD (~360ns) and making controller enumerate FS/LS devices
+      connected behind via-hubs.
+    type: boolean
+
   snps,is-utmi-l1-suspend:
     description:
       True when DWC3 asserts output signal utmi_l1_suspend_n, false when
-- 
2.34.1
Re: [PATCH] dt-bindings: usb: dwc3: Add snps,enable_guctl1_ipd_quirk
Posted by Conor Dooley 1 year, 11 months ago
On Fri, Feb 16, 2024 at 12:31:05AM +0530, Radhey Shyam Pandey wrote:
> From: Piyush Mehta <piyush.mehta@amd.com>
> 
> SNPS controller when configured in HOST mode maintains Inter Packet
> Delay (IPD) of ~380ns which works with most of the super-speed hubs
> except VIA-LAB hubs. When IPD is ~380ns HOST controller fails to
> enumerate FS/LS devices when connected behind VIA-LAB hubs.
> 
> To address the above issue, add 'snps,enable_guctl1_ipd_quirk' quirk,
> This quirk set the bit 9 of GUCTL1 that enables the workaround in HW to
> reduce the ULPI clock latency by 1 cycle, thus reducing the IPD (~360ns).
> 
> Signed-off-by: Piyush Mehta <piyush.mehta@amd.com>
> Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
> ---
> In the zynqmp public database GUCTL1 bit 9 is reserved but it is used to
> enable a fix related to Inter Packet Delay in HW. The documentation team
> is working to update GUCTL1 bit 9 description.

Does this just affect the zynqmp?
If it does, then you don't need a property - do this based on
compatible. 
If it does affect other devices, what prevents the workaround being
performed for all dwc3 controllers?

Cheers,
Conor.

> ---
>  Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> index 8f5d250070c7..b226457a6e50 100644
> --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> @@ -280,6 +280,13 @@ properties:
>        xhci reset. And the vbus will back to 5V automatically when reset done.
>      type: boolean
>  
> +  snps,enable_guctl1_ipd_quirk:

No underscores in properties please.

> +    description:
> +      When set, HW reduce the ULPI clock latency by 1 cycle, thus reducing
> +      the IPD (~360ns) and making controller enumerate FS/LS devices
> +      connected behind via-hubs.
> +    type: boolean
> +
>    snps,is-utmi-l1-suspend:
>      description:
>        True when DWC3 asserts output signal utmi_l1_suspend_n, false when
> -- 
> 2.34.1
>