赞
踩
Linux驱动程序开始基于"平台总线设备驱动"模型,把驱动程序分成两边:
SPI子系统中根据主从控制的方式,有两类设备,SPI控制器和SPI设备。
SPI控制器有驱动程序,提供SPI的传输能力。
SPI设备也有自己的驱动程序,提供SPI设备的访问能力:
根据内核文件中的定义:include\linux\spi\spi.h
Linux中使用spi_master结构体描述SPI控制器,里面最重要的成员就是transfer
函数指针:
根据上文注释中对transfer函数的描述,可以提炼出函数具备以下特性:
根据内核文件中的定义:include\linux\spi\spi.h
Linux中使用spi_device结构体描述SPI设备,里面记录有设备的片选引脚、频率、挂在哪个SPI控制器下面:
根据内核文件中的定义:include\linux\spi\spi.h
Linux中使用spi_driver结构体描述SPI设备驱动:
spi_driver为主机端协议驱动数据结构,其中支持的函数或结构体功能定义:
如何把SPI控制器部分和SPI设备部分结合起来:
下图来自韦东山SPI总线设备驱动模型的图示,清晰的介绍了SPI设备和SPI控制器之间的关联。
设备树文件的内容
SPI控制器的驱动程序可以基于"平台总线设备驱动"模型来实现:
跟"平台总线设备驱动模型"类似,Linux中也有一个"SPI总线设备驱动模型":
spi_register_board_info
创建、注册spi_deviceCopyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。