diff options
author | Jin Park <jinyoungp@nvidia.com> | 2011-10-20 17:59:47 +0900 |
---|---|---|
committer | Lokesh Pathak <lpathak@nvidia.com> | 2011-10-25 02:08:00 -0700 |
commit | 469106a1f8cf8d080f06ae0d2e8d0b2aa4bf3e4b (patch) | |
tree | 65800af31d11434ee012991d9ab900a50992750f /drivers | |
parent | 3bdc83bebf4ef74c760d075a8ae8ffe6baf8b15a (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.c | 12 |
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; } |