mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-24 20:54:24 +08:00
drivers: net: cpsw: Add reading of DT phy-handle node
Add the ability to read the phy-handle node of the cpsw slave. Upon reading this handle the phy-id can be stored based on the reg node in the DT. The phy-handle also needs to be stored and passed to the phy to access any phy data that is available. Signed-off-by: Dan Murphy <dmurphy@ti.com> Tested-by: Mugunthan V N <mugunthanvnm@ti.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
641b936fa5
commit
cb3862277b
@ -966,6 +966,11 @@ static int cpsw_phy_init(struct cpsw_priv *priv, struct cpsw_slave *slave)
|
||||
phydev->supported &= supported;
|
||||
phydev->advertising = phydev->supported;
|
||||
|
||||
#ifdef CONFIG_DM_ETH
|
||||
if (slave->data->phy_of_handle)
|
||||
phydev->dev->of_offset = slave->data->phy_of_handle;
|
||||
#endif
|
||||
|
||||
priv->phydev = phydev;
|
||||
phy_config(phydev);
|
||||
|
||||
@ -1226,8 +1231,22 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
if (phy_mode)
|
||||
priv->data.slave_data[slave_index].phy_if =
|
||||
phy_get_interface_by_name(phy_mode);
|
||||
fdtdec_get_int_array(fdt, subnode, "phy_id", phy_id, 2);
|
||||
priv->data.slave_data[slave_index].phy_addr = phy_id[1];
|
||||
|
||||
priv->data.slave_data[slave_index].phy_of_handle =
|
||||
fdtdec_lookup_phandle(fdt, subnode,
|
||||
"phy-handle");
|
||||
|
||||
if (priv->data.slave_data[slave_index].phy_of_handle >= 0) {
|
||||
priv->data.slave_data[slave_index].phy_addr =
|
||||
fdtdec_get_int(gd->fdt_blob,
|
||||
priv->data.slave_data[slave_index].phy_of_handle,
|
||||
"reg", -1);
|
||||
} else {
|
||||
fdtdec_get_int_array(fdt, subnode, "phy_id",
|
||||
phy_id, 2);
|
||||
priv->data.slave_data[slave_index].phy_addr =
|
||||
phy_id[1];
|
||||
}
|
||||
slave_index++;
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@ struct cpsw_slave_data {
|
||||
u32 sliver_reg_ofs;
|
||||
int phy_addr;
|
||||
int phy_if;
|
||||
int phy_of_handle;
|
||||
};
|
||||
|
||||
enum {
|
||||
|
Loading…
Reference in New Issue
Block a user