summaryrefslogtreecommitdiff
path: root/common/miiphyutil.c
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2016-12-08 10:06:26 +0100
committerMichal Simek <michal.simek@xilinx.com>2016-12-08 10:25:17 +0100
commitf1a88cf6af6c474bcf53f8f2f32aea3af5419e7a (patch)
treea71f57dab88fa2803b716712086cbd7f3dc4d373 /common/miiphyutil.c
parentbf0f27f45f95e9b6aed0cb7e296b148a66100927 (diff)
downloadu-boot-f1a88cf6af6c474bcf53f8f2f32aea3af5419e7a.tar.gz
u-boot-f1a88cf6af6c474bcf53f8f2f32aea3af5419e7a.tar.bz2
u-boot-f1a88cf6af6c474bcf53f8f2f32aea3af5419e7a.zip
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: Michal Simek <michal.simek@xilinx.com> --- For example: Board: Xilinx Zynq Net: ZYNQ GEM: e000b000, phyaddr 7, interface rgmii-id Warning: ethernet@e000b000 (eth0) using random MAC address - 7a:fc:90:53:6a:41 eth0: ethernet@e000b000ZYNQ GEM: e000c000, phyaddr ffffffff, interface rgmii-id Warning: ethernet@e000c000 (eth3) using random MAC address - 1a:ff:d7:1a:a1:b2 , eth3: ethernet@e000c000 ** Bad device size - mmc 0 ** Checking if uenvcmd is set ... Hit any key to stop autoboot: 0 Zynq> mdio list eth0: 17 - Marvell 88E1111S <--> ethernet@e000b000 eth3: 17 - Marvell 88E1111S <--> ethernet@e000c000 Zynq>
Diffstat (limited to 'common/miiphyutil.c')
-rw-r--r--common/miiphyutil.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/common/miiphyutil.c b/common/miiphyutil.c
index aca18db52a..0a83d6463d 100644
--- a/common/miiphyutil.c
+++ b/common/miiphyutil.c
@@ -107,6 +107,18 @@ int mdio_register(struct mii_dev *bus)
return 0;
}
+int mdio_register_seq_name(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)
{
if (!bus)