二.RTC设备驱动
申请rtc_device,RTC注册函数:
struct rtc_device *devm_rtc_device_register(struct device *dev,
const char *name,
const struct rtc_class_ops *ops,
struct module *owner)
这个接口会自动帮你从设备树的aliases节点获取rtcx的序号,如果没有填写就自动分配一个序号。
注销rtc_device,RTC注销函数:
void devm_rtc_device_unregister(struct device *dev,
struct rtc_device *rtc)
内核RTC框架提供了3中数据结构:
struct rtc_time、struct rtc_device和struct rtc_device_ops结构,其定义如下:
struct rtc_time {
int tm_sec, tm_min, tm_hour, tm_mday, tm_mon, tm_year/*从1900开始*/;
int tm_wday, tm_yday, tm_isdst/*夏令时标志*/;
};
struct rtc_device {
struct device dev;
struct module *owner;
int id; // 由内核提供给rtc设备的全局