Lines Matching refs:lp
24 struct temac_local *lp = bus->priv; in temac_mdio_read() local
30 mutex_lock(&lp->indirect_mutex); in temac_mdio_read()
31 temac_iow(lp, XTE_LSW0_OFFSET, (phy_id << 5) | reg); in temac_mdio_read()
32 rc = temac_indirect_in32(lp, XTE_MIIMAI_OFFSET); in temac_mdio_read()
33 mutex_unlock(&lp->indirect_mutex); in temac_mdio_read()
35 dev_dbg(lp->dev, "temac_mdio_read(phy_id=%i, reg=%x) == %x\n", in temac_mdio_read()
43 struct temac_local *lp = bus->priv; in temac_mdio_write() local
45 dev_dbg(lp->dev, "temac_mdio_write(phy_id=%i, reg=%x, val=%x)\n", in temac_mdio_write()
51 mutex_lock(&lp->indirect_mutex); in temac_mdio_write()
52 temac_indirect_out32(lp, XTE_MGTDR_OFFSET, val); in temac_mdio_write()
53 temac_indirect_out32(lp, XTE_MIIMAI_OFFSET, (phy_id << 5) | reg); in temac_mdio_write()
54 mutex_unlock(&lp->indirect_mutex); in temac_mdio_write()
59 int temac_mdio_setup(struct temac_local *lp, struct device_node *np) in temac_mdio_setup() argument
80 mutex_lock(&lp->indirect_mutex); in temac_mdio_setup()
81 temac_indirect_out32(lp, XTE_MC_OFFSET, 1 << 6 | clk_div); in temac_mdio_setup()
82 mutex_unlock(&lp->indirect_mutex); in temac_mdio_setup()
91 bus->priv = lp; in temac_mdio_setup()
95 bus->parent = lp->dev; in temac_mdio_setup()
96 bus->irq = lp->mdio_irqs; /* preallocated IRQ table */ in temac_mdio_setup()
98 lp->mii_bus = bus; in temac_mdio_setup()
104 mutex_lock(&lp->indirect_mutex); in temac_mdio_setup()
105 dev_dbg(lp->dev, "MDIO bus registered; MC:%x\n", in temac_mdio_setup()
106 temac_indirect_in32(lp, XTE_MC_OFFSET)); in temac_mdio_setup()
107 mutex_unlock(&lp->indirect_mutex); in temac_mdio_setup()
115 void temac_mdio_teardown(struct temac_local *lp) in temac_mdio_teardown() argument
117 mdiobus_unregister(lp->mii_bus); in temac_mdio_teardown()
118 kfree(lp->mii_bus->irq); in temac_mdio_teardown()
119 mdiobus_free(lp->mii_bus); in temac_mdio_teardown()
120 lp->mii_bus = NULL; in temac_mdio_teardown()