All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Remodel HD3SS3220 device nodes
@ 2020-08-11  8:02 Biju Das
  2020-08-11  8:02 ` [PATCH v2 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Biju Das @ 2020-08-11  8:02 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/


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       | 36 +++++++--
 .../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, 225 insertions(+), 82 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] 12+ messages in thread

* [PATCH v2 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema
  2020-08-11  8:02 [PATCH v2 0/5] Remodel HD3SS3220 device nodes Biju Das
@ 2020-08-11  8:02 ` Biju Das
  2020-08-11  8:02 ` [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 12+ messages in thread
From: Biju Das @ 2020-08-11  8:02 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>
---
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..5c7c7d782a04
--- /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] 12+ messages in thread

* [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus
  2020-08-11  8:02 [PATCH v2 0/5] Remodel HD3SS3220 device nodes Biju Das
  2020-08-11  8:02 ` [PATCH v2 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
@ 2020-08-11  8:02 ` Biju Das
  2020-08-24 11:29   ` Yoshihiro Shimoda
  2020-08-11  8:02 ` [PATCH v2 3/5] usb: typec: hd3ss3220: Use OF graph API to get the connector fwnode Biju Das
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 12+ messages in thread
From: Biju Das @ 2020-08-11  8:02 UTC (permalink / raw)
  To: Rob Herring, Greg Kroah-Hartman
  Cc: Biju Das, Yoshihiro Shimoda, 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>
---
v1->v2: No change
Ref:https://patchwork.kernel.org/patch/11669423/
---
 .../bindings/usb/renesas,usb3-peri.yaml       | 36 +++++++++++++++----
 1 file changed, 30 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
index e3cdeab1199f..3eb964af37b8 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] 12+ messages in thread

* [PATCH v2 3/5] usb: typec: hd3ss3220: Use OF graph API to get the connector fwnode
  2020-08-11  8:02 [PATCH v2 0/5] Remodel HD3SS3220 device nodes Biju Das
  2020-08-11  8:02 ` [PATCH v2 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
  2020-08-11  8:02 ` [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
@ 2020-08-11  8:02 ` Biju Das
  2020-08-13 11:39   ` Heikki Krogerus
  2020-08-11  8:02 ` [PATCH v2 4/5] arm64: dts: renesas: cat874: Move connector node out of hd3ss3220 device Biju Das
  2020-08-11  8:02 ` [PATCH v2 5/5] arm64: dts: renesas: beacon-renesom-baseboard: " Biju Das
  4 siblings, 1 reply; 12+ messages in thread
From: Biju Das @ 2020-08-11  8:02 UTC (permalink / raw)
  To: Heikki Krogerus, Sergei Shtylyov
  Cc: Biju Das, Greg Kroah-Hartman, Yoshihiro Shimoda, Rob Herring,
	linux-usb, Geert Uytterhoeven, Chris Paterson, Biju Das,
	Prabhakar Mahadev Lad, linux-renesas-soc

Some platforms have only super speed data bus connected to this 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 this device and the SoC data bus will make it
compliant with usb connector bindings.
Update the driver to handle this model by using OF graph API to get the
connector fwnode and usb role switch class API to get role switch handle.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
v1->v2: Fixed the commit message (https://patchwork.kernel.org/patch/11700777/)
Ref:https://patchwork.kernel.org/patch/11669423/
---
 drivers/usb/typec/hd3ss3220.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/typec/hd3ss3220.c b/drivers/usb/typec/hd3ss3220.c
index 323dfa8160ab..f633ec15b1a1 100644
--- a/drivers/usb/typec/hd3ss3220.c
+++ b/drivers/usb/typec/hd3ss3220.c
@@ -155,7 +155,7 @@ static int hd3ss3220_probe(struct i2c_client *client,
 {
 	struct typec_capability typec_cap = { };
 	struct hd3ss3220 *hd3ss3220;
-	struct fwnode_handle *connector;
+	struct fwnode_handle *connector, *ep;
 	int ret;
 	unsigned int data;
 
@@ -173,11 +173,21 @@ static int hd3ss3220_probe(struct i2c_client *client,
 
 	hd3ss3220_set_source_pref(hd3ss3220,
 				  HD3SS3220_REG_GEN_CTRL_SRC_PREF_DRP_DEFAULT);
+	/* For backward compatibility check the connector child node first */
 	connector = device_get_named_child_node(hd3ss3220->dev, "connector");
-	if (!connector)
-		return -ENODEV;
+	if (connector) {
+		hd3ss3220->role_sw = fwnode_usb_role_switch_get(connector);
+	} else {
+		ep = fwnode_graph_get_next_endpoint(dev_fwnode(hd3ss3220->dev), NULL);
+		if (!ep)
+			return -ENODEV;
+		connector = fwnode_graph_get_remote_port_parent(ep);
+		fwnode_handle_put(ep);
+		if (!connector)
+			return -ENODEV;
+		hd3ss3220->role_sw = usb_role_switch_get(hd3ss3220->dev);
+	}
 
-	hd3ss3220->role_sw = fwnode_usb_role_switch_get(connector);
 	if (IS_ERR(hd3ss3220->role_sw)) {
 		ret = PTR_ERR(hd3ss3220->role_sw);
 		goto err_put_fwnode;
-- 
2.17.1


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

* [PATCH v2 4/5] arm64: dts: renesas: cat874: Move connector node out of hd3ss3220 device
  2020-08-11  8:02 [PATCH v2 0/5] Remodel HD3SS3220 device nodes Biju Das
                   ` (2 preceding siblings ...)
  2020-08-11  8:02 ` [PATCH v2 3/5] usb: typec: hd3ss3220: Use OF graph API to get the connector fwnode Biju Das
@ 2020-08-11  8:02 ` Biju Das
  2020-08-11  8:02 ` [PATCH v2 5/5] arm64: dts: renesas: beacon-renesom-baseboard: " Biju Das
  4 siblings, 0 replies; 12+ messages in thread
From: Biju Das @ 2020-08-11  8:02 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>
---
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] 12+ messages in thread

* [PATCH v2 5/5] arm64: dts: renesas: beacon-renesom-baseboard: Move connector node out of hd3ss3220 device
  2020-08-11  8:02 [PATCH v2 0/5] Remodel HD3SS3220 device nodes Biju Das
                   ` (3 preceding siblings ...)
  2020-08-11  8:02 ` [PATCH v2 4/5] arm64: dts: renesas: cat874: Move connector node out of hd3ss3220 device Biju Das
@ 2020-08-11  8:02 ` Biju Das
  4 siblings, 0 replies; 12+ messages in thread
From: Biju Das @ 2020-08-11  8:02 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>
---
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] 12+ messages in thread

* Re: [PATCH v2 3/5] usb: typec: hd3ss3220: Use OF graph API to get the connector fwnode
  2020-08-11  8:02 ` [PATCH v2 3/5] usb: typec: hd3ss3220: Use OF graph API to get the connector fwnode Biju Das
@ 2020-08-13 11:39   ` Heikki Krogerus
  0 siblings, 0 replies; 12+ messages in thread
From: Heikki Krogerus @ 2020-08-13 11:39 UTC (permalink / raw)
  To: Biju Das
  Cc: Sergei Shtylyov, Greg Kroah-Hartman, Yoshihiro Shimoda,
	Rob Herring, linux-usb, Geert Uytterhoeven, Chris Paterson,
	Biju Das, Prabhakar Mahadev Lad, linux-renesas-soc

On Tue, Aug 11, 2020 at 09:02:25AM +0100, Biju Das wrote:
> Some platforms have only super speed data bus connected to this 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 this device and the SoC data bus will make it
> compliant with usb connector bindings.
> Update the driver to handle this model by using OF graph API to get the
> connector fwnode and usb role switch class API to get role switch handle.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

> ---
> v1->v2: Fixed the commit message (https://patchwork.kernel.org/patch/11700777/)
> Ref:https://patchwork.kernel.org/patch/11669423/
> ---
>  drivers/usb/typec/hd3ss3220.c | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/usb/typec/hd3ss3220.c b/drivers/usb/typec/hd3ss3220.c
> index 323dfa8160ab..f633ec15b1a1 100644
> --- a/drivers/usb/typec/hd3ss3220.c
> +++ b/drivers/usb/typec/hd3ss3220.c
> @@ -155,7 +155,7 @@ static int hd3ss3220_probe(struct i2c_client *client,
>  {
>  	struct typec_capability typec_cap = { };
>  	struct hd3ss3220 *hd3ss3220;
> -	struct fwnode_handle *connector;
> +	struct fwnode_handle *connector, *ep;
>  	int ret;
>  	unsigned int data;
>  
> @@ -173,11 +173,21 @@ static int hd3ss3220_probe(struct i2c_client *client,
>  
>  	hd3ss3220_set_source_pref(hd3ss3220,
>  				  HD3SS3220_REG_GEN_CTRL_SRC_PREF_DRP_DEFAULT);
> +	/* For backward compatibility check the connector child node first */
>  	connector = device_get_named_child_node(hd3ss3220->dev, "connector");
> -	if (!connector)
> -		return -ENODEV;
> +	if (connector) {
> +		hd3ss3220->role_sw = fwnode_usb_role_switch_get(connector);
> +	} else {
> +		ep = fwnode_graph_get_next_endpoint(dev_fwnode(hd3ss3220->dev), NULL);
> +		if (!ep)
> +			return -ENODEV;
> +		connector = fwnode_graph_get_remote_port_parent(ep);
> +		fwnode_handle_put(ep);
> +		if (!connector)
> +			return -ENODEV;
> +		hd3ss3220->role_sw = usb_role_switch_get(hd3ss3220->dev);
> +	}
>  
> -	hd3ss3220->role_sw = fwnode_usb_role_switch_get(connector);
>  	if (IS_ERR(hd3ss3220->role_sw)) {
>  		ret = PTR_ERR(hd3ss3220->role_sw);
>  		goto err_put_fwnode;
> -- 
> 2.17.1

thanks,

-- 
heikki

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

* RE: [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus
  2020-08-11  8:02 ` [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
@ 2020-08-24 11:29   ` Yoshihiro Shimoda
  2020-08-24 11:54     ` Biju Das
  0 siblings, 1 reply; 12+ messages in thread
From: Yoshihiro Shimoda @ 2020-08-24 11:29 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,

Thank you for the patch!

> From: Biju Das, Sent: Tuesday, August 11, 2020 5:02 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>
> ---
> v1->v2: No change
> Ref:https://patchwork.kernel.org/patch/11669423/
> ---
>  .../bindings/usb/renesas,usb3-peri.yaml       | 36 +++++++++++++++----
>  1 file changed, 30 insertions(+), 6 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> index e3cdeab1199f..3eb964af37b8 100644
> --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
<snip>
> @@ -79,9 +92,20 @@ examples:
>          companion = <&xhci0>;
>          usb-role-switch;
> 
> -        port {
> -            usb3_role_switch: endpoint {
> -                remote-endpoint = <&hd3ss3220_ep>;
> -            };
> -        };
> +    	ports {

I think we should use spaces instead of tab here and below.

> +    		#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>;
> +    			};
> +    		};
> +    	};

Best regards,
Yoshihiro Shimoda

>      };
> --
> 2.17.1


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

* RE: [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus
  2020-08-24 11:29   ` Yoshihiro Shimoda
@ 2020-08-24 11:54     ` Biju Das
  2020-08-24 12:08       ` Yoshihiro Shimoda
  0 siblings, 1 reply; 12+ messages in thread
From: Biju Das @ 2020-08-24 11:54 UTC (permalink / raw)
  To: Yoshihiro Shimoda, Rob Herring, Greg Kroah-Hartman,
	Geert Uytterhoeven, Geert Uytterhoeven
  Cc: Heikki Krogerus, linux-usb, devicetree, Geert Uytterhoeven,
	Chris Paterson, Biju Das, Prabhakar Mahadev Lad,
	linux-renesas-soc

Hi Shimoda-San,

Thanks for the feedback.

> Subject: RE: [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document
> HS and SS data bus
>
> Hi Biju-san,
>
> Thank you for the patch!
>
> > From: Biju Das, Sent: Tuesday, August 11, 2020 5:02 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>
> > ---
> > v1->v2: No change
> > Ref:https://patchwork.kernel.org/patch/11669423/
> > ---
> >  .../bindings/usb/renesas,usb3-peri.yaml       | 36 +++++++++++++++----
> >  1 file changed, 30 insertions(+), 6 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/renesas,usb3-
> peri.yaml
> > b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> > index e3cdeab1199f..3eb964af37b8 100644
> > --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> > +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> <snip>
> > @@ -79,9 +92,20 @@ examples:
> >          companion = <&xhci0>;
> >          usb-role-switch;
> >
> > -        port {
> > -            usb3_role_switch: endpoint {
> > -                remote-endpoint = <&hd3ss3220_ep>;
> > -            };
> > -        };
> > +    ports {
>
> I think we should use spaces instead of tab here and below.

I have ran dt_binding_check on this file and it did n't complain.

First 5 character must be space, after that if you use tab, it won't complain.
I am not sure is it the correct way or not?

Geert/Shimoda-San can you please comment.
Based on your input, if needed I will send v3 with only spaces.

Cheers,
Biju


> > +    #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>;
> > +    };
> > +    };
> > +    };
>
> Best regards,
> Yoshihiro Shimoda
>
> >      };
> > --
> > 2.17.1



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] 12+ messages in thread

* RE: [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus
  2020-08-24 11:54     ` Biju Das
@ 2020-08-24 12:08       ` Yoshihiro Shimoda
  2020-08-24 12:14         ` Biju Das
  2020-08-25  7:13         ` Geert Uytterhoeven
  0 siblings, 2 replies; 12+ messages in thread
From: Yoshihiro Shimoda @ 2020-08-24 12:08 UTC (permalink / raw)
  To: Biju Das, Rob Herring, Greg Kroah-Hartman, Geert Uytterhoeven,
	Geert Uytterhoeven
  Cc: 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 8:55 PM
> 
> Hi Shimoda-San,
> 
> Thanks for the feedback.
> 
<snip>
> > > --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> > > +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> > <snip>
> > > @@ -79,9 +92,20 @@ examples:
> > >          companion = <&xhci0>;
> > >          usb-role-switch;
> > >
> > > -        port {
> > > -            usb3_role_switch: endpoint {
> > > -                remote-endpoint = <&hd3ss3220_ep>;
> > > -            };
> > > -        };
> > > +    	ports {
> >
> > I think we should use spaces instead of tab here and below.
> 
> I have ran dt_binding_check on this file and it did n't complain.
> 
> First 5 character must be space, after that if you use tab, it won't complain.
> I am not sure is it the correct way or not?
> 
> Geert/Shimoda-San can you please comment.
> Based on your input, if needed I will send v3 with only spaces.

I don't know why dt_binding_check didn't complain though,
according to writing_schema.rst:
---
examples
  Optional. A list of one or more DTS hunks implementing the
  binding. Note: YAML doesn't allow leading tabs, so spaces must be used instead.
---
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/writing-schema.rst?h=v5.9-rc2#n71

Best regards,
Yoshihiro Shimoda


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

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

Hi Shimoda-San,

Thanks for the feedback.

> Subject: RE: [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document
> HS and SS data bus
>
> Hi Biju-san,
>
> > From: Biju Das, Sent: Monday, August 24, 2020 8:55 PM
> >
> > Hi Shimoda-San,
> >
> > Thanks for the feedback.
> >
> <snip>
> > > > --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> > > > +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-
> peri.yaml
> > > <snip>
> > > > @@ -79,9 +92,20 @@ examples:
> > > >          companion = <&xhci0>;
> > > >          usb-role-switch;
> > > >
> > > > -        port {
> > > > -            usb3_role_switch: endpoint {
> > > > -                remote-endpoint = <&hd3ss3220_ep>;
> > > > -            };
> > > > -        };
> > > > +    ports {
> > >
> > > I think we should use spaces instead of tab here and below.
> >
> > I have ran dt_binding_check on this file and it did n't complain.
> >
> > First 5 character must be space, after that if you use tab, it won't complain.
> > I am not sure is it the correct way or not?
> >
> > Geert/Shimoda-San can you please comment.
> > Based on your input, if needed I will send v3 with only spaces.
>
> I don't know why dt_binding_check didn't complain though, according to
> writing_schema.rst:
> ---
> examples
>   Optional. A list of one or more DTS hunks implementing the
>   binding. Note: YAML doesn't allow leading tabs, so spaces must be used
> instead.
> ---
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Docu
> mentation/devicetree/writing-schema.rst?h=v5.9-rc2#n71

Thanks for the pointers. I will send v3 with only spaces.

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] 12+ messages in thread

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

On Mon, Aug 24, 2020 at 2:08 PM Yoshihiro Shimoda
<yoshihiro.shimoda.uh@renesas.com> wrote:
> > From: Biju Das, Sent: Monday, August 24, 2020 8:55 PM
> > > > --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> > > > +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> > > <snip>
> > > > @@ -79,9 +92,20 @@ examples:
> > > >          companion = <&xhci0>;
> > > >          usb-role-switch;
> > > >
> > > > -        port {
> > > > -            usb3_role_switch: endpoint {
> > > > -                remote-endpoint = <&hd3ss3220_ep>;
> > > > -            };
> > > > -        };
> > > > +         ports {
> > >
> > > I think we should use spaces instead of tab here and below.
> >
> > I have ran dt_binding_check on this file and it did n't complain.
> >
> > First 5 character must be space, after that if you use tab, it won't complain.
> > I am not sure is it the correct way or not?
> >
> > Geert/Shimoda-San can you please comment.
> > Based on your input, if needed I will send v3 with only spaces.
>
> I don't know why dt_binding_check didn't complain though,
> according to writing_schema.rst:
> ---
> examples
>   Optional. A list of one or more DTS hunks implementing the
>   binding. Note: YAML doesn't allow leading tabs, so spaces must be used instead.
> ---
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/writing-schema.rst?h=v5.9-rc2#n71

Indeed. Hence my .vimrc has:

    autocmd FileType yaml setlocal expandtab sw=2

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

end of thread, other threads:[~2020-08-25  7:13 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-11  8:02 [PATCH v2 0/5] Remodel HD3SS3220 device nodes Biju Das
2020-08-11  8:02 ` [PATCH v2 1/5] dt-bindings: usb: convert ti,hd3ss3220 bindings to json-schema Biju Das
2020-08-11  8:02 ` [PATCH v2 2/5] dt-bindings: usb: renesas,usb3-peri: Document HS and SS data bus Biju Das
2020-08-24 11:29   ` Yoshihiro Shimoda
2020-08-24 11:54     ` Biju Das
2020-08-24 12:08       ` Yoshihiro Shimoda
2020-08-24 12:14         ` Biju Das
2020-08-25  7:13         ` Geert Uytterhoeven
2020-08-11  8:02 ` [PATCH v2 3/5] usb: typec: hd3ss3220: Use OF graph API to get the connector fwnode Biju Das
2020-08-13 11:39   ` Heikki Krogerus
2020-08-11  8:02 ` [PATCH v2 4/5] arm64: dts: renesas: cat874: Move connector node out of hd3ss3220 device Biju Das
2020-08-11  8:02 ` [PATCH v2 5/5] arm64: dts: renesas: beacon-renesom-baseboard: " Biju Das

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.