| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /* NXP C45 PHY driver header file
- * Copyright 2023 NXP
- * Author: Radu Pirea <radu-nicolae.pirea@oss.nxp.com>
- */
- #include <linux/ptp_clock_kernel.h>
- #define VEND1_PORT_FUNC_ENABLES 0x8048
- struct nxp_c45_macsec;
- struct nxp_c45_phy {
- const struct nxp_c45_phy_data *phy_data;
- struct phy_device *phydev;
- struct mii_timestamper mii_ts;
- struct ptp_clock *ptp_clock;
- struct ptp_clock_info caps;
- struct sk_buff_head tx_queue;
- struct sk_buff_head rx_queue;
- /* used to access the PTP registers atomic */
- struct mutex ptp_lock;
- int hwts_tx;
- int hwts_rx;
- u32 tx_delay;
- u32 rx_delay;
- struct timespec64 extts_ts;
- int extts_index;
- bool extts;
- struct nxp_c45_macsec *macsec;
- };
- #if IS_ENABLED(CONFIG_MACSEC)
- int nxp_c45_macsec_config_init(struct phy_device *phydev);
- int nxp_c45_macsec_probe(struct phy_device *phydev);
- void nxp_c45_macsec_remove(struct phy_device *phydev);
- void nxp_c45_handle_macsec_interrupt(struct phy_device *phydev,
- irqreturn_t *ret);
- #else
- static inline
- int nxp_c45_macsec_config_init(struct phy_device *phydev)
- {
- return 0;
- }
- static inline
- int nxp_c45_macsec_probe(struct phy_device *phydev)
- {
- return 0;
- }
- static inline
- void nxp_c45_macsec_remove(struct phy_device *phydev)
- {
- }
- static inline
- void nxp_c45_handle_macsec_interrupt(struct phy_device *phydev,
- irqreturn_t *ret)
- {
- }
- #endif
|