Re: [RFC PATCH v2 3/3] dt-bindings: usb: snps,dwc3: add generic-xhci as child

From: Krzysztof Kozlowski
Date: Thu Dec 29 2022 - 05:25:15 EST


On 29/12/2022 10:57, Daehwan Jung wrote:
> Currently, dwc3 invokes just xhci platform driver(generic-xhci) without
> DT schema even though xhci works as child of dwc3. It makes sense to add
> xhci as child of dwc3 with DT schema. It also supports to use another
> compatible in xhci platform driver.

You use some driver as an argument for hardware description, which is
not what we need. Describe the hardware.

>
> Signed-off-by: Daehwan Jung <dh10.jung@xxxxxxxxxxx>
> ---
> .../devicetree/bindings/usb/snps,dwc3.yaml | 29 +++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> index 6d78048c4613..83ed7c526dba 100644
> --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> @@ -360,8 +360,22 @@ properties:
> description:
> Enable USB remote wakeup.
>
> + "#address-cells":
> + enum: [ 1, 2 ]
> +
> + "#size-cells":
> + enum: [ 1, 2 ]
> +
> + ranges: true
> +
> unevaluatedProperties: false
>
> +# Required child node:
> +patternProperties:
> + "^usb@[0-9a-f]+$":
> + $ref: generic-xhci.yaml#
> + description: Required child node

DWC does not have another piece of controller as child... DWC is the
controller. Not mentioning that you now affect several other devices
without describing the total hardware picture (just some drivers which
is not that relevant).

> +
> required:
> - compatible
> - reg
> @@ -388,4 +402,19 @@ examples:
> snps,dis_u2_susphy_quirk;
> snps,dis_enblslpm_quirk;
> };
> + - |
> + usb@4a200000 {
> + compatible = "snps,dwc3";
> + reg = <0x4a200000 0xcfff>;
> + interrupts = <0 92 4>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + xhci: usb@4a200000 {
> + compatible = "generic-xhci";

There are no such device...

> + reg = <0x4a200000 0x7fff>;
> + interrupts = <0 92 4>;
> + };
> + };
> ...

Best regards,
Krzysztof