summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJin Park <jinyoungp@nvidia.com>2011-10-20 17:59:47 +0900
committerLokesh Pathak <lpathak@nvidia.com>2011-10-25 02:08:00 -0700
commit469106a1f8cf8d080f06ae0d2e8d0b2aa4bf3e4b (patch)
tree65800af31d11434ee012991d9ab900a50992750f /drivers
parent3bdc83bebf4ef74c760d075a8ae8ffe6baf8b15a (diff)
mfd: max77663: Set sleep enable bit before enter into suspend
The sleep enable is required that AP can be placed MAX77663 into sleep mode by pulling EN1 input low. Bug 849360 Change-Id: I44ce0356fd7bda965f84c742b778e426b015b8d8 Signed-off-by: Jin Park <jinyoungp@nvidia.com> Reviewed-on: http://git-master/r/59477 Tested-by: Gerrit_Virtual_Submit Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/max77663-core.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/mfd/max77663-core.c b/drivers/mfd/max77663-core.c
index 13f84e202973..d0634ed70ac2 100644
--- a/drivers/mfd/max77663-core.c
+++ b/drivers/mfd/max77663-core.c
@@ -112,6 +112,7 @@
#define GPIO_DBNC_32MS 3
#define ONOFF_SFT_RST_MASK (1 << 7)
+#define ONOFF_SLPEN_MASK (1 << 2)
enum {
CACHE_IRQ_LBT,
@@ -1318,10 +1319,21 @@ static int __devexit max77663_remove(struct i2c_client *client)
static int max77663_suspend(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);
+ struct max77663_chip *chip = i2c_get_clientdata(client);
+ int ret;
if (client->irq)
disable_irq(client->irq);
+ /* Enable sleep that AP can be placed into sleep mode
+ * by pulling EN1 low */
+ ret = max77663_set_bits(chip->dev, MAX77663_REG_ONOFF_CFG1,
+ ONOFF_SLPEN_MASK, ONOFF_SLPEN_MASK, 0);
+ if (ret < 0)
+ dev_err(&client->dev,
+ "suspend: Failed to set ONOFF_CFG1(0x%02x)\n",
+ MAX77663_REG_ONOFF_CFG1);
+
return 0;
}