当前位置: 技术问答>linux和unix
2.6.32.2内核下系统自带的spi驱动如何使用
来源: 互联网 发布时间:2016-11-09
本文导语: 原来在2.6.29内核上使用spi协议与DSP进行通信,所做的修改就是在网上查到的方法。 1. make menuconfig ARCH=arm, 在设备驱动中加入spi支持。 2. 然后修改linux内核目录下的arch/arm/mach-s3c2440/m...
原来在2.6.29内核上使用spi协议与DSP进行通信,所做的修改就是在网上查到的方法。
1. make menuconfig ARCH=arm, 在设备驱动中加入spi支持。
2. 然后修改linux内核目录下的arch/arm/mach-s3c2440/mach-mini2440.c文件,在里面添加一些库
#include //添加相应的头文件
#include
tatic 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,
};
等内容。
现在改成2.6.32内核后,mach-mini2440.c文件的内容发生了变化,我找原来的也添加了以上那些语句,编译不成功,找不到S3C2410_GPB1,这是怎么回事?
有用过SPI驱动的朋友请指教一下,这个驱动是不是一定要自己写,我写驱动不太会,系统有没有自带模块可以加载?
又,SPI三种传输方式:查询方式,中断方式,DMA方式,这三种的是通过哪些文件定义并选取的?谢谢。
1. make menuconfig ARCH=arm, 在设备驱动中加入spi支持。
2. 然后修改linux内核目录下的arch/arm/mach-s3c2440/mach-mini2440.c文件,在里面添加一些库
#include //添加相应的头文件
#include
tatic 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,
};
等内容。
现在改成2.6.32内核后,mach-mini2440.c文件的内容发生了变化,我找原来的也添加了以上那些语句,编译不成功,找不到S3C2410_GPB1,这是怎么回事?
有用过SPI驱动的朋友请指教一下,这个驱动是不是一定要自己写,我写驱动不太会,系统有没有自带模块可以加载?
又,SPI三种传输方式:查询方式,中断方式,DMA方式,这三种的是通过哪些文件定义并选取的?谢谢。
|
友情up以下va
|
先去把SPI子系统看懂吧。不然你怎么知道底层给你提供了那么函数,定义了那些宏。
|
S3C2410_GPB1 这个是管脚的定义吧?