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

Harsh Agarwal
2022-05-19T12:35:28Z

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
+
+ 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
+
unevaluatedProperties: false

required:
@@ -369,4 +398,30 @@ 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: mport@1 {
+ usb-phy = <&usb2_phy0>, <&usb3_phy0>;
+ };
+
+ MP_2: mport@2 {
+ usb-phy = <&usb2_phy1>, <&usb3_phy1>;
+ };
+
+ MP_3: mport@3 {
+ usb-phy = <&usb2_phy2>, <&usb_nop_phy>;
+ };
+
+ MP_4: mport@4 {
+ usb-phy = <&usb2_phy3>, <&usb_nop_phy>;
+ };
+
+ };
+ };
...
--
2.7.4