Lines Matching full:pcs
25 /* PCS "negotiation" mode.
141 * @ovr_an_inband: if true, override PCS to MLO_AN_INBAND
145 * are supported by the MAC/PCS.
165 * @mac_select_pcs: Select a PCS for the interface mode.
207 * mac_select_pcs: Select a PCS for the interface mode.
209 * @interface: PHY interface mode for PCS
214 * This must not modify any state. It is used to query which PCS should
217 * set the PCS that will be used.
266 * the results of in-band negotiation/status from the MAC PCS should be used
330 * complete any necessary steps after the MAC and PCS have been configured
369 * where these settings are not automatically conveyed from the PCS block,
390 * struct phylink_pcs - PHYLINK PCS instance
393 * @neg_mode: provide PCS neg mode via "mode" argument
394 * @poll: poll the PCS for link changes
396 * This structure is designed to be embedded within the PCS private data,
397 * and will be passed between phylink and the PCS.
400 * the PCS driver.
410 * struct phylink_pcs_ops - MAC PCS operations structure.
412 * @pcs_enable: enable the PCS.
413 * @pcs_disable: disable the PCS.
416 * @pcs_get_state: read the current MAC PCS link state from the hardware.
417 * @pcs_config: configure the MAC PCS for the selected mode and state.
419 * @pcs_link_up: program the PCS for the resolved link configuration
423 int (*pcs_validate)(struct phylink_pcs *pcs, unsigned long *supported,
425 int (*pcs_enable)(struct phylink_pcs *pcs);
426 void (*pcs_disable)(struct phylink_pcs *pcs);
427 void (*pcs_pre_config)(struct phylink_pcs *pcs,
429 int (*pcs_post_config)(struct phylink_pcs *pcs,
431 void (*pcs_get_state)(struct phylink_pcs *pcs,
433 int (*pcs_config)(struct phylink_pcs *pcs, unsigned int neg_mode,
437 void (*pcs_an_restart)(struct phylink_pcs *pcs);
438 void (*pcs_link_up)(struct phylink_pcs *pcs, unsigned int neg_mode,
445 * @pcs: a pointer to a &struct phylink_pcs.
457 int pcs_validate(struct phylink_pcs *pcs, unsigned long *supported,
461 * pcs_enable() - enable the PCS.
462 * @pcs: a pointer to a &struct phylink_pcs.
464 int pcs_enable(struct phylink_pcs *pcs);
467 * pcs_disable() - disable the PCS.
468 * @pcs: a pointer to a &struct phylink_pcs.
470 void pcs_disable(struct phylink_pcs *pcs);
474 * @pcs: a pointer to a &struct phylink_pcs.
477 * Read the current inband link state from the MAC PCS, reporting the
487 void pcs_get_state(struct phylink_pcs *pcs,
491 * pcs_config() - Configure the PCS mode and advertisement
492 * @pcs: a pointer to a &struct phylink_pcs.
498 * Configure the PCS for the operating mode, the interface mode, and set
505 * For SGMII, there is no advertisement from the MAC side, the PCS should
508 * For 1000BASE-X, the advertisement should be programmed into the PCS.
513 * functions, or for PCS that set pcs->neg_mode true, should be tested
516 int pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode,
522 * @pcs: a pointer to a &struct phylink_pcs.
524 * When PCS ops are present, this overrides mac_an_restart() in &struct
527 void pcs_an_restart(struct phylink_pcs *pcs);
530 * pcs_link_up() - program the PCS for the resolved link configuration
531 * @pcs: a pointer to a &struct phylink_pcs.
537 * This call will be made just before mac_link_up() to inform the PCS of
538 * the resolved link parameters. For example, a PCS operating in SGMII
543 * functions, or for PCS that set pcs->neg_mode true, should be tested
546 void pcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode,
605 * phylink_get_link_timer_ns - return the PCS link timer value
608 * Return the PCS link timer setting in nanoseconds for the PHY @interface
630 void phylink_mii_c22_pcs_get_state(struct mdio_device *pcs,
634 int phylink_mii_c22_pcs_config(struct mdio_device *pcs,
638 void phylink_mii_c22_pcs_an_restart(struct mdio_device *pcs);
642 void phylink_mii_c45_pcs_get_state(struct mdio_device *pcs,