ZHCABI9 April   2022 AM67 , AM67A , AM68 , AM68A , AM69 , AM69A , DRA821U , DRA821U-Q1 , DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4AEN-Q1 , TDA4AH-Q1 , TDA4AL-Q1 , TDA4AP-Q1 , TDA4VE-Q1 , TDA4VEN-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM , TDA4VM-Q1 , TDA4VP-Q1

 

  1.   摘要
  2.   商标
  3. 1SPI:串行外设接口
  4. 2J7200/J721e MCSPI 支持
    1. 2.1 MCSPI 特性
  5. 3SPI:Linux 上的主模式启用和验证
    1. 3.1 启用 J721e/TDA4VM 的 SPI 实例
    2. 3.2 在 TD4VM SDK 上启用 SPIDEV
    3. 3.3 使用标准 Linux spidev_test 工具在 TI J7/TDA4x 上的用户空间中练习 SPI
  6. 4SPI:Linux 上的从模式启用和验证
    1. 4.1 启用 J7200 的 SPI 实例
    2. 4.2 为 MCSPI4 从节点启用 DMA
    3. 4.3 启用 SPIDEV 和 SPI_SLAVE 配置
    4. 4.4 使用标准 Linux spidev_test 工具在 TI J7200 上的用户空间中测试 SPI 从模式功能
    5. 4.5 使用 spi-slave-time 进行 SPI 从器件测试
    6. 4.6 Linux SPI 从器件的挑战
    7. 4.7 Linux SPI 从模式一般性限制
    8. 4.8 McSPI SPI 从模式限制
  7. 5参考文献

为 MCSPI4 从节点启用 DMA

默认情况下,SDK 8.1 并不具有 MCSPI 实例所需的 UDMA PSIL 线程。添加这些例程,并添加 SPI 从模式功能所需的 DMA 属性。

diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
index 70a028481..4af897173 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
@@ -434,6 +434,8 @@
power-domains = <&k3_pds 270 TI_SCI_PD_EXCLUSIVE>;
#address-cells = <1>;
#size-cells = <0>;
+ dmas = <&main_udmap 0xc610>, <&main_udmap 0x4610>;
+ dma-names = "tx0", "rx0";
};

main_i2c0: i2c@2000000 {
diff --git a/drivers/dma/ti/k3-psil-j7200.c b/drivers/dma/ti/k3-psil-j7200.c
index 5ea63ea74..06ae1c1a2 100644
--- a/drivers/dma/ti/k3-psil-j7200.c
+++ b/drivers/dma/ti/k3-psil-j7200.c
@@ -164,6 +164,11 @@ static struct psil_ep j7200_dst_ep_map[] = {
/* SA2UL */
PSIL_SA2UL(0xf500, 1),
PSIL_SA2UL(0xf501, 1),
+ /* PDMA_SPI_G1 - SPI4 */
+ PSIL_PDMA_XY_PKT(0xc610),
+ PSIL_PDMA_XY_PKT(0xc611),
+ PSIL_PDMA_XY_PKT(0xc612),
+ PSIL_PDMA_XY_PKT(0xc613),
};