Re: [RFC 1/2] dt-bindings: usb: dwc3: Add support for multiport related properties

Pavan Kondeti
2022-05-21T03:28:53Z

Hi Harsh,

On Thu, May 19, 2022 at 06:04:54PM +0530, Harsh Agarwal wrote:
> Added support for multiport, mport, num-ssphy and num-hsphy
> properties. These properties are used to support devices having
> a multiport controller.
>
> Signed-off-by: Harsh Agarwal <quic_harshq@quicinc.com>
> ---
> .../devicetree/bindings/usb/snps,dwc3.yaml | 55 ++++++++++++++++++++++
> 1 file changed, 55 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> index f4471f8..39c61483 100644
> --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
> @@ -341,6 +341,35 @@ properties:
> This port is used with the 'usb-role-switch' property to connect the
> dwc3 to type C connector.
>
> + multiport:
> + description:
> + If a single USB controller supports multiple ports, then it's referred to as
> + a multiport controller. Each port of the multiport controller can support
> + either High Speed or Super Speed or both and have their own PHY phandles. Each
> + port is represented by "mport" node and all the "mport" nodes are grouped
> + together inside the "multiport" node where individual "mport" node defines the
> + PHYs supported by that port.
> + required:
> + - mport
> +
> + num-hsphy:
> + description: Total number of HS-PHYs defined by the multiport controller.
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> + num-ssphy:
> + description: Total number of SS-PHYs defined by the multiport controller.
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
Do we need this properties at all? Atleast your next patch in this series is
not parsing those properties. The idea I believe is to maintain the same
usb-phy / phys semantics as of today. i.e we expect first PHY to be USB2 PHY
and 2nd PHY to be USB3 PHY. Obviously, we need to make sure that all ports
defined under multiport node are passing PHYs without any holes. For example,
if the controller has 3 ports and passing phys for 1st and 3rd port is not
acceptible. In any case we need to know the number of HS and SS PHYs so that
the GUSB2PHYCFG/GUSB3PIPECTL are configured correctly, irrespective of how we
handle phy(s) in this node.

Can you please clarify on the need for num-hsphy and num-ssphy and what
happens for USB2 only ports?

> + mport:
> + description: Each mport node represents one port of the multiport controller.
> + patternProperties: "^mport@[0-9a-f]+$"
> + oneOf:
> + - required:
> + - usb-phy
> + - required:
> + - phys
> + - phy-names
> +

Thanks,
Pavan