Line data Source code
1 0 : /* 2 : * Copyright 2023 NXP 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : #ifndef ZEPHYR_INCLUDE_DRIVERS_ETH_NXP_ENET_H__ 8 : #define ZEPHYR_INCLUDE_DRIVERS_ETH_NXP_ENET_H__ 9 : 10 : /* 11 : * This header is for NXP ENET driver development 12 : * and has definitions for internal implementations 13 : * not to be used by application 14 : */ 15 : 16 : #include <zephyr/device.h> 17 : #include <zephyr/kernel.h> 18 : 19 : #ifdef __cplusplus 20 : extern "C" { 21 : #endif 22 : 23 : /* 24 : * Reasons for callback to a driver: 25 : * 26 : * Module reset: The ENET module was reset, perhaps because of power management 27 : * actions, and subdriver should reinitialize part of the module. 28 : * Interrupt: An interrupt of a type relevant to the subdriver occurred. 29 : * Interrupt enable: The driver's relevant interrupt was enabled in NVIC 30 : */ 31 0 : enum nxp_enet_callback_reason { 32 : NXP_ENET_MODULE_RESET, 33 : NXP_ENET_INTERRUPT, 34 : NXP_ENET_INTERRUPT_ENABLED, 35 : }; 36 : 37 0 : enum nxp_enet_driver { 38 : NXP_ENET_MAC, 39 : NXP_ENET_MDIO, 40 : NXP_ENET_PTP_CLOCK, 41 : }; 42 : 43 0 : extern void nxp_enet_mdio_callback(const struct device *mdio_dev, 44 : enum nxp_enet_callback_reason event, 45 : void *data); 46 : 47 : #ifdef CONFIG_PTP_CLOCK_NXP_ENET 48 : extern void nxp_enet_ptp_clock_callback(const struct device *dev, 49 : enum nxp_enet_callback_reason event, 50 : void *data); 51 : #else 52 0 : #define nxp_enet_ptp_clock_callback(...) 53 : #endif 54 : 55 : /* 56 : * Internal implementation, inter-driver communication function 57 : * 58 : * dev: target device to call back 59 : * dev_type: which driver to call back 60 : * event: reason/cause of callback 61 : * data: opaque data, will be interpreted based on reason and target driver 62 : */ 63 0 : extern void nxp_enet_driver_cb(const struct device *dev, 64 : enum nxp_enet_driver dev_type, 65 : enum nxp_enet_callback_reason event, 66 : void *data); 67 : 68 : #ifdef __cplusplus 69 : } 70 : #endif 71 : 72 : 73 : #endif /* ZEPHYR_INCLUDE_DRIVERS_ETH_NXP_ENET_H__ */