Lines Matching full:pcs
25 /* PCS "negotiation" mode.
102 * phylink_pcs_neg_mode() - helper to determine PCS inband mode
107 * Determines the negotiation mode to be used by the PCS, and returns
117 * Note: this is for cases where the PCS itself is involved in negotiation
207 * @ovr_an_inband: if true, override PCS to MLO_AN_INBAND
211 * are supported by the MAC/PCS.
231 * @mac_select_pcs: Select a PCS for the interface mode.
296 * mac_select_pcs: Select a PCS for the interface mode.
298 * @interface: PHY interface mode for PCS
303 * This must not modify any state. It is used to query which PCS should
306 * set the PCS that will be used.
355 * the results of in-band negotiation/status from the MAC PCS should be used
419 * complete any necessary steps after the MAC and PCS have been configured
458 * where these settings are not automatically conveyed from the PCS block,
479 * struct phylink_pcs - PHYLINK PCS instance
482 * @neg_mode: provide PCS neg mode via "mode" argument
483 * @poll: poll the PCS for link changes
485 * This structure is designed to be embedded within the PCS private data,
486 * and will be passed between phylink and the PCS.
489 * the PCS driver.
499 * struct phylink_pcs_ops - MAC PCS operations structure.
501 * @pcs_enable: enable the PCS.
502 * @pcs_disable: disable the PCS.
505 * @pcs_get_state: read the current MAC PCS link state from the hardware.
506 * @pcs_config: configure the MAC PCS for the selected mode and state.
508 * @pcs_link_up: program the PCS for the resolved link configuration
512 int (*pcs_validate)(struct phylink_pcs *pcs, unsigned long *supported,
514 int (*pcs_enable)(struct phylink_pcs *pcs);
515 void (*pcs_disable)(struct phylink_pcs *pcs);
516 void (*pcs_pre_config)(struct phylink_pcs *pcs,
518 int (*pcs_post_config)(struct phylink_pcs *pcs,
520 void (*pcs_get_state)(struct phylink_pcs *pcs,
522 int (*pcs_config)(struct phylink_pcs *pcs, unsigned int neg_mode,
526 void (*pcs_an_restart)(struct phylink_pcs *pcs);
527 void (*pcs_link_up)(struct phylink_pcs *pcs, unsigned int neg_mode,
534 * @pcs: a pointer to a &struct phylink_pcs.
546 int pcs_validate(struct phylink_pcs *pcs, unsigned long *supported,
550 * pcs_enable() - enable the PCS.
551 * @pcs: a pointer to a &struct phylink_pcs.
553 int pcs_enable(struct phylink_pcs *pcs);
556 * pcs_disable() - disable the PCS.
557 * @pcs: a pointer to a &struct phylink_pcs.
559 void pcs_disable(struct phylink_pcs *pcs);
563 * @pcs: a pointer to a &struct phylink_pcs.
566 * Read the current inband link state from the MAC PCS, reporting the
576 void pcs_get_state(struct phylink_pcs *pcs,
580 * pcs_config() - Configure the PCS mode and advertisement
581 * @pcs: a pointer to a &struct phylink_pcs.
587 * Configure the PCS for the operating mode, the interface mode, and set
594 * For SGMII, there is no advertisement from the MAC side, the PCS should
597 * For 1000BASE-X, the advertisement should be programmed into the PCS.
602 * functions, or for PCS that set pcs->neg_mode true, should be tested
605 int pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode,
611 * @pcs: a pointer to a &struct phylink_pcs.
613 * When PCS ops are present, this overrides mac_an_restart() in &struct
616 void pcs_an_restart(struct phylink_pcs *pcs);
619 * pcs_link_up() - program the PCS for the resolved link configuration
620 * @pcs: a pointer to a &struct phylink_pcs.
626 * This call will be made just before mac_link_up() to inform the PCS of
627 * the resolved link parameters. For example, a PCS operating in SGMII
632 * functions, or for PCS that set pcs->neg_mode true, should be tested
635 void pcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode,
705 * phylink_get_link_timer_ns - return the PCS link timer value
708 * Return the PCS link timer setting in nanoseconds for the PHY @interface
730 void phylink_mii_c22_pcs_get_state(struct mdio_device *pcs,
734 int phylink_mii_c22_pcs_config(struct mdio_device *pcs,
738 void phylink_mii_c22_pcs_an_restart(struct mdio_device *pcs);
742 void phylink_mii_c45_pcs_get_state(struct mdio_device *pcs,