ARM : at91-sam9x5ek Linux内核:linux-2.6.39 时钟芯片:rx8025 SA/NB
第一种方法:
Rx8025驱动程序在该linux内核中已经包含,路径为:drivers/rtc/rtc-rx8025.c 所以在内核中增加驱动只需要配置即可:
1. 执行make ARCH=arm menuconfig 进入菜单选项,选择RTC配置,选中EPSON
RX-8025SA/NB,同时一定要去掉cpu自带的时钟。
2. i2c support 需要选中I2C Hardware Bus support中GPIO-based bitbanging I2C,否则,即
使rtc驱动正确,也不能使用,提示:drivers/rtc/hctosys.c: unable to open rtc device (rtc0)。问题源自,驱动配置正确,I2C驱动没有加载正确,udevd不能创建rtc0设备节点
3. 在arch/arm/mach-at91/board-sam9x5ek.c中添加信息,注意此处的name名称要与驱动程
序中id_table中的名称保持一致。
而在linux某些匹配机制中,设备名称是与驱动名称相一致。 如果名称不能正确匹配,系统是不会执行probe函数的。
另外需要注意的是i2c地址,手册上给出的地址一般都是带有读写位的,而程序中的地址需要把最后一位的读写位去掉,取前面的7位。Rx8025的地址为0x64,相应的程序中的地址应该为0x32。否则会提示对寄存器的操作失败。
4. 驱动正确配置后,生成相应的文件 /dev/i2c-0 /dev/rtc0
/sys/bus/i2c/drivers/rtc-rx8025 /sys/bus/i2c/drivers/0-0032