devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v9 0/7] Add Qualcomm PMIC TPCM support
@ 2023-08-16 11:51 Bryan O'Donoghue
  2023-08-16 11:51 ` [PATCH v9 1/7] dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types Bryan O'Donoghue
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Bryan O'Donoghue @ 2023-08-16 11:51 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: bryan.odonoghue, linux-arm-msm, devicetree, linux-kernel

V9:

- Reuses glink ports {} definitions and locations per Bjorn's request
- Adds additional port @ 2 to 8250.dtsi as a result - Bjorn
- Drops logic in previous patch
  "dt-bindings: phy: qcom,sc7180-qmp-usb3-dp-phy: Add input and output ports"
  No longer required
- I've amended the names of the endpoints to match sc8280xp too - bod

Bootable tree
Link: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/usb-next-23-08-15-pm8150b-typec

V8:
- Makes pm8150b_typec::status = disabled by default - bod
- Greg merged the TCPM description and driver to usb-next so two patches less now.
  I've rebased this series on to usb-next using "--base=auto"
  All of the kernel robot dts/yaml checks should now pass against usb-next / a4422ff221429c600c3dc5d0394fb3738b89d040

V7:
- Adds R/B to "dt-bindings: phy: qcom,sc7180-qmp-usb3-dp-phy: Add input and output ports" - Krzysztof
- Fixes indicated, adds R/B to "dt-bindings: usb: Add Qualcomm PMIC Type-C" - Krzysztof
- Fixes indicated, adds R/B to "usb: typec: qcom: Add Qualcomm PMIC Type-C driver" - Guenter
- Fixes indicated, adds R/B to "usb: typec: qcom: Add Qualcomm PMIC Type-C driver" - Caleb
- Adds R/B to "arm64: dts: qcom: sm8250: Define ports for qmpphy orientation-switching" - Konrad
- Adds R/B to "arm64: dts: qcom: qrb5165-rb5: Switch on Type-C VBUS boost" - Konrad
- Fixes indicated, adds R/B to "arm64: dts: qcom: qrb5165-rb5: Switch on basic TCPM" - Jianhua, Konrad
- Connector ports/endpoints left inside of connector
  Documentation/devicetree/bindings/connector/usb-connector.yaml - Jianhua
- dwc3_role_switch_in -> usb_1_dwc3_role_switch_in
  qmpphy_typec_mux_in -> usb_1_qmpphy_typec_mux_in
  Both ports/endpoints defined inside of pm8150b dtsi - Konrad

  I modified the name of both so that the port/endpoint would be directly
  adjacent to the containing node in the dtsi file for code locality/readbility - bod

- Fixes newline indicated "arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for usb_1" - Jianhua, Konrad
- Fixes newline indicated "arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy" - Jianhua, Konrad

- connector
  I have left the connector defintion and its ports/endpoints in the platform dts

  The reason for this
  a) Prior art e.g. arch/arm64/boot/dts/qcom/sc8280xp*
  b) The connector is really a non-SoC/PMIC component its something that is defined
     for your platform.

  I'm open to further debate on this topic:
  Link: https://imgflip.com/i/7kw6ck

- port@1 -> port@1 "arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy" - Jianhua

- OF: graph: no port node found in /soc@0/spmi@c440000/pmic@2/typec@1500

  I left this as-is since the DT model we want is to connect the connector directly to
  the PHY for orientation or controller for data-role switching

  I similarly didn't put this hack in place to remove the warning but "it would work"

V6:
 - I'm dropping the previous V1-V6 log because the text is getting too long
   here's a link to the previous cover letter instead
   Link: https://lore.kernel.org/linux-arm-msm/20230501121111.1058190-1-bryan.odonoghue@linaro.org/

Bryan O'Donoghue (7):
  dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types
  arm64: dts: qcom: sm8250: Define ports for qmpphy
    orientation-switching
  arm64: dts: qcom: pm8150b: Add a TCPM description
  arm64: dts: qcom: qrb5165-rb5: Switch on Type-C VBUS boost
  arm64: dts: qcom: qrb5165-rb5: Switch on basic TCPM
  arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for
    usb_1
  arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for
    usb_1_qmpphy

 .../bindings/mfd/qcom,spmi-pmic.yaml          |  4 ++
 arch/arm64/boot/dts/qcom/pm8150b.dtsi         | 40 +++++++++++++
 arch/arm64/boot/dts/qcom/qrb5165-rb5.dts      | 56 ++++++++++++++++++-
 arch/arm64/boot/dts/qcom/sm8250.dtsi          | 22 ++++++++
 4 files changed, 121 insertions(+), 1 deletion(-)

-- 
2.41.0


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

* [PATCH v9 1/7] dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types
  2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
@ 2023-08-16 11:51 ` Bryan O'Donoghue
  2023-09-20  9:19   ` (subset) " Lee Jones
  2023-08-16 11:51 ` [PATCH v9 2/7] arm64: dts: qcom: sm8250: Define ports for qmpphy orientation-switching Bryan O'Donoghue
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Bryan O'Donoghue @ 2023-08-16 11:51 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: bryan.odonoghue, linux-arm-msm, devicetree, linux-kernel,
	Krzysztof Kozlowski

