上一篇文章中介绍了rtc设备驱动模型的架构,本篇主要介绍rtc设备驱动模型中的rtc设备注册以及rtc初始化相关的内容。
RTC设备驱动模型相关的结构体变量
针对该设备驱动模型架构而言,我们靠什么事项架构内层级间的关联呢?那就是数据结构以及数据结构间的关联
针对rtc设备驱动模型而言,主要有两个结构体变量:struct rtc_device、struct rtc_class_ops 。
其中struct rtc_class_ops 定义了各rtc设备的操作接口(包括读写时间、alarm的设置与读取等),即rtc设备对应的操作方法,也就是上面介绍的“RTC class ops”,这些接口是直接与rtc设备通信的。
![30870dfda7acb80ab2a3084e87a8fdb8.png](https://img-blog.csdnimg.cn/img_convert/30870dfda7acb80ab2a3084e87a8fdb8.png)
rtc_class_ops结构体
而rtc_device用于表示一个rtc设备,主要包括(定义如下所示):
- device类型变量(实现与设备驱动模型、sysfs的关联);
- rtc_class_ops类型的成员变量用于操作rtc设备的接口;
- cdev类型的变量,用于表示该rtc设备对应的字符设备。
- 而剩下的成员变量包含rtc设备名称、aie、uie、pie处理相关的变量(包括工作队列、等待队列等等)
![c489462e79027369f1ff5a4e04eb4f11.png](https://img-blog.csdnimg.cn/img_convert/c489462e79027369f1ff5a4e04eb4f11.png)
rtc_device结构体
在前面的rtc驱动架构图中已经说明:
- 应用程序通过rtc相关的字符设备文件,完成对rtc的操作;
- 应用程序通过sysfs中 的属性文件,可完成对rtc