Lines Matching full:pcs
3 * Marvell 88E6352 family SERDES PCS support
130 static struct mv88e639x_pcs *sgmii_pcs_to_mv88e639x_pcs(struct phylink_pcs *pcs) in sgmii_pcs_to_mv88e639x_pcs() argument
132 return container_of(pcs, struct mv88e639x_pcs, sgmii_pcs); in sgmii_pcs_to_mv88e639x_pcs()
184 static int mv88e639x_sgmii_pcs_enable(struct phylink_pcs *pcs) in mv88e639x_sgmii_pcs_enable() argument
186 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_enable()
194 static void mv88e639x_sgmii_pcs_disable(struct phylink_pcs *pcs) in mv88e639x_sgmii_pcs_disable() argument
196 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_disable()
202 static void mv88e639x_sgmii_pcs_pre_config(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_pre_config() argument
205 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_pre_config()
241 static int mv88e639x_sgmii_pcs_post_config(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_post_config() argument
244 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_post_config()
260 static void mv88e639x_sgmii_pcs_get_state(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_get_state() argument
264 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_get_state()
299 static int mv88e639x_sgmii_pcs_config(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_config() argument
305 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_config()
339 static void mv88e639x_sgmii_pcs_an_restart(struct phylink_pcs *pcs) in mv88e639x_sgmii_pcs_an_restart() argument
341 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_an_restart()
347 static void mv88e639x_sgmii_pcs_link_up(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_link_up() argument
352 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_link_up()
381 static struct mv88e639x_pcs *xg_pcs_to_mv88e639x_pcs(struct phylink_pcs *pcs) in xg_pcs_to_mv88e639x_pcs() argument
383 return container_of(pcs, struct mv88e639x_pcs, xg_pcs); in xg_pcs_to_mv88e639x_pcs()
399 static void mv88e639x_xg_pcs_get_state(struct phylink_pcs *pcs, in mv88e639x_xg_pcs_get_state() argument
403 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_xg_pcs_get_state()
439 static int mv88e639x_xg_pcs_config(struct phylink_pcs *pcs, in mv88e639x_xg_pcs_config() argument
513 static int mv88e6390_xg_pcs_enable(struct phylink_pcs *pcs) in mv88e6390_xg_pcs_enable() argument
515 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6390_xg_pcs_enable()
527 static void mv88e6390_xg_pcs_disable(struct phylink_pcs *pcs) in mv88e6390_xg_pcs_disable() argument
529 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6390_xg_pcs_disable()
706 * We can get around this by configuring the PCS mode to 1000base-x and then
711 * PCS mode to 1000base-x and frequency to 3.125 GHz from 1.25 GHz) and then
715 * To avoid this, change PCS mode back to 2500base-x when disabling SerDes from
759 static void mv88e6393x_sgmii_pcs_disable(struct phylink_pcs *pcs) in mv88e6393x_sgmii_pcs_disable() argument
761 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_sgmii_pcs_disable()
763 mv88e639x_sgmii_pcs_disable(pcs); in mv88e6393x_sgmii_pcs_disable()
768 static void mv88e6393x_sgmii_pcs_pre_config(struct phylink_pcs *pcs, in mv88e6393x_sgmii_pcs_pre_config() argument
771 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_sgmii_pcs_pre_config()
773 mv88e639x_sgmii_pcs_pre_config(pcs, interface); in mv88e6393x_sgmii_pcs_pre_config()
778 static int mv88e6393x_sgmii_pcs_post_config(struct phylink_pcs *pcs, in mv88e6393x_sgmii_pcs_post_config() argument
781 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_sgmii_pcs_post_config()
796 return mv88e639x_sgmii_pcs_post_config(pcs, interface); in mv88e6393x_sgmii_pcs_post_config()
846 static int mv88e6393x_xg_pcs_enable(struct phylink_pcs *pcs) in mv88e6393x_xg_pcs_enable() argument
848 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_enable()
855 static void mv88e6393x_xg_pcs_disable(struct phylink_pcs *pcs) in mv88e6393x_xg_pcs_disable() argument
857 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_disable()
864 /* The PCS has to be powered down while CMODE is changed */
865 static void mv88e6393x_xg_pcs_pre_config(struct phylink_pcs *pcs, in mv88e6393x_xg_pcs_pre_config() argument
868 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_pre_config()
874 static int mv88e6393x_xg_pcs_post_config(struct phylink_pcs *pcs, in mv88e6393x_xg_pcs_post_config() argument
877 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_post_config()
894 static void mv88e6393x_xg_pcs_get_state(struct phylink_pcs *pcs, in mv88e6393x_xg_pcs_get_state() argument
898 struct mv88e639x_pcs *mpcs = xg_pcs_to_mv88e639x_pcs(pcs); in mv88e6393x_xg_pcs_get_state()
903 return mv88e639x_xg_pcs_get_state(pcs, neg_mode, state); in mv88e6393x_xg_pcs_get_state()