开发板适配之I2C-RTC

rx8010时钟芯片挂载在I2C1总线上,并且集成在主控板上。

硬件原理

IOMUX配置

rx8010时钟芯片挂载在I2C1总线上,I2C1数据IIC1_SDA和时钟IIC1_SCL,分别对应的PAD NAME为,UART4_TX_DATA、UART4_RX_DATA。

在arch/arm/boot/dts/imx6ul-pinfunc.h中找到它们的宏定义,分别如下:

复制代码
MX6UL_PAD_UART4_TX_DATA__I2C1_SCL

MX6UL_PAD_UART4_RX_DATA__I2C1_SDA

然后打开设备树文件arch/arm/boot/dts/imx6ull-elf1-emmc.dts,我们看到原来的设备树文件已经添加了pinctrl_i2c1子节点,而且选择的引脚与UART4_TX_DATA、UART4_RX_DATA一致,所以此处无需修改,

效果如下:

添加设备节点

查看arch/arm/boot/dts/imx6ull-elf1-emmc.dts文件,添加如下内容:

复制代码
       rx8010:rtc@32{

                compatible = "epson,rx8010";

                reg = <0x32>;

        };

添加后效果如下:

添加 rx8010 驱动

一、将++++ELF 1开发板资料包++++ ++++\02-Linux 源代码\++++ ++++02-Linux 源代码\02-1 驱动源码\++++ ++++13++++ ++++_++++ ++++rx8010++++ ++++\++++ ++++rtc-rx8010++++ ++++.c++++ 拷贝到内核源码的drivers/rtc/路径下:

二、修改Kconfig:

复制代码
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vi drivers/rtc/Kconfig

添加以下内容:

复制代码
config RTC_DRV_RX8010

        tristate "Epson RX-8010SA/NB"

        help

          If you say yes here you get support for the Epson

          RX-8025SA/NB RTC chips.



          This driver can also be built as a module. If so, the module

          will be called rtc-rx8010.

添加后效果如下:

三、修改Makefile:

复制代码
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vi drivers/rtc/Makefile

添加以下内容:

复制代码
obj-$(CONFIG_RTC_DRV_RX8010)    += rtc-rx8010.o

添加后效果如下:

四、将rx8010驱动编译进内核:

使用make menuconfig打开图形化配置界面:

复制代码
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ make menuconfig

找到以下位置,我们可以在这里选择Y编译进内核,或者M编译成模块,或者N选择不编译。选择编译进内核:

复制代码
Device Drivers

-> Real Time Clock

五、替换配置文件

通过make menuconfig修改的内容写入到了.config文件,当使用make imx6ull_elf1_defconfig配置内核源码时,.config文件会被覆盖,因此,需要替换原有的imx6ull_elf1_defconfig。

复制代码
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ cp .config arch/arm/configs/imx6ul\l_elf1_defconfig

编译测试

编译内核和设备树并拷贝到开发板:

复制代码
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ ./build.sh

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/zImage   root\@172.16.0.175:/run/media/mmcblk1p1/

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/dts/imx6ull-elf\1-emmc.dtb [email protected]:/run/media/mmcblk1p1/

进行sync操作后重启开发板:

使用以下命令进行测试,设置系统当前时间:

复制代码
root@ELF1:~# date 072216162021.00                   //设置软件时间

Thu Jul 22 16:16:00 CST 2021

读取RTC芯片时间:

复制代码
root@ELF1:~# hwclock -r                                    //显示硬件时间

Mon Mar 15 10:52:17 2021  0.000000 seconds

设置系统时间到RTC芯片时间,再读取RTC芯片时间:

复制代码
root@ELF1:~# hwclock -wu                   //将软件时间同步到硬件时间

root@ELF1:~# hwclock -r                              //显示硬件时间

Thu Jul 22 08:16:43 2021  0.000000 seconds

然后给板子断电再上电,进入系统后使用命令date读取系统时间,可以看到时间已经同步。

相关推荐
Mapmost2 天前
【数据可视化艺术·实战篇】视频AI+人流可视化:如何让数据“动”起来?
人工智能·信息可视化·实时音视频·数字孪生·demo
清水迎朝阳6 天前
火山RTC 3 创建RTC引擎
实时音视频·rtc·火山rtc·互动·火山
菊风 Juphoon7 天前
菊风RTC 2.0 开发者文档正式发布,解锁音视频新体验!
音视频·实时音视频
不不不丶8 天前
STM32——RTC实时时钟
stm32·嵌入式硬件·实时音视频
Likeadust8 天前
依靠视频设备轨迹回放平台EasyCVR构建视频监控,为幼教连锁园区安全护航
大数据·网络·人工智能·音视频·实时音视频
智联视频超融合平台10 天前
国网B接口注册流程详解以及注册失败原因(电网B接口)
网络·人工智能·后端·网络协议·安全·音视频·实时音视频
sqmeeting13 天前
Linux NUC小主机化身视频会议服务器: 技术优势与部署实战
linux·服务器·windows·音视频·实时音视频
芭拉拉小魔仙14 天前
Uniapp Vue3 小程序接入实时音视频TUICallKit遇到的问题
小程序·uni-app·实时音视频
三歪爱三玖16 天前
【蓝桥杯】单片机设计与开发,RTC实时时钟
单片机·蓝桥杯·实时音视频
傍晚冰川17 天前
【STM32】最后一刷-江科大Flash闪存-学习笔记
笔记·科技·stm32·单片机·嵌入式硬件·学习·实时音视频