[PATCH v2 1/3] dt-bindings: usb: dwc3: Add support for multiport related properties

From: Harsh Agarwal
Date: Fri Jun 03 2022 - 13:13:09 EST


Added support for multiport, mport, num_usb2_phy and num_usb3_phy
properties. These properties are used to support devices having
a multiport controller.

Signed-off-by: Harsh Agarwal <quic_harshq@xxxxxxxxxxx>
---
.../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 d41265b..fdf3655 100644
--- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
@@ -343,6 +343,34 @@ 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_usb2_phy:
+ description: Total number of HS-PHYs defined by the multiport controller.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ num_usb3_phy:
+ description: Total number of SS-PHYs defined by the multiport controller.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ mport:
+ description: Each mport node represents one port of the multiport controller.
+ oneOf:
+ - required:
+ - usb-phy
+ - required:
+ - phys
+ - phy-names
+
unevaluatedProperties: false

required:
@@ -371,4 +399,31 @@ examples:
snps,dis_u2_susphy_quirk;
snps,dis_enblslpm_quirk;
};
+ - |
+ usb@4a000000 {
+ compatible = "snps,dwc3";
+ reg = <0x4a000000 0xcfff>;
+ interrupts = <0 92 4>;
+
+ multiport {
+
+ MP_1: mport1 {
+ usb-phy = <&usb2_phy0>, <&usb3_phy0>;
+ /* Can define Generic PHYs also */
+ };
+
+ MP_2: mport2 {
+ usb-phy = <&usb2_phy1>, <&usb3_phy1>;
+ };
+
+ MP_3: mport3 {
+ usb-phy = <&usb2_phy2>;
+ };
+
+ MP_4: mport4 {
+ usb-phy = <&usb2_phy3>;
+ };
+
+ };
+ };
...
--
2.7.4