summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMin-wuk Lee <mlee@nvidia.com>2011-11-04 16:51:27 +0900
committerVarun Colbert <vcolbert@nvidia.com>2011-11-07 13:50:51 -0800
commit42c8b2466ead1a9382b87d9753afad7d3d7b9b72 (patch)
tree6b09b752c51b385261be3ba26902bf4face8aa26 /drivers
parent4a72d36608046af996fa92ccc21ab7c7f1b69104 (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.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;
}