Skip to main content
串行外设接口(SPI)是一种同步、全双工的 4 线串行总线。

信号

按子系统划分的传输模式

接口组件

设备树源文件

API

软件配置

Linux 设备树示例

GPIO pinctrl:

QUPAC 访问控制

配置步骤

1

启用内核配置

编辑 kernel_platform/kernel/arch/arm64/configs/qcom_defconfig
2

在设备树中启用 SPI 节点

3

编译并烧写

编译内核和设备树变更,然后将镜像加载到设备。

验证

1

将 spidev_test 传输到设备

2

运行测试

预期输出:

调试

启用调试日志

禁用方法:

故障排查

  • 确认设备树中 SPI 节点状态为 "okay"
  • 确认 QUPAC_Access.c 中设置了 QUPV3_PROTOCOL_SPIAC_HLOSbLoad=TRUE
  • 检查 pinctrl 中 GPIO 的驱动强度和上下拉配置
  • 确认时钟相位和极性与目标设备匹配
  • 使用示波器检查信号完整性
  • 确认已启用 CONFIG_QCOM_GPI_DMA=m
  • 检查设备树中的 dmasdma-names 属性
  • 确认 QUPAC_Access.c 中设置了 QUPV3_MODE_GSIbAllowFifo=FALSE
确认所有 CS 引脚均已在 pinctrl 中配置。检查设备树的 reg 属性:
显式测试:
  • 确认 QUP wrapper 节点状态为 "okay" 且串行引擎节点为 "disabled"
  • 确认 FIFO_MODE = /bits/ 8 <1>(boot 中不支持 GSI)
  • 检查 protocol_supported 包含 SPI_SUPPORTED
  • 确认 QUPAC_Access.c 设置符合 boot 要求

快速诊断命令

资源