diff options
author | Min-wuk Lee <mlee@nvidia.com> | 2011-11-04 16:51:27 +0900 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:50:00 -0800 |
commit | 9a3a79d87bbb1bb483c8d0394accb4502bc457dc (patch) | |
tree | 3b00fe462987a2ff4aabc96689707576c17c7d20 /drivers/mfd/max77663-core.c | |
parent | c48a361cd4a7466a774f4314c2aabdc73493e5be (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)
Reviewed-on: http://git-master/r/62378
(cherry picked from commit 42c8b2466ead1a9382b87d9753afad7d3d7b9b72)
Change-Id: Id205c691bf629c080a533e5d38ef2f3823d35703
Reviewed-on: http://git-master/r/63758
Reviewed-by: Min-wuk Lee <mlee@nvidia.com>
Tested-by: Min-wuk Lee <mlee@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Rebase-Id: Rbab33031a6556f229a0bf6aef57f906a95152340
Diffstat (limited to 'drivers/mfd/max77663-core.c')
-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 97b1980389dc..05fda2d699af 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, @@ -1316,10 +1317,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; } |