Hi igor,
I have created suspend and resume function in my rtc driver as below
static int pcf2127_rtc_suspend(struct device *dev)
{
struct pcf2127 *pdata = dev_get_drvdata(dev);
if (device_may_wakeup(dev))
{
printk("pcf2127_rtc_suspend..\r\n");
enable_irq_wake(irqNumber);
}
return 0;
}
static int pcf2127_rtc_resume(struct device *dev)
{
struct pcf2127 *pdata = dev_get_drvdata(dev);
if (device_may_wakeup(dev))
{
printk("pcf2127_rtc_suspend..\r\n");
disable_irq_wake(irqNumber);
}
return 0;
}
Note : irqNumber is IRQ of GPIO which I got from gpio_to_irq(gpio_number).
when I suspend the system using echo mem > /sys/power/state command I am getting below prints
root@imx8dx_ccu:/usr/bin/ccu# echo mem > /sys/power/state
[ 25.205302] PM: suspend entry (deep)
[ 25.208888] PM: Syncing filesystems ... done.
[ 25.242558] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 25.250873] OOM killer disabled.
[ 25.254121] Freezing remaining freezable tasks ... (elapsed 0.007 seconds) done.
[ 25.273048] pcf2127_rtc_read_time..
[ 25.277080] pcf2127_rtc_suspend..
[ 25.280479] irq_set_irq_wake..
[ 25.283642] irq_set_irq_wake..
[ 25.288329] PM: suspend devices took 0.016 seconds
[ 25.295436] Disabling non-boot CPUs ...
[ 25.313505] CPU1: shutdown
[ 25.316298] psci: CPU1 killed.
But system is not waking up when alarm interrupt comes.
Please provide some input.
Regards,
Sharmila