Linux Audio

Check our new training course

Yocto distribution development and maintenance

Need a Yocto distribution for your embedded project?
Loading...
Note: File does not exist in v3.1.
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/* NXP C45 PHY driver header file
 3 * Copyright 2023 NXP
 4 * 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		0x8048
10
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	u32 flags;
32};
33
34#if IS_ENABLED(CONFIG_MACSEC)
35int nxp_c45_macsec_config_init(struct phy_device *phydev);
36int nxp_c45_macsec_probe(struct phy_device *phydev);
37void nxp_c45_macsec_remove(struct phy_device *phydev);
38void nxp_c45_handle_macsec_interrupt(struct phy_device *phydev,
39				     irqreturn_t *ret);
40#else
41static inline
42int nxp_c45_macsec_config_init(struct phy_device *phydev)
43{
44	return 0;
45}
46
47static inline
48int nxp_c45_macsec_probe(struct phy_device *phydev)
49{
50	return 0;
51}
52
53static inline
54void nxp_c45_macsec_remove(struct phy_device *phydev)
55{
56}
57
58static inline
59void nxp_c45_handle_macsec_interrupt(struct phy_device *phydev,
60				     irqreturn_t *ret)
61{
62}
63#endif