linux spi架构分析(一)
2015-10-21 17:19
411 查看
这里我们讨论下linux下spi子系统下的数据结构。
从上一篇文章我们可以得到两个BSP里存在的结构
s3c2410_board_info ——– 用来初始化spi_device
s3c2410_spi_info ——– 用来初始化spi_controller
注意:s3c2410_spi_info包含在s3c24xx_spi结构体中,s3c24xx_spi是s3c2440的SPI控制器在Linux内核的具体描述,可以看做具体的对象,而master可以当做一个接口。
延展一下,其它架构的类似结构如
da830evm_spi_info 位于mach-davinci\board-da830-evm.c中
davinci_spi 位于 spi-davinci.c中。
分析spi-s3c24xx.c:我们可以知道其实就是实现一个具体spi controller,通过platform_driver驱动probe实现控制器驱动,最后调用spi_register_master注册控制器设备。
Linux用spi_device描述一个SPI外设设备。
struct spi_device{
struct device dev;
…
void *controller_state;
void *controller_data;
char modalias[32];
}
当spi_register_mater时,系统会调用scan_boardinfo函数,遍历这个controller上的spi_device,将其全部注册到内核。
从上一篇文章我们可以得到两个BSP里存在的结构
s3c2410_board_info ——– 用来初始化spi_device
s3c2410_spi_info ——– 用来初始化spi_controller
注意:s3c2410_spi_info包含在s3c24xx_spi结构体中,s3c24xx_spi是s3c2440的SPI控制器在Linux内核的具体描述,可以看做具体的对象,而master可以当做一个接口。
延展一下,其它架构的类似结构如
da830evm_spi_info 位于mach-davinci\board-da830-evm.c中
davinci_spi 位于 spi-davinci.c中。
分析spi-s3c24xx.c:我们可以知道其实就是实现一个具体spi controller,通过platform_driver驱动probe实现控制器驱动,最后调用spi_register_master注册控制器设备。
Linux用spi_device描述一个SPI外设设备。
struct spi_device{
struct device dev;
…
void *controller_state;
void *controller_data;
char modalias[32];
}
当spi_register_mater时,系统会调用scan_boardinfo函数,遍历这个controller上的spi_device,将其全部注册到内核。
相关文章推荐
- 我想成为一名合格的架构师
- php防止网站被攻击的应急代码
- Linux SPI架构分析概述
- .net实现裁剪网站上传图片的方法
- 蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)
- PHP获取QQ音乐的API类,可以集成到各种音乐网站上使用
- 网站模版html,响应式布局
- IT架构的SOA整合
- 轻松实现将网页“分享到”多个网站空间的悬浮按钮框
- 使用corosync+pacemaker构建高可用集群
- IIS绑定Active Directory账号自动登录网站的方法
- php获取网站根目录
- 网站集成第三方登录--sina
- dubbo_URL分析
- dubbo_URL分析
- dubbo_初识DUBBO
- dubbo_初识DUBBO
- 提升网站性能开发的10个技巧
- 设计不错的网站
- 去哪儿网代理网站机票价格采集方案