Add type-c node to feature otg function and set usb-role-switch property
for usb_1_dwc3 to enable usb otg.

Reviewed-by: Konrad Dybcio <konrad.dyb...@linaro.org>
Signed-off-by: Jianhua Lu <lujianhua...@gmail.com>
---
Changes in v3:
  1. squash patch[3/3].
  2. update commit message.
  3. add pm8150b_vbus node.

No changes in v2:

 .../dts/qcom/sm8250-xiaomi-elish-common.dtsi  | 43 ++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi 
b/arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi
index 3d4ea428e4cb..946365f15a59 100644
--- a/arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi
@@ -6,6 +6,7 @@
 #include <dt-bindings/arm/qcom,ids.h>
 #include <dt-bindings/phy/phy.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/usb/pd.h>
 #include "sm8250.dtsi"
 #include "pm8150.dtsi"
 #include "pm8150b.dtsi"
@@ -627,6 +628,41 @@ vol_up_n: vol-up-n-state {
        };
 };
 
+&pm8150b_typec {
+       vdd-pdphy-supply = <&vreg_l2a_3p1>;
+       status = "okay";
+
+       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)>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               pm8150b_role_switch_in: endpoint {
+                                       remote-endpoint = 
<&usb_1_role_switch_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&pm8150b_vbus {
+       status = "okay";
+};
+
 &pon_pwrkey {
        status = "okay";
 };
@@ -664,11 +700,12 @@ &usb_1 {
 };
 
 &usb_1_dwc3 {
-       dr_mode = "peripheral";
+       dr_mode = "otg";
        maximum-speed = "high-speed";
        /* Remove USB3 phy */
        phys = <&usb_1_hsphy>;
        phy-names = "usb2-phy";
+       usb-role-switch;
 };
 
 &usb_1_hsphy {
@@ -678,6 +715,10 @@ &usb_1_hsphy {
        status = "okay";
 };
 
+&usb_1_role_switch_out {
+       remote-endpoint = <&pm8150b_role_switch_in>;
+};
+
 &ufs_mem_hc {
        vcc-supply = <&vreg_l17a_3p0>;
        vcc-max-microamp = <800000>;
-- 
2.41.0


Reply via email to