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.

[参考译文] AM625:申请 SPI 和 UART 启用 DTS 定制指导

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1644367/am625-request-for-guidance-on-dts-customization-for-spi-and-uart-enablement

器件型号: AM625

尊敬的团队:

我当前正在将 BeaglePlay 与图像 ti-SDK-default-image-rt-beagleplay-ti-12.00.00.07.04.rootfs.wic 配合使用。

 根据您之前的指导、我知道我需要自定义 k3-am625-beagleplay.dts 文件以启用 SPI 接口。

我的要求是启用三个 SPI 接口和四个 UART 接口、在继续之前、我想了解启用这些外设是否会因引脚多路复用或资源冲突而影响任何现有接口或板载功能。

非常感谢您指导我完成正确的 DTS 定制步骤、我应该注意到的任何依赖项或冲突、以及在不影响其他外设的情况下安全启用这些接口的最佳实践。 非常感谢您的支持和帮助。

 

谢谢、此致
Aparna C Nair

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

    尊敬的 Aparna:
    为一个或多个实例启用 SPI 以及类似地为 UART 启用 SPI 的步骤保持不变。 对于 UART、请勿使用板/SoC 上其他外设正在使用的实例。 请检查 dtsi 文件以了解所有可用的实例、并与 beagleplay dts 文件进行比较、以检查可用的和使用的。 此外、检查 Beagle Play 原理图、了解 SoC 中的 SPI/UART 实例在电路板上公开的情况、以便您可以实际使用它们、或者可以放开现有默认 UART/SPI 实例上的一些实用程序获取一个可供自定义使用的 UART/SPI 实例。

    AM62x 数据表中提到了所有引脚多路复用器: https://www.ti.com/lit/ds/symlink/am623.pdf、对于您要使用的任何外设、找到可从中输出的相应 SoC 焊球、他检查 DTS 文件以检查它们是否尚未用于其他一些外设。 但是、即使 SoC 焊球似乎可自由用于您的用例、您也必须检查 SoC 焊球是否可在所用的 EVM/板上访问、如果没有、您将需要根据您的需求进行定制电路板设计。

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

    您好、先生、

    使用 AM62x 数据表、我搜索了 AMC 焊球编号、但我无法将它们与数据表中提供的信息正确关联。

    您能否提供 AM62x 完整原理图的链接?

    此外、根据数据表和 DTS 文件、很难理解引脚映射和配置。 我附上了数据表中的 UART_TX 和 UART_RX 详细信息以供参考。 您能否解释一下它们与 DTS 文件的关系?

    我可以在数据表中看到引脚多路复用信息、但我无法识别相应的 SoC 焊球编号并将它们与 DTS 条目连接。 您能否从 DTS 和引脚多路复用配置的角度更详细地解释数据表?

    请澄清。

    谢谢。此致

    Aparna C Nair

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

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

    尊敬的 Aparna:

    您好 SIR

    迪维扬什会做的。

    您能否提供 AM62x 完整原理图的链接?

    原理图适用于您使用的电路板/EVM、而不是 SoC。 不同的电路板(示例 BeaglePlay 和 TI EVM)将具有不同的原理图。 假设您使用的是 Beagleplay、通过简单的 Google 搜索即可得出: https://git.beagleboard.org/beagleplay/beagleplay/-/blob/main/BeaglePlay_sch.pdf?ref_type=heads

    DTS 文件和原理图显示以下内容:
     

    以上内容告诉您 MikroBus 连接器使用 UART5 和 SPI2。

    现在、请查看数据表中的这些引脚:
    以 SPI2 为例:
    每个 SPI2 引脚都可以通过多个 SoC 焊球实现引脚输出、如中所规定:

    但您需要确定电路板使用的是哪一个。 假设是 SPI2_D0、您可以在原理图中跟踪这一点(推荐)、也可以检查 DTS 中指定的内容:

    两者都将显示 SPI2_D0 从焊球 B19 路由。

    现在查看表中的 B19 pinmux:

    现在所有这些都是 B19 的引脚多路复用、请确保引脚偏移 0x0194(对于 B19)不用于引脚多路复用中可能的任何其他外设、以避免冲突。

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

    非常感谢

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

    您好、先生、

    我需要再说明一下 DTS 引脚配置格式。

    在检查 DTS 文件时、我注意到引脚映射为以下格式:

    mikroBUS-SPI-default-pins{
    pinctrl-single、pins =<0x1b0 0x54001 0x1ac 0x54001 0x194 0x54001 0x198 0x54001 >;
    电话=<0x1d>;
    };

    mikroBUS-UART-DEFAULT 引脚{
    pinctrl-single、pins =<0x1d8 0x54001 0x1dc 0x100001>;
    电话=<0x0E>;
    };

    mikroBUS-i2c-default-pins{
    pinctrl-single、pins =<0x1d0 0x64002 0x1d4 0x64002>;
    电话=<0x1c>;
    };

    但是、我无法完全理解此引脚配置的工作原理。 您能否解释一下如何解释和理解此配置格式?

    我还想了解:

    • 从哪里获得引脚偏移值、如 0x1b00x1d80x1d0

    • 该值 0x54001 0x64002 代表什么?

    • phandle 值是如何生成的、它在 DTS 文件中的用途是什么?

    详细的解释将非常有帮助。

     

     

    谢谢、此致

    Aparna C Nair

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

    尊敬的 Aparna:
    似乎您正在查看编译的 DTB 的解压缩版本、而不是原始 dts instelf。
    您可以使用原始 DTS 进行推断、如所示: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts?h=ti-linux-6.12.y#n405 

    或者、您也可以使用共享内容。 pinctrl 值在数组中按对出现:<{offset、value}、{offset、value} >
    示例、 0x1b0 0x54001 显示了具有偏移 0x1b0 的引脚地址和值 0x54001、其中最后 3 位定义了多路复用模式:

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

    谢谢!

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

    尊敬的先生:

    如果我使用编译的 DTB 的解压缩版本而不是原始 DTS、如何 pinctrl 以以下格式编辑这些值?

    pinctrl-single,pins = <0x1d8 0x54001 0x1dc 0x10001>;
    pinctrl-single,pins = <0x1d0 0x64002 0x1d4 0x64002>;

    我了解了从何处获取诸如 0x1d8 和之类 0x1dc的偏移值、但这些值是从哪里获得 0x540010x64002

    我认为这些值并没有像这样直接写入原始 DTS 文件中。 我的回答正确吗?

    您能详细解释一下吗?

    谢谢、此致

    Aparna C Nair

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

    尊敬的 Aparna:
    这些值填充每个 SoC 引脚的 PADCONFIG 寄存器值、因为这些值在最后响应的图像中共享。
    您应该能够在驱动程序中找到宏定义以在 arch/arm64/boot/dts/ti/k3-pinctrl.h 中填充相同内容  

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

    尊敬的先生:  

    从哪里可以获得有关此焊盘配置寄存器的更多信息? 如何根据我们的要求进行配置? 应如何配置每个位? 我查看了数据表、但找不到该信息。 不过、我可以在数据表中找到与失调电压相关的信息。

    谢谢、此致

    Aparna C Nair

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

    先生、

    我需要你们再澄清一下。 请查看以下详细信息:

    root@beagleplay-ti:/boot/dtb/ti ls


    k3-am625-beagleplay-csi2-ov5640.dtbo


    k3-am625-beagleplay-csi2-tevi-ov5640.dtbo


    k3-am625-beagleplay-lincolntech-lcd185-panel.dtbo

    我只能看到.dtbo 文件。 我在任何地方都找不到相应的.dts 文件或 k3-pinctrl.h。 我尝试  在我的 Linux 系统上使用 DTC 从提供的 ( git.ti.com/.../k3-am625-beagleplay.dts ).dts 生成一个.dtb 文件,但我认为它不能直接实现。

    我想使用 BeaglePlay 本身提供的编译器/工具来完成此任务。 我应该在哪个位置复制.dts 文件、如何将其转换为.dtb 或.dtbo 文件? 此过程是否需要任何其他文件?

    请指导我如何使用您分享的原始.dts 文件进行自定义并澄清我的疑问。

    谢谢、此致

    Aparna C Nair

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

    尊敬的 Aparna:
    您似乎未在使用 TI SDK。
    请从 https://www.ti.com/tool/download/SDK-AM62X  (第一个链接)下载并安装 PROCESSOR-SDK-LINUX。
    有关使用它的文档、请参阅: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/devices/AM62X/linux/Overview.html 

    SDK 中提供了您要求的所有文件。