From: Dmitry Osipenko Date: Wed, 20 Jan 2021 21:16:02 +0000 (+0300) Subject: rtc: tps65910: Support wakeup-source property X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=454ba154a62c8806e82a3581c5233a5176cd7dd7;p=linux.git rtc: tps65910: Support wakeup-source property TPS65910 is a PMIC MFD device and RTC is one of its functions. The wakeup-source DT property is specified for the parent MFD device and we need to use this property for the RTC in order to allow to use RTC alarm for waking up system from suspend by default, instead of requiring user to enable wakeup manually via sysfs. Tested-by: Peter Geis Tested-by: Matt Merhar Signed-off-by: Dmitry Osipenko Signed-off-by: Alexandre Belloni Link: https://lore.kernel.org/r/20210120211603.18555-1-digetx@gmail.com --- diff --git a/drivers/rtc/rtc-tps65910.c b/drivers/rtc/rtc-tps65910.c index e1415a49f4ee8..288abb1abdb8d 100644 --- a/drivers/rtc/rtc-tps65910.c +++ b/drivers/rtc/rtc-tps65910.c @@ -418,10 +418,14 @@ static int tps65910_rtc_probe(struct platform_device *pdev) irq = -1; tps_rtc->irq = irq; - if (irq != -1) - device_set_wakeup_capable(&pdev->dev, 1); - else + if (irq != -1) { + if (device_property_present(tps65910->dev, "wakeup-source")) + device_init_wakeup(&pdev->dev, 1); + else + device_set_wakeup_capable(&pdev->dev, 1); + } else { clear_bit(RTC_FEATURE_ALARM, tps_rtc->rtc->features); + } tps_rtc->rtc->ops = &tps65910_rtc_ops; tps_rtc->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;