[PATCH v1 1/2] dt-bindings: usb: rockchip,dwc3: Add RK3588 binding

Krzysztof Kozlowski krzysztof.kozlowski at linaro.org
Wed Jul 19 23:25:39 PDT 2023


On 19/07/2023 19:40, Sebastian Reichel wrote:
> RK3588 contains three DWC3 cores. Two of them are connected to
> dedicated USBDP PHY and can be used in dual-role. The third is
> connected to one of the shared combo PHYs used for PCIe/SATA/USB3
> and can only be used in host mode. Since the binding is all about
> the PHY glueing and involved clocks, separate compatible values
> have been created for these two types.

The cores are the same. To which phy they are connected to, does not
justify difference in compatibles. It's still the same devoce.

> 
> Signed-off-by: Sebastian Reichel <sebastian.reichel at collabora.com>
> ---
>  .../bindings/usb/rockchip,rk3399-dwc3.yaml    | 107 ++++++++++++++----
>  1 file changed, 85 insertions(+), 22 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/usb/rockchip,rk3399-dwc3.yaml b/Documentation/devicetree/bindings/usb/rockchip,rk3399-dwc3.yaml
> index 3159f9a6a0f7..0db4dc86e506 100644
> --- a/Documentation/devicetree/bindings/usb/rockchip,rk3399-dwc3.yaml
> +++ b/Documentation/devicetree/bindings/usb/rockchip,rk3399-dwc3.yaml
> @@ -11,7 +11,13 @@ maintainers:
>  
>  properties:
>    compatible:
> -    const: rockchip,rk3399-dwc3
> +    oneOf:
> +      - items:
> +          - enum:
> +              - rockchip,rk3588-dwc3-otg
> +              - rockchip,rk3588-dwc3-host
> +          - const: rockchip,rk3399-dwc3
> +      - const: rockchip,rk3399-dwc3
>  
>    '#address-cells':
>      const: 2
> @@ -22,35 +28,37 @@ properties:
>    ranges: true
>  
>    clocks:
> -    items:
> -      - description:
> -          Controller reference clock, must to be 24 MHz
> -      - description:
> -          Controller suspend clock, must to be 24 MHz or 32 KHz
> -      - description:
> -          Master/Core clock, must to be >= 62.5 MHz for SS
> -          operation and >= 30MHz for HS operation
> -      - description:
> -          USB3 aclk peri
> -      - description:
> -          USB3 aclk
> -      - description:
> -          Controller grf clock
> +    minItems: 3
> +    maxItems: 6
>  
>    clock-names:
>      items:
> -      - const: ref_clk
> -      - const: suspend_clk
> -      - const: bus_clk
> -      - const: aclk_usb3_rksoc_axi_perf
> -      - const: aclk_usb3
> -      - const: grf_clk
> +      oneOf:
> +        - enum:
> +            - ref
> +            - ref_clk

This is not oneOf. You cannot have here one clock. There is also no
point in making all these changes here,.

> +        - enum:
> +            - suspend
> +            - suspend_clk
> +        - enum:
> +            - bus
> +            - bus_clk
> +        - const: aclk_usb3_rksoc_axi_perf
> +        - const: aclk_usb3
> +        - const: grf_clk
> +        - const: utmi
> +        - const: php
> +        - const: pipe
> +    minItems: 3
> +    maxItems: 6
>  
>    resets:
>      maxItems: 1
>  
>    reset-names:
> -    const: usb3-otg
> +    enum:
> +      - usb3-host
> +      - usb3-otg

I don't see a point in changing this.

>  
>  patternProperties:
>    '^usb@':
> @@ -68,6 +76,61 @@ required:
>    - resets
>    - reset-names
>  
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          const: rockchip,rk3399-dwc3
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 6
> +        clock-names:
> +          items:
> +            - const: ref_clk
> +            - const: suspend_clk
> +            - const: bus_clk
> +            - const: aclk_usb3_rksoc_axi_perf
> +            - const: aclk_usb3
> +            - const: grf_clk
> +        reset-names:
> +          const: usb3-otg
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3588-dwc3-otg
> +    then:
> +      properties:
> +        clocks:
> +          maxItems: 3
> +        clock-names:
> +          items:
> +            - const: ref
> +            - const: suspend
> +            - const: bus

Use the same clock names.

> +        reset-names:
> +          const: usb3-otg
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3588-dwc3-host
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 6
> +        clock-names:
> +          items:
> +            - const: ref
> +            - const: suspend
> +            - const: bus
> +            - const: utmi
> +            - const: php
> +            - const: pipe

Same clock names

> +        reset-names:
> +          const: usb3-host

Same reset name.


Best regards,
Krzysztof




More information about the linux-arm-kernel mailing list