63 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/* NXP C45 PHY driver header file3 * Copyright 2023 NXP4 * Author: Radu Pirea <radu-nicolae.pirea@oss.nxp.com>5 */6 7#include <linux/ptp_clock_kernel.h>8 9#define VEND1_PORT_FUNC_ENABLES 0x804810 11struct nxp_c45_macsec;12 13struct nxp_c45_phy {14 const struct nxp_c45_phy_data *phy_data;15 struct phy_device *phydev;16 struct mii_timestamper mii_ts;17 struct ptp_clock *ptp_clock;18 struct ptp_clock_info caps;19 struct sk_buff_head tx_queue;20 struct sk_buff_head rx_queue;21 /* used to access the PTP registers atomic */22 struct mutex ptp_lock;23 int hwts_tx;24 int hwts_rx;25 u32 tx_delay;26 u32 rx_delay;27 struct timespec64 extts_ts;28 int extts_index;29 bool extts;30 struct nxp_c45_macsec *macsec;31};32 33#if IS_ENABLED(CONFIG_MACSEC)34int nxp_c45_macsec_config_init(struct phy_device *phydev);35int nxp_c45_macsec_probe(struct phy_device *phydev);36void nxp_c45_macsec_remove(struct phy_device *phydev);37void nxp_c45_handle_macsec_interrupt(struct phy_device *phydev,38 irqreturn_t *ret);39#else40static inline41int nxp_c45_macsec_config_init(struct phy_device *phydev)42{43 return 0;44}45 46static inline47int nxp_c45_macsec_probe(struct phy_device *phydev)48{49 return 0;50}51 52static inline53void nxp_c45_macsec_remove(struct phy_device *phydev)54{55}56 57static inline58void nxp_c45_handle_macsec_interrupt(struct phy_device *phydev,59 irqreturn_t *ret)60{61}62#endif63