Linux驱动: rtc子系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux驱动: rtc子系统相关的知识,希望对你有一定的参考价值。

  1. 说明


    本文分析代码基于3.10内核,硬件平台为嵌入式ARM平台.



2.  rtc子系统相关文件

drivers/rtc/class.c
drivers/rtc/interface.c
drivers/rtc/rtc-core.h
drivers/rtc/rtc-dev.c
drivers/rtc/rtc-lib.c
drivers/rtc/rtc-proc.c
drivers/rtc/rtc-sysfs.c
drivers/rtc/hctosys.c
drivers/rtc/rtc-xxx.c

    class.c    : 管理rtc sys class;

    interface.c: 主要作用是间接rtc驱动接口;

    rtc-dev.c  : rtc设备用户接口;

    rtc-lib.c  : rtc辅助函数,主要用于rtc时间转换,计算;

    rtc-proc   : rtc proc fs(用户)接口;

    rtc-sysfs  : rtc sys fs(用户)接口;

    hctosys.c  : 用于在系统启动时从rtc读取时间,并设置为系统时间;

    rtc-xxx.c  : rtc硬件芯片驱动,如rtc-wm8350.c,rtc-hym8563.c等.



3. rtc子系统框图


   技术分享

   上图是基于新的rtc子系统框架,该框架能更好的适应嵌入式开发环境,嵌入式环境可能带多个rtc芯

   片.

   老的rtc驱动就是一个简单的字符设备驱动,是适应于PC平台的,对应有一个/dev/rtc设备文件.


   在新的rtc子系统框架下,应用程序通过/dev/rtc[0-N]设备来完成对rtc芯片的访问.这些访问通过

   rtc-dev.c提供的接口间接访问rtc-xxx.c提供的rtc芯片驱动.常见的操作有读取/设置时间的操作,

   这个每个rtc芯片都必须支持的操作.

   当然,访问/dev/rtc[0-N]设备文件不是访问rtc芯片的唯一途径,还可以通过rtc提供的proc,sys fs

   接口来访问rtc.



4. 系统时间来源:rtc设备制定


   Device Drivers --->

       [*] Real Time Clock --->

           (rtc0) RTC used to set system time

            ...

           *** RTC interfaces ***

           ...

           *** I2C RTC drivers ***

           ...

           *** SPI RTC drivers ***

           ...

           *** on-CPU RTC drivers ***

           ...

    注: 红色字样是指定作为系统时间来源的rtc设备.

   


本文出自 “JiMoKuangXiangQu” 博客,请务必保留此出处http://4594296.blog.51cto.com/4584296/1932659

以上是关于Linux驱动: rtc子系统的主要内容,如果未能解决你的问题,请参考以下文章

Linux驱动开发: Linux下RTC实时时钟驱动

Linux RTC 驱动实验

Linux RTC驱动模型分析

Linux下RTC驱动开发(硬件采用DS1302)

Linux下RTC驱动开发(硬件采用DS1302)

Linux驱动分析之RTC框架