ARM: dts: msm: Enable power delivery on Holi

Add DT nodes to enable power delivery feature on Holi.
This also enables the dynamic detection of cable connect
and disconnect and also enables to switch between host mode
and device mode by passing the pdphy node as extcon node
to USB node.
While at it add eud node as extcon as well to support spoof
disconnect feature as well.

Change-Id: Iaf6c961b5ba5cfb52445af19876c3359daabf46c
This commit is contained in:
Sriharsha Allenki 2020-08-24 15:00:47 +05:30 • committed by Gerrit - the friendly Code Review server
commit 89a7f049fa
6 changed files with 276 additions and 0 deletions

View file

@ -243,3 +243,53 @@
panel = <&dsi_rm69299_visionox_amoled_video>;
};
};
&pm7250b_charger {
smb5_vbus: qcom,smb5-vbus {
regulator-name = "smb5-vbus";
};
smb5_vconn: qcom,smb5-vconn {
regulator-name = "smb5-vconn";
};
};
&pm7250b_pdphy {
vdd-pdphy-supply = <&L3A>;
vbus-supply = <&smb5_vbus>;
vconn-supply = <&smb5_vconn>;
#io-channel-cells = <1>;
io-channels = <&pm7250b_charger PSY_IIO_PD_ACTIVE>,
<&pm7250b_charger PSY_IIO_TYPEC_CC_ORIENTATION>,
<&pm7250b_charger PSY_IIO_CONNECTOR_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_POWER_ROLE>,
<&pm7250b_charger PSY_IIO_PD_USB_SUSPEND_SUPPORTED>,
<&pm7250b_charger PSY_IIO_TYPEC_SRC_RP>,
<&pm7250b_charger PSY_IIO_PD_IN_HARD_RESET>,
<&pm7250b_charger PSY_IIO_PD_CURRENT_MAX>,
<&pm7250b_charger PSY_IIO_PR_SWAP>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MIN>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MAX>,
<&pm7250b_charger PSY_IIO_USB_REAL_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_MODE>,
<&pm7250b_charger PSY_IIO_PE_START>;
io-channel-names = "pd_active",
"typec_cc_orientation",
"connector_type",
"typec_power_role",
"pd_usb_suspend_supported",
"typec_src_rp",
"pd_in_hard_reset",
"pr_current_max",
"pr_swap",
"pd_voltage_min",
"pd_voltage_max",
"real_type",
"typec_mode",
"pe_start";
};
&usb0 {
extcon = <&pm7250b_pdphy>, <&eud>;
};

View file

@ -234,3 +234,53 @@
};
#include "camera/holi-camera-sensor-cdp.dtsi"
&pm7250b_charger {
smb5_vbus: qcom,smb5-vbus {
regulator-name = "smb5-vbus";
};
smb5_vconn: qcom,smb5-vconn {
regulator-name = "smb5-vconn";
};
};
&pm7250b_pdphy {
vdd-pdphy-supply = <&L3A>;
vbus-supply = <&smb5_vbus>;
vconn-supply = <&smb5_vconn>;
#io-channel-cells = <1>;
io-channels = <&pm7250b_charger PSY_IIO_PD_ACTIVE>,
<&pm7250b_charger PSY_IIO_TYPEC_CC_ORIENTATION>,
<&pm7250b_charger PSY_IIO_CONNECTOR_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_POWER_ROLE>,
<&pm7250b_charger PSY_IIO_PD_USB_SUSPEND_SUPPORTED>,
<&pm7250b_charger PSY_IIO_TYPEC_SRC_RP>,
<&pm7250b_charger PSY_IIO_PD_IN_HARD_RESET>,
<&pm7250b_charger PSY_IIO_PD_CURRENT_MAX>,
<&pm7250b_charger PSY_IIO_PR_SWAP>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MIN>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MAX>,
<&pm7250b_charger PSY_IIO_USB_REAL_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_MODE>,
<&pm7250b_charger PSY_IIO_PE_START>;
io-channel-names = "pd_active",
"typec_cc_orientation",
"connector_type",
"typec_power_role",
"pd_usb_suspend_supported",
"typec_src_rp",
"pd_in_hard_reset",
"pr_current_max",
"pr_swap",
"pd_voltage_min",
"pd_voltage_max",
"real_type",
"typec_mode",
"pe_start";
};
&usb0 {
extcon = <&pm7250b_pdphy>, <&eud>;
};

View file

@ -199,3 +199,53 @@
&pm6150a_amoled {
status = "ok"
};
&pm7250b_charger {
smb5_vbus: qcom,smb5-vbus {
regulator-name = "smb5-vbus";
};
smb5_vconn: qcom,smb5-vconn {
regulator-name = "smb5-vconn";
};
};
&pm7250b_pdphy {
vdd-pdphy-supply = <&L3A>;
vbus-supply = <&smb5_vbus>;
vconn-supply = <&smb5_vconn>;
#io-channel-cells = <1>;
io-channels = <&pm7250b_charger PSY_IIO_PD_ACTIVE>,
<&pm7250b_charger PSY_IIO_TYPEC_CC_ORIENTATION>,
<&pm7250b_charger PSY_IIO_CONNECTOR_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_POWER_ROLE>,
<&pm7250b_charger PSY_IIO_PD_USB_SUSPEND_SUPPORTED>,
<&pm7250b_charger PSY_IIO_TYPEC_SRC_RP>,
<&pm7250b_charger PSY_IIO_PD_IN_HARD_RESET>,
<&pm7250b_charger PSY_IIO_PD_CURRENT_MAX>,
<&pm7250b_charger PSY_IIO_PR_SWAP>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MIN>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MAX>,
<&pm7250b_charger PSY_IIO_USB_REAL_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_MODE>,
<&pm7250b_charger PSY_IIO_PE_START>;
io-channel-names = "pd_active",
"typec_cc_orientation",
"connector_type",
"typec_power_role",
"pd_usb_suspend_supported",
"typec_src_rp",
"pd_in_hard_reset",
"pr_current_max",
"pr_swap",
"pd_voltage_min",
"pd_voltage_max",
"real_type",
"typec_mode",
"pe_start";
};
&usb0 {
extcon = <&pm7250b_pdphy>, <&eud>;
};

