Lines Matching refs:pcs

24 	struct phylink_pcs pcs;  member
35 #define phylink_pcs_to_lynx(pl_pcs) container_of((pl_pcs), struct lynx_pcs, pcs)
36 #define lynx_to_phylink_pcs(lynx) (&(lynx)->pcs)
38 static void lynx_pcs_get_state_usxgmii(struct mdio_device *pcs, in lynx_pcs_get_state_usxgmii() argument
41 struct mii_bus *bus = pcs->bus; in lynx_pcs_get_state_usxgmii()
42 int addr = pcs->addr; in lynx_pcs_get_state_usxgmii()
61 static void lynx_pcs_get_state_2500basex(struct mdio_device *pcs, in lynx_pcs_get_state_2500basex() argument
66 bmsr = mdiodev_read(pcs, MII_BMSR); in lynx_pcs_get_state_2500basex()
67 lpa = mdiodev_read(pcs, MII_LPA); in lynx_pcs_get_state_2500basex()
83 static void lynx_pcs_get_state(struct phylink_pcs *pcs, in lynx_pcs_get_state() argument
86 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_get_state()
115 static int lynx_pcs_config_giga(struct mdio_device *pcs, in lynx_pcs_config_giga() argument
129 mdiodev_write(pcs, LINK_TIMER_LO, link_timer & 0xffff); in lynx_pcs_config_giga()
130 mdiodev_write(pcs, LINK_TIMER_HI, link_timer >> 16); in lynx_pcs_config_giga()
142 err = mdiodev_modify(pcs, IF_MODE, in lynx_pcs_config_giga()
148 return phylink_mii_c22_pcs_config(pcs, interface, advertising, in lynx_pcs_config_giga()
152 static int lynx_pcs_config_usxgmii(struct mdio_device *pcs, in lynx_pcs_config_usxgmii() argument
156 struct mii_bus *bus = pcs->bus; in lynx_pcs_config_usxgmii()
157 int addr = pcs->addr; in lynx_pcs_config_usxgmii()
160 dev_err(&pcs->dev, "USXGMII only supports in-band AN for now\n"); in lynx_pcs_config_usxgmii()
171 static int lynx_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode, in lynx_pcs_config() argument
175 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_config()
203 static void lynx_pcs_an_restart(struct phylink_pcs *pcs) in lynx_pcs_an_restart() argument
205 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_an_restart()
210 static void lynx_pcs_link_up_sgmii(struct mdio_device *pcs, in lynx_pcs_link_up_sgmii() argument
239 dev_err(&pcs->dev, "Invalid PCS speed %d\n", speed); in lynx_pcs_link_up_sgmii()
244 mdiodev_modify(pcs, IF_MODE, in lynx_pcs_link_up_sgmii()
265 static void lynx_pcs_link_up_2500basex(struct mdio_device *pcs, in lynx_pcs_link_up_2500basex() argument
272 dev_err(&pcs->dev, "AN not supported for 2500BaseX\n"); in lynx_pcs_link_up_2500basex()
280 mdiodev_modify(pcs, IF_MODE, in lynx_pcs_link_up_2500basex()
285 static void lynx_pcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode, in lynx_pcs_link_up() argument
289 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_link_up()
326 lynx->pcs.ops = &lynx_pcs_phylink_ops; in lynx_pcs_create()
327 lynx->pcs.neg_mode = true; in lynx_pcs_create()
328 lynx->pcs.poll = true; in lynx_pcs_create()
336 struct phylink_pcs *pcs; in lynx_pcs_create_mdiodev() local
342 pcs = lynx_pcs_create(mdio); in lynx_pcs_create_mdiodev()
352 return pcs; in lynx_pcs_create_mdiodev()
369 struct phylink_pcs *pcs; in lynx_pcs_create_fwnode() local
378 pcs = lynx_pcs_create(mdio); in lynx_pcs_create_fwnode()
388 return pcs; in lynx_pcs_create_fwnode()
392 void lynx_pcs_destroy(struct phylink_pcs *pcs) in lynx_pcs_destroy() argument
394 struct lynx_pcs *lynx = phylink_pcs_to_lynx(pcs); in lynx_pcs_destroy()