Linux驅動: rtc子系統
說明
本文分析代碼基於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子系統