LINUX设备驱动之SPI总线驱动分析

LINUX设备驱动之SPI总线驱动分析_第1张图片

1.内核SPI主要结构

LINUX设备驱动之SPI总线驱动分析_第2张图片

2.SPI驱动框架

2.1枚举过程

driver/spi/spi.c
LINUX设备驱动之SPI总线驱动分析_第3张图片

2.2数据收发过程

spi_write
spi_message_init();
初始化一个spi_message/一个不可打断的SPI传输过程:CS=0,传数据,cs=1/
/一个spi_message由多个spi_transfer组成/
spi_message_add_tail(&t, &m);/spi_transfer是spi上传输的单方向一个或者多个字节/
spi_sync(spi, &m);//启动传输并等待完成

2.3spi_driver如何调用spi_controller

spi_sync
__spi_sync
spi_async_locked
__spi_async
master->transfer(spi, message);
wait_for_completion

你可能感兴趣的:(LINUX设备驱动进阶)