Add the PMIC Type-C port driver to the list of devices.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml b/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml
index 8b9a2008a354e..7fdbd15969d27 100644
--- a/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml
+++ b/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml
@@ -164,6 +164,10 @@ patternProperties:
     type: object
     $ref: /schemas/thermal/qcom,spmi-temp-alarm.yaml#
 
+  "^typec@[0-9a-f]+$":
+    type: object
+    $ref: /schemas/usb/qcom,pmic-typec.yaml#
+
   "^usb-detect@[0-9a-f]+$":
     type: object
     $ref: /schemas/extcon/qcom,pm8941-misc.yaml#
-- 
2.41.0


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

* [PATCH v9 2/7] arm64: dts: qcom: sm8250: Define ports for qmpphy orientation-switching
  2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
  2023-08-16 11:51 ` [PATCH v9 1/7] dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types Bryan O'Donoghue
@ 2023-08-16 11:51 ` Bryan O'Donoghue
  2023-08-16 11:51 ` [PATCH v9 3/7] arm64: dts: qcom: pm8150b: Add a TCPM description Bryan O'Donoghue
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Bryan O'Donoghue @ 2023-08-16 11:51 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: bryan.odonoghue, linux-arm-msm, devicetree, linux-kernel

ports for orientation switching input and output. The individual board dts
files will instantiate port@0, port@1 and/or port@2 depending on the supported
feature-set.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 arch/arm64/boot/dts/qcom/sm8250.dtsi | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index 83ab6de459bc4..c79173504a3fd 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3613,6 +3613,23 @@ dp_phy: dp-phy@88ea200 {
 				#phy-cells = <0>;
 				#clock-cells = <1>;
 			};
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port@0 {
+					reg = <0>;
+				};
+
+				port@1 {
+					reg = <1>;
+				};
+
+				port@2 {
+					reg = <2>;
+				};
+			};
 		};
 
 		usb_2_qmpphy: phy@88eb000 {
-- 
2.41.0


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

* [PATCH v9 3/7] arm64: dts: qcom: pm8150b: Add a TCPM description
  2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
  2023-08-16 11:51 ` [PATCH v9 1/7] dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types Bryan O'Donoghue
  2023-08-16 11:51 ` [PATCH v9 2/7] arm64: dts: qcom: sm8250: Define ports for qmpphy orientation-switching Bryan O'Donoghue
@ 2023-08-16 11:51 ` Bryan O'Donoghue
  2023-08-26 10:55   ` Konrad Dybcio
  2023-08-16 11:51 ` [PATCH v9 4/7] arm64: dts: qcom: qrb5165-rb5: Switch on Type-C VBUS boost Bryan O'Donoghue
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Bryan O'Donoghue @ 2023-08-16 11:51 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: bryan.odonoghue, linux-arm-msm, devicetree, linux-kernel

