Loading drivers/rtc/rtc-m41t80.c +25 −0 Original line number Diff line number Diff line Loading @@ -335,6 +335,30 @@ static struct rtc_class_ops m41t80_rtc_ops = { .proc = m41t80_rtc_proc, }; #ifdef CONFIG_PM_SLEEP static int m41t80_suspend(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); if (client->irq >= 0 && device_may_wakeup(dev)) enable_irq_wake(client->irq); return 0; } static int m41t80_resume(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); if (client->irq >= 0 && device_may_wakeup(dev)) disable_irq_wake(client->irq); return 0; } #endif static SIMPLE_DEV_PM_OPS(m41t80_pm, m41t80_suspend, m41t80_resume); static ssize_t flags_show(struct device *dev, struct device_attribute *attr, char *buf) { Loading Loading @@ -870,6 +894,7 @@ static int m41t80_remove(struct i2c_client *client) static struct i2c_driver m41t80_driver = { .driver = { .name = "rtc-m41t80", .pm = &m41t80_pm, }, .probe = m41t80_probe, .remove = m41t80_remove, Loading Loading
drivers/rtc/rtc-m41t80.c +25 −0 Original line number Diff line number Diff line Loading @@ -335,6 +335,30 @@ static struct rtc_class_ops m41t80_rtc_ops = { .proc = m41t80_rtc_proc, }; #ifdef CONFIG_PM_SLEEP static int m41t80_suspend(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); if (client->irq >= 0 && device_may_wakeup(dev)) enable_irq_wake(client->irq); return 0; } static int m41t80_resume(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); if (client->irq >= 0 && device_may_wakeup(dev)) disable_irq_wake(client->irq); return 0; } #endif static SIMPLE_DEV_PM_OPS(m41t80_pm, m41t80_suspend, m41t80_resume); static ssize_t flags_show(struct device *dev, struct device_attribute *attr, char *buf) { Loading Loading @@ -870,6 +894,7 @@ static int m41t80_remove(struct i2c_client *client) static struct i2c_driver m41t80_driver = { .driver = { .name = "rtc-m41t80", .pm = &m41t80_pm, }, .probe = m41t80_probe, .remove = m41t80_remove, Loading