Lines Matching refs:sp
45 static void sxgbe_mdio_ctrl_data(struct sxgbe_priv_data *sp, u32 cmd, in sxgbe_mdio_ctrl_data() argument
51 ((sp->clk_csr & 0x7) << 19) | SXGBE_MII_BUSY; in sxgbe_mdio_ctrl_data()
52 writel(reg, sp->ioaddr + sp->hw->mii.data); in sxgbe_mdio_ctrl_data()
55 static void sxgbe_mdio_c45(struct sxgbe_priv_data *sp, u32 cmd, int phyaddr, in sxgbe_mdio_c45() argument
63 writel(reg, sp->ioaddr + sp->hw->mii.addr); in sxgbe_mdio_c45()
65 sxgbe_mdio_ctrl_data(sp, cmd, phydata); in sxgbe_mdio_c45()
68 static void sxgbe_mdio_c22(struct sxgbe_priv_data *sp, u32 cmd, int phyaddr, in sxgbe_mdio_c22() argument
73 writel(1 << phyaddr, sp->ioaddr + SXGBE_MDIO_CLAUSE22_PORT_REG); in sxgbe_mdio_c22()
77 writel(reg, sp->ioaddr + sp->hw->mii.addr); in sxgbe_mdio_c22()
79 sxgbe_mdio_ctrl_data(sp, cmd, phydata); in sxgbe_mdio_c22()
82 static int sxgbe_mdio_access(struct sxgbe_priv_data *sp, u32 cmd, int phyaddr, in sxgbe_mdio_access() argument
85 const struct mii_regs *mii = &sp->hw->mii; in sxgbe_mdio_access()
88 rc = sxgbe_mdio_busy_wait(sp->ioaddr, mii->data); in sxgbe_mdio_access()
93 sxgbe_mdio_c45(sp, cmd, phyaddr, phyreg, phydata); in sxgbe_mdio_access()
99 sxgbe_mdio_c22(sp, cmd, phyaddr, phyreg, phydata); in sxgbe_mdio_access()
102 return sxgbe_mdio_busy_wait(sp->ioaddr, mii->data); in sxgbe_mdio_access()