Skip to content
Snippets Groups Projects
Commit 79e2a6a0 authored by Michal Simek's avatar Michal Simek
Browse files

common: miiphyutil: Add helper function for mdio bus name


The most of ethernet drivers are using this mdio registration sequence.
strcpy(priv->bus->name, "emac");
mdio_register(priv->bus);
Where driver can be used only with one MDIO bus because only unique
name should be used.

Other drivers are using unique device name for MDIO registration to
support multiple instances.
snprintf(priv->bus->name, sizeof(bus->name), "%s", name);

With DM dev->seq is used more even in logs
(like random MAC address generation:
printf("\nWarning: %s (eth%d) using random MAC address - %pM\n",
       dev->name, dev->seq, pdata->enetaddr);
)
where eth%d prefix is used.

Simplify driver code to register mdio device with dev->seq number
to simplify mdio registration and reduce code duplication across
all drivers. With DM_SEQ_ALIAS enabled dev->seq reflects alias setting.

Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
Acked-by: default avatarJoe Hershberger <joe.hershberger@ni.com>
Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
parent 4cf5c5f1
No related branches found
No related tags found
No related merge requests found
...@@ -107,6 +107,18 @@ int mdio_register(struct mii_dev *bus) ...@@ -107,6 +107,18 @@ int mdio_register(struct mii_dev *bus)
return 0; return 0;
} }
int mdio_register_seq(struct mii_dev *bus, int seq)
{
int ret;
/* Setup a unique name for each mdio bus */
ret = snprintf(bus->name, MDIO_NAME_LEN, "eth%d", seq);
if (ret < 0)
return ret;
return mdio_register(bus);
}
int mdio_unregister(struct mii_dev *bus) int mdio_unregister(struct mii_dev *bus)
{ {
if (!bus) if (!bus)
......
...@@ -48,6 +48,15 @@ void miiphy_listdev(void); ...@@ -48,6 +48,15 @@ void miiphy_listdev(void);
struct mii_dev *mdio_alloc(void); struct mii_dev *mdio_alloc(void);
void mdio_free(struct mii_dev *bus); void mdio_free(struct mii_dev *bus);
int mdio_register(struct mii_dev *bus); int mdio_register(struct mii_dev *bus);
/**
* mdio_register_seq - Register mdio bus with sequence number
* @bus: mii device structure
* @seq: sequence number
*
* Return: 0 if success, negative value if error
*/
int mdio_register_seq(struct mii_dev *bus, int seq);
int mdio_unregister(struct mii_dev *bus); int mdio_unregister(struct mii_dev *bus);
void mdio_list_devices(void); void mdio_list_devices(void);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment