mdio phy(bcm5482)访问

本文介绍了如何通过MDIO访问BCM5482 PHY芯片,包括M4通过CPLD进行初始化操作,GPIO_PORTP_BASE的使用,以及MDIO协议的解析。同时,展示了MDIO读写函数的封装及其在访问PHY寄存器中的应用,例如设置速度为100M。
摘要由CSDN通过智能技术生成

查看硬件原理图,5482通过mdio访问自己的寄存器,M4通过cpld对5482进行初始化操作(复位/解复位)

 

可以看到bcm5482的MDC和MDIO用的是port P 的pin4和pin5,所以基地址为GPIO_PORTP_BASE. 对应的分别是引脚4和引脚5,所以由此可以封装出基于gpio的mdio读写功能函数

实际控制:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Linux 中的 mdio 是一种管理数据输入/输出 (MDIO) 协议,用于与以太网物理层器件 (PHY) 进行通信。PHY 是用来将以太网数据转换为传输介质能够接受的信号的一种芯片,它与主处理器相连,并通过 MDIO 接口进行通信。 在 Linux 中,MDIO 的读取过程通常需要以下步骤: 1. 获取 mdio_bus 结构体:首先,我们需要获取一个 mdio_bus 结构体,它表示 MDIO 控制器的总线,该总线上连接了一个或多个 PHY。我们可以使用函数 `mdio_bus_alloc()` 来动态分配一个 mdio_bus 结构体。 2. 注册 mdio_bus:分配好 mdio_bus 结构体后,需要注册该总线以向 Linux 内核进行注册,并通过 MDIO 物理设备进行访问。可以使用函数 `mdiobus_register()` 注册该总线。 3. 查找并注册 PHY:成功注册总线后,需要通过函数 `phy_find_first()` 或 `phy_find_by_mask()` 查找连接到总线的第一个 PHY,或者按照指定的位掩码查找 PHY。找到 PHY 后,可以使用函数 `phy_connect()` 来为该 PHY 注册一个控制器。 4. 读取 PHY 寄存器:成功连接到 PHY 后,可以使用函数 `phy_read()` 来读取 PHY 的寄存器。需要提供 PHY 的地址和寄存器的编号来指定要读取的寄存器。 5. 取消注册:当不再需要使用 MDIO 总线和 PHY 时,需要使用函数 `mdiobus_unregister()` 和 `phy_disconnect()` 来取消注册和断开连接。 以上是在 Linux 中使用 mdio 读取 PHY 的基本步骤。通过这些步骤,我们可以通过 MDIO 总线与 PHY 进行通信,并读取或修改 PHY 的寄存器值,以满足特定的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开缓缓归以

你的鼓励将是我创作的最大动力,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值