ZHCABI9 April   2022 TDA4VM

 

  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参考文献

启用 J721e/TDA4VM 的 SPI 实例

我们以主域 SPI6 实例为例。要启用 SPI6,请添加器件树节点和相应的引脚多路复用节点。

diff --git a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
index 6788a3611..77b845354 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
@@ -170,6 +170,18 @@
>;
};

+ spi6_pins_default: spi6_pins_default {
+ pinctrl-single,pins = <
+ J721E_IOPAD(0x9c, PIN_INPUT, 4) /* (AC22) PRG1_PRU1_GPO17.SPI6_CLK */
+ J721E_IOPAD(0x74, PIN_INPUT, 4) /* (AC21) PRG1_PRU1_GPO7.SPI6_CS0 */
+ J721E_IOPAD(0x28, PIN_INPUT, 4) /* (AG20) PRG1_PRU0_GPO9.SPI6_CS1 */
+ J721E_IOPAD(0x2c, PIN_INPUT, 4) /* (AD21) PRG1_PRU0_GPO10.SPI6_CS2 */
+ J721E_IOPAD(0x7c, PIN_INPUT, 4) /* (AF21) PRG1_PRU1_GPO9.SPI6_CS3 */
+ J721E_IOPAD(0xa0, PIN_INPUT, 4) /* (AJ22) PRG1_PRU1_GPO18.SPI6_D0 */
+ J721E_IOPAD(0xa4, PIN_INPUT, 4) /* (AH22) PRG1_PRU1_GPO19.SPI6_D1 */
+ >;
+ };
+

diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
index c036df124..edc42720f 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
@@ -74,6 +74,16 @@
};
};

+ main_spi6: spi@2160000 {
+ compatible = "ti,am654-mcspi","ti,omap4-mcspi";
+ reg = <0x0 0x2160000 0x0 0x400>;
+ interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 272 1>;
+ power-domains = <&k3_pds 272 TI_SCI_PD_EXCLUSIVE>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+

已在 arch/arm64/configs/tisdk_j7-evm_defconfig 中设置了 CONFIG_SPI_OMAP24XX=y。SPI 主器件驱动程序为 drivers/spi/spi-omap2-mcspi.c。