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.

[参考译文] Linux/AM5728:MMC 器件树绑定

Guru**** 2614265 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/658498/linux-am5728-mmc-device-tree-bindings

器件型号:AM5728
Thread 中讨论的其他器件:DRA72WL1835

工具/软件:Linux

您好!

在中  

我发现以下内容:

对于 OMAP2控制器、应为"ti、omap2-hsmmc"
对于 OMAP3控制器、应为"ti,omap3-hsmmc"
对于预先安装了 ES3.0的 OMAP3控制器、应为"ti、omap3-pre-es3-hsmmc"
对于 OMAP4控制器、应该是"ti,omab4-hmc"
对于 AM335x 控制器、应为"ti、am33xx-hsmmc"


使用 am57x 控制器应该插入什么?
我在设备树的 MMC 部分也找不到它实际使用了上述任何一种兼容性、

示例中缺少该值是否有任何原因?

例如:

此致、

已运行

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

    您好、Ran、

    AM57x MMC 使用"dra7-hsmmc"或"OMAP4-hsmmc"。 以下 dtsi 文件对此进行了说明:

    {AM57x_PSDK}/board-support/linux-kernel/arch/arm/boot/dts/dra7.dtsi

    mmc2:MMC@480b4000{

    兼容="ti、dra7-hsmmc"、"ti、omAP4-hsmmc";

    REG =<0x480b4000 0x400>;

    中断= ;

    ti、hwmds ="mmc2";

    TI,需要特殊重置;

    DMA =<&sdma_Xbar 47>、<&sdma_Xbar 48>;

    dma-names ="TX"、"Rx";

    STATUS ="禁用";

    最大频率=<192000000>;

    SD-UHS-SDDR25;

    SD-UHS-SDDR12;

    MMC-HS200-1_8v;

    MMC-DDR-1_8v;

    };

     

    dra7-hsmmc 和 OMAP4-hsmmc 可用于:

    {AM57x_PSDK}/board-support/linux-kernel/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt

    所需属性:
    -兼容:
     对于 OMAP2控制器、应为"ti、omap2-hsmmc"
     对于 OMAP3控制器、应为"ti,omap3-hsmmc"
     对于预先安装了 ES3.0的 OMAP3控制器、应为"ti、omap3-pre-es3-hsmmc"
     对于 OMAP4控制器、应该是"ti,omab4-hmc"
     对于 dra7和 dra72控制器、应为"ti、dra7-hsmmc"
     对于 AM335x 控制器、应为"ti、am33xx-hsmmc"
    ti、hwmds:必须为"mcc. "、n 是从1开始的控制器实例

     

     

    dra7.dtsi 文件用于 AM572x TI EVM:

    dra7.dtsi -> dra74x.dtsi -> am57xx-beagle-x15-common.dtsi -> am57xx-beagle-x15.dts -> am57xx-evm-base.dts -> am57xx-evm.dts

     

    此致、
    帕维尔

     

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

    非常感谢。
    我已经检查了 SDK 文件、我发现使用 am572x 时、在 DTS 中没有针对 MMC 使用 hsmmc。
    请参阅以下内容:
    mmc2{(&M)
    状态="正常";

    pinctrl-names ="default";
    pinctrl-0 =<&mmc2_PINS_DEFAULT>;

    VMMC-SUPPLY =<&VDD_3V3>;
    总线宽度=<8>;
    TI、不可拆卸;
    CAP-MMC-DUAL 数据速率;
    NO-1-8-v;
    };

    和以下内容:

    mmc3{(&M)
    状态="正常";
    VMMC-SUPPLY =<&vmmcwl_fixed>;
    总线宽度=<4>;
    pinctrl-names ="default";
    电容断电卡;
    暂停时保持供电;
    TI、不可拆卸;

    #address-cells =<1>;
    #size-cells =<0>;
    wlcore:wlcore@2{
    兼容="ti、wl1835";
    reg =<2>;
    interrupt-parent =<&GPIO5>;
    中断=<7 IRQ_TYPE_LEVEL_HIGH_>;
    };
    };


    因此,我要问:
    1.如果在设备树中未提及相应的 hsmmc 驱动程序(或者我没有找到它),如何调用该驱动程序?
    2.我们使用 wifi rsi9113而不是 MMC (使用 SDIO)。 它是否看起来与上述 mmc3节点类似?

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

    RAN、

    [引用 user="ranchu"]1. 如果在设备树中未提及相应的 hsmmc 驱动程序(或我未找到它)、如何调用该驱动程序?

    我已经解释过、在 dra7.dtsi 器件树文件中提到了这一点。 最终的 AM57x 器件树二进制文件(DTB)由多个 DTS/dtsi 文件组成:dra7.dtsi、dra74x.dtsi、am57xx-beagle-x15-common.dtsi、am57xx-beagle-x15.dts、am57xx-evm-common.dtsi、 am57xx-evm-base.dts、am57xx-evm.dts

    [引用 user="ranchu"]2. 我们使用 wifi rsi9113而不是 MMC (使用 SDIO)。 它是否看起来与上述 mmc3节点类似?

    是的。

    此致、
    帕维尔

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

    您好、Pavel、

    非常感谢,我现在明白了。

    我看到中断已在 DRA.dtsi 中配置:
    mmc3:MMC@480ad000{
    兼容="ti、dra7-hsmmc"、"ti、omAP4-hsmmc";
    REG =<0x480ad000 0x400>;
    中断= ;


    因此、我不理解为什么在 wlcore 的子节点(am57xx-evm-common.dtsi)中也配置它:
    mmc3{(&M)
    状态="正常";

    wlcore:wlcore@2{
    兼容="ti、wl1835";
    reg =<2>;
    interrupt-parent =<&GPIO5>;
    中断=<7 IRQ_TYPE_LEVEL_HIGH_>;
    };
    };

    我假设我们的其他 WiFi 控制器连接到 SDIO (redline RS 9113),我们不需要重新配置中断。
    我的意思是我不明白为什么 wlcore 需要重新配置中断(实际上<7 IRQ_TYPE_LEVEL_HIGH_>在我看来与中断源不同 )

    非常感谢、
    已运行

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

    这是两个不同的中断。

    [引用 user="ranchu"] mmc3:MMC@480ad000{

    [引用 user="ranchu"]interrupts = ;[/报价]

    这是 MMC3内部中断(MMC3_IRQ、IRQ_crossbar_89)。

    [引用 user="ranchu"]&mmc3{

    [引用 user="ranchu">interrupt-parent =<&GPIO5>;
    中断=<7 IRQ_TYPE_LEVEL_HIGH_>;[/QUERP]

    这是通过 GPIO5_7引脚提供的外部中断(WLAN_IRQ)。

    此致、
    帕维尔

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

    您好、Pavel、

    感谢您的评论、

    我不确定以下几点,请告诉我您的想法吗?
    我正在尝试了解如何将中断发送到我们的 WiFi 模块(redline rs9113)、该模块使用 SDIO 引脚连接到 MMC。
    它使用相同的 MMC 内部中断( ;)或需要额外的 GPIO、如 wl1835 (<&GPIO5 7 IRQ_TYPE_LEVEL_HIGH>)。
    我还检查了 am5728数据表、发现 GPIO5_7不使用 SDIO 线路(am5728数据表中的第103页)、它看起来像是一个单独的 GPIO 中断(除了 SDIO 引脚中断?)  与 wl1835一起使用(我漂移为什么 wl1835需要2个中断引脚??)

    遗憾的是、对于如何在器件树中配置 redpine rs9113、没有任何示例/文档(来自 redpine)。

    是否有办法知道哪个引脚连接到 MMC3_IRQ? 我尝试在数据表和 TRM 中为其添加散热片、但未找到。

    再次感谢您、非常感谢您、

    已运行

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

    [引用 user="ranchu">它是否使用相同的 MMC 内部中断( ;)[/报价]

    是的。 当您将 WiFi 模块连接到 MMC3时、您将使用 MMC3_IRQ。 您还可以使用轮询模式或 DMA 模式来代替中断。

    [引用 USER="ranchu"]或需要额外的 GPIO、如 wl1835 (<&GPIO5 7 IRQ_TYPE_LEVEL_HIGH>)。[/引用]

    这是特定于 WIFI 模块的、我无法评论红松 rs9113。

    [引用 USER="ranchua]I 也检查 了 am5728 数据表、我发现 GPIO5_7不使用 SDIO 线路( am5728 数据表中的第103页)、它看起来像是一个单独的 GPIO 中断(除了 SDIO 引脚中断?)  与 wl1835一起使用(我漂移为什么 wl1835需要2个中断引脚?? )[/报价]

    只有一个外部引脚 GPIO5_7。

    MMC3_IRQ -内部中断、无特殊中断引脚。 该中断由 AM572x MMC3模块内部事件(操作结束或异常/错误警告)生成。 几个 MMC3内部模块事件可生成 MMC3_IRQ、例如:缓冲器读取准备就绪、缓冲器写入准备就绪、卡错误等 请参阅 AM572x TRM 第25.4.4节的中断请求。 将注意力集中在表25-11上。 事件

    WLAN_IRQ -外部中断、引脚 GPIO5_7。 该中断由 WL1835器件生成并发送到 AM572x 器件。 WLAN IRQ 生成从 WLAN 芯片(WL1835)到主机(AM572x)的中断、它用于在许多事件(如从 WLAN 媒体接收的数据已在固件(WLAN 芯片)队列中就绪)向主机(AM572x)发送信号、 或者发送了最后一个 Tx 帧、所有异步消息(evens)等。  它也可被用作唤醒事件。 有关更多详细信息、请参阅 WL1835文档。 您还可以查看以下 wiki:

    此致、
    帕维尔