主题中讨论的其他器件:AM4372
大家好、我们正在分析 TDA4 SoC QSPI 功能、目标是使用它连接到闪存。
我们注意到 TDA4器件上的多通道 SPI 有多个支持四通道数据通道的实例、并希望使用 MCSPI0或 MCU_MCSPI0连接到 FPGA 的闪存。闪存不支持八通道 SPI、因此我们决定不使用 TDA4 OSPI、而是常规(四通道) MCSPI 接口。
请注意:
- Processor SDK 版本:06_02_00 -我们计划在不久的将来升级到7_01_00。
- 我们正在尝试尽可能保持 EVM 板当前默认配置的引脚布局
通过查看处理器 SDK Linux 和 RTOS 用户指南、我们没有发现任何有关如何启用和使用 MCSPI 接口的有用信息。 不详细:
将 SPI 添加到器件树时、我们参考了 kenrel 文档 Documentation/devicetree/bindings/sie/ti_qspi.txt、以了解如何正确包含 SPI、但它看起来有点过时、因为它仅显示了使用 TI QSPI 的 am4372和 dra7xxx 器件的示例、但 TDA4已升级到 TI McSPI。
用户指南还说明了如何启用 Linux QSPI 驱动程序支持、但:
<*>DRA7xxx QSPI 控制器支持
不在哪里可以找到、我猜、对于 TDA4、它被替换为:
<*> 用于 OMAP 的 McSPI 驱动程序
默认情况下启用。
但是、我们在 Linux 启动时发现的唯一驱动程序是 cadence-QSPI 和模块 cxd2880-spi.ko:
根目录@J7-EVM:~# dmesg | grep SPI
[4.703505] cadence-QSPI 47050000.SPI:n25q512A (65536 KB)
[4.723071] cadence-QSPI 47050000.SPI:cadence QSPI NOR 探测器失败-517
[5.449308] cadence-QSPI 47050000.SPI:n25q512a (65536 KB)
根目录@J7-EVM:~#查找/lib/modules -iname "*SPI*"
/lib/modules/4.19.94-g5a23bc00e0/kernel/drivers/media/spi
/lib/modules/4.19.94-g5a23bc00e0/kernel/drivers/media/spi/cxd2880-spi.ko
/lib/modules/4.19.94/kernel/drivers/media/spi
/lib/modules/4.19.94/kernel/drivers/media/spi/cxd2880-spi.ko
我们还无法确定我们要使用的驱动程序 API、我们注意到文档中提到了几个驱动程序 API、但没有明确的示例说明如何使用它们:
- psdkra/pdk/packages/ti/drv/spi/src/spi_drv.c
- psdkla/board-support/linux-4.19.94+gitAUTOINC+5a23bc00e0-g5a23bc00e0/drivers/spi/spi-ti-qspi.c
我们可以在此文档中看到一些有用的说明: software-dl.ti.com/.../spi.html
但此时此刻、我们还想知道我们是否可以使用 MCSPI 来连接 NOR 闪存?
您能帮助我们实现以下目标:
- 将 MCSPI 包含到 Linux 器件树中
- 确定我们可以使用哪个驱动程序和哪个 API 来执行闪存存储器的读取和写入
- 启用四通道 SPI 的驱动程序
- 如何为 TDA4x 编写某种 QSPI_FlashReadWrite 示例应用
此致。
Uros