一、代码修改
diff --git a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi
index 8de5830..94a517c 100755
--- a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi
+++ b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi
@@ -209,3 +209,7 @@
&wcd_rst_gpio {
status = "disabled";
};
+
+&usb3 {
+ qcom,detect-dpdm-floating;
+};
diff --git a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi
index 12b9502..676b124 100755
--- a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi
+++ b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi
@@ -174,6 +174,7 @@
qcom,chg-led-support;
qcom,external-typec;
qcom,typec-psy-name = "typec";
+ qcom,override-usb-current;
qcom,thermal-mitigation = <3000 2500 2000 1500 1000 500 0>;
status = "okay";
};
diff --git a/kernel/msm-3.18/drivers/usb/dwc3/dwc3-msm.c b/kernel/msm-3.18/drivers/usb/dwc3/dwc3-msm.c
index d0520b9..67c5f94 100755
--- a/kernel/msm-3.18/drivers/usb/dwc3/dwc3-msm.c
+++ b/kernel/msm-3.18/drivers/usb/dwc3/dwc3-msm.c
@@ -3471,6 +3471,7 @@ static void dwc3_check_float_lines(struct dwc3_msm *mdwc)
mdwc->chg_type = DWC3_PROPRIETARY_CHARGER;
mdwc->otg_state = OTG_STATE_B_IDLE;
pm_runtime_put_sync(mdwc->dev);
+ dwc3_msm_gadget_vbus_draw(mdwc, 2000);
dbg_event(0xFF, "FLT psync",
atomic_read(&mdwc->dev->power.usage_count));

本文介绍了Android 7.1系统中针对非标准充电的修改,涉及kernel和设备树配置,如添加qcom,detect-dpdm-floating属性和qcom,override-usb-current属性。详细解析了USB设备插入后的中断处理,充电类型识别及电流限制处理流程,包括dwc3_otg_sm_work函数中的状态切换和dwc3_check_float_lines函数的浮点检测,确保非标充电时设置正确电流。"
132821779,19687622,OpenCL编程:创建测试程序,"['编程', 'OpenCL', '并行计算', '服务器', 'Linux']
最低0.47元/天 解锁文章
227

被折叠的 条评论
为什么被折叠?



