主题 : 请教SPI外设驱动事宜 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 5655
精华: 0
发帖: 69
金钱: 345 两
威望: 69 点
贡献值: 0 点
综合积分: 138 分
注册时间: 2009-05-02
最后登录: 2018-10-29
楼主  发表于: 2012-09-19 17:29

 请教SPI外设驱动事宜

SPI驱动包括核心层spi.c、主机驱动(比如s3c24XX_spi.c)、外设驱动(比如SPI 存储设备)。假设我不用spidev这个通用read write 的接口,而是用具体的外设驱动(比如SPI储存设备)来操作的话,在应用层要怎么调用这个外设驱动进行发送接收数据?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2012-09-19 23:25

 回 楼主(shaoh.12) 的帖子

和普通的外设驱动没有什么区别,不同的只是驱动底层调用spi核心层提供的API通过SPI总线读写从设备。drivers/mtd/devices/mtd_dataflash.c是一个SPI接口的NOR flash存储设备的例子
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 5655
精华: 0
发帖: 69
金钱: 345 两
威望: 69 点
贡献值: 0 点
综合积分: 138 分
注册时间: 2009-05-02
最后登录: 2018-10-29
2楼  发表于: 2012-09-21 08:55

 回 1楼(kasim) 的帖子

感谢,版主回答。再请教下,就是说外设驱动中定义read write等函数供应用层调用是吧。还有请问下,SPI的速度和字节位数,在哪设置?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2012-09-21 09:44

 回 2楼(shaoh.12) 的帖子

我想应该是通过spi_setup()接口实现的,定义在drivers/spi/spi.c里。更多的接口声明参考include/linux/spi/spi.h
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 5655
精华: 0
发帖: 69
金钱: 345 两
威望: 69 点
贡献值: 0 点
综合积分: 138 分
注册时间: 2009-05-02
最后登录: 2018-10-29
4楼  发表于: 2012-09-22 22:34

 回 3楼(kasim) 的帖子

版主你好,刚查了下,mtd_dataflash.c中并没有spi_setup()这个接口来设置SPI参数。不知道SPI速度 位宽等参数在哪接口设置
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
5楼  发表于: 2012-09-23 09:51

 回 4楼(shaoh.12) 的帖子

你有没有查过spi_setup是否被其他spi核心层接口调用?另外,你有没有看过它的实现,也许能给你一些启发?
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."