From 7e7bd628a9bfbec1f8a404613e813f8100610e95 Mon Sep 17 00:00:00 2001 From: Fenglin Wu Date: Fri, 14 May 2021 13:11:02 +0800 Subject: [PATCH] ARM: dts: msm: Add initial board files for QRD Holi-pm6125 Add initial device tree support with necessary PMIC configuration for QRD Holi platform with PM6125. Change-Id: I5a2fd75d5eb8b469d3da1986756cf85cf3823d0a --- qcom/Makefile | 7 +- qcom/holi-qrd-pm6125-overlay.dts | 15 ++ qcom/holi-qrd-pm6125.dts | 14 ++ qcom/holi-qrd-pm6125.dtsi | 317 +++++++++++++++++++++++++++++++ 4 files changed, 351 insertions(+), 2 deletions(-) create mode 100644 qcom/holi-qrd-pm6125-overlay.dts create mode 100644 qcom/holi-qrd-pm6125.dts create mode 100644 qcom/holi-qrd-pm6125.dtsi diff --git a/qcom/Makefile b/qcom/Makefile index 9d5d6f68bb88..d24ef004dd10 100644 --- a/qcom/Makefile +++ b/qcom/Makefile @@ -105,7 +105,8 @@ dtbo-$(CONFIG_ARCH_HOLI) += holi-rumi-overlay.dtbo \ holi-cdp-pm6125-overlay.dtbo \ holi-cdp-lcd-pm6125-overlay.dtbo \ holi-mtp-usbc-pm6125-overlay.dtbo \ - holi-mtp-pm6125-nopmi-overlay.dtbo + holi-mtp-pm6125-nopmi-overlay.dtbo \ + holi-qrd-pm6125-overlay.dtbo holi-rumi-overlay.dtbo-base := holi.dtb holi-mtp-overlay.dtbo-base := holi.dtb @@ -119,6 +120,7 @@ holi-cdp-pm6125-overlay.dtbo-base := holi.dtb holi-cdp-lcd-pm6125-overlay.dtbo-base := holi.dtb holi-mtp-usbc-pm6125-overlay.dtbo-base := holi.dtb holi-mtp-pm6125-nopmi-overlay.dtbo-base := holi.dtb +holi-qrd-pm6125-overlay.dtbo-base := holi.dtb else dtb-$(CONFIG_ARCH_HOLI) += holi-rumi.dtb \ @@ -132,7 +134,8 @@ dtb-$(CONFIG_ARCH_HOLI) += holi-rumi.dtb \ holi-cdp-pm6125.dtb \ holi-cdp-lcd-pm6125.dtb \ holi-mtp-usbc-pm6125.dtb \ - holi-mtp-pm6125-nopmi.dtb + holi-mtp-pm6125-nopmi.dtb \ + holi-qrd-pm6125.dtb endif diff --git a/qcom/holi-qrd-pm6125-overlay.dts b/qcom/holi-qrd-pm6125-overlay.dts new file mode 100644 index 000000000000..afdb8ec9f9f0 --- /dev/null +++ b/qcom/holi-qrd-pm6125-overlay.dts @@ -0,0 +1,15 @@ +/dts-v1/; +/plugin/; + +#include "holi-pm6125-overlay.dtsi" +#include "holi-regulators-pm6125.dtsi" +#include "holi-qrd-pm6125.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Holi QRD PM6125"; + compatible = "qcom,holi-qrd", "qcom,holi", "qcom,qrd"; + qcom,msm-id = <454 0x10000>, <472 0x10000>; + qcom,board-id = <0xb 0>; + qcom,pmic-id-size = <4>; + qcom,pmic-id = <0x2D 0x0 0x2E 0x0>; +}; diff --git a/qcom/holi-qrd-pm6125.dts b/qcom/holi-qrd-pm6125.dts new file mode 100644 index 000000000000..35a00d66eb1c --- /dev/null +++ b/qcom/holi-qrd-pm6125.dts @@ -0,0 +1,14 @@ +/dts-v1/; + +#include "holi.dtsi" +#include "holi-pm6125-overlay.dtsi" +#include "holi-regulators-pm6125.dtsi" +#include "holi-qrd-pm6125.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Holi QRD PM6125"; + compatible = "qcom,holi-qrd", "qcom,holi", "qcom,qrd"; + qcom,board-id = <0xb 0>; + qcom,pmic-id-size = <4>; + qcom,pmic-id = <0x2D 0x0 0x2E 0x0>; +}; diff --git a/qcom/holi-qrd-pm6125.dtsi b/qcom/holi-qrd-pm6125.dtsi new file mode 100644 index 000000000000..4a89749a9f4c --- /dev/null +++ b/qcom/holi-qrd-pm6125.dtsi @@ -0,0 +1,317 @@ +#include +#include +#include "holi-pmic-overlay-pm6125.dtsi" +#include + +&sdhc_1 { + status = "ok"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&sdc1_on>; + pinctrl-1 = <&sdc1_off>; + + vdd-supply = <&L24A>; + qcom,vdd-voltage-level = <2960000 2960000>; + qcom,vdd-current-level = <0 570000>; + + vdd-io-supply = <&L11A>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <0 325000>; +}; + +&sdhc_2 { + status = "ok"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&sdc2_on>; + pinctrl-1 = <&sdc2_off>; + + vdd-supply = <&L22A>; + qcom,vdd-voltage-level = <2960000 2960000>; + qcom,vdd-current-level = <0 800000>; + + vdd-io-supply = <&L5A>; + qcom,vdd-io-voltage-level = <1800000 2960000>; + qcom,vdd-io-current-level = <0 22000>; + + cd-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>; +}; + +&ufsphy_mem { + compatible = "qcom,ufs-phy-qmp-v3"; + + vdda-phy-supply = <&L18A>; + vdda-pll-supply = <&L22A>; + vdda-phy-max-microamp = <62900>; + vdda-pll-max-microamp = <18300>; + + status = "ok"; +}; + +&ufshc_mem { + vdd-hba-supply = <&gcc_ufs_phy_gdsc>; + vdd-hba-fixed-regulator; + + vcc-supply = <&L7E>; + vcc-voltage-level = <2950000 2960000>; + vcc-max-microamp = <800000>; + + vccq2-supply = <&L12A>; + vccq2-max-microamp = <800000>; + vccq2-voltage-level = <1800000 1800000>; + + qcom,vddp-ref-clk-supply = <&L22A>; + qcom,vddp-ref-clk-max-microamp = <100>; + + status = "ok"; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + label = "gpio-keys"; + + pinctrl-names = "default"; + pinctrl-0 = <&key_vol_up_default>; + + vol_up { + label = "volume_up"; + gpios = <&pmr735a_gpios 1 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + linux,code = ; + gpio-key,wakeup; + debounce-interval = <15>; + linux,can-disable; + }; + }; + + qrd_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "qg-batterydata-atl436186020H_3780mAh.dtsi" + #include "qg-batterydata-atl466271_3300mAh.dtsi" + }; +}; + +&pm7250b_charger { + status = "ok"; + #io-channel-cells = <1>; + io-channels = <&pm7250b_vadc ADC5_USB_IN_V_16>, + <&pm7250b_vadc ADC5_USB_IN_I>, + <&pm7250b_vadc ADC5_CHG_TEMP>, + <&pm7250b_vadc ADC5_DIE_TEMP>, + <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>, + <&pm7250b_vadc ADC5_SBUx>, + <&pm7250b_vadc ADC5_VPH_PWR>, + <&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>, + <&pm7250b_qg PSY_IIO_RESISTANCE_ID>, + <&pm7250b_qg PSY_IIO_VOLTAGE_NOW>, + <&pm7250b_qg PSY_IIO_TEMP>, + <&pm7250b_qg PSY_IIO_CAPACITY>, + <&pm7250b_qg PSY_IIO_VOLTAGE_OCV>, + <&pm7250b_qg PSY_IIO_VOLTAGE_AVG>, + <&pm7250b_qg PSY_IIO_DEBUG_BATTERY>, + <&pm7250b_qg PSY_IIO_REAL_CAPACITY>, + <&pm7250b_qg PSY_IIO_CC_SOC>, + <&pm7250b_qg PSY_IIO_CURRENT_NOW>, + <&pm7250b_qg PSY_IIO_VOLTAGE_MAX>, + <&pm7250b_qg PSY_IIO_CHARGE_FULL>, + <&pm7250b_qg PSY_IIO_CHARGE_COUNTER>, + <&pm7250b_qg PSY_IIO_CYCLE_COUNT>, + <&pm7250b_qg PSY_IIO_CHARGE_FULL_DESIGN>, + <&pm7250b_qg PSY_IIO_TIME_TO_FULL_NOW>, + <&smb1394_div2_cp_primary PSY_IIO_PARALLEL_MODE>, + <&smb1394_div2_cp_primary PSY_IIO_PARALLEL_OUTPUT_MODE>, + <&smb1394_div2_cp_primary PSY_IIO_MIN_ICL>, + <&smb1394_div2_cp_primary PSY_IIO_CP_SWITCHER_EN>, + <&smb1394_div2_cp_primary PSY_IIO_CP_ENABLE>, + <&smb1394_div2_cp_primary PSY_IIO_CP_ILIM>, + <&smb1394_div2_cp_primary PSY_IIO_CP_DIE_TEMP>; + io-channel-names = "usb_in_voltage", + "usb_in_current", + "chg_temp", + "die_temp", + "conn_temp", + "sbux_res", + "vph_voltage", + "skin_temp", + "resistance_id", + "voltage_now", + "temp", + "capacity", + "voltage_ocv", + "voltage_avg", + "debug_battery", + "real_capacity", + "cc_soc", + "current_now", + "voltage_max", + "charge_full", + "charge_counter", + "cycle_count", + "charge_full_design", + "time_to_full_now", + "cp_parallel_mode", + "cp_parallel_output_mode", + "cp_min_icl", + "cp_switcher_en", + "cp_enable", + "cp_ilim", + "cp_die_temp"; + qcom,battery-data = <&qrd_batterydata>; + qcom,sec-charger-config = <1>; + qcom,auto-recharge-soc = <98>; + qcom,step-charging-enable; + qcom,sw-jeita-enable; + qcom,charger-temp-max = <800>; + qcom,smb-temp-max = <800>; + qcom,suspend-input-on-debug-batt; + qcom,fcc-stepping-enable; + qcom,fcc-step-delay-ms = <100>; + qcom,fcc-step-size-ua = <100000>; + qcom,smb-internal-pull-kohm = <0>; + qcom,en-skin-therm-mitigation; + qcom,thermal-mitigation = <10000000 9500000 9000000 8500000 8000000 + 7500000 7000000 6500000 6000000 5500000 5000000 4500000 + 4000000 3500000 3000000 2500000 2000000 1500000 1000000 + 500000>; +}; + +&pm7250b_qg { + status = "ok"; + #io-channel-cells = <1>; + io-channels = <&pm7250b_vadc ADC5_BAT_THERM_100K_PU>, + <&pm7250b_vadc ADC5_BAT_ID_100K_PU>, + <&pm7250b_charger PSY_IIO_INPUT_CURRENT_LIMITED>, + <&pm7250b_charger PSY_IIO_RECHARGE_SOC>, + <&pm7250b_charger PSY_IIO_FORCE_RECHARGE>, + <&pm7250b_charger PSY_IIO_CHARGE_DONE>, + <&smb1394_div2_cp_primary PSY_IIO_CP_ENABLE>; + io-channel-names = "batt-therm", + "batt-id", + "input_current_limited", + "recharge_soc", + "force_recharge", + "charge_done", + "cp_charging_enabled"; + qcom,qg-iterm-ma = <150>; + qcom,hold-soc-while-full; + qcom,linearize-soc; + qcom,cl-feedback-on; + qcom,tcss-enable; + qcom,fvss-enable; + qcom,fvss-vbatt-mv = <3300>; + qcom,bass-enable; + qcom,use-cp-iin-sns; +}; + +&pm7250b_charger { + dpdm-supply = <&qusb_phy0>; + + 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>, <&pm7250b_charger>, <&eud>; + + #io-channel-cells = <1>; + io-channels= <&pm7250b_charger PSY_IIO_USB_REAL_TYPE>; + io-channel-names = "chg_type"; +}; + +&pm7250b_vadc { + smb1390_therm@e { + qcom,scale-fn-type = ; + }; +}; + +&pm7250b_gpios { + smb_stat { + smb_stat_default: smb_stat_default { + pins = "gpio6"; + function = "normal"; + input-enable; + bias-pull-up; + qcom,pull-up-strength = ; + power-source = <0>; + }; + }; +}; + +&qupv3_se10_i2c { + status = "ok"; + #include "smb1394.dtsi" +}; + +&smb1394 { + interrupts = <0x2 0xc5 0x0 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&spmi_bus>; + interrupt-names = "smb1394"; + pinctrl-names = "default"; + qcom,enable-toggle-stat; + pinctrl-0 = <&smb_stat_default>; + status = "ok"; +}; + +&smb1394_div2_cp_primary { + io-channels = <&pm7250b_vadc ADC5_AMUX_THM2>, + <&pm7250b_charger PSY_IIO_USB_REAL_TYPE>, + <&pm7250b_charger PSY_IIO_ADAPTER_CC_MODE>, + <&pm7250b_charger PSY_IIO_PD_CURRENT_MAX>, + <&pm7250b_charger PSY_IIO_USB_INPUT_CURRENT_SETTLED>, + <&pm7250b_charger PSY_IIO_SMB_EN_MODE>, + <&pm7250b_charger PSY_IIO_SMB_EN_REASON>; + io-channel-names = "die_temp", + "real_type", + "adapter_cc_mode", + "pd_current_max", + "input_current_settled", + "smb_en_mode", + "smb_en_reason"; + qcom,parallel-input-mode = <1>; /* USBIN */ + qcom,parallel-output-mode = <2>; /* VBAT */ + status = "ok"; +};