static int emaclite_probe(struct udevice *dev) { struct xemaclite *emaclite = dev_get_priv(dev); int ret; emaclite->bus = mdio_alloc(); emaclite->bus->read = emaclite_miiphy_read; emaclite->bus->write = emaclite_miiphy_write; emaclite->bus->priv = emaclite; ret = mdio_register_seq(emaclite->bus, dev->seq); if (ret) return ret; return 0; }
static int axi_emac_probe(struct udevice *dev) { struct axidma_priv *priv = dev_get_priv(dev); int ret; priv->bus = mdio_alloc(); priv->bus->read = axiemac_miiphy_read; priv->bus->write = axiemac_miiphy_write; priv->bus->priv = priv; ret = mdio_register_seq(priv->bus, dev->seq); if (ret) return ret; axiemac_phy_init(dev); return 0; }
static int zynq_gem_probe(struct udevice *dev) { void *bd_space; struct zynq_gem_priv *priv = dev_get_priv(dev); int ret; /* Align rxbuffers to ARCH_DMA_MINALIGN */ priv->rxbuffers = memalign(ARCH_DMA_MINALIGN, RX_BUF * PKTSIZE_ALIGN); if (!priv->rxbuffers) return -ENOMEM; memset(priv->rxbuffers, 0, RX_BUF * PKTSIZE_ALIGN); /* Align bd_space to MMU_SECTION_SHIFT */ bd_space = memalign(1 << MMU_SECTION_SHIFT, BD_SPACE); if (!bd_space) return -ENOMEM; mmu_set_region_dcache_behaviour((phys_addr_t)bd_space, BD_SPACE, DCACHE_OFF); /* Initialize the bd spaces for tx and rx bd's */ priv->tx_bd = (struct emac_bd *)bd_space; priv->rx_bd = (struct emac_bd *)((ulong)bd_space + BD_SEPRN_SPACE); ret = clk_get_by_name(dev, "tx_clk", &priv->clk); if (ret < 0) { dev_err(dev, "failed to get clock\n"); return -EINVAL; } priv->bus = mdio_alloc(); priv->bus->read = zynq_gem_miiphy_read; priv->bus->write = zynq_gem_miiphy_write; priv->bus->priv = priv; ret = mdio_register_seq(priv->bus, dev->seq); if (ret) return ret; return zynq_phy_init(dev); }
static int ftgmac100_mdio_init(struct udevice *dev) { struct ftgmac100_data *priv = dev_get_priv(dev); struct mii_dev *bus; int ret; bus = mdio_alloc(); if (!bus) return -ENOMEM; bus->read = ftgmac100_mdio_read; bus->write = ftgmac100_mdio_write; bus->priv = priv; ret = mdio_register_seq(bus, dev->seq); if (ret) { free(bus); return ret; } priv->bus = bus; return 0; }