msm: copper: Add Low Power Management drivers for CPUIdle

When the core is in idle, CPUIdle framework calls into the architecture
specific idle driver. The idle driver uses RPM resources (L2, VDD, XO)
and the time available to determine the lowest power mode possible and
uses the SPM driver to put the core in low power mode.

Add LPM levels that specify the latency and the energy required to enter
different low power modes. These values are used to determine how deep a
sleep can be achieved before the next scheduled wakeup.

Change-Id: Ia2ba25e618aa72cb02f49fbd0028a0615e465dc8
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile
index 3c4b5a8..860d7fd 100644
--- a/arch/arm/mach-msm/Makefile
+++ b/arch/arm/mach-msm/Makefile
@@ -201,6 +201,7 @@
 	obj-$(CONFIG_ARCH_MSM8960) += cpuidle.o
 	obj-$(CONFIG_ARCH_MSM8X60) += cpuidle.o
 	obj-$(CONFIG_ARCH_MSM9615) += cpuidle.o
+	obj-$(CONFIG_ARCH_MSMCOPPER) += cpuidle.o
 endif
 
 ifdef CONFIG_MSM_CAMERA_V4L2
@@ -293,7 +294,14 @@
 obj-$(CONFIG_HTC_HEADSET) += htc_headset.o
 obj-$(CONFIG_MSM_RMT_STORAGE_CLIENT) += rmt_storage_client.o
 obj-$(CONFIG_MSM_SDIO_SMEM) += sdio_smem.o
-obj-$(CONFIG_MSM_RPM) += rpm.o rpm_resources.o
+obj-$(CONFIG_MSM_RPM) += rpm.o
+ifdef CONFIG_MSM_RPM
+	obj-$(CONFIG_ARCH_APQ8064) += rpm_resources.o
+	obj-$(CONFIG_ARCH_MSM8960) += rpm_resources.o
+	obj-$(CONFIG_ARCH_MSM8X60) += rpm_resources.o
+	obj-$(CONFIG_ARCH_MSM9615) += rpm_resources.o
+	obj-$(CONFIG_ARCH_MSMCOPPER) += lpm_levels.o
+endif
 obj-$(CONFIG_MSM_MPM) += mpm.o
 obj-$(CONFIG_MSM_RPM_STATS_LOG) += rpm_stats.o
 obj-$(CONFIG_MSM_RPM_LOG) += rpm_log.o