现在的位置: 首页 > 综合 > 正文

linux的spi驱动的移植

2012年10月13日 ⁄ 综合 ⁄ 共 1171字 ⁄ 字号 评论关闭

 

1、在配置Linux 编译选项时,开启相应的SPI 选项,如下所示

   
 -> Device Drivers

      -> SPI support
       SPI support
          *** SPI Master Controller Drivers ***
      -*- Bitbanging SPI master
      <*> Samsung S3C24XX series SPI
      < > Samsung S3C24XX series SPI by GPIO
          *** SPI Protocol Masters ***
      < > SPI EEPROMs from most vendors
      <*> User mode SPI device driver support
      < > Infineon TLE62X0 (for power switching)
设置完成保存。
2、修改文件arch/arm/mach-s3c2440/mach-mini2440.c, 添加:

#include <linux/spi/spi.h>
#include <mach/spi.h>

static struct spi_board_info s3c2410_spi0_board[] = {
        [0] = {
                 .modalias = "spidev",
                .bus_num        = 0,  
                .chip_select        = 0,
                .irq = IRQ_EINT9,
                .max_speed_hz         = 500*1000,
        },
};

static struct s3c2410_spi_info s3c2410_spi0_platdata = {
        .pin_cs = S3C2410_GPB1,
        .num_cs = 1,
        .bus_num = 0,
};

mini2440_devices数组中添加
&s3c_device_spi0

mini2440_machine_init函数中添加
s3c_device_spi0.dev.platform_data= &s3c2410_spi0_platdata;
spi_register_board_info(s3c2410_spi0_board, ARRAY_SIZE(s3c2410_spi0_board));

完成保存。编译内核生成zImage,通过USB载入开发板。

3、使用document里面的spidev_test文件测试,注意要把spidev_test中的文件的名字修改下不然会提示找不到设备的。

 
把MOSI和MISO线连接到一起。跑测试程序。成功。

抱歉!评论已关闭.