近期发现AT91SAM9G25自带的RTC功能,在启动时候会导致启动失败的概率(2%),因此建议客户使用IIC扩展RTC功能。
推荐使用Epson的RX8025实时时钟芯片(RX8025T-UB为工业级,RX8025T-UC为商业级,驱动一样,请根据需求自行选用)。
硬件扩展电路如下:
软件驱动添加建议:
/**************************************************************/
1. 添加i2c0: i2c@0
/**************************************************************/
修改内核中的dts文件,配置i2c0:
linux-at91/arch/arm/boot/dts/at91sam9g25ek.dts
在at91sam9g25ek.dts文件中添加如下内容:
i2c0: i2c@0 { status = "okay"; rtc: rtc@32 { compatible = "espon,rx8025"; reg = <0x32>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rx8025_irq>; }; }; pinctrl@fffff400 { board { pinctrl_rx8025_irq: rx8025_irq { atmel,pins = <2 10 0x0 0x5>; /* PC10 GPIO with pull up deglith */ }; }; };
/**************************************************************/
2. 选择RTC驱动
/**************************************************************/
进入linux内核源码,替换 \linux-at91\drivers\rtc\rtc-rx8025.c文件,点击下载rtc-rx8025.c文件。
配置内核-选择外部RTC,运行下列指令进入配置界面:
cd linux-at91/ make menuconfig
进入配置界面:
Device Drivers ---> [*] Real Time Clock ---> <*> Epson RX-8025SA/NB
然后选择 exit 退出 ,最后提示是否保存配置,选择yes回车键保存配置
然后重新编译内核即可。