|
@@ -176,6 +176,8 @@ static int max8998_i2c_probe(struct i2c_client *i2c,
|
|
|
if (ret < 0)
|
|
|
goto err;
|
|
|
|
|
|
+ device_init_wakeup(max8998->dev, max8998->wakeup);
|
|
|
+
|
|
|
return ret;
|
|
|
|
|
|
err:
|
|
@@ -210,7 +212,7 @@ static int max8998_suspend(struct device *dev)
|
|
|
struct i2c_client *i2c = container_of(dev, struct i2c_client, dev);
|
|
|
struct max8998_dev *max8998 = i2c_get_clientdata(i2c);
|
|
|
|
|
|
- if (max8998->wakeup)
|
|
|
+ if (device_may_wakeup(dev))
|
|
|
irq_set_irq_wake(max8998->irq, 1);
|
|
|
return 0;
|
|
|
}
|
|
@@ -220,7 +222,7 @@ static int max8998_resume(struct device *dev)
|
|
|
struct i2c_client *i2c = container_of(dev, struct i2c_client, dev);
|
|
|
struct max8998_dev *max8998 = i2c_get_clientdata(i2c);
|
|
|
|
|
|
- if (max8998->wakeup)
|
|
|
+ if (device_may_wakeup(dev))
|
|
|
irq_set_irq_wake(max8998->irq, 0);
|
|
|
/*
|
|
|
* In LP3974, if IRQ registers are not "read & clear"
|