1 /* 2 * Copyright 2024 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef _FSL_NETC_SOC_H_ 8 #define _FSL_NETC_SOC_H_ 9 10 #include "netc_hw/fsl_netc_hw.h" 11 12 #define TMR_PCI_HDR_TYPE0 TMR0_PCI_HDR_TYPE0 13 #define EMDIO_PCI_HDR_TYPE0 EMDIO0_PCI_HDR_TYPE0 14 15 /*! @brief Station interface index enumerator */ 16 typedef enum _netc_hw_si_idx 17 { 18 kNETC_ENETC0PSI0 = (0U << 8U) | (0U << 4U) | 0U, /*!< ENETC0 PSI0, index 0 */ 19 kNETC_ENETC1PSI0 = (1U << 8U) | (0U << 4U) | 1U, /*!< ENETC1 PSI0, index 1 */ 20 kNETC_ENETC2PSI0 = (2U << 8U) | (0U << 4U) | 2U, /*!< ENETC2 PSI0, index 2 */ 21 kNETC_ENETC3PSI0 = (3U << 8U) | (0U << 4U) | 3U, /*!< ENETC3 PSI0, index 3 */ 22 kNETC_ENETC3VSI1 = (3U << 8U) | (1U << 4U) | 4U, /*!< ENETC3 VSI1, index 4 */ 23 kNETC_ENETC3VSI2 = (3U << 8U) | (2U << 4U) | 5U, /*!< ENETC3 VSI2, index 5 */ 24 kNETC_ENETC3VSI3 = (3U << 8U) | (3U << 4U) | 6U, /*!< ENETC3 VSI3, index 6 */ 25 } netc_hw_si_idx_t; 26 27 /*! @brief Ethernet MAC port resource for the NETC module */ 28 typedef enum _netc_hw_eth_port_idx 29 { 30 kNETC_ENETC0EthPort = 0U, /*!< Ethernet MAC port(Eth3) for ENETC0 */ 31 kNETC_ENETC1EthPort = 1U, /*!< Ethernet MAC port(Eth4) for ENETC1 */ 32 kNETC_ENETC2EthPort = 2U, /*!< Ethernet MAC port(Eth5) for ENETC2 */ 33 kNETC_SWITCH0EthPort0 = 3U, /*!< Ethernet MAC port0(Eth0) for SWITCH */ 34 kNETC_SWITCH0EthPort1 = 4U, /*!< Ethernet MAC port1(Eth1) for SWITCH */ 35 kNETC_SWITCH0EthPort2 = 5U, /*!< Ethernet MAC port2(Eth2) for SWITCH */ 36 } netc_hw_eth_port_idx_t; 37 38 /*! 39 * @brief Enumeration for NETC timer external trigger index 40 */ 41 typedef enum _netc_timer_exttrig_index 42 { 43 kNETC_TimerExtTrig1 = 0, 44 kNETC_TimerExtTrig2, 45 } netc_timer_exttrig_index_t; 46 47 /*! 48 * @brief Get register map resource 49 * 50 * @param handle The enetc hw handle. 51 * @param si The SI object. 52 */ 53 void NETC_SocGetBaseResource(netc_enetc_hw_t *hw, netc_hw_si_idx_t si); 54 55 /*! 56 * @brief Get func instance from mac port 57 * 58 * @param port The enetc mac port. 59 * @return uint32_t 60 */ 61 uint32_t NETC_SocGetFuncInstance(netc_hw_eth_port_idx_t port); 62 63 /*! 64 * @brief Preinit VSIs 65 * 66 * @param hw The enetc hw handle. 67 * @param si The SI object. 68 * @return status_t 69 */ 70 status_t NETC_SocPreInitVsi(netc_enetc_hw_t *hw, netc_hw_si_idx_t si); 71 #endif /* _FSL_NETC_SOC_H_ */ 72