• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : micro2440安装SPI0和SPI1的驱动 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 13593
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-01-26
最后登录: 2012-08-06
楼主  发表于: 2010-03-22 16:12

 micro2440安装SPI0和SPI1的驱动

micro2440安装SPI0和SPI1的驱动

我使用的是友善之臂09年2月光盘里的2.6.29内核。是参考了很多资料经过几天才搞定的,最后可以在/dev里看到spidev0.0 和spidev1.0两个节点,并且用micro2440板的用户按键接口测试spidev1.0的波形正确


在arch/arm/mach-s3c2440/mach-mini2440.c中:
//1:加入头文件:
#include <../mach-s3c2410/include/spi.h>
#include <linux/spi/spidev.h>


//2:加入
static struct spi_board_info s3c2410_spi0_board[] = {
[0] = {
.modalias = "spidev",
.bus_num= 0,
.chip_select= 0, //必须小于s3c2410_spi0_platdata.num_cs
.irq = IRQ_EINT9,
.max_speed_hz= 500*1000,
},
};

static struct s3c2410_spi_info s3c2410_spi0_platdata = {
.pin_cs = S3C2410_GPG2,//此处根据内核不同略有不同,在2.6.32
.num_cs = 1,/*shw:不能等于0,代表可以选择的slave数量 //#include <mach/regs-gpio.h>有不同定义*/
.bus_num = 0,
.gpio_setup=s2c24XX_spi_gpiocfg_bus0_gpe11_12_13,
};

static struct spi_board_info s3c2410_spi1_board[] = {
[0] = {
.modalias = "spidev",
.bus_num= 1,//代表使用芯片的第二个spi模块
.chip_select= 0, //必须小于s3c2410_spi0_platdata.num_cs
.irq = IRQ_EINT2,
.max_speed_hz = 500*1000,
},
};

static struct s3c2410_spi_info s3c2410_spi0_platdata = {
.pin_cs = S3C2410_GPG3,//此处根据内核不同略有不同,在2.6.32
.num_cs = 1,/*不能等于0,代表可以选择的slave器件数量*/
.bus_num = 1,
.gpio_setup=s2c24XX_spi_gpiocfg_bus0_gpg5_6_7,
};



//3:在mini2440_devices平台设备数组中添加
////
&s3c_device_spi0,
&s3c_device_spi1,



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

///
说明:


4.------------------------------------------------------
打开arch/arm/plat-s3c24XX/Kconfig
找到
////////////

config S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13
bool
help
SPI GPIO configuration code for BUS0 when connected to
GPE11, GPE12 and GPE13.

config S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7
bool
help
SPI GPIO configuration code for BUS 1 when connected to
GPG5, GPG6 and GPG7.

/////////////////

修改为

//////////////
config S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13
bool "S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13"
help
SPI GPIO configuration code for BUS0 when connected to
GPE11, GPE12 and GPE13.

config S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7
bool "S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7"
help
SPI GPIO configuration code for BUS 1 when connected to
GPG5, GPG6 and GPG7.
///////////////
在内核根目录下执行
#make menuconfig

进入主目录下的System Type目录,选中
S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13
S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7
两个选项
进入主目录->Device drivers
选中[*]SPI support,并进入,选中大部分选项,除了最后一个对tle62X0支持的


编译内核

5:-----------------------------
内核编译完成后进入/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测试程序;
拷入文件系统运行可看到结果。
级别: 新手上路
UID: 14242
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-02-05
最后登录: 2017-09-13
1楼  发表于: 2010-03-22 21:48
MARK个
级别: 新手上路
UID: 9331
精华: 0
发帖: 18
金钱: 150 两
威望: 66 点
综合积分: 36 分
注册时间: 2009-09-25
最后登录: 2010-09-21
2楼  发表于: 2010-05-11 09:51
请问楼主你用Nand Flash启动开发板是测试spidev1.0能正常工作吗?
级别: 新手上路
UID: 13593
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-01-26
最后登录: 2012-08-06
3楼  发表于: 2010-07-20 22:33

 回 2楼(xiangjv21) 的帖子

这个应该和是否从flash启动没关系吧,我一直是用nfs调试的
级别: 新手上路
UID: 29618
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-10-01
最后登录: 2010-11-17
4楼  发表于: 2010-11-06 12:58
请帮忙,谢谢!
请问下师兄呀,我用的是mini2440(256M flash)自带的2.6.32.2版本的内核,然后根据论坛的提示对mach-s3c2440.c文件做了修改,之后使用Document下的spidev_test程序测试发现,接收到的字节数据全是FF,我只是把25脚和26脚连接,其他没接,是不是我的spi连线还差什么没连
级别: 侠客
UID: 21258
精华: 1
发帖: 120
金钱: 655 两
威望: 131 点
综合积分: 260 分
注册时间: 2010-05-13
最后登录: 2023-11-17
5楼  发表于: 2010-11-07 09:47
想问下,你要测spi,主是 2440,从是什么?
级别: 新手上路
UID: 13593
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-01-26
最后登录: 2012-08-06
6楼  发表于: 2011-03-03 09:22

 回 5楼(imjacob) 的帖子

从是一块ad芯片ad7689
级别: 新手上路
UID: 13593
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-01-26
最后登录: 2012-08-06
7楼  发表于: 2011-03-03 09:23

 回 4楼(super_haihai) 的帖子

spi数据线默认是高的,如果你没向外发东西,那么收到的应该是ff
级别: 新手上路
UID: 27083
精华: 0
发帖: 15
金钱: 75 两
威望: 15 点
综合积分: 30 分
注册时间: 2010-08-19
最后登录: 2013-02-20
8楼  发表于: 2011-03-20 16:52
支持一下!不错!
级别: 侠客
UID: 12377
精华: 0
发帖: 83
金钱: 415 两
威望: 83 点
综合积分: 166 分
注册时间: 2010-01-05
最后登录: 2023-04-08
9楼  发表于: 2011-03-30 21:46
回复:spi数据线默认是高的,如果你没向外发东西,那么收到的应该是ff
但是Document文件下的spidev_test.c是有发送的啊,怎么全是FF呢
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go