Linux驱动|rtc-hym8563移植笔记
内容提要
本文介绍了瑞芯微rk3568平台上RTC-HYM8563实时时钟芯片的使用方法,包括产品概述、特点、移植步骤、驱动程序、测试方法和遇到的问题。提供设备树节点信息和驱动程序位置。作者将继续编写关于Linux内核的RTC时间子系统的文章。
延伸解读
硬件连接与设备树配置要点
根据电路图,HYM8563连接在I2C5上,从设备地址为0x51,中断引脚为GPIO0_D3。设备树节点需在&i2c5下添加,并配置pinctrl和中断。注意节点中的reg、interrupts等属性必须与硬件一致,否则驱动无法正常探测。
内核配置与时间同步机制
为使RTC时间与系统时间同步,需启用CONFIG_RTC_HCTOSYS和CONFIG_RTC_SYSTOHC,并指定默认设备为rtc0。同时,在rockchip_defconfig中关闭CONFIG_RTC_DRV_RK808,避免多个RTC设备冲突。
Android权限问题与解决方案
UI设置时间无法同步到HYM8563,logcat提示打开/sys/class/rtc/rtc0/hctosys权限不足。需在genfs_contexts中添加该路径的SELinux上下文,赋予读取权限,重新编译Android后即可解决。
测试与验证方法
可通过UI界面设置时间,并用hwclock命令验证。关机后等待几分钟再开机,检查时间是否与手机一致,以确认RTC在断电后仍能计时。此外,可查看/sys/class/rtc/rtc0下的信息,如date、time等。
Q&A
HYM8563芯片的主要特点是什么?
HYM8563是一款低功耗CMOS实时时钟芯片,支持I2C总线接口,具有可计时的秒、分、小时等功能,宽工作电压范围和低休眠电流。
如何在rk3568平台上移植HYM8563驱动?
移植步骤包括电路图设计、设备树配置和驱动程序的使用,驱动程序位于drivers/rtc/rtc-hym8563.c。
在测试HYM8563时需要注意哪些问题?
测试时需注意多个RTC设备冲突、时间无法同步和缺少纽扣电池等问题。
HYM8563芯片的I2C总线接口速度是多少?
HYM8563的最大I2C总线速度为400Kbits/s。
如何配置内核以支持HYM8563的RTC时间同步?
需要在内核配置中启用CONFIG_RTC_HCTOSYS和CONFIG_RTC_SYSTOHC选项,并指定默认同步时间的RTC设备。
HYM8563芯片的电源要求是什么?
HYM8563的工作电压范围为1.8V到5.5V,典型的低休眠电流为0.25μA。