SPI 调试指南
SPI 硬件支持
X5 共支持 7 路 SPI 控制器,其中 6 路(spi0-spi5)位于 LSIO 子系统,1 路(spi6)位于 DSP 子系统。 所有 SPI 控制器均支持主/从模式。 RDK X5 上留出来的引脚主要是在 40pin 中,分别是SPI1和SPI2,可以参考 RDK X5 40pin 介绍 其他的 SPI 口并不在 40pin 上。
Linux SPI 驱动框架介绍
- spi driver 层:主要实现对 SPI 硬件 IP 的操作,另外还实现了 spi framework 定义的接口。
- spi framework 层:可以理解为 spi driver 的适配层,对下层定义了一组 driver 层需要实现的接口,对上提供了通用接口屏蔽了硬件细节。
- spi char device 层:为用户空间提 供节点,方便用户空间与内核空间进行数据交换。
代码路径
X5 使用新思的 ssi 控制器,驱动代码位于:drivers/spi 目录下,主要有三个文件:
drivers/spi/spi-dw-core.c
drivers/spi/spi-dw-mmio.c
drivers/spi/spi-dw-dma.c
控制器硬件说明
X5 的所有 SPI 均控制器可以运行 Master/Slave 模式。Master 及 Slave 的运行限制如下:
- SPI-Master:最高频率 50MHz
- SPI-Slave:最高频率 32MHz
X5 的所有 SPI 控制器均可以运行在中断/DMA 模式。中断模式运行限制如下:
- SPI-Slave:
- Rx:CPU 定频在 1.5GHz 时,可以达到 32MHz
- Tx:CPU 定频在 1.5GHz 时,可以达到 16MHz
- SPI-Master:均可正常通讯。