大家好,今天给大家分享一下,如何使用SPI子系统,详细实现以及具体的操作方法。
第一:SPI驱动框架模板
参考内核头文件:include\linux\spi\spi.h。
1、SPI平台总线设备驱动模型
Linux驱动程序开始基于“平台总线设备驱动模型”,将驱动程序分为两块:
* 左边注册一个platform_driver结构体,里面是比较固定的、通用的代码
* 右边注册一个platform_device结构体,里面是硬件资源
* 可以在C文件中注册platform_device
* 也可以使用设备树创建一个节点,内核解析设备树时注册platform_device
SPI子系统也是一样,分为两个:SPI控制器与SPI设备。
SPI控制器有驱动程序,提供SPI的传输能力。
SPI设备也有自己的驱动程序,提供SPI设备访问能力。
第二:SPI控制器数据结构
参考内核文件:include\linux\spi\spi.h
Linux中使用spi_master结构体描述SPI控制器&