Lines Matching refs:mdio_priv

34 static inline u32 enetc_mdio_rd(struct enetc_mdio_priv *mdio_priv, int off)  in enetc_mdio_rd()  argument
36 return enetc_port_rd_mdio(mdio_priv->hw, mdio_priv->mdio_base + off); in enetc_mdio_rd()
39 static inline void enetc_mdio_wr(struct enetc_mdio_priv *mdio_priv, int off, in enetc_mdio_wr() argument
42 enetc_port_wr_mdio(mdio_priv->hw, mdio_priv->mdio_base + off, val); in enetc_mdio_wr()
45 static bool enetc_mdio_is_busy(struct enetc_mdio_priv *mdio_priv) in enetc_mdio_is_busy() argument
47 return enetc_mdio_rd(mdio_priv, ENETC_MDIO_CFG) & MDIO_CFG_BSY; in enetc_mdio_is_busy()
50 static int enetc_mdio_wait_complete(struct enetc_mdio_priv *mdio_priv) in enetc_mdio_wait_complete() argument
54 return readx_poll_timeout(enetc_mdio_is_busy, mdio_priv, in enetc_mdio_wait_complete()
60 struct enetc_mdio_priv *mdio_priv = bus->priv; in enetc_mdio_write() local
75 enetc_mdio_wr(mdio_priv, ENETC_MDIO_CFG, mdio_cfg); in enetc_mdio_write()
77 ret = enetc_mdio_wait_complete(mdio_priv); in enetc_mdio_write()
83 enetc_mdio_wr(mdio_priv, ENETC_MDIO_CTL, mdio_ctl); in enetc_mdio_write()
87 enetc_mdio_wr(mdio_priv, ENETC_MDIO_ADDR, regnum & 0xffff); in enetc_mdio_write()
89 ret = enetc_mdio_wait_complete(mdio_priv); in enetc_mdio_write()
95 enetc_mdio_wr(mdio_priv, ENETC_MDIO_DATA, value); in enetc_mdio_write()
97 ret = enetc_mdio_wait_complete(mdio_priv); in enetc_mdio_write()
107 struct enetc_mdio_priv *mdio_priv = bus->priv; in enetc_mdio_read() local
121 enetc_mdio_wr(mdio_priv, ENETC_MDIO_CFG, mdio_cfg); in enetc_mdio_read()
123 ret = enetc_mdio_wait_complete(mdio_priv); in enetc_mdio_read()
129 enetc_mdio_wr(mdio_priv, ENETC_MDIO_CTL, mdio_ctl); in enetc_mdio_read()
133 enetc_mdio_wr(mdio_priv, ENETC_MDIO_ADDR, regnum & 0xffff); in enetc_mdio_read()
135 ret = enetc_mdio_wait_complete(mdio_priv); in enetc_mdio_read()
141 enetc_mdio_wr(mdio_priv, ENETC_MDIO_CTL, mdio_ctl | MDIO_CTL_READ); in enetc_mdio_read()
143 ret = enetc_mdio_wait_complete(mdio_priv); in enetc_mdio_read()
148 if (enetc_mdio_rd(mdio_priv, ENETC_MDIO_CFG) & MDIO_CFG_RD_ER) { in enetc_mdio_read()
155 value = enetc_mdio_rd(mdio_priv, ENETC_MDIO_DATA) & 0xffff; in enetc_mdio_read()