android_kernel_xiaomi_sm8350/drivers/rtc
Jamie Lenehan 1b73e6ae45 rtc: rtc-sh: alarm support.
This adds alarm support for the RTC_ALM_SET, RTC_ALM_READ,
RTC_WKALM_SET and RTC_WKALM_RD operations to rtc-sh.

The only unusual part is the handling of the alarm interrupt. If you
clear the alarm flag (AF) while the time in the RTC still matches the
time in the alarm registers than AF is immediately re-set, and if the
alarm interrupt (AIE) is still enabled then it re-triggers. I was
originally getting around 20k+ interrupts generated during the second
when the RTC and alarm registers matches.

The solution I've used is to clear AIE when the alarm goes off and
then use the carry interrupt to re-enabled it. The carry interrupt
will check AF and re-enabled AIE if it's clear. If AF is not clear
it'll clear it and then the check will be repeated next carry
interrupt. This a bit in rtc structure that indicates that it's
waiting to have AIE re-enabled so it doesn't turn it on when it
wasn't enabled anyway.

Signed-off-by: Jamie Lenehan <lenehan@twibble.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-12-12 08:42:08 +09:00
..
class.c [PATCH] constify rtc_class_ops: update drivers 2006-10-01 00:39:25 -07:00
hctosys.c [PATCH] RTC subsystem: class 2006-03-27 08:44:51 -08:00
interface.c [PATCH] rtc class locking bugfixes 2006-11-25 13:28:33 -08:00
Kconfig [PATCH] AT91RM9200 RTC 2006-12-10 09:55:40 -08:00
Makefile [PATCH] AT91RM9200 RTC 2006-12-10 09:55:40 -08:00
rtc-at91rm9200.c [PATCH] AT91RM9200 RTC 2006-12-10 09:55:40 -08:00
rtc-dev.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-12-05 14:37:56 +00:00
rtc-ds1307.c [PATCH] RTC: build fixes 2006-10-04 08:15:14 -07:00
rtc-ds1553.c [PATCH] rtc class locking bugfixes 2006-11-25 13:28:33 -08:00
rtc-ds1672.c [PATCH] RTCs don't use i2c_adapter.dev 2006-12-10 09:55:40 -08:00
rtc-ds1742.c [PATCH] rtc: ds1743 support 2006-12-07 08:39:43 -08:00
rtc-ep93xx.c [PATCH] constify rtc_class_ops: update drivers 2006-10-01 00:39:25 -07:00
rtc-isl1208.c [PATCH] constify rtc_class_ops: update drivers 2006-10-01 00:39:25 -07:00
rtc-lib.c [PATCH] rtc: Add rtc_merge_alarm() 2006-12-10 09:55:40 -08:00
rtc-m48t86.c [PATCH] constify rtc_class_ops: update drivers 2006-10-01 00:39:25 -07:00
rtc-max6902.c [PATCH] rtc-max6902: month conversion fix 2006-10-17 08:18:44 -07:00
rtc-omap.c [PATCH] add rtc-omap driver 2006-12-07 08:39:40 -08:00
rtc-pcf8563.c [PATCH] RTCs don't use i2c_adapter.dev 2006-12-10 09:55:40 -08:00
rtc-pcf8583.c [PATCH] constify rtc_class_ops: update drivers 2006-10-01 00:39:25 -07:00
rtc-pl031.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
rtc-proc.c [PATCH] constify rtc_class_ops: update drivers 2006-10-01 00:39:25 -07:00
rtc-rs5c348.c [PATCH] constify rtc_class_ops: update drivers 2006-10-01 00:39:25 -07:00
rtc-rs5c372.c [PATCH] RTCs don't use i2c_adapter.dev 2006-12-10 09:55:40 -08:00
rtc-s3c.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
rtc-sa1100.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
rtc-sh.c rtc: rtc-sh: alarm support. 2006-12-12 08:42:08 +09:00
rtc-sysfs.c [PATCH] rtc-sysfs fix 2006-10-01 10:39:01 -07:00
rtc-test.c [PATCH] RTC: handle sysfs errors 2006-12-07 08:39:31 -08:00
rtc-v3020.c [PATCH] rtc: fix printk of 64-bit res on 32-bit platform 2006-10-17 08:18:47 -07:00
rtc-vr41xx.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
rtc-x1205.c [PATCH] RTCs don't use i2c_adapter.dev 2006-12-10 09:55:40 -08:00