SPI 子系统架构
1.SPI core核心:用于连接SPI客户驱动和SPI主控制器驱动,并且提供了对应的注册和注销的接口。
2.SPI controller driver主控制器驱动:用来驱动SPI控制器。
3.SPI protocol drvier客户驱动:用来驱动SPI设备
SPI控制器驱动分析
1.SPI控制器驱动对应的内核文件在/drivers/spi/spi_s3c24xx.c中。找到模块初始化函数s3c24xx_spi_init,从中可以看出控制器驱动是平台驱动。
2.找到初始化函数s3c24xx_spi_probe。硬件初始化在s3c24xx_spi_initialsetup中。注册函数在spi_regiseter_master中,该函数由SPI核心提供给控制器驱动。
3.数据的收发在中断处理函数s3c24xx_spi_irq中。