msm: Add rpm-regulator-smd driver to support RPM regulators over SMD

The rpm-regulator-smd driver makes use of a key based RPM
resource interface in order to control regulators.  Regulator
requests are sent to the RPM over the SMD transport layer.

Provide control of regulators in both the active and sleep sets.
Active set regulator requests take effect immediately.  Sleep set
requests take effect when the Apps processor transitions into
RPM assisted power collapse.

Allow for all request parameters to be initialized based upon
configuration data specified in device tree.

Include an API which allows for regulator control from atomic
context in order to support all consumer use cases.

Change-Id: I0417d52bba9eb053b6c552b287aa658d6c8e4b7f
Signed-off-by: David Collins <collinsd@codeaurora.org>
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index 423e71e..39b6c7d 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -259,6 +259,7 @@
 	select MSM_L2_SPM
 	select MSM_PM8X60 if PM
 	select MSM_RPM_SMD
+	select REGULATOR
 
 config ARCH_FSM9XXX
 	bool "FSM9XXX"
@@ -1800,6 +1801,18 @@
 	  voltages and other parameters of the various power rails supplied
 	  by some Qualcomm PMICs.
 
+config MSM_RPM_REGULATOR_SMD
+	bool "SMD RPM regulator driver"
+	depends on REGULATOR
+	depends on OF
+	depends on MSM_RPM_SMD
+	help
+	  Compile in support for the SMD RPM regulator driver which is used for
+	  setting voltages and other parameters of the various power rails
+	  supplied by some Qualcomm PMICs.  The SMD RPM regulator driver should
+	  be used on systems which contain an RPM which communicates with the
+	  application processor over SMD.
+
 config MSM_PIL
 	bool "Peripheral image loading"
 	select FW_LOADER