RK35x8-RTC(RX8025T)驱动加载

RTC芯片简介

RX8025-T是EPSON 推出的一款拥有I2C接口和温度补偿功能的新型实时时钟芯片,内部集成32.768KHz温度补偿晶体振荡器,可用于各种需要高精度时钟的场合。通过设置相应补偿的控制位,可以实现不同间隔的温度补偿功能,从而大大提高了时钟的精度。芯片可设置四种不同的时段进行温度补偿,默认设置是2S补偿。该芯片采用C-MOS工艺生产,具有极低的功能消耗,可长期使用电池供电。

RK35X8 加载驱动

/home/fdkj/Neardi-3568-SDK-Linux-V2.2/Neardi-3568-SDK-Linux-V2.2/kernel/arch/arm64/boot/dts/rockchip/rk3568-neardi-linux-ld120-base.dtsi

文件中找到挂RTC的硬件IIC总线的设备树节点,增加 RTC 和扩展芯片的节点信息

&i2c5{
   
    status="okay";
    hym8563: hym8563@51 {
   
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                status = "disabled";//roger change
        };
    /* roger change start */
    rx8025t: rx8025t@32 {
   //roger add 时钟芯片
        compatible = "epson,rx8025";
        reg = <0x32>;//从机地址 0x32
        status = "okay";
    };
    /* roger change end */
};
  1. 再使用 make ARCH=arm64 menuconfig 进入内核配置界面,使能 RTC 驱动,保存退出。
    在这里插入图片描述
  2. 编译后将新的内核文件烧录到开发板中
    需要注意的是需要先参照 《RK35X8 SDK 内核 menuconfig 配置》 确保图形化配置界面的设置生效了

RTC 在 linux 下接口的使用

Linux 提供了三种用户空间调用接口。在 LKD3568开发板中对应的路径为:
• SYSFS接口:/sys/class/rtc/rtc0/
• PROCFS接口: /proc/driver/rtc
• IOCTL接口: /dev/rtc0

  1. SYSFS接口
    可以直接使用 cat 和 echo 操作 /sys/class/rtc/rtc0/ 下面的接口:
    比如查看当前 RTC 的日期和时间:
#cat /sys/class/rtc/rtc0/date
2022-01-15
#cat /sys/class/rtc/rtc0/time
12:46:00

设置开机时间,如设置 120 秒后开机:
#120秒后定时开机

echo+120 >  /sys/class/rtc/rtc0/wakealarm

#查看开机时间

cat /sys/class/rtc/rtc0/wakealarm

#关机

reboot -p
  1. PROCFS 接口
    打印 RTC 相关的信息:
# cat /proc/driver/rtc
rtc_time        : 03:36:05
rtc_date        : 2022-01-05
alrm_time        : 12:46:00
alrm_date        : 2022-01-05
alarm_IRQ        : yes
alrm_pending        : no
update IRQ enabled        : no
periodic IRQ enabled        : no
periodic IRQ frequency        : 1max user IRQ frequency        : 6424hr                : yes
  1. IOCTL接口
    可以使用 ioctl 控制 /dev/rtc0。

FAQ

Q1: 开发板上电后时间不同步?
A1: 检查一下 RTC 电池是否正确接入。

Q2:没有纽扣电池且首次上电后,通过 hwclock 指令无法读取实时时间,报 hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument 的错误
A2: 需要通过 hwclock -w 先将本地时间同步到硬件时钟,后面就可以正常读取

相关推荐

  1. QT mysql 驱动

    2024-02-03 07:34:03       30 阅读
  2. WIFI驱动移植实验:WIFI驱动测试

    2024-02-03 07:34:03       17 阅读
  3. [RK-Linux] RK3399使用官方固件rkbin方式U-Boot

    2024-02-03 07:34:03       16 阅读
  4. [RK-Linux] RK3399使用开源TPL与SPL方式U-Boot

    2024-02-03 07:34:03       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 07:34:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 07:34:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 07:34:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 07:34:03       18 阅读

热门阅读

  1. 第8章 SpringBoot任务管理

    2024-02-03 07:34:03       29 阅读
  2. 设计模式之-适配器模式

    2024-02-03 07:34:03       35 阅读
  3. 适配器模式

    2024-02-03 07:34:03       28 阅读
  4. 前端面试题-vue-MVC和MVVM-VUE常见指令

    2024-02-03 07:34:03       29 阅读
  5. 02-OpenFeign-微服务接入

    2024-02-03 07:34:03       31 阅读
  6. k8s helm安装Tiller出错解决

    2024-02-03 07:34:03       32 阅读
  7. PyTorch和TensorFlow的简介

    2024-02-03 07:34:03       30 阅读
  8. 【conda】容易遗忘的命令使用总结

    2024-02-03 07:34:03       35 阅读
  9. 微信小程序如何控制元素的显示和隐藏

    2024-02-03 07:34:03       25 阅读
  10. Acwing---2816. 判断子序列

    2024-02-03 07:34:03       27 阅读
  11. Go语言中...(三个点)的使用几个常见情况

    2024-02-03 07:34:03       26 阅读