This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM3358:am3358/add SPI 设备树

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1356861/am3358-am3358-add-spi-device-tree

器件型号:AM3358
主题中讨论的其他器件:SysConfig

我按照本用户指南进行操作、并尝试测试 SPI 函数。

3.2.4.12.SPI–适用于 AM335X 的 Processor SDK Linux 文档

 如下图所示、SPI 器件树添加在文件"arch/arm/boot/dts/am335x-boneback.dts"中。

------------------------------------------------------------------------------------------------------------------------------------------- 
SPI1{&S} 状态="可以"; pinctrl-names ="默认"; pinctrl-0 =<&SPI1_PINS_s0>; spidev@1{ SPI-max-frequency =<24000000>; 寄存器=<0>; 兼容="Rohm、dh2228fv"; };};
------------------------------------------------------------------------------------------------------------------------------------------- 
当我尝试将 DTS 编译为 dtb 时、出现如下错误消息。 

------------------------------------------------------------------------------------------------------------------------------------------- 
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- am335x-boneback.dTB 
DTC arch/arm/boot/dts/am335x-boneback.dtb
arch/arm/boot/dts/am33xx-L4.dtsi:1677.16-1690.6:错误(handle_references):/ocp/interconnect@48000000/segment@100000/target-module@a0000/spi@0:对不存在节点或标签"SPI1_PINS_s1"的引用

也在 arch/arm/boot/dts/am335x-boneback.dts:34.7-43.3中定义
错误:输入树有错误,正在中止(使用-f 强制输出)
Scripts/Makefile.lib:290:目标"arch/arm/boot/dts/am335x-boneback.dtb"的食谱失败
make[1]:***[arch/arm/boot/dts/am335x-boneback.dtb]错误2
Makefile: 1270:目标'am335x-boneback.dtb'的食谱失败
制造:***[AM335x-Boneblack.dtb]错误2

------------------------------------------------------------------------------------------------------------------------------------------- 
如何解决此问题 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    pinctrl-0 =<&SPI1_PINS_s0>;

    由于您添加的器件树片段引用了另一个节点(称为 SPI1_PINS_s0 在这种情况下)、该引脚应包含 SPI 相关引脚多路复用定义、并且该节点不存在。 您还需要将这个添加到器件树文件中(我认为我们的 SDK 文档示例在这方面可能更完整...)。

    为此、您可以使用我们的 SysConfig 工具(https://www.ti.com/tool/SYSCONFIG)创建新的定制 SPI pinmux 配置、或使用内核中其他 AM335x 器件树文件中已有的文件、如下所示:

    arch/arm/boot/dts/am335x-cm-t335.dts:   spi0_pins: pinmux_spi0_pins {
    arch/arm/boot/dts/am335x-cm-t335.dts-           pinctrl-single,pins = <
    arch/arm/boot/dts/am335x-cm-t335.dts:                   AM33XX_PADCONF(AM335X_PIN_SPI0_SCLK, PIN_INPUT, MUX_MODE0)
    arch/arm/boot/dts/am335x-cm-t335.dts:                   AM33XX_PADCONF(AM335X_PIN_SPI0_D0, PIN_OUTPUT_PULLUP, MUX_MODE0)
    arch/arm/boot/dts/am335x-cm-t335.dts:                   AM33XX_PADCONF(AM335X_PIN_SPI0_D1, PIN_INPUT, MUX_MODE0)
    arch/arm/boot/dts/am335x-cm-t335.dts:                   AM33XX_PADCONF(AM335X_PIN_SPI0_CS0, PIN_OUTPUT, MUX_MODE0)
    arch/arm/boot/dts/am335x-cm-t335.dts:                   AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_OUTPUT, MUX_MODE0)
    arch/arm/boot/dts/am335x-cm-t335.dts-           >;
    arch/arm/boot/dts/am335x-cm-t335.dts-   };

    此致、Andreas