[PATCH 2/2] dt-bindings: usb: snps,dwc3: Fix downstream port numbering
Neil Armstrong
neil.armstrong at linaro.org
Wed Oct 14 01:28:11 PDT 2026
On 10/14/26 10:20, Chen-Yu Tsai wrote:
> The DWC3 controller can operate in host mode. It does so with a XHCI
> compliant host controller. The XHCI has two downstream ports, one for
> HS and one for SS. USB downstream ports start from 1, not 0.
Is there something in index 0 we will need to define at some point ?
Using 0 as base for numbering in DT isn't incompatible with the USB
spec using base 1 for numbering,
>
> Reconcile the downstream port numbering with the common USB host
> binding, renumbering the downstream port numbers from 0 and 1 to
> 1 and 2.
>
> This is non-backwards compatible, however it won't break current
> major implementations:
>
> - dwc3 "gadget mode" in Linux kernel only requires a connection to be
> present; it doesn't matter which port it is
> - dwc3 "host mode" OF graph connections aren't supported yet [1]
> - FreeBSD doesn't use the OF graph for anything
> - U-boot doesn't use the OF graph for USB
> - OpenBSD doesn't support dwc3, only the XHCI in dwc3, and doesn't use
> the OF graph for USB
> - coreboot doesn't use the OF graph for anything
> - Zephyr doesn't support dwc3
> - TF-A doesn't use the OF graph for anything
> - EDK2 doesn't support dwc3 and doesn't support OF graph
> - OP-TEE doesn't support dwc3 and doesn't support OF graph
>
> [1] WIP to tie OF graph port node to USB port device
>
> Fixes: a33113f73693 ("dt-bindings: usb: snps,dwc3: document HS & SS OF graph ports")
> Signed-off-by: Chen-Yu Tsai <wenst at chromium.org>
> ---
> It is unclear to me whether the HS/SS numbering is fixed for all dwc3
> variants. I checked Allwinner H616 and Rockchip RK3588 and they both
> have HS as port 1 and SS as port 2.
>
> This also doesn't cover a potential "multi-port" DWC3 implementation,
> which Qualcomm seems to have.
It breaks the current Qualcomm numbering on numerous boards.
> ---
> Documentation/devicetree/bindings/usb/snps,dwc3-common.yaml | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3-common.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3-common.yaml
> index 6c0b8b653824..4b6304bd2ec1 100644
> --- a/Documentation/devicetree/bindings/usb/snps,dwc3-common.yaml
> +++ b/Documentation/devicetree/bindings/usb/snps,dwc3-common.yaml
> @@ -410,11 +410,11 @@ properties:
> property is used.
>
> properties:
> - port at 0:
> + port at 1:
> $ref: /schemas/graph.yaml#/properties/port
> description: High Speed (HS) data bus.
>
> - port at 1:
> + port at 2:
> $ref: /schemas/graph.yaml#/properties/port
> description: Super Speed (SS) data bus.
>
More information about the linux-riscv
mailing list