Browse Source

mfd: sec-core: Prepare regulators for suspend state to reduce power-consumption

This patch use regulator_suspend_prepare() function to prepare the proper state
of regulators for suspend state to remove un-necessary leakage power-consumption.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Chanwoo Choi 11 years ago
parent
commit
b7cde7078d
2 changed files with 11 additions and 0 deletions
  1. 1 0
      drivers/mfd/Kconfig
  2. 10 0
      drivers/mfd/sec-core.c

+ 1 - 0
drivers/mfd/Kconfig

@@ -587,6 +587,7 @@ config MFD_SEC_CORE
 	select MFD_CORE
 	select MFD_CORE
 	select REGMAP_I2C
 	select REGMAP_I2C
 	select REGMAP_IRQ
 	select REGMAP_IRQ
+	select REGULATOR
 	help
 	help
 	 Support for the Samsung Electronics MFD series.
 	 Support for the Samsung Electronics MFD series.
 	 This driver provides common support for accessing the device,
 	 This driver provides common support for accessing the device,

+ 10 - 0
drivers/mfd/sec-core.c

@@ -31,6 +31,7 @@
 #include <linux/mfd/samsung/s2mpu02.h>
 #include <linux/mfd/samsung/s2mpu02.h>
 #include <linux/mfd/samsung/s5m8763.h>
 #include <linux/mfd/samsung/s5m8763.h>
 #include <linux/mfd/samsung/s5m8767.h>
 #include <linux/mfd/samsung/s5m8767.h>
+#include <linux/regulator/machine.h>
 #include <linux/regmap.h>
 #include <linux/regmap.h>
 
 
 static const struct mfd_cell s5m8751_devs[] = {
 static const struct mfd_cell s5m8751_devs[] = {
@@ -430,6 +431,15 @@ static int sec_pmic_suspend(struct device *dev)
 	 */
 	 */
 	disable_irq(sec_pmic->irq);
 	disable_irq(sec_pmic->irq);
 
 
+	switch (sec_pmic->device_type) {
+	case S2MPS14X:
+	case S2MPU02:
+		regulator_suspend_prepare(PM_SUSPEND_MEM);
+		break;
+	default:
+		break;
+	}
+
 	return 0;
 	return 0;
 }
 }