Пример #1
0
static int xlnx_rtc_remove(struct platform_device *pdev)
{
	xlnx_rtc_alarm_irq_enable(&pdev->dev, 0);
	device_init_wakeup(&pdev->dev, 0);

	return 0;
}
Пример #2
0
static int __maybe_unused xlnx_rtc_resume(struct device *dev)
{
    struct platform_device *pdev = to_platform_device(dev);
    struct xlnx_rtc_dev *xrtcdev = platform_get_drvdata(pdev);

    if (device_may_wakeup(&pdev->dev))
        disable_irq_wake(xrtcdev->alarm_irq);
    else
        xlnx_rtc_alarm_irq_enable(dev, 1);

    return 0;
}
Пример #3
0
static int __maybe_unused xlnx_rtc_suspend(struct device *dev)
{
	struct platform_device *pdev = to_platform_device(dev);
	struct xlnx_rtc_dev *xrtcdev = platform_get_drvdata(pdev);

	if (device_may_wakeup(&pdev->dev)) {
		enable_irq_wake(xrtcdev->alarm_irq);
	} else {
		xlnx_rtc_alarm_irq_enable(dev, 0);
	}

	return 0;
}
Пример #4
0
static int xlnx_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
{
	struct xlnx_rtc_dev *xrtcdev = dev_get_drvdata(dev);
	unsigned long alarm_time;

	rtc_tm_to_time(&alrm->time, &alarm_time);

	writel((u32) alarm_time, (xrtcdev->reg_base + RTC_ALRM));

	xlnx_rtc_alarm_irq_enable(dev, alrm->enabled);

	return 0;
}