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/PROCESSOR-SDK-AM335X:将 PHY 中断链接到 GPIO

Guru**** 2538950 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/631151/linux-processor-sdk-am335x-linking-phy-interrupts-to-gpio

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

我将使用 Linux SDK AM335x-EVM-03.01.00.06开发环境、并使用千兆位 PHY 进行定制 AM335x 设计。 PHY 的中断引脚连接到 AM335x 的 GPIO 引脚(GPIO2_1)。 我正在尝试定义器件树、将其作为 GPIO 中断连接到 PHY。 下面是 PHY 定义的器件树片段:

phy0:以太网 phy@0{

 reg =<0>;
 interrupt-parent =<&GPIO2>;
 中断=<1 IRQ_TYPE_EDGE_FALLING>;
};

然后、我在器件驱动程序中设置.flags 条目、以包括以下设置:

flags = PHY_FASH_INTERRUPT、

启动时、我收到以下内核消息:

libphy:4a101000.mdio:探测

DaVinci_MDIO 4a101000.MDIO:PHY[0]:device 4a101000.MDIO:00、driver Broadcom BCM54210
net eth0:找到的 PHY:id 是:0x600d8595
libphy:4a101000.mdio:无法获取 IRQ -1 (PHY)
发生这种情况时、我的 PHY 驱动程序中不会进行任何与中断相关的调用。 是否可以通过 PHY 定义来配置 GPIO 中断、或者必须使用内核 GPIO 调用(GPIO_Request()、Request_IRQ()等)在驱动程序中手动完成 GPIO 中断? 我更愿意为 驱动程序使用 struct phy_driver 定义、因为它已经具有针对 PHY 中断配置和中断确认的回调。  
请注意、系统可以在没有中断的情况下完全运行、我只是希望通过使用中断而不是轮询来提高吞吐量。
谢谢、
Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Richard、

    当我对这件事有什么东西时、我会看一下并回来。

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

    [引用用户="Richard Fundersburk"]

    phy0:以太网 phy@0{

     reg =<0>;
     interrupt-parent =<&GPIO2>;
     中断=<1 IRQ_TYPE_EDGE_FALLING>;
    };

    [/报价]

    根据我的理解、您可以在板上的千兆位 PHY 和 AM335x EMAC/MDIO 之间实现直接连接、与 AM335x TI EVM 和 SK 相同。 当使用"GPIO 引脚控制的 MDIO 总线多路复用器/开关"时、使用以太网 PHY 节点。 以下驱动程序和 doc 文件相关:

    linux-4.4.4.19/drivers/net/phy/mdio-mux-gpio.c

    linux-4.4.4.19/Documentation/devicetree/bindings/set/mdio-mux-gpio.txt

    如果您的定制板上没有 MDIO 开关、我认为使用以太网 phy 节点不正确。 您可能会尝试在 cpsw_emacx 节点中实现"interrupt-parent"和"interrupts" GPIO2_1条目、但我不确定这是否也合适、文档文件对此不清楚。

    linux-4.4.4.19/Documentation/devicetree/bindings/set/cpsw.txt

    此致、
    帕维尔

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

    我找到了两个 e2e 线程、其中 GPIO 的"中断父级"和"中断"条目在 cpsw_emac 节点内使用:

    e2e.ti.com/.../622606
    e2e.ti.com/.../622612

    此致、
    帕维尔