arm64: dts: qcom: sm7225-fairphone-fp4: Enable USB role switching
Configure the Type-C and VBUS regulator on PM7250B and wire it up to the USB PHY, so that USB role and orientation switching works. For now USB Power Delivery properties are skipped / disabled, so that the (presumably) bootloader-configured charger doesn't get messed with and we can charge the phone with at least some amount of power. Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://lore.kernel.org/r/20240530-fp4-tcpm-v3-3-612d4bbd5e09@fairphone.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
parent
6b5b15a1d7
commit
6814d454c2
@ -375,6 +375,7 @@
|
||||
};
|
||||
|
||||
&usb_1_dwc3 {
|
||||
/delete-property/ usb-role-switch;
|
||||
maximum-speed = "super-speed";
|
||||
dr_mode = "peripheral";
|
||||
};
|
||||
|
@ -1715,10 +1715,39 @@
|
||||
<&gcc GCC_USB3_DP_PHY_PRIM_BCR>;
|
||||
reset-names = "phy", "common";
|
||||
|
||||
orientation-switch;
|
||||
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <1>;
|
||||
|
||||
status = "disabled";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
usb_1_qmpphy_out: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
usb_1_qmpphy_usb_ss_in: endpoint {
|
||||
remote-endpoint = <&usb_1_dwc3_ss_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
usb_1_qmpphy_dp_in: endpoint {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dc_noc: interconnect@9160000 {
|
||||
@ -1894,6 +1923,27 @@
|
||||
snps,hird-threshold = /bits/ 8 <0x10>;
|
||||
phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
usb-role-switch;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
usb_1_dwc3_hs_out: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
usb_1_dwc3_ss_out: endpoint {
|
||||
remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
|
||||
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
|
||||
#include <dt-bindings/usb/pd.h>
|
||||
#include "sm7225.dtsi"
|
||||
#include "pm6150l.dtsi"
|
||||
#include "pm6350.dtsi"
|
||||
@ -543,6 +544,53 @@
|
||||
};
|
||||
};
|
||||
|
||||
&pm7250b_typec {
|
||||
vdd-pdphy-supply = <&vreg_l3a>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
connector {
|
||||
compatible = "usb-c-connector";
|
||||
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
self-powered;
|
||||
|
||||
/*
|
||||
* Disable USB Power Delivery for now, seems to need extra work
|
||||
* to support role switching while also letting the battery
|
||||
* charge still - without charger driver
|
||||
*/
|
||||
typec-power-opmode = "default";
|
||||
pd-disable;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
pm7250b_hs_in: endpoint {
|
||||
remote-endpoint = <&usb_1_dwc3_hs_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
pm7250b_ss_in: endpoint {
|
||||
remote-endpoint = <&usb_1_qmpphy_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pm7250b_vbus {
|
||||
regulator-min-microamp = <500000>;
|
||||
regulator-max-microamp = <1500000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pmk8350_rtc {
|
||||
status = "okay";
|
||||
};
|
||||
@ -726,7 +774,11 @@
|
||||
|
||||
&usb_1_dwc3 {
|
||||
maximum-speed = "super-speed";
|
||||
dr_mode = "peripheral";
|
||||
dr_mode = "otg";
|
||||
};
|
||||
|
||||
&usb_1_dwc3_hs_out {
|
||||
remote-endpoint = <&pm7250b_hs_in>;
|
||||
};
|
||||
|
||||
&usb_1_hsphy {
|
||||
@ -744,6 +796,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_1_qmpphy_out {
|
||||
remote-endpoint = <&pm7250b_ss_in>;
|
||||
};
|
||||
|
||||
&wifi {
|
||||
vdd-0.8-cx-mx-supply = <&vreg_l4a>;
|
||||
vdd-1.8-xo-supply = <&vreg_l7a>;
|
||||
|
Loading…
x
Reference in New Issue
Block a user