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
commit ff2723acd4
3 changed files with 2003 additions and 0 deletions

View file

@ -1088,6 +1088,15 @@ config REGULATOR_WM8994
This driver provides support for the voltage regulators on the
WM8994 CODEC.
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

@ -137,6 +137,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
ccflags-$(CONFIG_REGULATOR_DEBUG) += -DDEBUG

File diff suppressed because it is too large Load diff