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

From: Krzysztof Kozlowski
Date: Thu Jul 20 2023 - 02:25:54 EST


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@xxxxxxxxxxxxx>
> ---
> .../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