Chinaunix首页 | 论坛 | 博客
  • 博客访问: 281966
  • 博文数量: 85
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 525
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-12 21:41
文章分类

全部博文(85)

文章存档

2013年(37)

2011年(2)

2010年(3)

2009年(43)

我的朋友

分类: 嵌入式

2010-02-23 22:24:04

 
在arch/arm/mach-s3c2440/mach-mini2440.c中:
1:加入头文件:
#include
#include
 
 
2:----------------------------------------

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,//此处根据内核不同略有不同,在2.6.32                  
        .num_cs = 1,           //#include 有不同定义
        .bus_num = 0,
};
 
 

3:-------------------------------
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));

说明:
spi_register_board_info函数将spi_board_info结构体信息添加到内核board_list链表中,在加载s3c2410-spi模块时依次调用关系是:s3c24xx_spi_probe-->spi_bitbang_start-->spi_register_master-->scan_boardinfo,在scan_boardinfo时遍历整个board_list链表,根据bus_num找到我们添加进去的spi_board_info。
 
 
4:-----------------------------
内核编译完成后进入/root/linux-2.6.32.2/Documentation/spi
执行:arm-linux-gcc -I/root/linux-2.6.32.2/include  spidev_test.c
后会生成a.out的spi测试程序;
拷入文件系统运行可看到结果。
 
阅读(2479) | 评论(0) | 转发(0) |
0

上一篇:ARM中断处理

下一篇:inet配置

给主人留下些什么吧!~~