On Thu, Nov 03, 2016 at 03:29:24PM +0100, Neil Armstrong wrote: > The Amlogic Meson GX SoCs uses a special register to store the > time in seconds to wakeup after a system suspend.
Where does this register live, exactly? What IP block is it part of? > In order to be able to reuse the RTC wakealarm feature, this > driver implements a fake RTC device which uses the system time > to deduce a suspend delay. This sounds like an always-on oneshot timer device, not an RTC. > +static int meson_vrtc_read_time(struct device *dev, struct rtc_time *tm) > +{ > + unsigned long local_time; > + struct timeval time; > + > + do_gettimeofday(&time); > + local_time = time.tv_sec - (sys_tz.tz_minuteswest * 60); > + rtc_time_to_tm(local_time, tm); > + > + return 0; > +} ... if this were a timer, you wouldn't need this hack. > +static int meson_vrtc_probe(struct platform_device *pdev) > +{ > + struct meson_vrtc_data *vrtc; > + struct resource *res; > + > + vrtc = devm_kzalloc(&pdev->dev, sizeof(*vrtc), GFP_KERNEL); > + if (!vrtc) > + return -ENOMEM; > + > + vrtc->pdev = pdev; > + > + /* Alarm registers */ > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + vrtc->io_alarm = devm_ioremap_resource(&pdev->dev, res); > + if (IS_ERR(vrtc->io_alarm)) > + return PTR_ERR(vrtc->io_alarm); > + > + device_init_wakeup(&pdev->dev, 1); > + > + platform_set_drvdata(pdev, vrtc); > + > + vrtc->rtc = devm_rtc_device_register(&pdev->dev, "meson-vrtc", > + &meson_vrtc_ops, THIS_MODULE); > + if (IS_ERR(vrtc->rtc)) > + return PTR_ERR(vrtc->rtc); > + > + return 0; > +} I see that no interrupt is described. How exactly does this wake the system from suspend? Is there some interrupt managed by FW for this, for example? > +static const struct of_device_id meson_vrtc_dt_match[] = { > + { .compatible = "amlogic,meson-vrtc"}, There was no binding documentation in this patch series. Thanks, Mark. -- You received this message because you are subscribed to "rtc-linux". Membership options at http://groups.google.com/group/rtc-linux . Please read http://groups.google.com/group/rtc-linux/web/checklist before submitting a driver. --- You received this message because you are subscribed to the Google Groups "rtc-linux" group. To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.