Type-C port management functionality lives inside of the PMIC block on
pm8150b.

The Type-C port management logic controls orientation detection, vbus/vconn
sense and to send/receive Type-C Power Domain messages.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 arch/arm64/boot/dts/qcom/pm8150b.dtsi | 40 +++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/pm8150b.dtsi b/arch/arm64/boot/dts/qcom/pm8150b.dtsi
index 66752cc063d60..136e5f96a3d53 100644
--- a/arch/arm64/boot/dts/qcom/pm8150b.dtsi
+++ b/arch/arm64/boot/dts/qcom/pm8150b.dtsi
@@ -59,6 +59,46 @@ pm8150b_vbus: usb-vbus-regulator@1100 {
 			reg = <0x1100>;
 		};
 
+		pm8150b_typec: typec@1500 {
+			compatible = "qcom,pm8150b-typec";
+			status = "disabled";
+			reg = <0x1500>,
+			      <0x1700>;
+			interrupts = <0x2 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
+				     <0x2 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
+				     <0x2 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
+				     <0x2 0x15 0x07 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x17 0x00 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x17 0x01 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x17 0x02 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x17 0x03 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x17 0x04 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x17 0x05 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x17 0x06 IRQ_TYPE_EDGE_RISING>,
+				     <0x2 0x17 0x07 IRQ_TYPE_EDGE_RISING>;
+			interrupt-names = "or-rid-detect-change",
+					  "vpd-detect",
+					  "cc-state-change",
+					  "vconn-oc",
+					  "vbus-change",
+					  "attach-detach",
+					  "legacy-cable-detect",
+					  "try-snk-src-detect",
+					  "sig-tx",
+					  "sig-rx",
+					  "msg-tx",
+					  "msg-rx",
+					  "msg-tx-failed",
+					  "msg-tx-discarded",
+					  "msg-rx-discarded",
+					  "fr-swap";
+			vdd-vbus-supply = <&pm8150b_vbus>;
+		};
+
 		pm8150b_temp: temp-alarm@2400 {
 			compatible = "qcom,spmi-temp-alarm";
 			reg = <0x2400>;
-- 
2.41.0


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

* [PATCH v9 4/7] arm64: dts: qcom: qrb5165-rb5: Switch on Type-C VBUS boost
  2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
                   ` (2 preceding siblings ...)
  2023-08-16 11:51 ` [PATCH v9 3/7] arm64: dts: qcom: pm8150b: Add a TCPM description Bryan O'Donoghue
@ 2023-08-16 11:51 ` Bryan O'Donoghue
  2023-08-16 11:51 ` [PATCH v9 5/7] arm64: dts: qcom: qrb5165-rb5: Switch on basic TCPM Bryan O'Donoghue
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Bryan O'Donoghue @ 2023-08-16 11:51 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: bryan.odonoghue, linux-arm-msm, devicetree, linux-kernel

Switch on VBUS for the Type-C port. We need to support a higher amperage
than the bootloader set 2 Amps.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
index 9022ad726741c..624d6ffc2f12f 100644
--- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
+++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
@@ -1334,3 +1334,9 @@ &qup_spi0_data_clk {
 	drive-strength = <6>;
 	bias-disable;
 };
+
+&pm8150b_vbus {
+	regulator-min-microamp = <500000>;
+	regulator-max-microamp = <3000000>;
+	status = "okay";
+};
-- 
2.41.0


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

* [PATCH v9 5/7] arm64: dts: qcom: qrb5165-rb5: Switch on basic TCPM
  2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
                   ` (3 preceding siblings ...)
  2023-08-16 11:51 ` [PATCH v9 4/7] arm64: dts: qcom: qrb5165-rb5: Switch on Type-C VBUS boost Bryan O'Donoghue
@ 2023-08-16 11:51 ` Bryan O'Donoghue
  2023-08-16 11:51 ` [PATCH v9 6/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for usb_1 Bryan O'Donoghue
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Bryan O'Donoghue @ 2023-08-16 11:51 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: bryan.odonoghue, linux-arm-msm, devicetree, linux-kernel

Switch on TCPM for the RB5. Here we declare as a source only not a sink
since qrb5165 doesn't support powering exclusively from the type-c port.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
index 624d6ffc2f12f..55389f8903b5c 100644
--- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
+++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
@@ -9,6 +9,7 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <dt-bindings/sound/qcom,q6afe.h>
 #include <dt-bindings/sound/qcom,q6asm.h>
+#include <dt-bindings/usb/pd.h>
 #include "sm8250.dtsi"
 #include "pm8150.dtsi"
 #include "pm8150b.dtsi"
@@ -1340,3 +1341,22 @@ &pm8150b_vbus {
 	regulator-max-microamp = <3000000>;
 	status = "okay";
 };
+
+&pm8150b_typec {
+	status = "okay";
+
+	vdd-pdphy-supply = <&vreg_l2a_3p1>;
+
+	connector {
+		compatible = "usb-c-connector";
+
+		power-role = "source";
+		data-role = "dual";
+		self-powered;
+
+		source-pdos = <PDO_FIXED(5000, 3000,
+					 PDO_FIXED_DUAL_ROLE |
+					 PDO_FIXED_USB_COMM |
+					 PDO_FIXED_DATA_SWAP)>;
+	};
+};
-- 
2.41.0


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

* [PATCH v9 6/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for usb_1
  2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
                   ` (4 preceding siblings ...)
  2023-08-16 11:51 ` [PATCH v9 5/7] arm64: dts: qcom: qrb5165-rb5: Switch on basic TCPM Bryan O'Donoghue
@ 2023-08-16 11:51 ` Bryan O'Donoghue
  2023-08-26 10:54   ` Konrad Dybcio
  2023-08-16 11:51 ` [PATCH v9 7/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy Bryan O'Donoghue
  2023-09-20  2:13 ` (subset) [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bjorn Andersson
  7 siblings, 1 reply; 13+ messages in thread
From: Bryan O'Donoghue @ 2023-08-16 11:51 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: bryan.odonoghue, linux-arm-msm, devicetree, linux-kernel

Switch on usb-role-switching for usb_1 via TCPM. We need to declare
usb-role-switch in &usb_1 and associate with the remote-endpoint in TCPM
which provides the necessary signal.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 19 ++++++++++++++++++-
 arch/arm64/boot/dts/qcom/sm8250.dtsi     |  4 ++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
index 55389f8903b5c..3e34f4e2af14a 100644
--- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
+++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
@@ -1269,7 +1269,12 @@ &usb_1 {
 };
 
 &usb_1_dwc3 {
-	dr_mode = "peripheral";
+	dr_mode = "otg";
+	usb-role-switch;
+};
+
+&usb_1_role_switch_out {
+	remote-endpoint = <&pm8150b_role_switch_in>;
 };
 
 &usb_1_hsphy {
@@ -1358,5 +1363,17 @@ connector {
 					 PDO_FIXED_DUAL_ROLE |
 					 PDO_FIXED_USB_COMM |
 					 PDO_FIXED_DATA_SWAP)>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				pm8150b_role_switch_in: endpoint {
+					remote-endpoint = <&usb_1_role_switch_out>;
+				};
+			};
+		};
 	};
 };
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index c79173504a3fd..733de2fd5e753 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3780,6 +3780,10 @@ usb_1_dwc3: usb@a600000 {
 				snps,dis_enblslpm_quirk;
 				phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
 				phy-names = "usb2-phy", "usb3-phy";
+
+				port {
+					usb_1_role_switch_out: endpoint {};
+				};
 			};
 		};
 
