devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] Remodel HD3SS3220 device nodes
@ 2020-08-24 14:10 Biju Das
  2020-08-24 14:10 ` [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Biju Das @ 2020-08-24 14:10 UTC (permalink / raw)
  To: Rob Herring, Heikki Krogerus, Greg Kroah-Hartman
  Cc: Biju Das, Yoshihiro Shimoda, linux-usb, devicetree,
	Geert Uytterhoeven, Chris Paterson, Biju Das,
	Prabhakar Mahadev Lad, linux-renesas-soc

Some platforms have only super speed data bus connected to HD3SS3220 device
and high speed data bus directly connected to the SoC. In such platforms
modelling connector as a child of this device is making it non compliant
with usb connector bindings. By modelling connector node as standalone
device node along with HD3SS3220 device and the SoC data bus will make it
compliant with usb connector bindings.

It is based on the below discussion threads

1) https://patchwork.kernel.org/patch/11669423/
2) https://patchwork.kernel.org/patch/11129567/

v2->v3
  * Added Heikkei's reviewed by tag
  * Incorporated Shimoda-san's review comments for binding patch.
    (https://patchwork.kernel.org/patch/11708831/)


Biju Das (4):
  dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus
  usb: typec: hd3ss3220: Use OF graph API to get the connector fwnode
  arm64: dts: renesas: cat874: Move connector node out of hd3ss3220
    device
  arm64: dts: renesas: beacon-renesom-baseboard: Move connector node out
    of hd3ss3220 device

Lad Prabhakar (1):
  dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema

 .../bindings/usb/renesas,usb3-peri.yaml       | 34 ++++++--
 .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
 .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81 +++++++++++++++++++
 .../dts/renesas/beacon-renesom-baseboard.dtsi | 67 +++++++++++----
 .../boot/dts/renesas/r8a774c0-cat874.dts      | 67 +++++++++++----
 drivers/usb/typec/hd3ss3220.c                 | 18 ++++-
 6 files changed, 224 insertions(+), 81 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
 create mode 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml

-- 
2.17.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-08-24 14:10 [PATCH v3 0/5] Remodel HD3SS3220 device nodes Biju Das
@ 2020-08-24 14:10 ` Biju Das
  2020-09-08 22:36   ` Rob Herring
  2020-09-17 17:31   ` Wesley Cheng
  2020-08-24 14:10 ` [PATCH v3 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 15+ messages in thread
From: Biju Das @ 2020-08-24 14:10 UTC (permalink / raw)
  To: Rob Herring, Greg Kroah-Hartman
  Cc: Lad Prabhakar, Yoshihiro Shimoda, Heikki Krogerus, linux-usb,
	devicetree, Geert Uytterhoeven, Chris Paterson, Biju Das,
	linux-renesas-soc, Biju Das

From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Convert ti,hd3ss3220.txt to YAML. Updated the binding documentation
as graph bindings of this device model Super Speed (SS) data bus to
the Super Speed (SS) capable connector.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3: Replaced Tabs with spaces in the example section.
v1->v2 : No change
Ref: https://patchwork.kernel.org/patch/11669423/
---
 .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
 .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81 +++++++++++++++++++
 2 files changed, 81 insertions(+), 38 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
 create mode 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml

diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
deleted file mode 100644
index 2bd21b22ce95..000000000000
--- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-TI HD3SS3220 TypeC DRP Port Controller.
-
-Required properties:
- - compatible: Must be "ti,hd3ss3220".
- - reg: I2C slave address, must be 0x47 or 0x67 based on ADDR pin.
- - interrupts: An interrupt specifier.
-
-Required sub-node:
- - connector: The "usb-c-connector" attached to the hd3ss3220 chip. The
-   bindings of the connector node are specified in:
-
-	Documentation/devicetree/bindings/connector/usb-connector.yaml
-
-Example:
-hd3ss3220@47 {
-	compatible = "ti,hd3ss3220";
-	reg = <0x47>;
-	interrupt-parent = <&gpio6>;
-	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
-
-	connector {
-		compatible = "usb-c-connector";
-		label = "USB-C";
-		data-role = "dual";
-
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			port@1 {
-				reg = <1>;
-				hd3ss3220_ep: endpoint {
-					remote-endpoint = <&usb3_role_switch>;
-				};
-			};
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
new file mode 100644
index 000000000000..750a099529c0
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI HD3SS3220 TypeC DRP Port Controller
+
+maintainers:
+  - Biju Das <biju.das.jz@bp.renesas.com>
+
+description: |-
+  HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port controller. The device provides Channel
+  Configuration (CC) logic and 5V VCONN sourcing for ecosystems implementing USB Type-C. The
+  HD3SS3220 can be configured as a Downstream Facing Port (DFP), Upstream Facing Port (UFP) or a
+  Dual Role Port (DRP) making it ideal for any application.
+
+properties:
+  compatible:
+   const: ti,hd3ss3220
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  ports:
+    description: OF graph bindings (specified in bindings/graph.txt) that model
+      SS data bus to the SS capable connector.
+    type: object
+    properties:
+      port@0:
+        type: object
+        description: Super Speed (SS) capable connector.
+
+      port@1:
+        type: object
+        description: Super Speed (SS) data bus.
+
+    required:
+      - port@0
+      - port@1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hd3ss3220@47 {
+                compatible = "ti,hd3ss3220";
+                reg = <0x47>;
+                interrupt-parent = <&gpio6>;
+                interrupts = <3>;
+
+                ports {
+                        #address-cells = <1>;
+                        #size-cells = <0>;
+                        port@0 {
+                                reg = <0>;
+                                hd3ss3220_in_ep: endpoint {
+                                        remote-endpoint = <&ss_ep>;
+                                };
+                        };
+                        port@1 {
+                                reg = <1>;
+                                hd3ss3220_out_ep: endpoint {
+                                        remote-endpoint = <&usb3_role_switch>;
+                                };
+                        };
+                };
+        };
+    };
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus
  2020-08-24 14:10 [PATCH v3 0/5] Remodel HD3SS3220 device nodes Biju Das
  2020-08-24 14:10 ` [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
@ 2020-08-24 14:10 ` Biju Das
  2020-08-25  0:16   ` Yoshihiro Shimoda
  2020-09-08 22:38   ` Rob Herring
  2020-08-24 14:10 ` [PATCH v3 4/5] arm64: dts: renesas: cat874: Move connector node out of hd3ss3220 device Biju Das
  2020-08-24 14:10 ` [PATCH v3 5/5] arm64: dts: renesas: beacon-renesom-baseboard: " Biju Das
  3 siblings, 2 replies; 15+ messages in thread
From: Biju Das @ 2020-08-24 14:10 UTC (permalink / raw)
  To: Rob Herring, Greg Kroah-Hartman, Yoshihiro Shimoda
  Cc: Biju Das, Heikki Krogerus, linux-usb, devicetree,
	Geert Uytterhoeven, Chris Paterson, Biju Das,
	Prabhakar Mahadev Lad, linux-renesas-soc

Document HS and SS data bus for the "usb-role-switch" enabled case.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
v2->v3: Replaced Tabs with spaces
        Ref:https://patchwork.kernel.org/patch/11708831/
v1->v2: No change
        Ref:https://patchwork.kernel.org/patch/11669423/
---
 .../bindings/usb/renesas,usb3-peri.yaml       | 34 ++++++++++++++++---
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
index e3cdeab1199f..86df8cdd9993 100644
--- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
+++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
@@ -52,11 +52,24 @@ properties:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: phandle of a companion.
 
-  port:
+  ports:
     description: |
       any connector to the data bus of this controller should be modelled
       using the OF graph bindings specified, if the "usb-role-switch"
       property is used.
+    type: object
+    properties:
+      port@0:
+        type: object
+        description: High Speed (HS) data bus.
+
+      port@1:
+        type: object
+        description: Super Speed (SS) data bus.
+
+    required:
+      - port@0
+      - port@1
 
 required:
   - compatible
@@ -79,9 +92,20 @@ examples:
         companion = <&xhci0>;
         usb-role-switch;
 
-        port {
-            usb3_role_switch: endpoint {
-                remote-endpoint = <&hd3ss3220_ep>;
-            };
+        ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                port@0 {
+                        reg = <0>;
+                        usb3_hs_ep: endpoint {
+                                remote-endpoint = <&hs_ep>;
+                        };
+                };
+                port@1 {
+                        reg = <1>;
+                        usb3_role_switch: endpoint {
+                                remote-endpoint = <&hd3ss3220_out_ep>;
+                        };
+                };
         };
     };
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 4/5] arm64: dts: renesas: cat874: Move connector node out of hd3ss3220 device
  2020-08-24 14:10 [PATCH v3 0/5] Remodel HD3SS3220 device nodes Biju Das
  2020-08-24 14:10 ` [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
  2020-08-24 14:10 ` [PATCH v3 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
@ 2020-08-24 14:10 ` Biju Das
  2020-08-24 14:10 ` [PATCH v3 5/5] arm64: dts: renesas: beacon-renesom-baseboard: " Biju Das
  3 siblings, 0 replies; 15+ messages in thread
From: Biju Das @ 2020-08-24 14:10 UTC (permalink / raw)
  To: Rob Herring
  Cc: Biju Das, Geert Uytterhoeven, Yoshihiro Shimoda, Magnus Damm,
	linux-renesas-soc, devicetree, Chris Paterson, Biju Das,
	Prabhakar Mahadev Lad

Move connector node out of hd3ss3220 device in order to comply with usb
connector bindings.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
v2->v3: No change
v1->v2: No change
---
 .../boot/dts/renesas/r8a774c0-cat874.dts      | 67 ++++++++++++++-----
 1 file changed, 50 insertions(+), 17 deletions(-)

diff --git a/arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts b/arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts
index 26aee004a44e..ea87cb5a459c 100644
--- a/arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts
+++ b/arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts
@@ -129,6 +129,29 @@
 		#clock-cells = <0>;
 		clock-frequency = <74250000>;
 	};
+
+	connector {
+		compatible = "usb-c-connector";
+		label = "USB-C";
+		data-role = "dual";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			port@0 {
+				reg = <0>;
+				hs_ep: endpoint {
+					remote-endpoint = <&usb3_hs_ep>;
+				};
+			};
+			port@1 {
+				reg = <1>;
+				ss_ep: endpoint {
+					remote-endpoint = <&hd3ss3220_in_ep>;
+				};
+			};
+		};
+	};
 };
 
 &audio_clk_a {
@@ -186,20 +209,19 @@
 		interrupt-parent = <&gpio6>;
 		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
 
-		connector {
-			compatible = "usb-c-connector";
-			label = "USB-C";
-			data-role = "dual";
-
-			ports {
-				#address-cells = <1>;
-				#size-cells = <0>;
-
-				port@1 {
-					reg = <1>;
-					hd3ss3220_ep: endpoint {
-						remote-endpoint = <&usb3_role_switch>;
-					};
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			port@0 {
+				reg = <0>;
+				hd3ss3220_in_ep: endpoint {
+					remote-endpoint = <&ss_ep>;
+				};
+			};
+			port@1 {
+				reg = <1>;
+				hd3ss3220_out_ep: endpoint {
+					remote-endpoint = <&usb3_role_switch>;
 				};
 			};
 		};
@@ -405,9 +427,20 @@
 	status = "okay";
 	usb-role-switch;
 
-	port {
-		usb3_role_switch: endpoint {
-			remote-endpoint = <&hd3ss3220_ep>;
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		port@0 {
+			reg = <0>;
+			usb3_hs_ep: endpoint {
+				remote-endpoint = <&hs_ep>;
+			};
+		};
+		port@1 {
+			reg = <1>;
+			usb3_role_switch: endpoint {
+				remote-endpoint = <&hd3ss3220_out_ep>;
+			};
 		};
 	};
 };
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 5/5] arm64: dts: renesas: beacon-renesom-baseboard: Move connector node out of hd3ss3220 device
  2020-08-24 14:10 [PATCH v3 0/5] Remodel HD3SS3220 device nodes Biju Das
                   ` (2 preceding siblings ...)
  2020-08-24 14:10 ` [PATCH v3 4/5] arm64: dts: renesas: cat874: Move connector node out of hd3ss3220 device Biju Das
@ 2020-08-24 14:10 ` Biju Das
  3 siblings, 0 replies; 15+ messages in thread
From: Biju Das @ 2020-08-24 14:10 UTC (permalink / raw)
  To: Rob Herring
  Cc: Biju Das, Geert Uytterhoeven, Yoshihiro Shimoda, Magnus Damm,
	linux-renesas-soc, devicetree, Chris Paterson, Biju Das,
	Prabhakar Mahadev Lad

Move connector node out of hd3ss3220 device in order to comply with usb
connector bindings.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
v3->v3: No change
v1->v2: No change
---
 .../dts/renesas/beacon-renesom-baseboard.dtsi | 67 ++++++++++++++-----
 1 file changed, 50 insertions(+), 17 deletions(-)

diff --git a/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi b/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi
index 66c9153b3101..e66b5b36e489 100644
--- a/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi
+++ b/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi
@@ -223,6 +223,29 @@
 		#clock-cells = <0>;
 		clock-frequency = <25000000>;
 	};
+
+	connector {
+		compatible = "usb-c-connector";
+		label = "USB-C";
+		data-role = "dual";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			port@0 {
+				reg = <0>;
+				hs_ep: endpoint {
+					remote-endpoint = <&usb3_hs_ep>;
+				};
+			};
+			port@1 {
+				reg = <1>;
+				ss_ep: endpoint {
+					remote-endpoint = <&hd3ss3220_in_ep>;
+				};
+			};
+		};
+	};
 };
 
 &audio_clk_a {
@@ -427,20 +450,19 @@
 		interrupt-parent = <&gpio6>;
 		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
 
-		connector {
-			compatible = "usb-c-connector";
-			label = "USB-C";
-			data-role = "dual";
-
-			ports {
-				#address-cells = <1>;
-				#size-cells = <0>;
-
-				port@1 {
-					reg = <1>;
-					hd3ss3220_ep: endpoint {
-						remote-endpoint = <&usb3_role_switch>;
-					};
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			port@0 {
+				reg = <0>;
+				hd3ss3220_in_ep: endpoint {
+					remote-endpoint = <&ss_ep>;
+				};
+			};
+			port@1 {
+				reg = <1>;
+				hd3ss3220_out_ep: endpoint {
+					remote-endpoint = <&usb3_role_switch>;
 				};
 			};
 		};
@@ -714,9 +736,20 @@
 	status = "okay";
 	usb-role-switch;
 
-	port {
-		usb3_role_switch: endpoint {
-			remote-endpoint = <&hd3ss3220_ep>;
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		port@0 {
+			reg = <0>;
+			usb3_hs_ep: endpoint {
+				remote-endpoint = <&hs_ep>;
+			};
+		};
+		port@1 {
+			reg = <1>;
+			usb3_role_switch: endpoint {
+				remote-endpoint = <&hd3ss3220_out_ep>;
+			};
 		};
 	};
 };
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* RE: [PATCH v3 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus
  2020-08-24 14:10 ` [PATCH v3 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
@ 2020-08-25  0:16   ` Yoshihiro Shimoda
  2020-09-08 22:38   ` Rob Herring
  1 sibling, 0 replies; 15+ messages in thread
From: Yoshihiro Shimoda @ 2020-08-25  0:16 UTC (permalink / raw)
  To: Biju Das, Rob Herring, Greg Kroah-Hartman
  Cc: Biju Das, Heikki Krogerus, linux-usb, devicetree,
	Geert Uytterhoeven, Chris Paterson, Biju Das,
	Prabhakar Mahadev Lad, linux-renesas-soc

Hi Biju-san,

> From: Biju Das, Sent: Monday, August 24, 2020 11:11 PM
> 
> Document HS and SS data bus for the "usb-role-switch" enabled case.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Thank you for the patch!

Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

Best regards,
Yoshihiro Shimoda


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-08-24 14:10 ` [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
@ 2020-09-08 22:36   ` Rob Herring
  2020-09-09  8:21     ` Biju Das
  2020-09-17 17:31   ` Wesley Cheng
  1 sibling, 1 reply; 15+ messages in thread
From: Rob Herring @ 2020-09-08 22:36 UTC (permalink / raw)
  To: Biju Das
  Cc: Greg Kroah-Hartman, Lad Prabhakar, Yoshihiro Shimoda,
	Heikki Krogerus, linux-usb, devicetree, Geert Uytterhoeven,
	Chris Paterson, Biju Das, linux-renesas-soc

On Mon, Aug 24, 2020 at 03:10:49PM +0100, Biju Das wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> Convert ti,hd3ss3220.txt to YAML. Updated the binding documentation
> as graph bindings of this device model Super Speed (SS) data bus to
> the Super Speed (SS) capable connector.
> 
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v2->v3: Replaced Tabs with spaces in the example section.
> v1->v2 : No change
> Ref: https://patchwork.kernel.org/patch/11669423/
> ---
>  .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
>  .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81 +++++++++++++++++++
>  2 files changed, 81 insertions(+), 38 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
>  create mode 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> 
> diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> deleted file mode 100644
> index 2bd21b22ce95..000000000000
> --- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -TI HD3SS3220 TypeC DRP Port Controller.
> -
> -Required properties:
> - - compatible: Must be "ti,hd3ss3220".
> - - reg: I2C slave address, must be 0x47 or 0x67 based on ADDR pin.
> - - interrupts: An interrupt specifier.
> -
> -Required sub-node:
> - - connector: The "usb-c-connector" attached to the hd3ss3220 chip. The
> -   bindings of the connector node are specified in:
> -
> -	Documentation/devicetree/bindings/connector/usb-connector.yaml
> -
> -Example:
> -hd3ss3220@47 {
> -	compatible = "ti,hd3ss3220";
> -	reg = <0x47>;
> -	interrupt-parent = <&gpio6>;
> -	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> -
> -	connector {
> -		compatible = "usb-c-connector";
> -		label = "USB-C";
> -		data-role = "dual";
> -
> -		ports {
> -			#address-cells = <1>;
> -			#size-cells = <0>;
> -
> -			port@1 {
> -				reg = <1>;
> -				hd3ss3220_ep: endpoint {
> -					remote-endpoint = <&usb3_role_switch>;
> -				};
> -			};
> -		};
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> new file mode 100644
> index 000000000000..750a099529c0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> @@ -0,0 +1,81 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TI HD3SS3220 TypeC DRP Port Controller
> +
> +maintainers:
> +  - Biju Das <biju.das.jz@bp.renesas.com>
> +
> +description: |-
> +  HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port controller. The device provides Channel
> +  Configuration (CC) logic and 5V VCONN sourcing for ecosystems implementing USB Type-C. The
> +  HD3SS3220 can be configured as a Downstream Facing Port (DFP), Upstream Facing Port (UFP) or a
> +  Dual Role Port (DRP) making it ideal for any application.
> +
> +properties:
> +  compatible:
> +   const: ti,hd3ss3220
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  ports:
> +    description: OF graph bindings (specified in bindings/graph.txt) that model
> +      SS data bus to the SS capable connector.
> +    type: object
> +    properties:
> +      port@0:
> +        type: object
> +        description: Super Speed (SS) capable connector.
> +
> +      port@1:
> +        type: object
> +        description: Super Speed (SS) data bus.
> +
> +    required:
> +      - port@0
> +      - port@1
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c0 {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        hd3ss3220@47 {
> +                compatible = "ti,hd3ss3220";
> +                reg = <0x47>;
> +                interrupt-parent = <&gpio6>;
> +                interrupts = <3>;
> +
> +                ports {
> +                        #address-cells = <1>;
> +                        #size-cells = <0>;
> +                        port@0 {
> +                                reg = <0>;
> +                                hd3ss3220_in_ep: endpoint {
> +                                        remote-endpoint = <&ss_ep>;
> +                                };
> +                        };
> +                        port@1 {
> +                                reg = <1>;
> +                                hd3ss3220_out_ep: endpoint {
> +                                        remote-endpoint = <&usb3_role_switch>;
> +                                };

If you have 2 inputs muxed, then there would be 2 endpoints here? Please 
show the fullest or most complicated case for the example. The port@1 
description could be a bit better.

Rob

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus
  2020-08-24 14:10 ` [PATCH v3 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
  2020-08-25  0:16   ` Yoshihiro Shimoda
@ 2020-09-08 22:38   ` Rob Herring
  1 sibling, 0 replies; 15+ messages in thread
From: Rob Herring @ 2020-09-08 22:38 UTC (permalink / raw)
  To: Biju Das
  Cc: Prabhakar Mahadev Lad, Geert Uytterhoeven, Rob Herring,
	Greg Kroah-Hartman, linux-renesas-soc, linux-usb, devicetree,
	Yoshihiro Shimoda, Chris Paterson, Heikki Krogerus, Biju Das

On Mon, 24 Aug 2020 15:10:50 +0100, Biju Das wrote:
> Document HS and SS data bus for the "usb-role-switch" enabled case.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> ---
> v2->v3: Replaced Tabs with spaces
>         Ref:https://patchwork.kernel.org/patch/11708831/
> v1->v2: No change
>         Ref:https://patchwork.kernel.org/patch/11669423/
> ---
>  .../bindings/usb/renesas,usb3-peri.yaml       | 34 ++++++++++++++++---
>  1 file changed, 29 insertions(+), 5 deletions(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-09-08 22:36   ` Rob Herring
@ 2020-09-09  8:21     ` Biju Das
  2020-09-09 17:03       ` Rob Herring
  0 siblings, 1 reply; 15+ messages in thread
From: Biju Das @ 2020-09-09  8:21 UTC (permalink / raw)
  To: Rob Herring
  Cc: Greg Kroah-Hartman, Prabhakar Mahadev Lad, Yoshihiro Shimoda,
	Heikki Krogerus, linux-usb, devicetree, Geert Uytterhoeven,
	Chris Paterson, Biju Das, linux-renesas-soc

Hi Rob,

Thanks for the feedback.

> Subject: Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to
> json-schema
>
> On Mon, Aug 24, 2020 at 03:10:49PM +0100, Biju Das wrote:
> > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> >
> > Convert ti,hd3ss3220.txt to YAML. Updated the binding documentation as
> > graph bindings of this device model Super Speed (SS) data bus to the
> > Super Speed (SS) capable connector.
> >
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-
> lad.rj@bp.renesas.com>
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > v2->v3: Replaced Tabs with spaces in the example section.
> > v1->v2 : No change
> > Ref: https://patchwork.kernel.org/patch/11669423/
> > ---
> >  .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
> > .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81
> +++++++++++++++++++
> >  2 files changed, 81 insertions(+), 38 deletions(-)  delete mode
> > 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> >  create mode 100644
> > Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > deleted file mode 100644
> > index 2bd21b22ce95..000000000000
> > --- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > +++ /dev/null
> > @@ -1,38 +0,0 @@
> > -TI HD3SS3220 TypeC DRP Port Controller.
> > -
> > -Required properties:
> > - - compatible: Must be "ti,hd3ss3220".
> > - - reg: I2C slave address, must be 0x47 or 0x67 based on ADDR pin.
> > - - interrupts: An interrupt specifier.
> > -
> > -Required sub-node:
> > - - connector: The "usb-c-connector" attached to the hd3ss3220 chip. The
> > -   bindings of the connector node are specified in:
> > -
> > -Documentation/devicetree/bindings/connector/usb-connector.yaml
> > -
> > -Example:
> > -hd3ss3220@47 {
> > -compatible = "ti,hd3ss3220";
> > -reg = <0x47>;
> > -interrupt-parent = <&gpio6>;
> > -interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> > -
> > -connector {
> > -compatible = "usb-c-connector";
> > -label = "USB-C";
> > -data-role = "dual";
> > -
> > -ports {
> > -#address-cells = <1>;
> > -#size-cells = <0>;
> > -
> > -port@1 {
> > -reg = <1>;
> > -hd3ss3220_ep: endpoint {
> > -remote-endpoint =
> <&usb3_role_switch>;
> > -};
> > -};
> > -};
> > -};
> > -};
> > diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > new file mode 100644
> > index 000000000000..750a099529c0
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > @@ -0,0 +1,81 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: TI HD3SS3220 TypeC DRP Port Controller
> > +
> > +maintainers:
> > +  - Biju Das <biju.das.jz@bp.renesas.com>
> > +
> > +description: |-
> > +  HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port
> > +controller. The device provides Channel
> > +  Configuration (CC) logic and 5V VCONN sourcing for ecosystems
> > +implementing USB Type-C. The
> > +  HD3SS3220 can be configured as a Downstream Facing Port (DFP),
> > +Upstream Facing Port (UFP) or a
> > +  Dual Role Port (DRP) making it ideal for any application.
> > +
> > +properties:
> > +  compatible:
> > +   const: ti,hd3ss3220
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  ports:
> > +    description: OF graph bindings (specified in bindings/graph.txt) that
> model
> > +      SS data bus to the SS capable connector.
> > +    type: object
> > +    properties:
> > +      port@0:
> > +        type: object
> > +        description: Super Speed (SS) capable connector.
> > +
> > +      port@1:
> > +        type: object
> > +        description: Super Speed (SS) data bus.
> > +
> > +    required:
> > +      - port@0
> > +      - port@1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    i2c0 {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        hd3ss3220@47 {
> > +                compatible = "ti,hd3ss3220";
> > +                reg = <0x47>;
> > +                interrupt-parent = <&gpio6>;
> > +                interrupts = <3>;
> > +
> > +                ports {
> > +                        #address-cells = <1>;
> > +                        #size-cells = <0>;
> > +                        port@0 {
> > +                                reg = <0>;
> > +                                hd3ss3220_in_ep: endpoint {
> > +                                        remote-endpoint = <&ss_ep>;
> > +                                };
> > +                        };
> > +                        port@1 {
> > +                                reg = <1>;
> > +                                hd3ss3220_out_ep: endpoint {
> > +                                        remote-endpoint = <&usb3_role_switch>;
> > +                                };
>
> If you have 2 inputs muxed, then there would be 2 endpoints here? Please
> show the fullest or most complicated case for the example. The port@1
> description could be a bit better.

As per [1] "HD3SS3220 has integrated USB 3.0/3.1 SS/SS+ MUX with 2 channel 2:1 switching required to handle cable flips".
The four Superspeed differential pairs (two Tx and two Rx pairs) pairs from the USB-C receptacle is connected to this device
and the output of the Mux is connected to the  SoC .

This is the complicated case so far. Do you want me to add full example like [2] with type-c connector?

I will update port@1 description as "Mux output connected to SoC Super Speed (SS) data bus."

[1] https://www.ti.com/lit/ds/symlink/hd3ss3220.pdf

[2] Full example with type-c connector

connector {
compatible = "usb-c-connector";
label = "USB-C";
data-role = "dual";

ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
hs_ep: endpoint {
remote-endpoint = <&usb3_hs_ep>;
};
};
port@1 {
reg = <1>;
ss_ep: endpoint {
remote-endpoint = <&hd3ss3220_in_ep>;
};
};
};
};

i2c0 {
status = "okay";
clock-frequency = <100000>;

hd3ss3220@47 {
compatible = "ti,hd3ss3220";
reg = <0x47>;
interrupt-parent = <&gpio6>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;

ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
hd3ss3220_in_ep: endpoint {
remote-endpoint = <&ss_ep>;
};
};
port@1 {
reg = <1>;
hd3ss3220_out_ep: endpoint {
remote-endpoint = <&usb3_role_switch>;
};
};
};
};
};

Thanks and Regards,
Biju


Renesas Electronics Europe GmbH, Geschaeftsfuehrer/President: Carsten Jauch, Sitz der Gesellschaft/Registered office: Duesseldorf, Arcadiastrasse 10, 40472 Duesseldorf, Germany, Handelsregister/Commercial Register: Duesseldorf, HRB 3708 USt-IDNr./Tax identification no.: DE 119353406 WEEE-Reg.-Nr./WEEE reg. no.: DE 14978647

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-09-09  8:21     ` Biju Das
@ 2020-09-09 17:03       ` Rob Herring
  2020-09-09 17:34         ` Biju Das
  0 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2020-09-09 17:03 UTC (permalink / raw)
  To: Biju Das
  Cc: Greg Kroah-Hartman, Prabhakar Mahadev Lad, Yoshihiro Shimoda,
	Heikki Krogerus, linux-usb, devicetree, Geert Uytterhoeven,
	Chris Paterson, Biju Das, linux-renesas-soc

On Wed, Sep 9, 2020 at 2:21 AM Biju Das <biju.das.jz@bp.renesas.com> wrote:
>
> Hi Rob,
>
> Thanks for the feedback.
>
> > Subject: Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to
> > json-schema
> >
> > On Mon, Aug 24, 2020 at 03:10:49PM +0100, Biju Das wrote:
> > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > >
> > > Convert ti,hd3ss3220.txt to YAML. Updated the binding documentation as
> > > graph bindings of this device model Super Speed (SS) data bus to the
> > > Super Speed (SS) capable connector.
> > >
> > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-
> > lad.rj@bp.renesas.com>
> > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > ---
> > > v2->v3: Replaced Tabs with spaces in the example section.
> > > v1->v2 : No change
> > > Ref: https://patchwork.kernel.org/patch/11669423/
> > > ---
> > >  .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
> > > .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81
> > +++++++++++++++++++
> > >  2 files changed, 81 insertions(+), 38 deletions(-)  delete mode
> > > 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > >  create mode 100644
> > > Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > deleted file mode 100644
> > > index 2bd21b22ce95..000000000000
> > > --- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > +++ /dev/null
> > > @@ -1,38 +0,0 @@
> > > -TI HD3SS3220 TypeC DRP Port Controller.
> > > -
> > > -Required properties:
> > > - - compatible: Must be "ti,hd3ss3220".
> > > - - reg: I2C slave address, must be 0x47 or 0x67 based on ADDR pin.
> > > - - interrupts: An interrupt specifier.
> > > -
> > > -Required sub-node:
> > > - - connector: The "usb-c-connector" attached to the hd3ss3220 chip. The
> > > -   bindings of the connector node are specified in:
> > > -
> > > -Documentation/devicetree/bindings/connector/usb-connector.yaml
> > > -
> > > -Example:
> > > -hd3ss3220@47 {
> > > -compatible = "ti,hd3ss3220";
> > > -reg = <0x47>;
> > > -interrupt-parent = <&gpio6>;
> > > -interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> > > -
> > > -connector {
> > > -compatible = "usb-c-connector";
> > > -label = "USB-C";
> > > -data-role = "dual";
> > > -
> > > -ports {
> > > -#address-cells = <1>;
> > > -#size-cells = <0>;
> > > -
> > > -port@1 {
> > > -reg = <1>;
> > > -hd3ss3220_ep: endpoint {
> > > -remote-endpoint =
> > <&usb3_role_switch>;
> > > -};
> > > -};
> > > -};
> > > -};
> > > -};
> > > diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > new file mode 100644
> > > index 000000000000..750a099529c0
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > @@ -0,0 +1,81 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: TI HD3SS3220 TypeC DRP Port Controller
> > > +
> > > +maintainers:
> > > +  - Biju Das <biju.das.jz@bp.renesas.com>
> > > +
> > > +description: |-
> > > +  HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port
> > > +controller. The device provides Channel
> > > +  Configuration (CC) logic and 5V VCONN sourcing for ecosystems
> > > +implementing USB Type-C. The
> > > +  HD3SS3220 can be configured as a Downstream Facing Port (DFP),
> > > +Upstream Facing Port (UFP) or a
> > > +  Dual Role Port (DRP) making it ideal for any application.
> > > +
> > > +properties:
> > > +  compatible:
> > > +   const: ti,hd3ss3220
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    maxItems: 1
> > > +
> > > +  ports:
> > > +    description: OF graph bindings (specified in bindings/graph.txt) that
> > model
> > > +      SS data bus to the SS capable connector.
> > > +    type: object
> > > +    properties:
> > > +      port@0:
> > > +        type: object
> > > +        description: Super Speed (SS) capable connector.
> > > +
> > > +      port@1:
> > > +        type: object
> > > +        description: Super Speed (SS) data bus.
> > > +
> > > +    required:
> > > +      - port@0
> > > +      - port@1
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - interrupts
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    i2c0 {
> > > +        #address-cells = <1>;
> > > +        #size-cells = <0>;
> > > +
> > > +        hd3ss3220@47 {
> > > +                compatible = "ti,hd3ss3220";
> > > +                reg = <0x47>;
> > > +                interrupt-parent = <&gpio6>;
> > > +                interrupts = <3>;
> > > +
> > > +                ports {
> > > +                        #address-cells = <1>;
> > > +                        #size-cells = <0>;
> > > +                        port@0 {
> > > +                                reg = <0>;
> > > +                                hd3ss3220_in_ep: endpoint {
> > > +                                        remote-endpoint = <&ss_ep>;
> > > +                                };
> > > +                        };
> > > +                        port@1 {
> > > +                                reg = <1>;
> > > +                                hd3ss3220_out_ep: endpoint {
> > > +                                        remote-endpoint = <&usb3_role_switch>;
> > > +                                };
> >
> > If you have 2 inputs muxed, then there would be 2 endpoints here? Please
> > show the fullest or most complicated case for the example. The port@1
> > description could be a bit better.
>
> As per [1] "HD3SS3220 has integrated USB 3.0/3.1 SS/SS+ MUX with 2 channel 2:1 switching required to handle cable flips".
> The four Superspeed differential pairs (two Tx and two Rx pairs) pairs from the USB-C receptacle is connected to this device
> and the output of the Mux is connected to the  SoC .

Ah, I was thinking this was muxing 2 functions (such as DP) rather
than cable flip handling. I guess the example doesn't need anything
else, but the description does. In the case of directly connected to
the SoC, how are cable flips handled? The SoC phy handles it?

There's some issues in the connector binding with how the SS signals
are handled that needs to be solved. This all needs to be addressed
looking at various possible h/w designs.

Rob

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-09-09 17:03       ` Rob Herring
@ 2020-09-09 17:34         ` Biju Das
  0 siblings, 0 replies; 15+ messages in thread
From: Biju Das @ 2020-09-09 17:34 UTC (permalink / raw)
  To: Rob Herring
  Cc: Greg Kroah-Hartman, Prabhakar Mahadev Lad, Yoshihiro Shimoda,
	Heikki Krogerus, linux-usb, devicetree, Geert Uytterhoeven,
	Chris Paterson, Biju Das, linux-renesas-soc

Hi Rob,

Thanks for the feedback.

> Subject: Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to
> json-schema
>
> On Wed, Sep 9, 2020 at 2:21 AM Biju Das <biju.das.jz@bp.renesas.com>
> wrote:
> >
> > Hi Rob,
> >
> > Thanks for the feedback.
> >
> > > Subject: Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220
> > > bindings to json-schema
> > >
> > > On Mon, Aug 24, 2020 at 03:10:49PM +0100, Biju Das wrote:
> > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > > >
> > > > Convert ti,hd3ss3220.txt to YAML. Updated the binding
> > > > documentation as graph bindings of this device model Super Speed
> > > > (SS) data bus to the Super Speed (SS) capable connector.
> > > >
> > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-
> > > lad.rj@bp.renesas.com>
> > > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > > ---
> > > > v2->v3: Replaced Tabs with spaces in the example section.
> > > > v1->v2 : No change
> > > > Ref: https://patchwork.kernel.org/patch/11669423/
> > > > ---
> > > >  .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
> > > > .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81
> > > +++++++++++++++++++
> > > >  2 files changed, 81 insertions(+), 38 deletions(-)  delete mode
> > > > 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > >  create mode 100644
> > > > Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > >
> > > > diff --git
> > > > a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > > deleted file mode 100644
> > > > index 2bd21b22ce95..000000000000
> > > > --- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > > +++ /dev/null
> > > > @@ -1,38 +0,0 @@
> > > > -TI HD3SS3220 TypeC DRP Port Controller.
> > > > -
> > > > -Required properties:
> > > > - - compatible: Must be "ti,hd3ss3220".
> > > > - - reg: I2C slave address, must be 0x47 or 0x67 based on ADDR pin.
> > > > - - interrupts: An interrupt specifier.
> > > > -
> > > > -Required sub-node:
> > > > - - connector: The "usb-c-connector" attached to the hd3ss3220 chip.
> The
> > > > -   bindings of the connector node are specified in:
> > > > -
> > > > -Documentation/devicetree/bindings/connector/usb-connector.yaml
> > > > -
> > > > -Example:
> > > > -hd3ss3220@47 {
> > > > -compatible = "ti,hd3ss3220";
> > > > -reg = <0x47>;
> > > > -interrupt-parent = <&gpio6>;
> > > > -interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> > > > -
> > > > -connector {
> > > > -compatible = "usb-c-connector";
> > > > -label = "USB-C";
> > > > -data-role = "dual";
> > > > -
> > > > -ports {
> > > > -#address-cells = <1>;
> > > > -#size-cells = <0>;
> > > > -
> > > > -port@1 {
> > > > -reg = <1>;
> > > > -hd3ss3220_ep: endpoint {
> > > > -remote-endpoint =
> > > <&usb3_role_switch>;
> > > > -};
> > > > -};
> > > > -};
> > > > -};
> > > > -};
> > > > diff --git
> > > > a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > > new file mode 100644
> > > > index 000000000000..750a099529c0
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > > @@ -0,0 +1,81 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: TI HD3SS3220 TypeC DRP Port Controller
> > > > +
> > > > +maintainers:
> > > > +  - Biju Das <biju.das.jz@bp.renesas.com>
> > > > +
> > > > +description: |-
> > > > +  HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port
> > > > +controller. The device provides Channel
> > > > +  Configuration (CC) logic and 5V VCONN sourcing for ecosystems
> > > > +implementing USB Type-C. The
> > > > +  HD3SS3220 can be configured as a Downstream Facing Port (DFP),
> > > > +Upstream Facing Port (UFP) or a
> > > > +  Dual Role Port (DRP) making it ideal for any application.
> > > > +
> > > > +properties:
> > > > +  compatible:
> > > > +   const: ti,hd3ss3220
> > > > +
> > > > +  reg:
> > > > +    maxItems: 1
> > > > +
> > > > +  interrupts:
> > > > +    maxItems: 1
> > > > +
> > > > +  ports:
> > > > +    description: OF graph bindings (specified in
> > > > + bindings/graph.txt) that
> > > model
> > > > +      SS data bus to the SS capable connector.
> > > > +    type: object
> > > > +    properties:
> > > > +      port@0:
> > > > +        type: object
> > > > +        description: Super Speed (SS) capable connector.
> > > > +
> > > > +      port@1:
> > > > +        type: object
> > > > +        description: Super Speed (SS) data bus.
> > > > +
> > > > +    required:
> > > > +      - port@0
> > > > +      - port@1
> > > > +
> > > > +required:
> > > > +  - compatible
> > > > +  - reg
> > > > +  - interrupts
> > > > +
> > > > +additionalProperties: false
> > > > +
> > > > +examples:
> > > > +  - |
> > > > +    i2c0 {
> > > > +        #address-cells = <1>;
> > > > +        #size-cells = <0>;
> > > > +
> > > > +        hd3ss3220@47 {
> > > > +                compatible = "ti,hd3ss3220";
> > > > +                reg = <0x47>;
> > > > +                interrupt-parent = <&gpio6>;
> > > > +                interrupts = <3>;
> > > > +
> > > > +                ports {
> > > > +                        #address-cells = <1>;
> > > > +                        #size-cells = <0>;
> > > > +                        port@0 {
> > > > +                                reg = <0>;
> > > > +                                hd3ss3220_in_ep: endpoint {
> > > > +                                        remote-endpoint = <&ss_ep>;
> > > > +                                };
> > > > +                        };
> > > > +                        port@1 {
> > > > +                                reg = <1>;
> > > > +                                hd3ss3220_out_ep: endpoint {
> > > > +                                        remote-endpoint = <&usb3_role_switch>;
> > > > +                                };
> > >
> > > If you have 2 inputs muxed, then there would be 2 endpoints here?
> > > Please show the fullest or most complicated case for the example.
> > > The port@1 description could be a bit better.
> >
> > As per [1] "HD3SS3220 has integrated USB 3.0/3.1 SS/SS+ MUX with 2
> channel 2:1 switching required to handle cable flips".
> > The four Superspeed differential pairs (two Tx and two Rx pairs) pairs
> > from the USB-C receptacle is connected to this device and the output of
> the Mux is connected to the  SoC .
>
> Ah, I was thinking this was muxing 2 functions (such as DP) rather than cable
> flip handling. I guess the example doesn't need anything else, but the
> description does. In the case of directly connected to the SoC, how are cable
> flips handled? The SoC phy handles it?

Cable direction detection and associated mux channel selection is done automatically by the Hardware.

In software, we get an interrupt, when we connect the cable. The status register have the information related to attached
state and cable direction. Based on the attached state,  this driver calls usb role switch framework api's to assign the role (Host or device).

>
> There's some issues in the connector binding with how the SS signals are
> handled that needs to be solved. This all needs to be addressed looking at
> various possible h/w designs.

Ok.

Thanks,
Biju


Renesas Electronics Europe GmbH, Geschaeftsfuehrer/President: Carsten Jauch, Sitz der Gesellschaft/Registered office: Duesseldorf, Arcadiastrasse 10, 40472 Duesseldorf, Germany, Handelsregister/Commercial Register: Duesseldorf, HRB 3708 USt-IDNr./Tax identification no.: DE 119353406 WEEE-Reg.-Nr./WEEE reg. no.: DE 14978647

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-08-24 14:10 ` [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
  2020-09-08 22:36   ` Rob Herring
@ 2020-09-17 17:31   ` Wesley Cheng
  2020-09-17 18:52     ` Biju Das
  1 sibling, 1 reply; 15+ messages in thread
From: Wesley Cheng @ 2020-09-17 17:31 UTC (permalink / raw)
  To: Biju Das, Rob Herring, Greg Kroah-Hartman
  Cc: Lad Prabhakar, Yoshihiro Shimoda, Heikki Krogerus, linux-usb,
	devicetree, Geert Uytterhoeven, Chris Paterson, Biju Das,
	linux-renesas-soc



On 8/24/2020 7:10 AM, Biju Das wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> Convert ti,hd3ss3220.txt to YAML. Updated the binding documentation
> as graph bindings of this device model Super Speed (SS) data bus to
> the Super Speed (SS) capable connector.
> 
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v2->v3: Replaced Tabs with spaces in the example section.
> v1->v2 : No change
> Ref: https://patchwork.kernel.org/patch/11669423/
> ---
>  .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
>  .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81 +++++++++++++++++++
>  2 files changed, 81 insertions(+), 38 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
>  create mode 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> 
> diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> deleted file mode 100644
> index 2bd21b22ce95..000000000000
> --- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -TI HD3SS3220 TypeC DRP Port Controller.
> -
> -Required properties:
> - - compatible: Must be "ti,hd3ss3220".
> - - reg: I2C slave address, must be 0x47 or 0x67 based on ADDR pin.
> - - interrupts: An interrupt specifier.
> -
> -Required sub-node:
> - - connector: The "usb-c-connector" attached to the hd3ss3220 chip. The
> -   bindings of the connector node are specified in:
> -
> -	Documentation/devicetree/bindings/connector/usb-connector.yaml
> -
> -Example:
> -hd3ss3220@47 {
> -	compatible = "ti,hd3ss3220";
> -	reg = <0x47>;
> -	interrupt-parent = <&gpio6>;
> -	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> -
> -	connector {
> -		compatible = "usb-c-connector";
> -		label = "USB-C";
> -		data-role = "dual";
> -
> -		ports {
> -			#address-cells = <1>;
> -			#size-cells = <0>;
> -
> -			port@1 {
> -				reg = <1>;
> -				hd3ss3220_ep: endpoint {
> -					remote-endpoint = <&usb3_role_switch>;
> -				};
> -			};
> -		};
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> new file mode 100644
> index 000000000000..750a099529c0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> @@ -0,0 +1,81 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TI HD3SS3220 TypeC DRP Port Controller
> +
> +maintainers:
> +  - Biju Das <biju.das.jz@bp.renesas.com>
> +
> +description: |-
> +  HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port controller. The device provides Channel
> +  Configuration (CC) logic and 5V VCONN sourcing for ecosystems implementing USB Type-C. The
> +  HD3SS3220 can be configured as a Downstream Facing Port (DFP), Upstream Facing Port (UFP) or a
> +  Dual Role Port (DRP) making it ideal for any application.
> +
> +properties:
> +  compatible:
> +   const: ti,hd3ss3220
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  ports:
> +    description: OF graph bindings (specified in bindings/graph.txt) that model
> +      SS data bus to the SS capable connector.
> +    type: object
> +    properties:
> +      port@0:
> +        type: object
> +        description: Super Speed (SS) capable connector.
> +
> +      port@1:
> +        type: object
> +        description: Super Speed (SS) data bus.
> +
> +    required:
> +      - port@0
> +      - port@1
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c0 {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        hd3ss3220@47 {
> +                compatible = "ti,hd3ss3220";
> +                reg = <0x47>;
> +                interrupt-parent = <&gpio6>;
> +                interrupts = <3>;
> +
> +                ports {
> +                        #address-cells = <1>;
> +                        #size-cells = <0>;
> +                        port@0 {
> +                                reg = <0>;
> +                                hd3ss3220_in_ep: endpoint {
> +                                        remote-endpoint = <&ss_ep>;
> +                                };

Hi Biju,

I'm involved in a separate thread[1] and I just wanted to get your
inputs on how you understood the port and endpoint assignments for the
USB type C connectors in different designs.

Since the hd3ss3220 does the type C lane detect and has an integrated
lane select mux, what is the ss_ep being used for?

Thanks
Wesley

[1]
https://lore.kernel.org/linux-usb/0101017458361303-16620b87-c433-4c00-a061-b1e688363539-000000@us-west-2.amazonses.com/
> +                        };
> +                        port@1 {
> +                                reg = <1>;
> +                                hd3ss3220_out_ep: endpoint {
> +                                        remote-endpoint = <&usb3_role_switch>;
> +                                };
> +                        };
> +                };
> +        };
> +    };
> 

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-09-17 17:31   ` Wesley Cheng
@ 2020-09-17 18:52     ` Biju Das
  2020-09-25  9:42       ` Biju Das
  0 siblings, 1 reply; 15+ messages in thread
From: Biju Das @ 2020-09-17 18:52 UTC (permalink / raw)
  To: Wesley Cheng, Rob Herring, Greg Kroah-Hartman
  Cc: Prabhakar Mahadev Lad, Yoshihiro Shimoda, Heikki Krogerus,
	linux-usb, devicetree, Geert Uytterhoeven, Chris Paterson,
	Biju Das, linux-renesas-soc

Hi Wesley Cheng,

Thanks for the feedback.

> Subject: Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to
> json-schema
>
>
>
> On 8/24/2020 7:10 AM, Biju Das wrote:
> > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> >
> > Convert ti,hd3ss3220.txt to YAML. Updated the binding documentation as
> > graph bindings of this device model Super Speed (SS) data bus to the
> > Super Speed (SS) capable connector.
> >
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-
> lad.rj@bp.renesas.com>
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > v2->v3: Replaced Tabs with spaces in the example section.
> > v1->v2 : No change
> > Ref: https://patchwork.kernel.org/patch/11669423/
> > ---
> >  .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
> > .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81
> +++++++++++++++++++
> >  2 files changed, 81 insertions(+), 38 deletions(-)  delete mode
> > 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> >  create mode 100644
> > Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > deleted file mode 100644
> > index 2bd21b22ce95..000000000000
> > --- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > +++ /dev/null
> > @@ -1,38 +0,0 @@
> > -TI HD3SS3220 TypeC DRP Port Controller.
> > -
> > -Required properties:
> > - - compatible: Must be "ti,hd3ss3220".
> > - - reg: I2C slave address, must be 0x47 or 0x67 based on ADDR pin.
> > - - interrupts: An interrupt specifier.
> > -
> > -Required sub-node:
> > - - connector: The "usb-c-connector" attached to the hd3ss3220 chip. The
> > -   bindings of the connector node are specified in:
> > -
> > -Documentation/devicetree/bindings/connector/usb-connector.yaml
> > -
> > -Example:
> > -hd3ss3220@47 {
> > -compatible = "ti,hd3ss3220";
> > -reg = <0x47>;
> > -interrupt-parent = <&gpio6>;
> > -interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> > -
> > -connector {
> > -compatible = "usb-c-connector";
> > -label = "USB-C";
> > -data-role = "dual";
> > -
> > -ports {
> > -#address-cells = <1>;
> > -#size-cells = <0>;
> > -
> > -port@1 {
> > -reg = <1>;
> > -hd3ss3220_ep: endpoint {
> > -remote-endpoint =
> <&usb3_role_switch>;
> > -};
> > -};
> > -};
> > -};
> > -};
> > diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > new file mode 100644
> > index 000000000000..750a099529c0
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > @@ -0,0 +1,81 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: TI HD3SS3220 TypeC DRP Port Controller
> > +
> > +maintainers:
> > +  - Biju Das <biju.das.jz@bp.renesas.com>
> > +
> > +description: |-
> > +  HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port
> > +controller. The device provides Channel
> > +  Configuration (CC) logic and 5V VCONN sourcing for ecosystems
> > +implementing USB Type-C. The
> > +  HD3SS3220 can be configured as a Downstream Facing Port (DFP),
> > +Upstream Facing Port (UFP) or a
> > +  Dual Role Port (DRP) making it ideal for any application.
> > +
> > +properties:
> > +  compatible:
> > +   const: ti,hd3ss3220
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  ports:
> > +    description: OF graph bindings (specified in bindings/graph.txt) that
> model
> > +      SS data bus to the SS capable connector.
> > +    type: object
> > +    properties:
> > +      port@0:
> > +        type: object
> > +        description: Super Speed (SS) capable connector.
> > +
> > +      port@1:
> > +        type: object
> > +        description: Super Speed (SS) data bus.
> > +
> > +    required:
> > +      - port@0
> > +      - port@1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    i2c0 {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        hd3ss3220@47 {
> > +                compatible = "ti,hd3ss3220";
> > +                reg = <0x47>;
> > +                interrupt-parent = <&gpio6>;
> > +                interrupts = <3>;
> > +
> > +                ports {
> > +                        #address-cells = <1>;
> > +                        #size-cells = <0>;
> > +                        port@0 {
> > +                                reg = <0>;
> > +                                hd3ss3220_in_ep: endpoint {
> > +                                        remote-endpoint = <&ss_ep>;
> > +                                };
>
> Hi Biju,
>
> I'm involved in a separate thread[1] and I just wanted to get your inputs on
> how you understood the port and endpoint assignments for the USB type C
> connectors in different designs.
>
> Since the hd3ss3220 does the type C lane detect and has an integrated lane
> select mux, what is the ss_ep being used for?

In our case, Type C Connector --> HS lines directly connected to SoC, where as the SS lines connected  to HD3SS3220 Mux and output of mux is Connected to SoC.

This mux driver detects state change on the CC lines, reading the orientation/role and communicating this information to SoC for assigning roles using USB role switch framework.

Case 1:-  Model connector node as the child node of the mux.

The bindings for this case [1] is not complaint to typec connector bindings, since it is missing port@0 node.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt?h=next-20200917

typec Connector bindings requires port@0 should be HS and port@1 should be SS as per the discussion [2],  so I need to remodel connector node as separate one.
[2] https://patchwork.kernel.org/patch/11669423/

Case 2:-  Model connector node as a separate one based on the hardware design

Type c connector port@0  --> SoC  (hs ep)
Type c connector  port@1 --> connected to USB3.0 Mux -->  SoC( for usb3 role switch)

Here the input of the Mux is connected to TypeC connector and Output of the mux is connected to the SoC, which is inline with hardware design.
The full example of this model here [3]
[3] https://patchwork.kernel.org/patch/11733263/

In both our designs, looks like, type c connector connected to SS MUX and output of SS Mux is Connected to SoC for role switch. Am I missing some thing?
So may be we need to update the connector bindings for this use case. What do you think?

Cheers,
Biju





Renesas Electronics Europe GmbH, Geschaeftsfuehrer/President: Carsten Jauch, Sitz der Gesellschaft/Registered office: Duesseldorf, Arcadiastrasse 10, 40472 Duesseldorf, Germany, Handelsregister/Commercial Register: Duesseldorf, HRB 3708 USt-IDNr./Tax identification no.: DE 119353406 WEEE-Reg.-Nr./WEEE reg. no.: DE 14978647

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-09-17 18:52     ` Biju Das
@ 2020-09-25  9:42       ` Biju Das
  2020-10-03  1:04         ` Wesley Cheng
  0 siblings, 1 reply; 15+ messages in thread
From: Biju Das @ 2020-09-25  9:42 UTC (permalink / raw)
  To: Wesley Cheng, Rob Herring, Greg Kroah-Hartman
  Cc: Prabhakar Mahadev Lad, Yoshihiro Shimoda, Heikki Krogerus,
	linux-usb, devicetree, Geert Uytterhoeven, Chris Paterson,
	Biju Das, linux-renesas-soc

Hi Wesley Cheng,

> Subject: RE: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to
> json-schema
>
> Hi Wesley Cheng,
>
> Thanks for the feedback.
>
> > Subject: Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220
> > bindings to json-schema
> >
> >
> >
> > On 8/24/2020 7:10 AM, Biju Das wrote:
> > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > >
> > > Convert ti,hd3ss3220.txt to YAML. Updated the binding documentation
> > > as graph bindings of this device model Super Speed (SS) data bus to
> > > the Super Speed (SS) capable connector.
> > >
> > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-
> > lad.rj@bp.renesas.com>
> > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > ---
> > > v2->v3: Replaced Tabs with spaces in the example section.
> > > v1->v2 : No change
> > > Ref: https://patchwork.kernel.org/patch/11669423/
> > > ---
> > >  .../devicetree/bindings/usb/ti,hd3ss3220.txt  | 38 ---------
> > > .../devicetree/bindings/usb/ti,hd3ss3220.yaml | 81
> > +++++++++++++++++++
> > >  2 files changed, 81 insertions(+), 38 deletions(-)  delete mode
> > > 100644 Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > >  create mode 100644
> > > Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > deleted file mode 100644
> > > index 2bd21b22ce95..000000000000
> > > --- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt
> > > +++ /dev/null
> > > @@ -1,38 +0,0 @@
> > > -TI HD3SS3220 TypeC DRP Port Controller.
> > > -
> > > -Required properties:
> > > - - compatible: Must be "ti,hd3ss3220".
> > > - - reg: I2C slave address, must be 0x47 or 0x67 based on ADDR pin.
> > > - - interrupts: An interrupt specifier.
> > > -
> > > -Required sub-node:
> > > - - connector: The "usb-c-connector" attached to the hd3ss3220 chip. The
> > > -   bindings of the connector node are specified in:
> > > -
> > > -Documentation/devicetree/bindings/connector/usb-connector.yaml
> > > -
> > > -Example:
> > > -hd3ss3220@47 {
> > > -compatible = "ti,hd3ss3220";
> > > -reg = <0x47>;
> > > -interrupt-parent = <&gpio6>;
> > > -interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> > > -
> > > -connector {
> > > -compatible = "usb-c-connector";
> > > -label = "USB-C";
> > > -data-role = "dual";
> > > -
> > > -ports {
> > > -#address-cells = <1>;
> > > -#size-cells = <0>;
> > > -
> > > -port@1 {
> > > -reg = <1>;
> > > -hd3ss3220_ep: endpoint {
> > > -remote-endpoint =
> > <&usb3_role_switch>;
> > > -};
> > > -};
> > > -};
> > > -};
> > > -};
> > > diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > new file mode 100644
> > > index 000000000000..750a099529c0
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml
> > > @@ -0,0 +1,81 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: TI HD3SS3220 TypeC DRP Port Controller
> > > +
> > > +maintainers:
> > > +  - Biju Das <biju.das.jz@bp.renesas.com>
> > > +
> > > +description: |-
> > > +  HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port
> > > +controller. The device provides Channel
> > > +  Configuration (CC) logic and 5V VCONN sourcing for ecosystems
> > > +implementing USB Type-C. The
> > > +  HD3SS3220 can be configured as a Downstream Facing Port (DFP),
> > > +Upstream Facing Port (UFP) or a
> > > +  Dual Role Port (DRP) making it ideal for any application.
> > > +
> > > +properties:
> > > +  compatible:
> > > +   const: ti,hd3ss3220
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    maxItems: 1
> > > +
> > > +  ports:
> > > +    description: OF graph bindings (specified in
> > > + bindings/graph.txt) that
> > model
> > > +      SS data bus to the SS capable connector.
> > > +    type: object
> > > +    properties:
> > > +      port@0:
> > > +        type: object
> > > +        description: Super Speed (SS) capable connector.
> > > +
> > > +      port@1:
> > > +        type: object
> > > +        description: Super Speed (SS) data bus.
> > > +
> > > +    required:
> > > +      - port@0
> > > +      - port@1
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - interrupts
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    i2c0 {
> > > +        #address-cells = <1>;
> > > +        #size-cells = <0>;
> > > +
> > > +        hd3ss3220@47 {
> > > +                compatible = "ti,hd3ss3220";
> > > +                reg = <0x47>;
> > > +                interrupt-parent = <&gpio6>;
> > > +                interrupts = <3>;
> > > +
> > > +                ports {
> > > +                        #address-cells = <1>;
> > > +                        #size-cells = <0>;
> > > +                        port@0 {
> > > +                                reg = <0>;
> > > +                                hd3ss3220_in_ep: endpoint {
> > > +                                        remote-endpoint = <&ss_ep>;
> > > +                                };
> >
> > Hi Biju,
> >
> > I'm involved in a separate thread[1] and I just wanted to get your
> > inputs on how you understood the port and endpoint assignments for the
> > USB type C connectors in different designs.
> >
> > Since the hd3ss3220 does the type C lane detect and has an integrated
> > lane select mux, what is the ss_ep being used for?
>
> In our case, Type C Connector --> HS lines directly connected to SoC, where
> as the SS lines connected  to HD3SS3220 Mux and output of mux is
> Connected to SoC.
>
> This mux driver detects state change on the CC lines, reading the
> orientation/role and communicating this information to SoC for assigning
> roles using USB role switch framework.
>
> Case 1:-  Model connector node as the child node of the mux.
>
> The bindings for this case [1] is not complaint to typec connector bindings,
> since it is missing port@0 node.
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-
> next.git/tree/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt?h=n
> ext-20200917
>
> typec Connector bindings requires port@0 should be HS and port@1 should
> be SS as per the discussion [2],  so I need to remodel connector node as
> separate one.
> [2] https://patchwork.kernel.org/patch/11669423/
>
> Case 2:-  Model connector node as a separate one based on the hardware
> design
>
> Type c connector port@0  --> SoC  (hs ep) Type c connector  port@1 -->
> connected to USB3.0 Mux -->  SoC( for usb3 role switch)
>
> Here the input of the Mux is connected to TypeC connector and Output of
> the mux is connected to the SoC, which is inline with hardware design.
> The full example of this model here [3]
> [3] https://patchwork.kernel.org/patch/11733263/
>
> In both our designs, looks like, type c connector connected to SS MUX and
> output of SS Mux is Connected to SoC for role switch. Am I missing some
> thing?
> So may be we need to update the connector bindings for this use case. What
> do you think?

FYI, I have posted v4 with changes in usb connector bindings.

[1] https://patchwork.kernel.org/patch/11787677/
[2] https://patchwork.kernel.org/patch/11787679/

Regards,
Biju


Renesas Electronics Europe GmbH, Geschaeftsfuehrer/President: Carsten Jauch, Sitz der Gesellschaft/Registered office: Duesseldorf, Arcadiastrasse 10, 40472 Duesseldorf, Germany, Handelsregister/Commercial Register: Duesseldorf, HRB 3708 USt-IDNr./Tax identification no.: DE 119353406 WEEE-Reg.-Nr./WEEE reg. no.: DE 14978647

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-09-25  9:42       ` Biju Das
@ 2020-10-03  1:04         ` Wesley Cheng
  0 siblings, 0 replies; 15+ messages in thread
From: Wesley Cheng @ 2020-10-03  1:04 UTC (permalink / raw)
  To: Biju Das, Rob Herring, Greg Kroah-Hartman
  Cc: Prabhakar Mahadev Lad, Yoshihiro Shimoda, Heikki Krogerus,
	linux-usb, devicetree, Geert Uytterhoeven, Chris Paterson,
	Biju Das, linux-renesas-soc

>>>
>>> Hi Biju,
>>>
>>> I'm involved in a separate thread[1] and I just wanted to get your
>>> inputs on how you understood the port and endpoint assignments for the
>>> USB type C connectors in different designs.
>>>
>>> Since the hd3ss3220 does the type C lane detect and has an integrated
>>> lane select mux, what is the ss_ep being used for?
>>
>> In our case, Type C Connector --> HS lines directly connected to SoC, where
>> as the SS lines connected  to HD3SS3220 Mux and output of mux is
>> Connected to SoC.
>>
>> This mux driver detects state change on the CC lines, reading the
>> orientation/role and communicating this information to SoC for assigning
>> roles using USB role switch framework.
>>
>> Case 1:-  Model connector node as the child node of the mux.
>>
>> The bindings for this case [1] is not complaint to typec connector bindings,
>> since it is missing port@0 node.
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-
>> next.git/tree/Documentation/devicetree/bindings/usb/ti,hd3ss3220.txt?h=n
>> ext-20200917
>>
>> typec Connector bindings requires port@0 should be HS and port@1 should
>> be SS as per the discussion [2],  so I need to remodel connector node as
>> separate one.
>> [2] https://patchwork.kernel.org/patch/11669423/
>>
>> Case 2:-  Model connector node as a separate one based on the hardware
>> design
>>
>> Type c connector port@0  --> SoC  (hs ep) Type c connector  port@1 -->
>> connected to USB3.0 Mux -->  SoC( for usb3 role switch)
>>
>> Here the input of the Mux is connected to TypeC connector and Output of
>> the mux is connected to the SoC, which is inline with hardware design.
>> The full example of this model here [3]
>> [3] https://patchwork.kernel.org/patch/11733263/
>>
>> In both our designs, looks like, type c connector connected to SS MUX and
>> output of SS Mux is Connected to SoC for role switch. Am I missing some
>> thing?
>> So may be we need to update the connector bindings for this use case. What
>> do you think?
> 
> FYI, I have posted v4 with changes in usb connector bindings.
> 
> [1] https://patchwork.kernel.org/patch/11787677/
> [2] https://patchwork.kernel.org/patch/11787679/
> 
Hi Biju,

Great, thanks! Let me take a look :).

Thanks

Regards,
Wesley Cheng


-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-10-03  1:04 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-24 14:10 [PATCH v3 0/5] Remodel HD3SS3220 device nodes Biju Das
2020-08-24 14:10 ` [PATCH v3 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
2020-09-08 22:36   ` Rob Herring
2020-09-09  8:21     ` Biju Das
2020-09-09 17:03       ` Rob Herring
2020-09-09 17:34         ` Biju Das
2020-09-17 17:31   ` Wesley Cheng
2020-09-17 18:52     ` Biju Das
2020-09-25  9:42       ` Biju Das
2020-10-03  1:04         ` Wesley Cheng
2020-08-24 14:10 ` [PATCH v3 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
2020-08-25  0:16   ` Yoshihiro Shimoda
2020-09-08 22:38   ` Rob Herring
2020-08-24 14:10 ` [PATCH v3 4/5] arm64: dts: renesas: cat874: Move connector node out of hd3ss3220 device Biju Das
2020-08-24 14:10 ` [PATCH v3 5/5] arm64: dts: renesas: beacon-renesom-baseboard: " Biju Das

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).