power: avs: Add support for CPR (Core Power Reduction)
authorNiklas Cassel <niklas.cassel@linaro.org>
Fri, 29 Nov 2019 21:39:12 +0000 (22:39 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 20 Dec 2019 09:25:24 +0000 (10:25 +0100)
commitbf6910abf54871b0e976e52f56fb3b3dd1b90e48
tree83fe13af199bade846bac5171b3cb8c8ab03fe55
parent3185fe1d8a4557ec84d9617274a694af0cf4c7da
power: avs: Add support for CPR (Core Power Reduction)

CPR (Core Power Reduction) is a technology that reduces core power on a
CPU or other device. It reads voltage settings in efuse from product
test process as initial settings.
Each OPP corresponds to a "corner" that has a range of valid voltages
for a particular frequency. While the device is running at a particular
frequency, 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 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

Co-developed-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
MAINTAINERS
drivers/power/avs/Kconfig
drivers/power/avs/Makefile
drivers/power/avs/qcom-cpr.c [new file with mode: 0644]