Loading Documentation/devicetree/bindings/arm/msm/limits_supply_lm.txt 0 → 100644 +37 −0 Original line number Diff line number Diff line PMIC supply(S1) current limiting driver(SUPPLY_LM) ===================================== This driver is a current limit management module to help manage instantaneous peak current drawn by multiple subsystems on shared supply. The inputs to the mitigation algorithm are current states of different subsystems sharing this supply like cpu frequency, gpu frequency, number of cores online, soc temperature, core leakage, and modem state. It throttles cpu frequency and limits number of online cores to reduce the dynamic current so as to keep the total current drawn from supply in safe limits. The device tree parameters for SUPPLY_LM driver are: Required parameters: - compatible : Must be "qcom,supply-lm" - interrupts : SUPPLY_LM modem to apps interrupt details. - reg : Base addresses of the SUPPLY_LM modem interrupt data and its size in bytes. - reg-names : Name of SUPPLY_LM modem register in reg node. - qcom,supply-lm-very-hot-temp-range : SUPPLY_LM very hot temperature range info. It expects trigger and clear thresholds in order. - qcom,supply-lm-hot-temp-range : SUPPLY_LM hot temperature range info. It expects trigger and clear thresholds in order. - gpu-dev-opp: Phandle for gpu dev. Example: qcom,supply-lm { compatible = "qcom,supply-lm"; interrupts = <0 133 4>; reg = <0x01946000 0x8>; /* TCSR_TCSR_S1LM_MODEM_TO_APPS_INT and * TCSR_TCSR_S1LM_MODEM_TO_APPS_INT_DATA */ reg-names = "intr_reg"; qcom,supply-lm-very-hot-temp-range = <75 72>; qcom,supply-lm-hot-temp-range = <65 62>; gpu-dev-opp = <&msm_gpu>; }; drivers/thermal/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,15 @@ config THERMAL_MONITOR entity starts running in the userspace. Monitors TSENS temperature and limits the max frequency of the cores. config SUPPLY_LM_MONITOR bool "SUPPLY current monitor driver" depends on THERMAL && PM_OPP && CPU_FREQ help This enables to monitor power states of different HW blocks including cpu, gpu and modem, number of cores online and SoC temperature. Based on these inputs, the driver throttles apps subsystem. config SPEAR_THERMAL bool "SPEAr thermal sensor driver" depends on PLAT_SPEAR Loading drivers/thermal/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -29,3 +29,4 @@ obj-$(CONFIG_THERMAL_QPNP_ADC_TM) += qpnp-adc-tm.o obj-$(CONFIG_THERMAL_MONITOR) += msm_thermal.o msm_thermal-dev.o obj-$(CONFIG_LIMITS_MONITOR) += lmh_interface.o obj-$(CONFIG_LIMITS_LITE_HW) += lmh_lite.o obj-$(CONFIG_SUPPLY_LM_MONITOR) += supply_lm_core.o Loading
Documentation/devicetree/bindings/arm/msm/limits_supply_lm.txt 0 → 100644 +37 −0 Original line number Diff line number Diff line PMIC supply(S1) current limiting driver(SUPPLY_LM) ===================================== This driver is a current limit management module to help manage instantaneous peak current drawn by multiple subsystems on shared supply. The inputs to the mitigation algorithm are current states of different subsystems sharing this supply like cpu frequency, gpu frequency, number of cores online, soc temperature, core leakage, and modem state. It throttles cpu frequency and limits number of online cores to reduce the dynamic current so as to keep the total current drawn from supply in safe limits. The device tree parameters for SUPPLY_LM driver are: Required parameters: - compatible : Must be "qcom,supply-lm" - interrupts : SUPPLY_LM modem to apps interrupt details. - reg : Base addresses of the SUPPLY_LM modem interrupt data and its size in bytes. - reg-names : Name of SUPPLY_LM modem register in reg node. - qcom,supply-lm-very-hot-temp-range : SUPPLY_LM very hot temperature range info. It expects trigger and clear thresholds in order. - qcom,supply-lm-hot-temp-range : SUPPLY_LM hot temperature range info. It expects trigger and clear thresholds in order. - gpu-dev-opp: Phandle for gpu dev. Example: qcom,supply-lm { compatible = "qcom,supply-lm"; interrupts = <0 133 4>; reg = <0x01946000 0x8>; /* TCSR_TCSR_S1LM_MODEM_TO_APPS_INT and * TCSR_TCSR_S1LM_MODEM_TO_APPS_INT_DATA */ reg-names = "intr_reg"; qcom,supply-lm-very-hot-temp-range = <75 72>; qcom,supply-lm-hot-temp-range = <65 62>; gpu-dev-opp = <&msm_gpu>; };
drivers/thermal/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,15 @@ config THERMAL_MONITOR entity starts running in the userspace. Monitors TSENS temperature and limits the max frequency of the cores. config SUPPLY_LM_MONITOR bool "SUPPLY current monitor driver" depends on THERMAL && PM_OPP && CPU_FREQ help This enables to monitor power states of different HW blocks including cpu, gpu and modem, number of cores online and SoC temperature. Based on these inputs, the driver throttles apps subsystem. config SPEAR_THERMAL bool "SPEAr thermal sensor driver" depends on PLAT_SPEAR Loading
drivers/thermal/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -29,3 +29,4 @@ obj-$(CONFIG_THERMAL_QPNP_ADC_TM) += qpnp-adc-tm.o obj-$(CONFIG_THERMAL_MONITOR) += msm_thermal.o msm_thermal-dev.o obj-$(CONFIG_LIMITS_MONITOR) += lmh_interface.o obj-$(CONFIG_LIMITS_LITE_HW) += lmh_lite.o obj-$(CONFIG_SUPPLY_LM_MONITOR) += supply_lm_core.o