regulator: add rpmh-regulator driver

Add the rpmh-regulator driver to support PMIC regulator
management via the RPMh hardware block on Qualcomm Technologies,
Inc. SoCs.

rpmh-regulator devices support PMIC regulator management via the
VRM and ARC RPMh accelerators.  The APPS processor communicates
with these hardware blocks via an RSC using command packets.  The
VRM allows changing four parameters for a given regulator: enable
state, output voltage, operating mode, and minimum headroom
voltage.  The ARC allows changing only a single parameter for a
given regulator: its operating level.  This operating level is
fed into CPR which then decides upon a final explicit voltage for
the regulator.

This is a snapshot commit of msm-4.14 as of:
commit 2913cfe33e10 ("Merge "iommu: arm-smmu: wait for writes to
complete before power off"").  Some modifications have been made
to handle rpmh API differences between msm-4.14 and msm-4.19.

Change-Id: I48e9ab5db808036592cfb26042d843a153fbc92c
Signed-off-by: David Collins <collinsd@codeaurora.org>
This commit is contained in:
David Collins 2019-01-02 15:51:04 -08:00 committed by David Collins
parent be38cc2b80
commit ace1c64495
3 changed files with 2003 additions and 0 deletions

View File

@ -1481,6 +1481,15 @@ config REGULATOR_QCOM_LABIBB
boost regulator and IBB can be used as a negative boost regulator
for LCD display panel.
config REGULATOR_RPMH
tristate "Qualcomm Technologies, Inc. Legacy RPMh regulator driver"
depends on QCOM_RPMH
help
This driver supports control of PMIC regulators via the RPMh hardware
block found on Qualcomm Technologies Inc. SoCs. RPMh regulator
control allows for voting on regulator state between multiple
processors within the SoC.
config REGULATOR_STUB
tristate "Stub Regulator"
help

View File

@ -176,6 +176,7 @@ obj-$(CONFIG_REGULATOR_WM8350) += wm8350-regulator.o
obj-$(CONFIG_REGULATOR_WM8400) += wm8400-regulator.o
obj-$(CONFIG_REGULATOR_WM8994) += wm8994-regulator.o
obj-$(CONFIG_REGULATOR_RPMH) += rpmh-regulator.o
obj-$(CONFIG_REGULATOR_STUB) += stub-regulator.o
obj-$(CONFIG_REGULATOR_DEBUG_CONTROL) += debug-regulator.o

File diff suppressed because it is too large Load Diff