14 * Rather than expecting every RTC to implement "don't care" 15 * for day/month/year fields, just force the alarm to have 16 * the right values for those fields. 17 * 18 * RTC_WKALM_SET should be used instead. Not only does it 19 * eliminate the need for a separate RTC_AIE...
1caseRTC_ALM_SET:2mutex_unlock(&rtc->ops_lock);34if(copy_from_user(&alarm.time, uarg,sizeof(tm)))5return-EFAULT;67alarm.enabled =0;8alarm.pending =0;9alarm.time.tm_wday = -1;10alarm.time.tm_yday = -1;11alarm.time.tm_isdst = -1;1213/*RTC_ALM_SET alarms may be up to ...
rtcsetYYYY-MM-DDThh:mm:ss [rtc] rtc wkalmrd [rtc] rtc wkalmset YYYY-MM-DDThh:mm:ss [rtc] rtc almread [rtc] rtc almset YYYY-MM-DDThh:mm:ss [rtc] rtc aieon [rtc] rtc aieoff [rtc] 如下是设置Alarm的流程: rtc rd--读取时间。 rtc aieon--打开aie中断。 rtc almset 2024-01-18...
(1) RTC_RD_TIME,RTC_SET_TIME .. 每一个RTC都至少支持读时间这个命令,时间格式为公历和24小时制墙钟时间。最有用的特性是,这个时间可以更新。 (2) RTC_ATE_ON,RTC_ATE_OFF,RTC_ALM_SET,RTC_ALM_READ ... 当RTC连接了一条IRQ线,他还能处理在未来24小时的报警中断。 (3) RTC_WKALM_SET,RTC_WKAL...
(alarm))) return -EFAULT; return rtc_set_alarm(rtc, &alarm); case RTC_WKALM_RD: //Get wakeup alarm mutex_unlock(&rtc->ops_lock); err = rtc_read_alarm(rtc, &alarm); if (err < 0) return err; if (copy_to_user(uarg, &alarm, sizeof(alarm))) err = -EFAULT; return err; ...
76int(*set_time)(struct device *,struct rtc_time *);77int(*read_alarm)(struct device *,struct rtc_wkalrm *);78int(*set_alarm)(struct device *,struct rtc_wkalrm *);79int(*proc)(struct device *,struct seq_file *);80int(*set_mmss64)(struct device *,time64_t secs);81int(*set...
LOG_D("RTC: set rtc_time %x\n", *(rt_uint32_t *)args); break; ifdef RT_USING_ALARM case RT_DEVICE_CTRL_RTC_GET_ALARM: args = &rtc_device.wkalarm; break; case RT_DEVICE_CTRL_RTC_SET_ALARM: p_wkalarm = (struct rt_rtc_wkalarm *)args; if (p_wkalarm != RT_NULL) { rt...
rtc_dev_ioctl函数对其他的命令处理都是类似的,比如RTC_ALM_READ命令会通过rtc_read_alarm函数获取到闹钟值,而rtc_read_alarm函数经过层层调用,最终会调用rtc_class_ops中的read_alarm函数来获取闹钟值。 至此,Linux内核中RTC驱动调用流程就很清晰了,如下图所示:...
RTC_WKALM_SET Some RTCs support a more powerful alarm interface, using these ioctls to read or write the RTC's alarm time (respectively) with this structure: struct rtc_wkalrm { unsigned char enabled; unsigned char pending; struct rtc_time time; }; The enabled flag is used to enable or...
s3c_rtc_settime()设置RTC时间,在应用层用hwclock -w来进行同步系统和RTC时间时会调用该函数。 static int s3c_rtc_getalarm(struct device *dev, struct rtc_wkalrm *alrm) { struct rtc_time *alm_tm = &alrm->time; void __iomem *base = s3c_rtc_base; ...