Lines Matching full:pcs
3 * Marvell 88E6352 family SERDES PCS support
129 static struct mv88e639x_pcs *sgmii_pcs_to_mv88e639x_pcs(struct phylink_pcs *pcs) in sgmii_pcs_to_mv88e639x_pcs() argument
131 return container_of(pcs, struct mv88e639x_pcs, sgmii_pcs); in sgmii_pcs_to_mv88e639x_pcs()
183 static int mv88e639x_sgmii_pcs_enable(struct phylink_pcs *pcs) in mv88e639x_sgmii_pcs_enable() argument
185 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_enable()
193 static void mv88e639x_sgmii_pcs_disable(struct phylink_pcs *pcs) in mv88e639x_sgmii_pcs_disable() argument
195 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_disable()
201 static void mv88e639x_sgmii_pcs_pre_config(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_pre_config() argument
204 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_pre_config()
240 static int mv88e639x_sgmii_pcs_post_config(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_post_config() argument
243 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_post_config()
259 static void mv88e639x_sgmii_pcs_get_state(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_get_state() argument
262 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_get_state()
297 static int mv88e639x_sgmii_pcs_config(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_config() argument
303 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_config()
337 static void mv88e639x_sgmii_pcs_an_restart(struct phylink_pcs *pcs) in mv88e639x_sgmii_pcs_an_restart() argument
339 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_an_restart()
345 static void mv88e639x_sgmii_pcs_link_up(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_link_up() argument
350 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_link_up()
379 static struct mv88e639x_pcs *xg_pcs_to_mv88e639x_pcs(struct phylink_pcs *pcs) in xg_pcs_to_mv88e639x_pcs() argument
381 return container_of(pcs, struct mv88e639x_pcs, xg_pcs); in xg_pcs_to_mv88e639x_pcs()
397 static void mv88e639x_xg_pcs_get_state(struct phylink_pcs *pcs, in mv88e639x_xg_pcs_get_state() argument
400 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_xg_pcs_get_state()
436 static int mv88e639x_xg_pcs_config(struct phylink_pcs *pcs, in mv88e639x_xg_pcs_config() argument
509 static int mv88e6390_xg_pcs_enable(struct phylink_pcs *pcs) in mv88e6390_xg_pcs_enable() argument
511 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6390_xg_pcs_enable()
523 static void mv88e6390_xg_pcs_disable(struct phylink_pcs *pcs) in mv88e6390_xg_pcs_disable() argument
525 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6390_xg_pcs_disable()
702 * We can get around this by configuring the PCS mode to 1000base-x and then
707 * PCS mode to 1000base-x and frequency to 3.125 GHz from 1.25 GHz) and then
711 * To avoid this, change PCS mode back to 2500base-x when disabling SerDes from
755 static void mv88e6393x_sgmii_pcs_disable(struct phylink_pcs *pcs) in mv88e6393x_sgmii_pcs_disable() argument
757 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_sgmii_pcs_disable()
759 mv88e639x_sgmii_pcs_disable(pcs); in mv88e6393x_sgmii_pcs_disable()
764 static void mv88e6393x_sgmii_pcs_pre_config(struct phylink_pcs *pcs, in mv88e6393x_sgmii_pcs_pre_config() argument
767 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_sgmii_pcs_pre_config()
769 mv88e639x_sgmii_pcs_pre_config(pcs, interface); in mv88e6393x_sgmii_pcs_pre_config()
774 static int mv88e6393x_sgmii_pcs_post_config(struct phylink_pcs *pcs, in mv88e6393x_sgmii_pcs_post_config() argument
777 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_sgmii_pcs_post_config()
792 return mv88e639x_sgmii_pcs_post_config(pcs, interface); in mv88e6393x_sgmii_pcs_post_config()
842 static int mv88e6393x_xg_pcs_enable(struct phylink_pcs *pcs) in mv88e6393x_xg_pcs_enable() argument
844 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_enable()
851 static void mv88e6393x_xg_pcs_disable(struct phylink_pcs *pcs) in mv88e6393x_xg_pcs_disable() argument
853 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_disable()
860 /* The PCS has to be powered down while CMODE is changed */
861 static void mv88e6393x_xg_pcs_pre_config(struct phylink_pcs *pcs, in mv88e6393x_xg_pcs_pre_config() argument
864 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_pre_config()
870 static int mv88e6393x_xg_pcs_post_config(struct phylink_pcs *pcs, in mv88e6393x_xg_pcs_post_config() argument
873 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_post_config()