diff --git a/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi b/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi
index 0b240eb96382a28c31f0d4b562dc45b821612793..3572f720fb80626ad20968f78a23525810b29af7 100644
--- a/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi
+++ b/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi
@@ -192,6 +192,7 @@
 			#address-cells = <1>;
 			#size-cells = <1>;
 
+			qcom,override-usb-current;
 			qcom,iterm-ma = <100>;
 			qcom,float-voltage-mv = <4200>;
 			qcom,resume-delta-mv = <200>;
diff --git a/arch/arm/boot/dts/qcom/msm8952.dtsi b/arch/arm/boot/dts/qcom/msm8952.dtsi
index 696b12a6b9f3e4541703ef8c681efab597209395..b92791d026076e7a7c8c29cd11dc9576656a510b 100644
--- a/arch/arm/boot/dts/qcom/msm8952.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8952.dtsi
@@ -1175,7 +1175,7 @@
 		qcom,phy-dvdd-always-on;
 		qcom,boost-sysclk-with-streaming;
 		qcom,axi-prefetch-enable;
-		qcom,enable-sdp-typec-current-limit;
+		qcom,floated-charger-enable = <1>;
 
 		qcom,msm-bus,name = "usb2";
 		qcom,msm-bus,num-cases = <3>;
diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c
index 16f237be01306b05dc4ede25b98815f8cbb9cb55..b4e49f22966785f606b06e1e1da1f46f75e6dd17 100644
--- a/drivers/usb/phy/phy-msm-usb.c
+++ b/drivers/usb/phy/phy-msm-usb.c
@@ -4353,6 +4353,7 @@ static void msm_otg_set_vbus_state(int online)
 			return;
 	} else {
 		pr_debug("PMIC: BSV clear\n");
+		motg->typec_current_max = 0;
 		msm_otg_dbg_log_event(&motg->phy, "PMIC: BSV CLEAR",
 				init, motg->inputs);
 		motg->is_ext_chg_detected = false;