linux2.6.27对at91sam9260ek中PCF8563和串口驱动的解决

按照at91sam9260ek_defconfig配置后,编译出的内核无法识别PCF8563时钟芯片,串口仅识别三个。

修改方法:

arch/arm/mach-at91中的board-sam9260ek.c 中添加

/*
* I2C devices
*/

static struct i2c_board_info __initdata ek_i2c_devices[] = {
{
I2C_BOARD_INFO("pcf8563", 0x51),
},
/* more devices can be added using expansion connectors */

};

 位置是随意的,只要别添加到别的函数中去。这样PCF8563就可以被识别到了。当然你还得把内核配置I2C驱动及RTC驱动。要不然也不找到PCF8563。

还是在这个C文件里开头 把ek_map_io函数修改成下面就可以把驱动5个串口了,

static void __init ek_map_io(void)
{
/* Initialize processor: 18.432 MHz crystal */
at91sam9260_initialize(18432000);

/* DGBU on ttyS0. (Rx & Tx only) */
at91_register_uart(0, 0, 0);

/* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
| ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
| ATMEL_UART_RI);

/* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */
at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);

/* USART2 on ttyS3. (Rx, Tx, RTS, CTS) */
at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_CTS | ATMEL_UART_RTS);

/* USART3 on ttyS4. (Rx, Tx, RTS, CTS) */
at91_register_uart(AT91SAM9260_ID_US3, 4, ATMEL_UART_CTS | ATMEL_UART_RTS);


/* set serial console to ttyS0 (ie, DBGU) */
at91_set_serial_console(0);
}

 

其实里就是引用了同文件夹下的at91sam9260_devices.c中的at91_register函数,在系统启动时加载串口驱动,可能是因为at91sam9260ek开发板只用3个串口的原因,所以它只加载了其中的3个串口驱动,少注册了几个。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值