Lines Matching refs:pcs
32 #define phylink_pcs_to_lynx(pl_pcs) container_of((pl_pcs), struct lynx_pcs, pcs)
34 static void lynx_pcs_get_state_usxgmii(struct mdio_device *pcs, in lynx_pcs_get_state_usxgmii() argument
37 struct mii_bus *bus = pcs->bus; in lynx_pcs_get_state_usxgmii()
38 int addr = pcs->addr; in lynx_pcs_get_state_usxgmii()
57 static void lynx_pcs_get_state_2500basex(struct mdio_device *pcs, in lynx_pcs_get_state_2500basex() argument
60 struct mii_bus *bus = pcs->bus; in lynx_pcs_get_state_2500basex()
61 int addr = pcs->addr; in lynx_pcs_get_state_2500basex()
81 static void lynx_pcs_get_state(struct phylink_pcs *pcs, in lynx_pcs_get_state() argument
84 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_get_state()
113 static int lynx_pcs_config_1000basex(struct mdio_device *pcs, in lynx_pcs_config_1000basex() argument
117 struct mii_bus *bus = pcs->bus; in lynx_pcs_config_1000basex()
118 int addr = pcs->addr; in lynx_pcs_config_1000basex()
132 return phylink_mii_c22_pcs_config(pcs, mode, in lynx_pcs_config_1000basex()
137 static int lynx_pcs_config_sgmii(struct mdio_device *pcs, unsigned int mode, in lynx_pcs_config_sgmii() argument
140 struct mii_bus *bus = pcs->bus; in lynx_pcs_config_sgmii()
141 int addr = pcs->addr; in lynx_pcs_config_sgmii()
162 return phylink_mii_c22_pcs_config(pcs, mode, PHY_INTERFACE_MODE_SGMII, in lynx_pcs_config_sgmii()
166 static int lynx_pcs_config_usxgmii(struct mdio_device *pcs, unsigned int mode, in lynx_pcs_config_usxgmii() argument
169 struct mii_bus *bus = pcs->bus; in lynx_pcs_config_usxgmii()
170 int addr = pcs->addr; in lynx_pcs_config_usxgmii()
173 dev_err(&pcs->dev, "USXGMII only supports in-band AN for now\n"); in lynx_pcs_config_usxgmii()
184 static int lynx_pcs_config(struct phylink_pcs *pcs, unsigned int mode, in lynx_pcs_config() argument
189 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_config()
216 static void lynx_pcs_an_restart(struct phylink_pcs *pcs) in lynx_pcs_an_restart() argument
218 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_an_restart()
223 static void lynx_pcs_link_up_sgmii(struct mdio_device *pcs, unsigned int mode, in lynx_pcs_link_up_sgmii() argument
226 struct mii_bus *bus = pcs->bus; in lynx_pcs_link_up_sgmii()
228 int addr = pcs->addr; in lynx_pcs_link_up_sgmii()
253 dev_err(&pcs->dev, "Invalid PCS speed %d\n", speed); in lynx_pcs_link_up_sgmii()
279 static void lynx_pcs_link_up_2500basex(struct mdio_device *pcs, in lynx_pcs_link_up_2500basex() argument
283 struct mii_bus *bus = pcs->bus; in lynx_pcs_link_up_2500basex()
284 int addr = pcs->addr; in lynx_pcs_link_up_2500basex()
288 dev_err(&pcs->dev, "AN not supported for 2500BaseX\n"); in lynx_pcs_link_up_2500basex()
301 static void lynx_pcs_link_up(struct phylink_pcs *pcs, unsigned int mode, in lynx_pcs_link_up() argument
305 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_link_up()
341 lynx_pcs->pcs.ops = &lynx_pcs_phylink_ops; in lynx_pcs_create()
342 lynx_pcs->pcs.poll = true; in lynx_pcs_create()
348 void lynx_pcs_destroy(struct lynx_pcs *pcs) in lynx_pcs_destroy() argument
350 kfree(pcs); in lynx_pcs_destroy()