文章目录
- 1、环境介绍
- 2、目标
- 3、PCF8563
- 4、dts配置
- 5、内核配置
- 6、测试验证
1、环境介绍
硬件:飞凌ok3568-c开发板
软件:原厂rk356x sdk
2、目标
开发板断电后仍正常计时。
3、PCF8563
PCF8563 是由 NXP Semiconductors 公司生产的低功耗 CMOS 实时时钟 / 日历芯片。400kHz 的 I2C 总线,从地址读 0A3H,写 0A2H。共有 16 个 8 位寄存器,包括控制寄存器、状态寄存器、时钟计数器寄存器、报警寄存器、CLKOUT 频率寄存器、定时器控制寄存器和定时器寄存器等,其中秒、分钟、小时、日、月、年等寄存器采用 BCD 码格式编码。
4、dts配置
通过原理图得出PCF8563 RTC芯片使用I2C3接口:
&i2c3 {status = "okay";pcf8563: pcf8563@51 {status = "okay";compatible = "nxp,pcf8563";reg = <0x51>; };
};
5、内核配置
内核开启PCF8563 RTC:
CONFIG_RTC_DRV_PCF8563=y
同时关闭RK808 RTC,不然最终设备节点会出现两个RTC,/dev/rtc0和/dev/rtc1:
CONFIG_RTC_DRV_RK808=n
6、测试验证
查看驱动是否匹配成功:
root@rk3568-buildroot:/# dmesg | grep rtc
[ 4.082733] rtc-pcf8563 3-0051: registered as rtc0
[ 4.083946] rtc-pcf8563 3-0051: setting system clock to 2024-12-25T09:02:14 UTC (1735117334)
root@rk3568-buildroot:/# ls /dev/rtc0
/dev/rtc0
执行如下命令设置系统日期和时间:
root@rk3568-buildroot:/# date -s "2024-12-25 11:22:25"
把系统时间写入RTC:
root@rk3568-buildroot:/# hwclock -wu
断电,等待1~2分钟后重启,查看时间是否正常:
root@rk3568-buildroot:/# date
Wed Dec 25 11:24:50 UTC 2024