diff options
Diffstat (limited to 'drivers/rtc/rtc-bfin.c')
| -rw-r--r-- | drivers/rtc/rtc-bfin.c | 21 | 
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/rtc/rtc-bfin.c b/drivers/rtc/rtc-bfin.c index b4b6087f223..17971d93354 100644 --- a/drivers/rtc/rtc-bfin.c +++ b/drivers/rtc/rtc-bfin.c @@ -259,15 +259,6 @@ static int bfin_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long ar  		bfin_rtc_int_clear(~RTC_ISTAT_SEC);  		break; -	case RTC_AIE_ON: -		dev_dbg_stamp(dev); -		bfin_rtc_int_set_alarm(rtc); -		break; -	case RTC_AIE_OFF: -		dev_dbg_stamp(dev); -		bfin_rtc_int_clear(~(RTC_ISTAT_ALARM | RTC_ISTAT_ALARM_DAY)); -		break; -  	default:  		dev_dbg_stamp(dev);  		ret = -ENOIOCTLCMD; @@ -276,6 +267,17 @@ static int bfin_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long ar  	return ret;  } +static int bfin_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) +{ +	struct bfin_rtc *rtc = dev_get_drvdata(dev); + +	dev_dbg_stamp(dev); +	if (enabled) +		bfin_rtc_int_set_alarm(rtc); +	else +		bfin_rtc_int_clear(~(RTC_ISTAT_ALARM | RTC_ISTAT_ALARM_DAY)); +} +  static int bfin_rtc_read_time(struct device *dev, struct rtc_time *tm)  {  	struct bfin_rtc *rtc = dev_get_drvdata(dev); @@ -362,6 +364,7 @@ static struct rtc_class_ops bfin_rtc_ops = {  	.read_alarm    = bfin_rtc_read_alarm,  	.set_alarm     = bfin_rtc_set_alarm,  	.proc          = bfin_rtc_proc, +	.alarm_irq_enable = bfin_rtc_alarm_irq_enable,  };  static int __devinit bfin_rtc_probe(struct platform_device *pdev)  |