.chip_select];
if (devices.bus_num == 0)
enable_spi0 = 1;
else
enable_spi1 = 1;
以下是初始化通讯接口
if (enable_spi1) {
at91_set_A_periph(AT91_PIN_PB14, 0); /* SPI1_MISO */
at91_set_A_periph(AT91_PIN_PB15, 0); /* SPI1_MOSI */
at91_set_A_periph(AT91_PIN_PB16, 0); /* SPI1_SPCK */
最后在board-sam9m10g45ek.c中,static void __init ek_board_init(void)会把各类硬件资源添加到内核
包括SPI:
/* SPI */
at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
最近几天的成果就是这些了,也不知道需不需要再另外单独设置CS口为输出方向,然后用SPI操作ENC芯片的时候,需要将CS线拉低,用完之后再拉高,但是我追踪代码,并未看见这样的操作,或许是linux的封装太精巧了,我实在是看不到那些底层的操作,搞单片机习惯了,总想看程序怎么走的。
然后ENC的中断引脚连至CPU的PD18,因此在上面我写了.irq = AT91_PIN_PD18,也不知道还需不需要有额外的声明什么的
Linux水太深了,我已经快淹死了。
请教谁搞过硬件驱动开发或移植的,指点一下,非常感谢。
驱动程序移植来源,猛击我
这老外这对这个芯片写了几版程序,我用的是最新的,应该不会有什么严重问题,而我现在需要做的,仅仅是将它注册到内核中去。