
信号
各子系统的传输模式
接口组件
设备树源文件
API
软件配置
Linux 设备树示例
QUPAC 访问控制
配置步骤
1
启用内核配置
编辑
kernel_platform/kernel/arch/arm64/configs/qcom_defconfig:2
在设备树中启用 SPI 节点
3
编译并刷写
编译内核和设备树更改,然后将镜像加载到设备。
验证
1
将 spidev_test 传输到设备
2
运行测试
调试
启用调试日志
故障排查
未检测到 SPI 设备(/dev/spidev* 缺失)
未检测到 SPI 设备(/dev/spidev* 缺失)
- 确认设备树中 SPI 节点状态为
"okay" - 确认
QUPAC_Access.c中设置了QUPV3_PROTOCOL_SPI、AC_HLOS、bLoad=TRUE
SPI 传输失败 / 数据损坏
SPI 传输失败 / 数据损坏
- 检查 pinctrl 中 GPIO 驱动强度和上下拉配置
- 确认时钟相位和极性与目标设备匹配
- 用示波器检查信号完整性
GSI/DMA 模式不工作
GSI/DMA 模式不工作
- 确认已启用
CONFIG_QCOM_GPI_DMA=m - 检查设备树中的
dmas和dma-names属性 - 确认
QUPAC_Access.c中设置了QUPV3_MODE_GSI且bAllowFifo=FALSE
多片选问题
多片选问题
确认所有 CS 引脚都已在 pinctrl 中配置。检查设备树 显式测试:
reg 属性:Boot 子系统 SPI 不工作
Boot 子系统 SPI 不工作
- 确认 QUP wrapper 节点状态为
"okay"且串行引擎节点为"disabled" - 确认
FIFO_MODE = /bits/ 8 <1>(boot 中不支持 GSI) - 检查
protocol_supported包含SPI_SUPPORTED - 确认
QUPAC_Access.c设置符合 boot 需求

