Re: [PATCH 2/2] dt-bindings: usb: cdns,usb3: Add support for USBSSP

From: Krzysztof Kozlowski

Date: Mon Mar 02 2026 - 02:28:16 EST


On Mon, Mar 02, 2026 at 11:03:34AM +0800, Peter Chen wrote:
> Extend the Cadence USBSS DRD binding to also cover the USBSSP
> controller by adding "cdns,usbssp" to the compatible enum.
>
> The USBSSP is the next-generation Cadence USB controller IP. It adds
> SuperSpeed Plus (USB 3.1 gen2x1, 10 Gbps) support and uses an
> XHCI-based device controller. The register layout and resource model
> (otg/xhci/dev memory regions; host/peripheral/otg interrupts) are
> identical to the USBSS, so both controllers share the same binding
> and the same platform driver (cdns3-plat.c).
>
> Changes to the binding:
> - compatible: const -> enum with cdns,usb3 and cdns,usbssp
> - maximum-speed: add super-speed-plus
> - Add USBSSP example
>
> This patch was developed with assistance from Anthropic Claude Opus 4.6.

Use proper tag, but expect pushback of microslop crap.

>
> Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxx>
> ---
> .../devicetree/bindings/usb/cdns,usb3.yaml | 36 +++++++++++++++++--
> 1 file changed, 33 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/usb/cdns,usb3.yaml b/Documentation/devicetree/bindings/usb/cdns,usb3.yaml
> index f454ddd9bbaa..f79333e7fc1f 100644
> --- a/Documentation/devicetree/bindings/usb/cdns,usb3.yaml
> +++ b/Documentation/devicetree/bindings/usb/cdns,usb3.yaml
> @@ -4,14 +4,22 @@
> $id: http://devicetree.org/schemas/usb/cdns,usb3.yaml#
> $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> -title: Cadence USBSS-DRD controller
> +title: Cadence USBSS/USBSSP DRD controller
>
> maintainers:
> - Pawel Laszczak <pawell@xxxxxxxxxxx>
>
> +description:
> + Cadence USB dual-role controllers. USBSS (cdns,usb3) supports up to
> + SuperSpeed (USB 3.0). USBSSP (cdns,usbssp) is the next generation with
> + SuperSpeed Plus (USB 3.1 gen2x1) and XHCI-based device controller. Both
> + share the same register layout and resource model.

So are compatible or not?

> +
> properties:
> compatible:
> - const: cdns,usb3
> + enum:
> + - cdns,usb3
> + - cdns,usbssp

Why do we need another generic compatible?

And why do you add it now to each of device schemas using this one?


>
> reg:
> items:
> @@ -49,7 +57,7 @@ properties:
> cdns3 to type C connector.
>
> maximum-speed:
> - enum: [super-speed, high-speed, full-speed]
> + enum: [super-speed-plus, super-speed, high-speed, full-speed]
>
> phys:
> minItems: 1
> @@ -90,6 +98,7 @@ unevaluatedProperties: false
>
> examples:
> - |
> + // USBSS example (SuperSpeed)
> #include <dt-bindings/interrupt-controller/arm-gic.h>
> bus {
> #address-cells = <2>;
> @@ -109,3 +118,24 @@ examples:
> dr_mode = "otg";
> };
> };
> + - |
> + // USBSSP example (SuperSpeed Plus)
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + bus {

No, drop entire example. It's the same as other.

Best regards,
Krzysztof