Message ID | 20191119154621.55341-1-niklas.cassel@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | Add support for QCOM Core Power Reduction | expand |
On Tue, 19 Nov 2019 at 16:46, Niklas Cassel <niklas.cassel@linaro.org> wrote: > > This series adds support for Core Power Reduction (CPR), a form of > Adaptive Voltage Scaling (AVS), found on certain Qualcomm SoCs. > > This series is based on top of the qcs404 cpufreq patch series that > hasn't landed yet: > https://patchwork.kernel.org/project/linux-arm-msm/list/?series=173423 > as well as that series' matching device tree changes: > https://patchwork.kernel.org/project/linux-arm-msm/list/?series=165457 > > For testing purposes, this patch series, including the dependencies > listed above, is available on the following git tag: > https://git.linaro.org/people/niklas.cassel/kernel.git/log/?h=cpr-v6 > > CPR is a technology that reduces core power on a CPU or on other device. > It reads voltage settings from efuses (that have been written in > production), it uses these voltage settings as initial values, for each > OPP. > > After moving to a certain OPP, CPR monitors dynamic factors such as > temperature, etc. and adjusts the voltage for that frequency accordingly > to save power and meet silicon characteristic requirements. > > This driver has been developed together with Jorge Ramirez-Ortiz, and > is based on an RFC by Stephen Boyd[1], which in turn is based on work > by others on codeaurora.org[2]. > > [1] https://lkml.org/lkml/2015/9/18/833 > [2] https://source.codeaurora.org/quic/la/kernel/msm-4.14/tree/drivers/regulator/cpr-regulator.c?h=msm-4.14 > > Changes since v5: > -Removed pm_ops from platform_driver struct. > (This was embarrassingly not properly removed in previous patch revision.) > > Niklas Cassel (5): > dt-bindings: power: avs: Add support for CPR (Core Power Reduction) > power: avs: Add support for CPR (Core Power Reduction) > arm64: dts: qcom: qcs404: Add CPR and populate OPP table > arm64: defconfig: enable CONFIG_QCOM_CPR > arm64: defconfig: enable CONFIG_ARM_QCOM_CPUFREQ_NVMEM > > .../bindings/power/avs/qcom,cpr.txt | 130 ++ > MAINTAINERS | 8 + > arch/arm64/boot/dts/qcom/qcs404.dtsi | 132 +- > arch/arm64/configs/defconfig | 2 + > drivers/power/avs/Kconfig | 15 + > drivers/power/avs/Makefile | 1 + > drivers/power/avs/qcom-cpr.c | 1754 +++++++++++++++++ > 7 files changed, 2034 insertions(+), 8 deletions(-) > create mode 100644 Documentation/devicetree/bindings/power/avs/qcom,cpr.txt > create mode 100644 drivers/power/avs/qcom-cpr.c > > -- > 2.23.0 > For the series (except patch 2 that I provided some comment for), feel free to add: Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Kind regards Uffe