-- 
2.41.0


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

* [PATCH v9 7/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy
  2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
                   ` (5 preceding siblings ...)
  2023-08-16 11:51 ` [PATCH v9 6/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for usb_1 Bryan O'Donoghue
@ 2023-08-16 11:51 ` Bryan O'Donoghue
  2023-08-26 10:56   ` Konrad Dybcio
  2023-09-20  2:13 ` (subset) [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bjorn Andersson
  7 siblings, 1 reply; 13+ messages in thread
From: Bryan O'Donoghue @ 2023-08-16 11:51 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: bryan.odonoghue, linux-arm-msm, devicetree, linux-kernel

Switch on USB orientation-switching for usb_1_qmp via TCPM. Detecting the
orientation switch is required to get the PHY to reset and bring-up the PHY
with the CC lines set to the appropriate lane.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 12 ++++++++++++
 arch/arm64/boot/dts/qcom/sm8250.dtsi     |  1 +
 2 files changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
index 3e34f4e2af14a..b878d765f8c42 100644
--- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
+++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
@@ -1290,6 +1290,11 @@ &usb_1_qmpphy {
 
 	vdda-phy-supply = <&vreg_l9a_1p2>;
 	vdda-pll-supply = <&vreg_l18a_0p92>;
+	orientation-switch;
+};
+
+&usb_1_qmpphy_out {
+	remote-endpoint = <&pm8150b_typec_mux_in>;
 };
 
 &usb_2 {
@@ -1374,6 +1379,13 @@ pm8150b_role_switch_in: endpoint {
 					remote-endpoint = <&usb_1_role_switch_out>;
 				};
 			};
+
+			port@1 {
+				reg = <1>;
+				pm8150b_typec_mux_in: endpoint {
+					remote-endpoint = <&usb_1_qmpphy_out>;
+				};
+			};
 		};
 	};
 };
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index 733de2fd5e753..fe29b3da90c19 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3620,6 +3620,7 @@ ports {
 
 				port@0 {
 					reg = <0>;
+					usb_1_qmpphy_out: endpoint {};
 				};
 
 				port@1 {
-- 
2.41.0


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

* Re: [PATCH v9 6/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for usb_1
  2023-08-16 11:51 ` [PATCH v9 6/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for usb_1 Bryan O'Donoghue
@ 2023-08-26 10:54   ` Konrad Dybcio
  0 siblings, 0 replies; 13+ messages in thread
From: Konrad Dybcio @ 2023-08-26 10:54 UTC (permalink / raw)
  To: Bryan O'Donoghue, agross, andersson, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: linux-arm-msm, devicetree, linux-kernel

On 16.08.2023 13:51, Bryan O'Donoghue wrote:
> Switch on usb-role-switching for usb_1 via TCPM. We need to declare
> usb-role-switch in &usb_1 and associate with the remote-endpoint in TCPM
> which provides the necessary signal.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> ---
>  arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 19 ++++++++++++++++++-
>  arch/arm64/boot/dts/qcom/sm8250.dtsi     |  4 ++++
>  2 files changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> index 55389f8903b5c..3e34f4e2af14a 100644
> --- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> @@ -1269,7 +1269,12 @@ &usb_1 {
>  };
>  
>  &usb_1_dwc3 {
> -	dr_mode = "peripheral";
> +	dr_mode = "otg";
> +	usb-role-switch;
> +};
> +
> +&usb_1_role_switch_out {
> +	remote-endpoint = <&pm8150b_role_switch_in>;
>  };
>  
>  &usb_1_hsphy {
> @@ -1358,5 +1363,17 @@ connector {
>  					 PDO_FIXED_DUAL_ROLE |
>  					 PDO_FIXED_USB_COMM |
>  					 PDO_FIXED_DATA_SWAP)>;
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +				pm8150b_role_switch_in: endpoint {
I'd rather this be moved to the pmic dt as well, under the tcpm
definition

Konrad

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

* Re: [PATCH v9 3/7] arm64: dts: qcom: pm8150b: Add a TCPM description
  2023-08-16 11:51 ` [PATCH v9 3/7] arm64: dts: qcom: pm8150b: Add a TCPM description Bryan O'Donoghue
@ 2023-08-26 10:55   ` Konrad Dybcio
  0 siblings, 0 replies; 13+ messages in thread
From: Konrad Dybcio @ 2023-08-26 10:55 UTC (permalink / raw)
  To: Bryan O'Donoghue, agross, andersson, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: linux-arm-msm, devicetree, linux-kernel

On 16.08.2023 13:51, Bryan O'Donoghue wrote:
> Type-C port management functionality lives inside of the PMIC block on
> pm8150b.
> 
> The Type-C port management logic controls orientation detection, vbus/vconn
> sense and to send/receive Type-C Power Domain messages.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> ---
>  arch/arm64/boot/dts/qcom/pm8150b.dtsi | 40 +++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/pm8150b.dtsi b/arch/arm64/boot/dts/qcom/pm8150b.dtsi
> index 66752cc063d60..136e5f96a3d53 100644
> --- a/arch/arm64/boot/dts/qcom/pm8150b.dtsi
> +++ b/arch/arm64/boot/dts/qcom/pm8150b.dtsi
> @@ -59,6 +59,46 @@ pm8150b_vbus: usb-vbus-regulator@1100 {
>  			reg = <0x1100>;
>  		};
>  
> +		pm8150b_typec: typec@1500 {
> +			compatible = "qcom,pm8150b-typec";
> +			status = "disabled";
status last

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad


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

* Re: [PATCH v9 7/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy
  2023-08-16 11:51 ` [PATCH v9 7/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy Bryan O'Donoghue
@ 2023-08-26 10:56   ` Konrad Dybcio
  0 siblings, 0 replies; 13+ messages in thread
From: Konrad Dybcio @ 2023-08-26 10:56 UTC (permalink / raw)
  To: Bryan O'Donoghue, agross, andersson, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss
  Cc: linux-arm-msm, devicetree, linux-kernel

On 16.08.2023 13:51, Bryan O'Donoghue wrote:
> Switch on USB orientation-switching for usb_1_qmp via TCPM. Detecting the
> orientation switch is required to get the PHY to reset and bring-up the PHY
> with the CC lines set to the appropriate lane.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> ---
>  arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 12 ++++++++++++
>  arch/arm64/boot/dts/qcom/sm8250.dtsi     |  1 +
>  2 files changed, 13 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> index 3e34f4e2af14a..b878d765f8c42 100644
> --- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> @@ -1290,6 +1290,11 @@ &usb_1_qmpphy {
>  
>  	vdda-phy-supply = <&vreg_l9a_1p2>;
>  	vdda-pll-supply = <&vreg_l18a_0p92>;
> +	orientation-switch;
> +};
> +
> +&usb_1_qmpphy_out {
> +	remote-endpoint = <&pm8150b_typec_mux_in>;
>  };
>  
>  &usb_2 {
> @@ -1374,6 +1379,13 @@ pm8150b_role_switch_in: endpoint {
>  					remote-endpoint = <&usb_1_role_switch_out>;
>  				};
>  			};
> +
> +			port@1 {
> +				reg = <1>;
> +				pm8150b_typec_mux_in: endpoint {
should also go to pmic dt

Konrad

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

* Re: (subset) [PATCH v9 0/7] Add Qualcomm PMIC TPCM support
  2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
                   ` (6 preceding siblings ...)
  2023-08-16 11:51 ` [PATCH v9 7/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy Bryan O'Donoghue
@ 2023-09-20  2:13 ` Bjorn Andersson
  7 siblings, 0 replies; 13+ messages in thread
From: Bjorn Andersson @ 2023-09-20  2:13 UTC (permalink / raw)
  To: agross, konrad.dybcio, lee, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, sboyd, luca.weiss, Bryan O'Donoghue
  Cc: linux-arm-msm, devicetree, linux-kernel


On Wed, 16 Aug 2023 12:51:44 +0100, Bryan O'Donoghue wrote:
> V9:
> 
> - Reuses glink ports {} definitions and locations per Bjorn's request
> - Adds additional port @ 2 to 8250.dtsi as a result - Bjorn
> - Drops logic in previous patch
>   "dt-bindings: phy: qcom,sc7180-qmp-usb3-dp-phy: Add input and output ports"
>   No longer required
> - I've amended the names of the endpoints to match sc8280xp too - bod
> 
> [...]

Applied, thanks!

[2/7] arm64: dts: qcom: sm8250: Define ports for qmpphy orientation-switching
      commit: ea96b90a58cf5d2e91ac177f081118ff26b85c1d
[3/7] arm64: dts: qcom: pm8150b: Add a TCPM description
      commit: 5a0539515cbfad30b3e08a00004ed0c86136add5
[4/7] arm64: dts: qcom: qrb5165-rb5: Switch on Type-C VBUS boost
      commit: c627d7337aae4d83b4db621fdb9e8f638056dcee
[5/7] arm64: dts: qcom: qrb5165-rb5: Switch on basic TCPM
      commit: 5b1b6da9d39d515395d85dc678ddac7ff1689438
[6/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for usb_1
      commit: 25defdca4d902b338c05bc01a1de1064a6d3b7f3
[7/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy
      commit: 45219a6b9497cb7713dd2bc221248ee1a7e9bb3d

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>

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

* Re: (subset) [PATCH v9 1/7] dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types
  2023-08-16 11:51 ` [PATCH v9 1/7] dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types Bryan O'Donoghue
@ 2023-09-20  9:19   ` Lee Jones
  0 siblings, 0 replies; 13+ messages in thread
From: Lee Jones @ 2023-09-20  9:19 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, lee, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, sboyd, luca.weiss,
	Bryan O'Donoghue
  Cc: linux-arm-msm, devicetree, linux-kernel, Krzysztof Kozlowski

On Wed, 16 Aug 2023 12:51:45 +0100, Bryan O'Donoghue wrote:
> Add the PMIC Type-C port driver to the list of devices.
> 
> 

Applied, thanks!

[1/7] dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types
      commit: 852355e98e45ec7f9adf06de92bba063424aa7cb

--
Lee Jones [李琼斯]


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

end of thread, other threads:[~2023-09-20  9:19 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-16 11:51 [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bryan O'Donoghue
2023-08-16 11:51 ` [PATCH v9 1/7] dt-bindings: mfd: qcom,spmi-pmic: Add typec to SPMI device types Bryan O'Donoghue
2023-09-20  9:19   ` (subset) " Lee Jones
2023-08-16 11:51 ` [PATCH v9 2/7] arm64: dts: qcom: sm8250: Define ports for qmpphy orientation-switching Bryan O'Donoghue
2023-08-16 11:51 ` [PATCH v9 3/7] arm64: dts: qcom: pm8150b: Add a TCPM description Bryan O'Donoghue
2023-08-26 10:55   ` Konrad Dybcio
2023-08-16 11:51 ` [PATCH v9 4/7] arm64: dts: qcom: qrb5165-rb5: Switch on Type-C VBUS boost Bryan O'Donoghue
2023-08-16 11:51 ` [PATCH v9 5/7] arm64: dts: qcom: qrb5165-rb5: Switch on basic TCPM Bryan O'Donoghue
2023-08-16 11:51 ` [PATCH v9 6/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM usb-role-switching for usb_1 Bryan O'Donoghue
2023-08-26 10:54   ` Konrad Dybcio
2023-08-16 11:51 ` [PATCH v9 7/7] arm64: dts: qcom: qrb5165-rb5: Switch on TCPM orientation-switch for usb_1_qmpphy Bryan O'Donoghue
2023-08-26 10:56   ` Konrad Dybcio
2023-09-20  2:13 ` (subset) [PATCH v9 0/7] Add Qualcomm PMIC TPCM support Bjorn Andersson

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).