Re: [RFC v4 1/5] dt-bindings: usb: Add bindings to support multiport properties

From: Rob Herring
Date: Mon Jan 16 2023 - 11:46:38 EST


On Sun, Jan 15, 2023 at 05:11:42PM +0530, Krishna Kurapati wrote:
> Add bindings to indicate properties required to support multiport
> on Snps Dwc3 controller.
>
> Signed-off-by: Krishna Kurapati <quic_kriskura@xxxxxxxxxxx>
> ---
> .../devicetree/bindings/usb/snps,dwc3.yaml | 53 ++++++++++++++++---
> 1 file changed, 47 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> index 6d78048c4613..3ea051beb2f8 100644
> --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> @@ -81,15 +81,26 @@ properties:
>
> phys:
> minItems: 1
> - maxItems: 2
> + maxItems: 8
>
> phy-names:
> minItems: 1
> - maxItems: 2
> - items:
> - enum:
> - - usb2-phy
> - - usb3-phy
> + maxItems: 8
> + oneOf:
> + - items:
> + enum:
> + - usb2-phy
> + - usb3-phy
> + - items:
> + enum:
> + - usb2-phy_port0
> + - usb2-phy_port1
> + - usb2-phy_port2
> + - usb2-phy_port3
> + - usb3-phy_port0
> + - usb3-phy_port1
> + - usb3-phy_port2
> + - usb3-phy_port3

usbN-portM

>
> resets:
> minItems: 1
> @@ -360,6 +371,22 @@ properties:
> description:
> Enable USB remote wakeup.
>
> + num-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + This property indicates the number of ports present on the target that
> + are to be serviced by the DWC3 controller.
> + minimum: 1
> + maximum: 4
> +
> + num-ss-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + This property indicates the number of SS capable ports present on the
> + target that are to be serviced by the DWC3 controller.
> + minimum: 1
> + maximum: 4

This information is redundant. 'phy-names' tells you how many ports of
each.

> +
> unevaluatedProperties: false
>
> required:
> @@ -388,4 +415,18 @@ examples:
> snps,dis_u2_susphy_quirk;
> snps,dis_enblslpm_quirk;
> };
> + - |
> + usb@4a000000 {
> + compatible = "snps,dwc3";
> + reg = <0x4a000000 0xcfff>;
> + interrupts = <0 92 4>;
> + clocks = <&clk 1>, <&clk 2>, <&clk 3>;
> + clock-names = "bus_early", "ref", "suspend";
> + num-ports = <2>;
> + num-ss-ports = <1>;
> + phys = <&usb2_phy0>, <&usb3_phy0>, <&usb2_phy1>;
> + phy-names = "usb2-phy_port0", "usb3-phy_port0", "usb2-phy_port1";
> + snps,dis_u2_susphy_quirk;
> + snps,dis_enblslpm_quirk;
> + };

Does a different number of phys really need its own example?

Rob