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

From: Harsh Agarwal
Date: Wed Jun 08 2022 - 13:38:02 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 | 53 ++++++++++++++++++++++
1 file changed, 53 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
index d41265b..9332fa2 100644
--- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
@@ -343,6 +343,32 @@ 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.
+
+ 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 +397,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