diff options
author | Holger Hans Peter Freyther <zecke@openmoko.org> | 2008-11-19 17:09:34 +0000 |
---|---|---|
committer | Andy Green <agreen@pads.home.warmcat.com> | 2008-11-19 17:09:34 +0000 |
commit | cd399d1273d3e3a3a3827ec70eaf23eacae61d74 (patch) | |
tree | a04e583d4fdff669beef2a68e75bcfe452595629 /drivers/i2c/chips/pcf50633.c | |
parent | c7f95ad254e93840ebb576d9a7a1a7a2800f9da8 (diff) |
add-pcf50633-06-RTC_AIE-ioctl
Hey,
the legacy application 'atd' from Russ Nelson/Nils Faerber, used by Qtopia, to
schedule alarms currently fails to start as the the above ioctl is failing.
The other drivers in drivers/rtc implement the above ioctl and we can
implement it too.
The code to mask/unmask the RTC alarm is copied from the set_alarm routine and
adapted to use the reg_set_bit_mask and reg_set_clear_mask.
It is compiling, so it must work. Please welcome me the lkml way ;)
Signed-Off-by: Holger Hans Peter Freyther <zecke@openmoko.org>
Diffstat (limited to 'drivers/i2c/chips/pcf50633.c')
-rw-r--r-- | drivers/i2c/chips/pcf50633.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c index c14fad01c79..b5cd2cbb005 100644 --- a/drivers/i2c/chips/pcf50633.c +++ b/drivers/i2c/chips/pcf50633.c @@ -1297,7 +1297,17 @@ static int pcf50633_rtc_ioctl(struct device *dev, unsigned int cmd, { struct i2c_client *client = to_i2c_client(dev); struct pcf50633_data *pcf = i2c_get_clientdata(client); + switch (cmd) { + case RTC_AIE_OFF: + /* disable the alarm interrupt */ + reg_set_bit_mask(pcf, PCF50633_REG_INT1M, + PCF50633_INT1_ALARM, PCF50633_INT1_ALARM); + return 0; + case RTC_AIE_ON: + /* enable the alarm interrupt */ + reg_clear_bits(pcf, PCF50633_REG_INT1M, PCF50633_INT1_ALARM); + return 0; case RTC_PIE_OFF: /* disable periodic interrupt (hz tick) */ pcf->flags &= ~PCF50633_F_RTC_SECOND; |