友友粉丝快线

Tiny210/Mini210/Mini6410/Tiny6410开发板专栏

Mini2440开发板专栏

Micro2440开发板专栏

QQ2440开发板专栏

其他厂家开发板产品

站点服务

 
主题 : linux 2.6.36+s3c6410 SPI子系统接口讨论(刚刚创建设备成功,与大家分享经验,欢迎讨论) 复制链接 | 浏览器收藏 | 打印
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
 
2012-08-02
楼主  发表于: 2011-03-19 21:31
 
 
 
管理提醒: 本帖被 xoom 执行加亮操作(2011-06-19)
alexis93@163.com
如果本文中有错误,请各位及时指出。

待续
[ 此帖被zhuyong74在2011-03-20 20:11重新编辑 ]
 
 
顶端
更多
newer2k
 
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
 
2012-02-13
1楼  发表于: 2011-03-20 09:56
 
 
 
 
 
ljt8015
 
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
 
2011-11-08
2楼  发表于: 2011-03-21 12:18
 
 
 
期待下文
 
 
newer2k
 
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
 
2012-02-13
3楼  发表于: 2011-03-21 12:39
 
 
 
 
 
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
 
2012-08-02
4楼  发表于: 2011-03-21 14:26
 

 回 3楼(newer2k) 的帖子

 
 
注意到platform_add_devices这个函数是用来批量增加平台设备的,而s3c6410_spi1_board数组定义的是平台以外的板上设备,这个和平台设备的注册函数所提供的功能,所以在未研究清楚platform_add_devices之前不敢使用该机制,如果你很清楚该机制,请回帖说明。
 
 
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
 
2012-08-02
5楼  发表于: 2011-03-21 15:08
 

 Re:linux 2.6.36+s3c6410 SPI子系统接口讨论---用户空间接口

 
 
        }
        break;
可以看出它支持如下命令
SPI_IOC_RD_MODE    设置读的模式
SPI_IOC_RD_LSB_FIRST   设置读字的格式
SPI_IOC_RD_BITS_PER_WORD 设置读字长
SPI_IOC_RD_MAX_SPEED_HZ   设置读的速度

SPI_IOC_WR_MODE    设置写的模式
SPI_IOC_WR_LSB_FIRST   设置写的字格式
SPI_IOC_WR_BITS_PER_WORD   设置写的字长
SPI_IOC_WR_MAX_SPEED_HZ   设置写的速度

mode的取值可以是如下常量的组合
#define    SPI_CPHA    0x01            /* clock phase */
#define    SPI_CPOL    0x02            /* clock polarity */
#define    SPI_MODE_0    (0|0)            /* (original MicroWire) */
#define    SPI_MODE_1    (0|SPI_CPHA)
#define    SPI_MODE_2    (SPI_CPOL|0)
#define    SPI_MODE_3    (SPI_CPOL|SPI_CPHA)
#define    SPI_CS_HIGH    0x04            /* chipselect active high? */
#define    SPI_LSB_FIRST    0x08            /* per-word bits-on-wire */
#define    SPI_3WIRE    0x10            /* SI/SO signals shared */
#define    SPI_LOOP    0x20            /* loopback mode */
#define    SPI_NO_CS    0x40            /* 1 dev/bus, no chipselect */
#define    SPI_READY    0x80            /* slave pulls low to pause */
[ 此帖被zhuyong74在2011-03-21 16:17重新编辑 ]
 
 
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
 
2012-08-02
6楼  发表于: 2011-03-21 16:38
 

 Re:linux 2.6.36+s3c6410 SPI子系统接口讨论--深入SPI运行机制

 
 
handle_msg函数最终操纵芯片执行了传输任务

我们先搁下handle_msg不表,先来回忆一下这个过程,可以发现整个过程是这样的,具体的传输任务其实最后都是由芯片厂商提供的代码完成,而linux内核团队负责制定了spi的用户标准,并为芯片厂商制定了向下的接口标准,这就是linux内核负责的核心负责的工作,它是与架构无关的,它负责制定标准。芯片厂商根据linux内核的标准,又提供了一些芯片相关的基础设施,而由主板厂商负责进行设备的组装。最终完成了spi控制器和spi从设备在内核中的安装工作,包括静态的数据结构和动态的函数功能的组装。具体的函数功能主要由芯片厂商的代码负责完成。

整个linux体系的生态链完整的呈现在我们的面前,linux内核研发团队、芯片厂商、主板厂商、应用厂商的分工明确而清晰。
到这里整个SPI的read过程的运行机制已经十分的清晰,而write过程与此类似就不剖析了。

下一帖,我们再来详细剖析handle_msg的工作,由于它其实是s3c64xx的代码,与架构相关,并且利用了片上的DMA控制器。
[ 此帖被zhuyong74在2011-03-22 18:02重新编辑 ]
 
 
6410 spi 设备的驱动  
级别: 侠客
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
 
2013-01-19
7楼  发表于: 2011-03-26 15:22
 
 
 
支持 学习了 谢谢~
 
 
http://item.taobao.com/item.htm?id=8568899543
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
  • QQ联系
  • 阿里旺旺
 
2011-09-14
8楼  发表于: 2011-04-01 15:54
 
 
 
好好的帖子!!顶起来
 
 
 
http://item.taobao.com/item.htm?id=8568899543
新手上路
6410 spi 设备的驱动  
级别: 新手上路
6410 spi 设备的驱动
  • 作者资料
  • 发送短消息
  • 加为好友
  • 使用道具
  • QQ联系
 
2013-01-31
9楼  发表于: 2011-04-02 22:50
 
 
 
非常谢谢楼主的详细记载,我也正在调试SPI,还望赐教 QQ43121140
 
 
 
 
http://www.arm9home.net
访问内容超出本站范围,不能确定是否安全
继续访问 取消访问
 
快速发帖
 
内容
HTML 代码不可用
使用签名
Wind Code自动转换
匿名帖
隐藏此帖
隐藏附件
描述 附件 售/密 积分 价格  
 
 
按 Ctrl+Enter 直接提交
表情
6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动6410 spi 设备的驱动
[个性表情]
 
 
 
 
 
6410 spi 设备的驱动

相关文章:

  • 2022-12-23
  • 2023-03-02
  • 2022-12-23
  • 2022-01-01
  • 2021-07-13
  • 2021-05-11
  • 2022-12-23
  • 2021-12-27
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-19
  • 2021-12-18
  • 2022-12-23
  • 2022-02-08
  • 2021-08-19
相关资源
相似解决方案