网站备案 固话,郑州人才网,图书销售网站设计怎么做,姓名logo设计免费rx8010时钟芯片挂载在I2C1总线上#xff0c;并且集成在主控板上。
硬件原理 IOMUX配置
rx8010时钟芯片挂载在I2C1总线上#xff0c;I2C1数据IIC1_SDA和时钟IIC1_SCL#xff0c;分别对应的PAD NAME为#xff0c;UART4_TX_DATA、UART4_RX_DATA。 在arch/arm/boot/dts/imx6u…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_SCLMX6UL_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:rtc32{compatible epson,rx8010;reg 0x32;};
添加后效果如下 添加rx8010驱动
一、将ELF 1开发板资料包\02-Linux 源代码\ 02-Linux 源代码\02-1 驱动源码\13_rx8010\rtc-rx8010.c拷贝到内核源码的drivers/rtc/路径下
二、修改Kconfig
elfubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vi drivers/rtc/Kconfig
添加以下内容
config RTC_DRV_RX8010tristate Epson RX-8010SA/NBhelpIf you say yes here you get support for the EpsonRX-8025SA/NB RTC chips.This driver can also be built as a module. If so, the modulewill be called rtc-rx8010.
添加后效果如下 三、修改Makefile
elfubuntu:~/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打开图形化配置界面
elfubuntu:~/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。
elfubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ cp .config arch/arm/configs/imx6ul\l_elf1_defconfig 编译测试
编译内核和设备树并拷贝到开发板
elfubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ ./build.shelfubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/zImage root\172.16.0.175:/run/media/mmcblk1p1/elfubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/dts/imx6ull-elf\1-emmc.dtb root172.16.0.175:/run/media/mmcblk1p1/
进行sync操作后重启开发板 使用以下命令进行测试设置系统当前时间
rootELF1:~# date 072216162021.00 //设置软件时间Thu Jul 22 16:16:00 CST 2021
读取RTC芯片时间
rootELF1:~# hwclock -r //显示硬件时间Mon Mar 15 10:52:17 2021 0.000000 seconds
设置系统时间到RTC芯片时间再读取RTC芯片时间
rootELF1:~# hwclock -wu //将软件时间同步到硬件时间rootELF1:~# hwclock -r //显示硬件时间Thu Jul 22 08:16:43 2021 0.000000 seconds
然后给板子断电再上电进入系统后使用命令date读取系统时间可以看到时间已经同步。