View file

@ -253,3 +253,53 @@
};
#include "camera/holi-camera-sensor-mtp.dtsi"
&pm7250b_charger {
smb5_vbus: qcom,smb5-vbus {
regulator-name = "smb5-vbus";
};
smb5_vconn: qcom,smb5-vconn {
regulator-name = "smb5-vconn";
};
};
&pm7250b_pdphy {
vdd-pdphy-supply = <&L3A>;
vbus-supply = <&smb5_vbus>;
vconn-supply = <&smb5_vconn>;
#io-channel-cells = <1>;
io-channels = <&pm7250b_charger PSY_IIO_PD_ACTIVE>,
<&pm7250b_charger PSY_IIO_TYPEC_CC_ORIENTATION>,
<&pm7250b_charger PSY_IIO_CONNECTOR_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_POWER_ROLE>,
<&pm7250b_charger PSY_IIO_PD_USB_SUSPEND_SUPPORTED>,
<&pm7250b_charger PSY_IIO_TYPEC_SRC_RP>,
<&pm7250b_charger PSY_IIO_PD_IN_HARD_RESET>,
<&pm7250b_charger PSY_IIO_PD_CURRENT_MAX>,
<&pm7250b_charger PSY_IIO_PR_SWAP>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MIN>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MAX>,
<&pm7250b_charger PSY_IIO_USB_REAL_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_MODE>,
<&pm7250b_charger PSY_IIO_PE_START>;
io-channel-names = "pd_active",
"typec_cc_orientation",
"connector_type",
"typec_power_role",
"pd_usb_suspend_supported",
"typec_src_rp",
"pd_in_hard_reset",
"pr_current_max",
"pr_swap",
"pd_voltage_min",
"pd_voltage_max",
"real_type",
"typec_mode",
"pe_start";
};
&usb0 {
extcon = <&pm7250b_pdphy>, <&eud>;
};

View file

@ -328,3 +328,53 @@
qcom,bass-enable;
qcom,use-cp-iin-sns;
};
&pm7250b_charger {
smb5_vbus: qcom,smb5-vbus {
regulator-name = "smb5-vbus";
};
smb5_vconn: qcom,smb5-vconn {
regulator-name = "smb5-vconn";
};
};
&pm7250b_pdphy {
vdd-pdphy-supply = <&L3A>;
vbus-supply = <&smb5_vbus>;
vconn-supply = <&smb5_vconn>;
#io-channel-cells = <1>;
io-channels = <&pm7250b_charger PSY_IIO_PD_ACTIVE>,
<&pm7250b_charger PSY_IIO_TYPEC_CC_ORIENTATION>,
<&pm7250b_charger PSY_IIO_CONNECTOR_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_POWER_ROLE>,
<&pm7250b_charger PSY_IIO_PD_USB_SUSPEND_SUPPORTED>,
<&pm7250b_charger PSY_IIO_TYPEC_SRC_RP>,
<&pm7250b_charger PSY_IIO_PD_IN_HARD_RESET>,
<&pm7250b_charger PSY_IIO_PD_CURRENT_MAX>,
<&pm7250b_charger PSY_IIO_PR_SWAP>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MIN>,
<&pm7250b_charger PSY_IIO_PD_VOLTAGE_MAX>,
<&pm7250b_charger PSY_IIO_USB_REAL_TYPE>,
<&pm7250b_charger PSY_IIO_TYPEC_MODE>,
<&pm7250b_charger PSY_IIO_PE_START>;
io-channel-names = "pd_active",
"typec_cc_orientation",
"connector_type",
"typec_power_role",
"pd_usb_suspend_supported",
"typec_src_rp",
"pd_in_hard_reset",
"pr_current_max",
"pr_swap",
"pd_voltage_min",
"pd_voltage_max",
"real_type",
"typec_mode",
"pe_start";
};
&usb0 {
extcon = <&pm7250b_pdphy>, <&eud>;
};

View file

@ -379,6 +379,32 @@
interrupt-controller;
#interrupt-cells = <2>;
};
pm7250b_pdphy: qcom,usb-pdphy@1700 {
compatible = "qcom,qpnp-pdphy";
reg = <0x1700 0x100>;
interrupts = <0x2 0x17 0x0 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x1 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x2 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x3 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x4 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x5 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x6 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x7 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "sig-tx",
"sig-rx",
"msg-tx",
"msg-rx",
"msg-tx-failed",
"msg-tx-discarded",
"msg-rx-discarded",
"fr-swap";
qcom,default-sink-caps = <5000 3000>, /* 5V @ 3A */
<9000 3000>, /* 9V @ 3A */
<12000 2250>; /* 12V @ 2.25A */
};
};
qcom,pm7250b@3 {