• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 2.6.32.2内核下系统自带的spi驱动如何使用 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 23570
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2010-06-22
最后登录: 2010-09-13
楼主  发表于: 2010-08-26 20:21

 2.6.32.2内核下系统自带的spi驱动如何使用

                   原来在2.6.29内核上使用spi协议与DSP进行通信,所做的修改就是在网上查到的方法。
          1.  make menuconfig ARCH=arm, 在设备驱动中加入spi支持。
          2.  然后修改linux内核目录下的arch/arm/mach-s3c2440/mach-mini2440.c文件,在里面添加一些库
            #include <linux/spi/spi.h>      //添加相应的头文件
            #include <mach/spi.h>
   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方式,这三种的是通过哪些文件定义并选取的?谢谢。
baiguangyu001
级别: 新手上路
UID: 21425
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2010-05-16
最后登录: 2012-06-21
1楼  发表于: 2010-08-31 15:06
不需要自己写,S3C2410_GPB1在2.6.32中要写成S3C2410_GPB(1)
级别: 新手上路
UID: 29618
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-10-01
最后登录: 2010-11-17
2楼  发表于: 2010-11-04 14:00
谢谢,我学着更改了,问题解决了,但是使用测试程序测试,发现接收的全部是FF,我是用自发自收的测试程序。
级别: 新手上路
UID: 29618
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2010-10-01
最后登录: 2010-11-17
3楼  发表于: 2010-11-06 13:06

 回 1楼(cy_fureng) 的帖子

请帮忙,谢谢!
请问下师兄呀,我用的是mini2440(256M flash)自带的2.6.32.2版本的内核,然后根据论坛的提示对mach-s3c2440.c文件做了修改,之后使用Document下的spidev_test程序测试发现,接收到的字节数据全是FF,我只是把25脚和26脚连接,其他没接,是不是我的spi连线还差什么没连
级别: 新手上路
UID: 25772
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
综合积分: 8 分
注册时间: 2010-07-29
最后登录: 2010-11-22
4楼  发表于: 2010-11-22 10:28

 回 3楼(super_haihai) 的帖子

请问你的问题解决了吗 ?我也遇到了同样的问题
为了心中的理想 加油努力奋斗
级别: 新手上路
UID: 10377
精华: 0
发帖: 23
金钱: 175 两
威望: 65 点
综合积分: 46 分
注册时间: 2009-11-02
最后登录: 2010-12-20
5楼  发表于: 2010-11-25 16:26
楼主,我也是2.6.32,按照你的操作移植SPI驱动,但运行LINUX时,发现DEV目录下没有对应的设备文件,这是怎么回事哦?谢谢!
级别: 侠客
UID: 39689
精华: 0
发帖: 69
金钱: 350 两
威望: 70 点
综合积分: 138 分
注册时间: 2011-03-11
最后登录: 2012-04-22
6楼  发表于: 2011-06-09 19:09

 回 1楼(cy_fureng) 的帖子

我的spidev_test.c文件都没编译成功,用的是mini6410的,内核是2.6.36。我现在要通过spi总线和一个外接模块通信,不知道是用spi-s3c64xx.c还是用spi.c来实现比较好。高手请指点,想了很久了,比较急。
级别: 新手上路
UID: 52201
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2011-07-14
最后登录: 2011-07-25
7楼  发表于: 2011-07-15 17:50

 回 5楼(xuefeng) 的帖子

大侠你好,我现在用的也是2.6.32.2关于spi驱动移植这块不太会,有一份自己编写的类似于helloword的驱动程序,但是不知道如何生成.ko文件。所以打算用内核自带的spi驱动,但是又不知道如何配置移植,还请大侠不吝赐教。多谢多谢
级别: 新手上路
UID: 52201
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2011-07-14
最后登录: 2011-07-25
8楼  发表于: 2011-07-15 18:00

 回 1楼(cy_fureng) 的帖子

请问大侠2.6.32.2内核自带的SPI驱动程序如何进行相关配置然后移植呢?小弟在这遇到麻烦了。本来在网上找到一份自己编写的驱动程序但是利用Makefile文件生成.ko文件时又出现编译错误,甚是伤心啊。现在不得不转到内核自带的驱动程序上来,还请大侠帮帮忙,多谢多谢
级别: 侠客
UID: 59289
精华: 0
发帖: 62
金钱: 310 两
威望: 62 点
综合积分: 124 分
注册时间: 2011-11-22
最后登录: 2013-04-12
9楼  发表于: 2011-12-23 10:48

 Re:回 1楼(cy_fureng) 的帖子

引用第6楼yx2010于2011-06-09 19:09发表的 回 1楼(cy_fureng) 的帖子 :
我的spidev_test.c文件都没编译成功,用的是mini6410的,内核是2.6.36。我现在要通过spi总线和一个外接模块通信,不知道是用spi-s3c64xx.c还是用spi.c来实现比较好。高手请指点,想了很久了,比较急。



楼上的我现在也在做通过spi和一个外接wifi模块进行通信,不知道你的问题解决了没呢,
在内核中我已经配置了spi支持:
    -> Device Drivers
      -> SPI support
       SPI support


下面这些信息需要再添加吗
首先在 devs.c中,增加板子信息
/* 2009/06/30 jwpan add by spi begin */

static struct spi_board_info s3c2410_spi0_board[] = {

        [0] = {

                .modalias         = "spidev",    /*跟spidev.ko驱动名要相同,不然挂载不上*/

                .platform_data         = NULL,

                .bus_num        = 0,    /*使用的第一条BUS线,2410支持0,1两根*/

                .chip_select        = 1, /*片选信号,和上面结合,在/dev 里面可以看到spidev0.1*/

                .max_speed_hz         = 500*1000, /CLK频率*/

        },

};



static struct s3c2410_spi_info s3c2410_spi0_platdata = {

        .pin_cs = S3C2410_GPB1,

        .board_info = s3c2410_spi0_board,

        .board_size = ARRAY_SIZE(s3c2410_spi0_board),

};

/* 2009/06/30 jwpan add by spi end */
复制代码


求指点啊
技术人生
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go