diff options
author | Min-wuk Lee <mlee@nvidia.com> | 2011-11-04 16:51:27 +0900 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-11-07 13:50:51 -0800 |
commit | 42c8b2466ead1a9382b87d9753afad7d3d7b9b72 (patch) | |
tree | 6b09b752c51b385261be3ba26902bf4face8aa26 /drivers | |
parent | 4a72d36608046af996fa92ccc21ab7c7f1b69104 (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
Original Author : Jinyoung Park
Reviewed-on: http://git-master/r/59477
(cherry picked from commit 469106a1f8cf8d080f06ae0d2e8d0b2aa4bf3e4b)
Change-Id: I71897dd77eb2e0908c24896d11616f71178e3876
Reviewed-on: http://git-master/r/62378
Reviewed-by: Min-wuk Lee <mlee@nvidia.com>
Tested-by: Min-wuk Lee <mlee@nvidia.com>
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; } |