1. 程式人生 > >Linux驅動: rtc子系統

Linux驅動: rtc子系統

硬件 linux 接口 嵌入式 用戶

  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子系統