无敌大黄蜂

AT91 配置ds1337为系统时钟

0
阅读(3409)

http://blog.chinaunix.net/u2/75270/showart_2099201.html

加开I2C选项,并打开其下的GPIO-based bitbanging I2C选项,以使用软件模拟的i2c接口。注意不能使用Atmel AT91 I2C Two-Wire interface (TWI)选项打开AT9261硬件i2C接口,因为硬件接口在linux下极不稳定。关闭realtime clock下的on cpu rtc driver。打开 Dallas/Maxim DS1307/37/38/39/40, ST M41T00选项,使用内核自带的DS1337驱动。重新编译内核,顺利通过,下载到板子上,重新系统,系统报告找到/dev/rtc。经过一翻努力,查找了很多资料,终于发现还要在板子初始化时,加入i2c的相关初化代码。在linux-2.6.24/arch/arm/mach-at91/board-sam9261ek.c中加入以下代码。

static struct i2c_board_info __initdata RTC_i2c_devices[] = {

{

I2C_BOARD_INFO("rtc-ds1307", 0x68),

.type = "ds1307",

},

};

并将

static void __init ek_board_init(void)中的at91_add_device_i2c(NULL, 0);改为at91_add_device_i2c(RTC_i2c_devices, ARRAY_SIZE(RTC_i2c_devices));