SPI驱动编写
来源:互联网 发布:域名解析到ip端口号 编辑:程序博客网 时间:2024/06/01 10:01
SPI驱动编写
简而言之,SPI驱动的编写分为:
1.spi_device就构建并注册
在板文件中添加spi_board_info,并在板文件的init函数中调用spi_register_board_info(s3c_spi_devs,ARRAY_SIZE(s3c_spi_devs));
spi_register_board_info(s3c_spi_devs,ARRAY_SIZE(s3c_spi_devs));//注册spi_board_info。这个代码会把spi_board_info注册到链表board_list上。spi_device封装了一个spi_master结构体,事实上spi_master的注册会在spi_register_board_info之后,spi_master注册的过程中会调用scan_boardinfo扫描board_list,找到挂接在它上面的spi设备,然后创建并注册spi_device。
2. spi_driver的构建与注册
(1)
static struct spi_driver m25p80_driver = {
.driver = {
.name ="m25p80",
.bus =&spi_bus_type,
.owner = THIS_MODULE,
},
.probe = m25p_probe,
.remove =__devexit_p(m25p_remove),
};
(2)//spi_driver的注册
spi_register_driver(&m25p80_driver);当匹配了spi_device以后调用probe
(3)实现probe操作:
spi_transfer(里面集成了数据buf空间地址等信息)
spi_message(是spi_transfer的集合)的构建;
spi_message_init(初始化spi_message)
spi_message_add_tail(将新的spi_transfer添加到spi_message队列尾部)
spi_sync函数的调用(调用spi_master发送spi_message)
例如:
struct spi_transfer st={
。。。。。。。。。
};
//填充spi_transfer
struct spi_message meg;
//定义message
spi_init_message(&meg);
//初始化meg
spi_message_add_tail(&st,&meg);
//将st放在message队列尾部
Spi_sync(spi_device,&meg);
//将message与spi_device关联,发送meg
- SPI驱动编写
- Nanopi2 Fire 编写SPI驱动
- SPI protocol 驱动编写 Part 1
- Linux下SPI从设备驱动的编写
- linux内核SPI总线驱动简单编写测试
- linux3.2下adt7320的spi驱动编写
- Linux下SPI从设备驱动的编写
- esp32的spi驱动的编写遇到的问题
- Linux下SPI从设备驱动的编写
- spi驱动
- SPI驱动
- SPI驱动
- spi驱动
- spi驱动
- SPI驱动
- 基于6467T的linux平台下的SPI驱动编写
- beaglebone black上使用TI sdk中的linux系统来编写spi驱动
- Linux下SPI和IIC驱动免在设备树上添加设备信息的编写方法
- event generator,event dispatcher,event handler.
- Linux全攻略--PostgreSQL数据库配置与管理
- PostgreSql的执行计划1--获取执行计划
- 由小米note送优惠券想到的
- 数据窗口可以接收的消息
- SPI驱动编写
- 自动化编译
- java线程池
- 正则表达式符号
- 再回首,数据结构——顺序栈上的常见操作
- 机器学习——深度学习(Deep Learning)
- 四大方法教你打根号
- java OOM 解决思路
- iOS开发ARC内存管理技术要点