From 594b01cb804b0b95f2f7bb44d80ee4be503ee694 Mon Sep 17 00:00:00 2001 From: Rakesh Kota Date: Fri, 9 Sep 2022 18:50:48 +0530 Subject: [PATCH 1/2] ARM: dts: msm: Add PMIC support for ravelin Add spmi-pmic-arb devices for the primary SPMI buses. Add an SPMI debug bus device and associated child devices. Add PMIC Glink devices and their client devices and Glink SPMI debug controller device. Add common PMIC configurations for all ravelin platforms. Add PMI-specific support for ravelin on PM7250B and PMI632. Change-Id: I075cde889f014d756cdcd3cf82421088aab703b7 --- qcom/ravelin-atp.dtsi | 3 + qcom/ravelin-idp.dtsi | 3 + qcom/ravelin-pm7250b.dtsi | 200 ++++++++++++ qcom/ravelin-pmi632.dtsi | 230 ++++++++++++++ qcom/ravelin-pmic-overlay.dtsi | 560 +++++++++++++++++++++++++++++++++ qcom/ravelin-qrd.dtsi | 4 +- qcom/ravelin.dtsi | 84 ++++- 7 files changed, 1082 insertions(+), 2 deletions(-) create mode 100644 qcom/ravelin-pm7250b.dtsi create mode 100644 qcom/ravelin-pmi632.dtsi create mode 100644 qcom/ravelin-pmic-overlay.dtsi diff --git a/qcom/ravelin-atp.dtsi b/qcom/ravelin-atp.dtsi index dd619006..fadfd6ef 100644 --- a/qcom/ravelin-atp.dtsi +++ b/qcom/ravelin-atp.dtsi @@ -1,3 +1,6 @@ +#include "ravelin-pmic-overlay.dtsi" +#include "ravelin-pm7250b.dtsi" + &soc { }; diff --git a/qcom/ravelin-idp.dtsi b/qcom/ravelin-idp.dtsi index 17f1e228..17e52415 100644 --- a/qcom/ravelin-idp.dtsi +++ b/qcom/ravelin-idp.dtsi @@ -1,2 +1,5 @@ +#include "ravelin-pmic-overlay.dtsi" +#include "ravelin-pm7250b.dtsi" + &soc { }; diff --git a/qcom/ravelin-pm7250b.dtsi b/qcom/ravelin-pm7250b.dtsi new file mode 100644 index 00000000..2b9c5da7 --- /dev/null +++ b/qcom/ravelin-pm7250b.dtsi @@ -0,0 +1,200 @@ +#include +#include +#include "pm7250b.dtsi" + +&soc { + qcom,pmic_glink { + status = "okay"; + }; + + qcom,pmic_glink_log { + compatible = "qcom,pmic-glink"; + qcom,pmic-glink-channel = "PMIC_LOGS_ADSP_APPS"; + + qcom,battery_debug { + compatible = "qcom,battery-debug"; + }; + + qcom,charger_ulog_glink { + compatible = "qcom,charger-ulog-glink"; + }; + + spmi_glink_debug: qcom,spmi_glink_debug { + compatible = "qcom,spmi-glink-debug"; + #address-cells = <1>; + #size-cells = <0>; + depends-on-supply = <&spmi0_bus>; + + /* Primary SPMI bus */ + spmi@0 { + reg = <0>; + #address-cells = <2>; + #size-cells = <0>; + + qcom,pm7250b-debug@8 { + compatible = "qcom,spmi-pmic"; + reg = <8 SPMI_USID>; + qcom,can-sleep; + }; + }; + }; + }; +}; + +&glink_edge { + qcom,pmic_glink_rpmsg { + qcom,glink-channels = "PMIC_RTR_ADSP_APPS"; + }; + + qcom,pmic_glink_log_rpmsg { + qcom,glink-channels = "PMIC_LOGS_ADSP_APPS"; + qcom,intents = <0x800 5 + 0xc00 3 + 0x2000 1>; + }; +}; + +&battery_charger { + status = "okay"; +}; + +&ucsi { + status = "okay"; +}; + +&altmode { + status = "okay"; +}; + +&spmi0_debug_bus { + qcom,pm7250b-debug@8 { + compatible = "qcom,spmi-pmic"; + reg = <8 SPMI_USID>; + #address-cells = <2>; + #size-cells = <0>; + qcom,can-sleep; + }; + + qcom,pm7250b-debug@9 { + compatible = "qcom,spmi-pmic"; + reg = <9 SPMI_USID>; + #address-cells = <2>; + #size-cells = <0>; + qcom,can-sleep; + }; +}; + +&pm7250b_2 { + /* Slave ID - 8 */ + reg = <8 SPMI_USID>; +}; + +&pm7250b_3 { + /* Slave ID - 9 */ + reg = <9 SPMI_USID>; +}; + +&pm7250b_clkdiv { + clocks = <&rpmhcc RPMH_CXO_CLK>; +}; + +&pm7250b_vadc { + interrupts = <0x8 0x31 0x0 IRQ_TYPE_EDGE_RISING>; + + pm7250b_usb_conn_therm { + reg = ; + label = "pm7250b_usb_conn_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; + + pm7250b_charger_skin_therm { + reg = ; + label = "pm7250b_charger_skin_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; +}; + +&pm7250b_adc_tm { + interrupts = <0x8 0x35 0x0 IRQ_TYPE_EDGE_RISING>; + io-channels = <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>, + <&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>; + + pm7250b_usb_conn_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + + pm7250b_charger_skin_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; +}; + +&thermal_zones { + sys-therm-6 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pm7250b_adc_tm ADC5_AMUX_THM3_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + sys-therm-5 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pm7250b_adc_tm ADC5_AMUX_THM1_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; +}; + +&pm7250b_tz { + interrupts = <0x8 0x24 0x0 IRQ_TYPE_EDGE_BOTH>; +}; + +&pm7250b_bcl { + interrupts = <0x8 0x1d 0x0 IRQ_TYPE_EDGE_RISING>, + <0x8 0x1d 0x1 IRQ_TYPE_EDGE_RISING>, + <0x8 0x1d 0x2 IRQ_TYPE_EDGE_RISING>; +}; + +/* Below peripherals are supported over ADSP Glink */ +&pm7250b_charger { + status = "disabled"; +}; + +&pm7250b_qg { + status = "disabled"; +}; + +&pm7250b_pdphy { + status = "disabled"; +}; diff --git a/qcom/ravelin-pmi632.dtsi b/qcom/ravelin-pmi632.dtsi new file mode 100644 index 00000000..acd22cb8 --- /dev/null +++ b/qcom/ravelin-pmi632.dtsi @@ -0,0 +1,230 @@ +#include +#include +#include "pmi632.dtsi" + +&soc { + qcom,pmic_glink { + status = "okay"; + }; + + qcom,pmic_glink_log { + compatible = "qcom,pmic-glink"; + qcom,pmic-glink-channel = "PMIC_LOGS_ADSP_APPS"; + + qcom,battery_debug { + compatible = "qcom,battery-debug"; + }; + + qcom,charger_ulog_glink { + compatible = "qcom,charger-ulog-glink"; + }; + + spmi_glink_debug: qcom,spmi_glink_debug { + compatible = "qcom,spmi-glink-debug"; + #address-cells = <1>; + #size-cells = <0>; + depends-on-supply = <&spmi0_bus>; + + /* Primary SPMI bus */ + spmi@0 { + reg = <0>; + #address-cells = <2>; + #size-cells = <0>; + + qcom,pmi632-debug@2 { + compatible = "qcom,spmi-pmic"; + reg = <2 SPMI_USID>; + qcom,can-sleep; + }; + }; + }; + }; +}; + +&glink_edge { + qcom,pmic_glink_rpmsg { + qcom,glink-channels = "PMIC_RTR_ADSP_APPS"; + }; + + qcom,pmic_glink_log_rpmsg { + qcom,glink-channels = "PMIC_LOGS_ADSP_APPS"; + qcom,intents = <0x800 5 + 0xc00 3 + 0x2000 1>; + }; +}; + +&battery_charger { + status = "okay"; +}; + +&ucsi { + status = "okay"; +}; + +&altmode { + status = "disabled"; +}; + +&spmi0_debug_bus { + qcom,pmi632-debug@2 { + compatible = "qcom,spmi-pmic"; + reg = <2 SPMI_USID>; + #address-cells = <2>; + #size-cells = <0>; + qcom,can-sleep; + }; + + qcom,pmi632-debug@3 { + compatible = "qcom,spmi-pmic"; + reg = <3 SPMI_USID>; + #address-cells = <2>; + #size-cells = <0>; + qcom,can-sleep; + }; +}; + +&pmi632_gpios { + usb_conn_therm { + usb_conn_therm_default: usb_conn_therm_default { + pins = "gpio1"; + bias-high-impedance; + }; + }; + + charger_skin_temp { + charger_skin_temp_default: charger_skin_temp_default { + pins = "gpio3"; + bias-high-impedance; + }; + }; + + smb_skin_therm { + smb_skin_therm_default: smb_skin_therm_default { + pins = "gpio4"; + bias-high-impedance; + }; + }; +}; + +&pmi632_vadc { + pinctrl-names = "default"; + pinctrl-0 = <&usb_conn_therm_default &charger_skin_temp_default + &smb_skin_therm_default>; + + pmi632_usb_conn_therm { + reg = ; + label = "pmi632_usb_conn_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; + + pmi632_charger_skin_temp { + reg = ; + label = "pmi632_charger_skin_temp"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; + + pmi632_smb_skin_therm { + reg = ; + label = "pmi632_smb_skin_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; +}; + +&pmi632_adc_tm { + io-channels = <&pmi632_vadc ADC5_GPIO1_100K_PU>, + <&pmi632_vadc ADC5_GPIO2_100K_PU>, + <&pmi632_vadc ADC5_GPIO3_100K_PU>; + + pmi632_usb_conn_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + + pmi632_charger_skin_temp { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + + pmi632_smb_skin_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + +}; + +&thermal_zones { + sys-therm-5 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmi632_adc_tm ADC5_GPIO1_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + sys-therm-6 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmi632_adc_tm ADC5_GPIO2_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + sys-therm-7 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmi632_adc_tm ADC5_GPIO3_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; +}; + +&flash_led { + qcom,use-qti-battery-interface; +}; + +&pmi632_lcdb { + status = "ok"; +}; diff --git a/qcom/ravelin-pmic-overlay.dtsi b/qcom/ravelin-pmic-overlay.dtsi new file mode 100644 index 00000000..8a3770fc --- /dev/null +++ b/qcom/ravelin-pmic-overlay.dtsi @@ -0,0 +1,560 @@ +#include +#include +#include +#include + +#include "pmk8350.dtsi" +#include "pm6450.dtsi" + +&soc { + pmic-pon-log { + compatible = "qcom,pmic-pon-log"; + nvmem = <&pmk8350_sdam_5>; + nvmem-names = "pon_log"; + }; +}; + +&pmk8350 { + /delete-node/ pon_pbs@800; + /delete-node/ pon_hlos@1300; + + pon_hlos@1300 { + compatible = "qcom,pm8998-pon"; + reg = <0x1300>, <0x800>; + reg-names = "pon_hlos", "pon_pbs"; + qcom,log-kpd-event; + + pwrkey { + compatible = "qcom,pmk8350-pwrkey"; + interrupts = <0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>; + linux,code = ; + }; + + resin { + compatible = "qcom,pmk8350-resin"; + interrupts = <0x0 0x13 0x6 IRQ_TYPE_EDGE_BOTH>; + linux,code = ; + }; + }; +}; + +&pmk8350_vadc { + pinctrl-names = "default"; + pinctrl-0 = <&quiet_therm_default &wide_rfc_therm_default + &rear_cam_flash_therm_default &msm_therm_default>; + + /delete-node/ pm8350_ref_gnd; + /delete-node/ pm8350_vref_1p25; + /delete-node/ pm8350_die_temp; + /delete-node/ pm8350_vph_pwr; + + /delete-node/ pm8350b_ref_gnd; + /delete-node/ pm8350b_vref_1p25; + /delete-node/ pm8350b_die_temp; + /delete-node/ pm8350b_vph_pwr; + /delete-node/ pm8350b_vbat_sns; + + /delete-node/ pmr735b_ref_gnd; + /delete-node/ pmr735b_vref_1p25; + /delete-node/ pmr735b_die_temp; + + /delete-node/ pmr735a_ref_gnd; + /delete-node/ pmr735a_vref_1p25; + /delete-node/ pmr735a_die_temp; + + /* PM6450 Channel nodes */ + pm6450_ref_gnd { + reg = ; + label = "pm6450_ref_gnd"; + qcom,pre-scaling = <1 1>; + }; + + pm6450_vref_1p25 { + reg = ; + label = "pm6450_vref_1p25"; + qcom,pre-scaling = <1 1>; + }; + + pm6450_die_temp { + reg = ; + label = "pm6450_die_temp"; + qcom,pre-scaling = <1 1>; + }; + + pm6450_quiet_therm { + reg = ; + label = "pm6450_quiet_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; + + pmk8350_wide_rfc_therm { + reg = ; + label = "pmk8350_wide_rfc_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; + + pm6450_rear_cam_flash_therm { + reg = ; + label = "pm6450_rear_cam_flash_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; + + pm6450_msm_therm { + reg = ; + label = "pm6450_msm_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; +}; + +&spmi_bus { + #address-cells = <2>; + #size-cells = <0>; + interrupt-controller; + #interrupt-cells = <4>; + + pm8010_e: qcom,pm8010@4 { + compatible = "qcom,spmi-pmic"; + reg = <4 SPMI_USID>; + #address-cells = <1>; + #size-cells = <0>; + + pm8010e_tz: pm8010-e-temp-alarm@2400 { + compatible = "qcom,spmi-temp-alarm"; + reg = <0x2400>; + interrupts = <0x4 0x24 0x0 IRQ_TYPE_EDGE_BOTH>; + #thermal-sensor-cells = <0>; + }; + }; +}; + +&pmk8350_adc_tm { + io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>, + <&pmk8350_vadc PM6450_ADC7_AMUX1_GPIO2_100K_PU>, + <&pmk8350_vadc PMK8350_ADC7_AMUX_THM2_100K_PU>, + <&pmk8350_vadc PM6450_ADC7_AMUX4_GPIO5_100K_PU>, + <&pmk8350_vadc PM6450_ADC7_AMUX2_GPIO3_100K_PU>; + + pmk8350_xo_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + + pm6450_quiet_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + + pmk8350_wide_rfc_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + + pm6450_rear_cam_flash_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + + pm6450_msm_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; +}; + +&pmk8350_gpios { + wide_rfc_therm { + wide_rfc_therm_default: wide_rfc_therm_default { + pins = "gpio1"; + bias-high-impedance; + }; + }; +}; + +&pmk8350_sdam_23 { + adc_scaling: scaling@bf { + reg = <0xbf 0x1>; + bits = <0 2>; + }; +}; + +&pmk8350_sdam_1 { + ufs_dev: ufs_dev@94 { + reg = <0x94 0x1>; + bits = <0 0>; + }; +}; + +&pm6450_gpios { + quiet_therm { + quiet_therm_default: quiet_therm_default { + pins = "gpio2"; + bias-high-impedance; + }; + }; + + rear_cam_flash_therm { + rear_cam_flash_therm_default: rear_cam_flash_therm_default { + pins = "gpio5"; + bias-high-impedance; + }; + }; + + msm_therm { + msm_therm_default: msm_therm_default { + pins = "gpio3"; + bias-high-impedance; + }; + }; + +}; + +&thermal_zones { + sys-therm-0 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM1_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + sys-therm-1 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM2_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + sys-therm-2 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm PM6450_ADC7_AMUX1_GPIO2_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + sys-therm-3 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm PM6450_ADC7_AMUX4_GPIO5_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + sys-therm-4 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmk8350_adc_tm PM6450_ADC7_AMUX2_GPIO3_100K_PU>; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; +}; + +&tlmm { + key_vol_up_default: key_vol_up_default { + mux { + pins = "gpio53"; + function = "gpio"; + }; + + config { + pins = "gpio53"; + drive-strength = <2>; + bias-pull-up; + input-enable; + }; + }; + + pm8010m_active: pm8010m-active { + mux { + pins = "gpio29"; + function = "gpio"; + }; + + config { + pins = "gpio29"; + bias-pull-up; + output-high; + drive-strength = <2>; + }; + }; + + pm8010n_active: pm8010n-active { + mux { + pins = "gpio30"; + function = "gpio"; + }; + + config { + pins = "gpio30"; + bias-pull-up; + output-high; + drive-strength = <2>; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + label = "gpio-keys"; + + pinctrl-names = "default"; + pinctrl-0 = <&key_vol_up_default>; + + vol_up { + label = "volume_up"; + gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + linux,code = ; + gpio-key,wakeup; + debounce-interval = <15>; + linux,can-disable; + }; + }; +}; + +/* + * Each QUP device that's a parent to PMIC must be listed as a critical device + * to GCC + */ +&gcc { + qcom,critical-devices = <&qupv3_se8_i2c>; +}; + +&qupv3_se8_i2c { + #address-cells = <1>; + #size-cells = <0>; + status = "ok"; + + pm8010m@8 { + compatible = "qcom,i2c-pmic"; + reg = <0x8>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&pm8010m_active>; + + pm8010-chip@900 { + compatible = "qcom,pm8008-chip"; + reg = <0x900>; + + PM8010M_EN: qcom,pm8008-chip-en { + regulator-name = "pm8010m-chip-en"; + }; + }; + + qcom,revid@100 { + compatible = "qcom,qpnp-revid"; + reg = <0x100>; + }; + }; + + pm8010m@9 { + compatible = "qcom,i2c-pmic"; + reg = <0x9>; + #address-cells = <1>; + #size-cells = <0>; + + qcom,pm8010m-regulator { + compatible = "qcom,pm8010-regulator"; + #address-cells = <1>; + #size-cells = <0>; + + pm8008_en-supply = <&PM8010M_EN>; + vdd_l1_l2-supply = <&S8B>; + + L1M: pm8010m_l1: regulator@4000 { + reg = <0x4000>; + regulator-name = "pm8010m_l1"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + qcom,min-dropout-voltage = <88000>; + qcom,hpm-min-load = <30000>; + }; + + L2M: pm8010m_l2: regulator@4100 { + reg = <0x4100>; + regulator-name = "pm8010m_l2"; + regulator-min-microvolt = <950000>; + regulator-max-microvolt = <1150000>; + qcom,min-dropout-voltage = <64000>; + qcom,hpm-min-load = <30000>; + }; + + L3M: pm8010m_l3: regulator@4200 { + reg = <0x4200>; + regulator-name = "pm8010m_l3"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <3000000>; + qcom,hpm-min-load = <0>; + }; + + L4M: pm8010m_l4: regulator@4300 { + reg = <0x4300>; + regulator-name = "pm8010m_l4"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2900000>; + qcom,hpm-min-load = <0>; + }; + + L6M: pm8010m_l6: regulator@4500 { + reg = <0x4500>; + regulator-name = "pm8010m_l6"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <3000000>; + qcom,hpm-min-load = <0>; + }; + + L7M: pm8010m_l7: regulator@4600 { + reg = <0x4600>; + regulator-name = "pm8010m_l7"; + regulator-min-microvolt = <2650000>; + regulator-max-microvolt = <2950000>; + qcom,hpm-min-load = <0>; + }; + }; + }; + + pm8010n@c { + compatible = "qcom,i2c-pmic"; + reg = <0xc>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&pm8010n_active>; + + pm8010-chip@900 { + compatible = "qcom,pm8008-chip"; + reg = <0x900>; + + PM8010N_EN: qcom,pm8008-chip-en { + regulator-name = "pm8010n-chip-en"; + }; + }; + + qcom,revid@100 { + compatible = "qcom,qpnp-revid"; + reg = <0x100>; + }; + }; + + pm8010n@d { + compatible = "qcom,i2c-pmic"; + reg = <0xd>; + #address-cells = <1>; + #size-cells = <0>; + + qcom,pm8010n-regulator { + compatible = "qcom,pm8010-regulator"; + #address-cells = <1>; + #size-cells = <0>; + + pm8008_en-supply = <&PM8010N_EN>; + vdd_l1_l2-supply = <&S8B>; + vdd_l3_l4-supply = <&S9B>; + + L1N: pm8010n_l1: regulator@4000 { + reg = <0x4000>; + regulator-name = "pm8010n_l1"; + regulator-min-microvolt = <950000>; + regulator-max-microvolt = <1150000>; + qcom,min-dropout-voltage = <48000>; + qcom,hpm-min-load = <30000>; + }; + + L3N: pm8010n_l3: regulator@4200 { + reg = <0x4200>; + regulator-name = "pm8010n_l3"; + regulator-min-microvolt = <1792000>; + regulator-max-microvolt = <3312000>; + qcom,hpm-min-load = <0>; + }; + + L4N: pm8010n_l4: regulator@4300 { + reg = <0x4300>; + regulator-name = "pm8010N_l4"; + regulator-min-microvolt = <1792000>; + regulator-max-microvolt = <1900000>; + qcom,hpm-min-load = <0>; + }; + + L6N: pm8010n_l6: regulator@4500 { + reg = <0x4500>; + regulator-name = "pm8010n_l6"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <3000000>; + qcom,hpm-min-load = <0>; + }; + }; + }; +}; diff --git a/qcom/ravelin-qrd.dtsi b/qcom/ravelin-qrd.dtsi index dd619006..967e739e 100644 --- a/qcom/ravelin-qrd.dtsi +++ b/qcom/ravelin-qrd.dtsi @@ -1,3 +1,5 @@ +#include "ravelin-pmic-overlay.dtsi" +#include "ravelin-pmi632.dtsi" + &soc { }; - diff --git a/qcom/ravelin.dtsi b/qcom/ravelin.dtsi index 68c6b13d..917da1dd 100644 --- a/qcom/ravelin.dtsi +++ b/qcom/ravelin.dtsi @@ -10,6 +10,7 @@ #include #include #include +#include / { model = "Qualcomm Technologies, Inc. Ravelin"; @@ -309,7 +310,6 @@ }; -#include "ravelin-stub-regulator.dtsi" #include "msm-arm-smmu-ravelin.dtsi" #include "ravelin-dma-heaps.dtsi" #include "ravelin-reserved-memory.dtsi" @@ -1803,6 +1803,87 @@ }; }; + spmi_bus: spmi0_bus: qcom,spmi@c42d000 { + compatible = "qcom,spmi-pmic-arb"; + reg = <0xc42d000 0x4000>, + <0xc400000 0x3000>, + <0xc500000 0x400000>, + <0xc440000 0x80000>, + <0xc4c0000 0x10000>; + reg-names = "cnfg", "core", "chnls", "obsrvr", "intr"; + interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "periph_irq"; + interrupt-controller; + #interrupt-cells = <4>; + #address-cells = <2>; + #size-cells = <0>; + cell-index = <0>; + qcom,channel = <0>; + qcom,ee = <0>; + qcom,bus-id = <0>; + }; + + spmi0_debug_bus: qcom,spmi-debug@10b14000 { + compatible = "qcom,spmi-pmic-arb-debug"; + reg = <0x10b14000 0x60>, <0x221c8784 0x4>; + reg-names = "core", "fuse"; + clocks = <&aoss_qmp>; + clock-names = "core_clk"; + qcom,fuse-enable-bit = <18>; + #address-cells = <2>; + #size-cells = <0>; + depends-on-supply = <&spmi0_bus>; + + qcom,pmk8350-debug@0 { + compatible = "qcom,spmi-pmic"; + reg = <0 SPMI_USID>; + #address-cells = <2>; + #size-cells = <0>; + qcom,can-sleep; + }; + + qcom,pm6450-debug@1 { + compatible = "qcom,spmi-pmic"; + reg = <1 SPMI_USID>; + #address-cells = <2>; + #size-cells = <0>; + qcom,can-sleep; + }; + + qcom,pm8010-debug@4 { + compatible = "qcom,spmi-pmic"; + reg = <4 SPMI_USID>; + #address-cells = <2>; + #size-cells = <0>; + qcom,can-sleep; + }; + }; + + qcom,pmic_glink { + compatible = "qcom,pmic-glink"; + qcom,pmic-glink-channel = "PMIC_RTR_ADSP_APPS"; + qcom,subsys-name = "lpass"; + qcom,protection-domain = "tms/servreg", "msm/adsp/charger_pd"; + depends-on-supply = <&ipcc_mproc>; + status = "disabled"; + + battery_charger: qcom,battery_charger { + compatible = "qcom,battery-charger"; + status = "disabled"; + }; + + ucsi: qcom,ucsi { + compatible = "qcom,ucsi-glink"; + status = "disabled"; + }; + + altmode: qcom,altmode { + compatible = "qcom,altmode-glink"; + #altmode-cells = <1>; + status = "disabled"; + }; + }; + thermal_zones: thermal-zones { }; @@ -1854,6 +1935,7 @@ #include "diwali-gdsc.dtsi" #include "ipcc-test-ravelin.dtsi" #include "ravelin-qupv3.dtsi" +#include "ravelin-regulators.dtsi" &qupv3_se7_2uart { status = "ok"; From a2e955d45f2d2ee3f63e991f52f2608e5d88ffbe Mon Sep 17 00:00:00 2001 From: Yue Liu Date: Mon, 24 Oct 2022 16:43:26 +0800 Subject: [PATCH 2/2] ARM: dts: msm: Enable download/restart mode drivers for Ravelin Add download and restart mode driver support for Ravelin SoC. Change-Id: Ife722dbf6334484a580c4f1ec2f19af01fb2fa3b --- qcom/ravelin-pmic-overlay.dtsi | 6 ++++++ qcom/ravelin.dtsi | 1 + 2 files changed, 7 insertions(+) diff --git a/qcom/ravelin-pmic-overlay.dtsi b/qcom/ravelin-pmic-overlay.dtsi index 8a3770fc..eedc270e 100644 --- a/qcom/ravelin-pmic-overlay.dtsi +++ b/qcom/ravelin-pmic-overlay.dtsi @@ -7,6 +7,12 @@ #include "pm6450.dtsi" &soc { + reboot_reason { + compatible = "qcom,reboot-reason"; + nvmem-cells = <&restart_reason>; + nvmem-cell-names = "restart_reason"; + }; + pmic-pon-log { compatible = "qcom,pmic-pon-log"; nvmem = <&pmk8350_sdam_5>; diff --git a/qcom/ravelin.dtsi b/qcom/ravelin.dtsi index 917da1dd..af1d03ef 100644 --- a/qcom/ravelin.dtsi +++ b/qcom/ravelin.dtsi @@ -392,6 +392,7 @@ &firmware { qcom_scm { compatible = "qcom,scm"; + qcom,dload-mode = <&tcsr 0x13000>; }; qtee_shmbridge {