mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 15:37:23 +00:00
net: phy: Fix rgmii-id phy reset timeout issue
While creating a phy device using phy_device_create(), we need to
provide a valid phyaddr instead of 0 causing phy address being
registered as 0 with mdio bus and shows mdio phy list as below
ZynqMP> mdio list
eth0:
0 - TI DP83867 <--> ethernet@ff0b0000
eth1:
0 - TI DP83867 <--> ethernet@ff0c0000
Also PHY soft reset is being requested on 0 instead of valid
address causing "PHY reset timed out" error.
So add phyaddr argument to phy_connect_phy_id() and to its prototype
to create phy device with valid phyaddress.
Fixes: a744a284e3
("net: phy: Add support for ethernet-phy-id with gpio reset")
Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Link: https://lore.kernel.org/r/fe35fddb9faa5af577ffdfabaec6879c935a30f8.1648562755.git.michal.simek@xilinx.com
This commit is contained in:
parent
6f735e4178
commit
9b529a972d
3 changed files with 4 additions and 4 deletions
|
@ -12,7 +12,7 @@
|
|||
#include <asm/gpio.h>
|
||||
|
||||
struct phy_device *phy_connect_phy_id(struct mii_dev *bus, struct udevice *dev,
|
||||
phy_interface_t interface)
|
||||
int phyaddr, phy_interface_t interface)
|
||||
{
|
||||
struct phy_device *phydev;
|
||||
struct ofnode_phandle_args phandle_args;
|
||||
|
@ -61,7 +61,7 @@ struct phy_device *phy_connect_phy_id(struct mii_dev *bus, struct udevice *dev,
|
|||
}
|
||||
|
||||
id = vendor << 16 | device;
|
||||
phydev = phy_device_create(bus, 0, id, false, interface);
|
||||
phydev = phy_device_create(bus, phyaddr, id, false, interface);
|
||||
if (phydev)
|
||||
phydev->node = node;
|
||||
|
||||
|
|
|
@ -1049,7 +1049,7 @@ struct phy_device *phy_connect(struct mii_dev *bus, int addr,
|
|||
|
||||
#ifdef CONFIG_PHY_ETHERNET_ID
|
||||
if (!phydev)
|
||||
phydev = phy_connect_phy_id(bus, dev, interface);
|
||||
phydev = phy_connect_phy_id(bus, dev, addr, interface);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PHY_XILINX_GMII2RGMII
|
||||
|
|
|
@ -479,7 +479,7 @@ struct phy_device *phy_device_create(struct mii_dev *bus, int addr,
|
|||
* or NULL otherwise
|
||||
*/
|
||||
struct phy_device *phy_connect_phy_id(struct mii_dev *bus, struct udevice *dev,
|
||||
phy_interface_t interface);
|
||||
int phyaddr, phy_interface_t interface);
|
||||
|
||||
static inline ofnode phy_get_ofnode(struct phy_device *phydev)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue