本文來源電子發燒友社區,作者:voidpbq, 帖子地址:https://bbs.elecfans.com/jishu_2299996_1_1.html
一、前言
本章簡單的介紹下開發板使用的rtc電路以及如何測試。
二、硬件分析
rtc電路
G2-L gpio
三、 代碼分析
1. makefile
OKG2L-linux-sdk10OKG2L-linux-kerneldriversrtcMakefile
ccflags-$(CONFIG_RTC_DEBUG):= -DDEBUG
obj-$(CONFIG_RTC_LIB) += rtc-lib.o
obj-$(CONFIG_RTC_HCTOSYS) += hctosys.o
obj-$(CONFIG_RTC_SYSTOHC) += systohc.o
obj-$(CONFIG_RTC_CLASS) += rtc-core.o
obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o
查看makefile可以看到對應的編譯情況。
OKG2L-linux-sdk10OKG2L-linux-kerneldrivers
obj-$(CONFIG_RTC_LIB) += rtc/
配置config路徑
OKG2L-linux-sdk10OKG2L-linux-kernelarcharm64configsOKG2L-C_defconfig
默認是打開的
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_PCF8563=y
CONFIG_RTC_DRV_RX8581=y
我沒用看到如下三個配置定義,存疑。
CONFIG_RTC_LIB=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_SYSTOHC=y
2. dtsi
dtsi路徑:OKG2L-linux-sdk10OKG2L-linux-kernelarcharm64bootdtsrenesasOKG2L-C.dtsi
&i2c2 {
pinctrl-0 = <&i2c2_pins>;
pinctrl-names = "default";
status = "okay";
pcf8563:rtc@51 {
compatible =
"nxp,pcf8563";
reg = <0x51>;
status = "okay";
};
wm8960: codec[url=home.php?mod=space&uid=105298]@1a[/url] {
compatible =
"wlf,wm8960";
#sound-dai-cells = <0>;
reg = <0x1a>;
};
};
3. 驅動
OKG2L-linux-sdk10OKG2L-linux-kerneldriversrtcrtc-
pcf8563.c
#ifdef CONFIG_OF
static const struct of_device_id pcf8563_of_match[] = {
{ .compatible = "nxp,pcf8563" },
{}
};
MODULE_DEVICE_TABLE(of, pcf8563_of_match);
#endif
dtsi的compatible 會匹配驅動中of_device_id
4. 代碼分析
設備名稱為0,檢索dts中的rtc節點
查看rtc設備
root@okg2l:/dev# ls -l rtc
rtc rtc0
root@okg2l:/dev# ls -l rtc0
crw------- 1 root root 253, 0 Aug 16 20:36 rtc0
root@okg2l:/dev# ls -l rtc
lrwxrwxrwx 1 root root 4 Aug 16 20:36 rtc -> rtc0
在dev目錄下可以查看到rtc信息,其中rtc是一個link文件指向rtc0
四、測試
【命令】date
【命令】date -s "time"
【命令】hwclock -s
【命令】hwclock -w
五、小結
使用屏幕測試了rtc,只能顯示時間,應用按鈕太小了還是什么原因,無法實現設置和調整時間。
-
飛凌
+關注
關注
0文章
134瀏覽量
16107 -
開發板試用
+關注
關注
3文章
301瀏覽量
2092
發布評論請先 登錄
相關推薦
評論