【发布时间】:2013-05-21 14:31:05
【问题描述】:
问题:
我正在尝试找到一种方法来检索已添加到设备树中的mdio_bus 的开发对象。当我克服这个问题时,我确信我会迅速将手掌放在额头上,但对于我的一生,我无法在任何地方找到答案。我已经看到如何使用bus_find_device_by_name() 在总线上查找对象,但我似乎无法找到如何获取总线本身。
背景:
我们使用连接到 at919g20 上的 MACB 的 Micrel KSZ8863 以太网交换机为我们的主机提供网络访问。我没有使用固定 PHY 选项,而是将 MDIO 地址 0 伪装成“假”PHY,表示到交换机的固定 MII 链路。我正在为交换机编写一个驱动程序,以接收其中断并监视向外的 PHY 并控制“假”PHY 到主机的链路状态。为了在基本 MIIM 配置之外配置交换机,您需要使用 MDIO 总线上的 SMI 来访问交换机中的完整寄存器阵列。通过进一步调整 MACB 中的 mii_read/write 函数,在 reg 地址中添加一个标头,我相信我可以使用 MACB 的 MDIO/MII 控制器为 SMI 请求做正确的事情。因为总线不再由 PHY:REG 寻址,所以我需要能够从开关驱动程序直接向总线发出原始读/写命令。这让我回到了我的问题:如何按名称从设备树中请求 mdio_bus 的 dev 对象?
谢谢, 布赖恩
【问题讨论】:
-
这似乎是主题并且足够完整以回答 - 对于足够熟悉主题的人来说。不熟悉的请不要以不熟悉为由进行近距离投票。
标签: linux-device-driver embedded-linux