Lines Matching refs:lp
20 int axienet_mdio_wait_until_ready(struct axienet_local *lp)
23 while (!(axienet_ior(lp, XAE_MDIO_MCR_OFFSET) &
50 struct axienet_local *lp = bus->priv;
52 ret = axienet_mdio_wait_until_ready(lp);
56 axienet_iow(lp, XAE_MDIO_MCR_OFFSET,
64 ret = axienet_mdio_wait_until_ready(lp);
68 rc = axienet_ior(lp, XAE_MDIO_MRD_OFFSET) & 0x0000FFFF;
70 dev_dbg(lp->dev, "axienet_mdio_read(phy_id=%i, reg=%x) == %x\n",
93 struct axienet_local *lp = bus->priv;
95 dev_dbg(lp->dev, "axienet_mdio_write(phy_id=%i, reg=%x, val=%x)\n",
98 ret = axienet_mdio_wait_until_ready(lp);
102 axienet_iow(lp, XAE_MDIO_MWD_OFFSET, (u32) val);
103 axienet_iow(lp, XAE_MDIO_MCR_OFFSET,
111 ret = axienet_mdio_wait_until_ready(lp);
119 * @lp: Pointer to axienet local data structure.
128 int axienet_mdio_setup(struct axienet_local *lp, struct device_node *np)
195 axienet_iow(lp, XAE_MDIO_MC_OFFSET,
198 ret = axienet_mdio_wait_until_ready(lp);
206 np1 = of_get_parent(lp->phy_node);
211 bus->priv = lp;
215 bus->parent = lp->dev;
216 bus->irq = lp->mdio_irqs; /* preallocated IRQ table */
217 lp->mii_bus = bus;
229 * @lp: Pointer to axienet local data structure.
233 void axienet_mdio_teardown(struct axienet_local *lp)
235 mdiobus_unregister(lp->mii_bus);
236 kfree(lp->mii_bus->irq);
237 mdiobus_free(lp->mii_bus);
238 lp->mii_bus = NULL;