11#include "fsl_common.h"
23#ifndef FSL_COMPONENT_ID
24#define FSL_COMPONENT_ID "platform.drivers.nic301"
30#define FSL_NIC301_DRIVER_VERSION (MAKE_VERSION(2U, 0U, 1U))
33#define GPV0_BASE (0x41000000UL)
34#define GPV1_BASE (0x41100000UL)
35#define GPV4_BASE (0x41400000UL)
37#define NIC_FN_MOD_AHB_OFFSET (0x028UL)
38#define NIC_WR_TIDEMARK_OFFSET (0x040UL)
39#define NIC_READ_QOS_OFFSET (0x100UL)
40#define NIC_WRITE_QOS_OFFSET (0x104UL)
41#define NIC_FN_MOD_OFFSET (0x108UL)
43#define NIC_GC355_BASE (GPV0_BASE + 0x42000)
44#define NIC_PXP_BASE (GPV0_BASE + 0x43000)
45#define NIC_LCDIF_BASE (GPV0_BASE + 0x44000)
46#define NIC_LCDIFV2_BASE (GPV0_BASE + 0x45000)
47#define NIC_CSI_BASE (GPV0_BASE + 0x46000)
49#define NIC_CAAM_BASE (GPV1_BASE + 0x42000)
50#define NIC_ENET1G_RX_BASE (GPV1_BASE + 0x43000)
51#define NIC_ENET1G_TX_BASE (GPV1_BASE + 0x44000)
52#define NIC_ENET_BASE (GPV1_BASE + 0x45000)
53#define NIC_USBO2_BASE (GPV1_BASE + 0x46000)
54#define NIC_USDHC1_BASE (GPV1_BASE + 0x47000)
55#define NIC_USDHC2_BASE (GPV1_BASE + 0x48000)
56#define NIC_ENET_QOS_BASE (GPV1_BASE + 0x4A000)
58#define NIC_CM7_BASE (GPV4_BASE + 0x42000)
59#define NIC_LPSRMIX_M_BASE (GPV4_BASE + 0x46000)
60#define NIC_DMA_BASE (GPV4_BASE + 0x47000)
61#define NIC_IEE_BASE (GPV4_BASE + 0x48000)
63#define NIC_QOS_MASK (0xF)
64#define NIC_WR_TIDEMARK_MASK (0xF)
65#define NIC_FN_MOD_AHB_MASK (0x7)
66#define NIC_FN_MOD_MASK (0x1)
71 kNIC_REG_READ_QOS_GC355 = NIC_GC355_BASE + NIC_READ_QOS_OFFSET,
72 kNIC_REG_READ_QOS_PXP = NIC_PXP_BASE + NIC_READ_QOS_OFFSET,
73 kNIC_REG_READ_QOS_LCDIF = NIC_LCDIF_BASE + NIC_READ_QOS_OFFSET,
74 kNIC_REG_READ_QOS_LCDIFV2 = NIC_LCDIFV2_BASE + NIC_READ_QOS_OFFSET,
75 kNIC_REG_READ_QOS_CSI = NIC_CSI_BASE + NIC_READ_QOS_OFFSET,
76 kNIC_REG_READ_QOS_CAAM = NIC_CAAM_BASE + NIC_READ_QOS_OFFSET,
77 kNIC_REG_READ_QOS_ENET1G_RX = NIC_ENET1G_RX_BASE + NIC_READ_QOS_OFFSET,
78 kNIC_REG_READ_QOS_ENET1G_TX = NIC_ENET1G_TX_BASE + NIC_READ_QOS_OFFSET,
79 kNIC_REG_READ_QOS_ENET = NIC_ENET_BASE + NIC_READ_QOS_OFFSET,
80 kNIC_REG_READ_QOS_USBO2 = NIC_USBO2_BASE + NIC_READ_QOS_OFFSET,
81 kNIC_REG_READ_QOS_USDHC1 = NIC_USDHC1_BASE + NIC_READ_QOS_OFFSET,
82 kNIC_REG_READ_QOS_USDHC2 = NIC_USDHC2_BASE + NIC_READ_QOS_OFFSET,
83 kNIC_REG_READ_QOS_ENET_QOS = NIC_ENET_QOS_BASE + NIC_READ_QOS_OFFSET,
84 kNIC_REG_READ_QOS_CM7 = NIC_CM7_BASE + NIC_READ_QOS_OFFSET,
85 kNIC_REG_READ_QOS_DMA = NIC_DMA_BASE + NIC_READ_QOS_OFFSET,
86 kNIC_REG_READ_QOS_IEE = NIC_IEE_BASE + NIC_READ_QOS_OFFSET,
89 kNIC_REG_WRITE_QOS_GC355 = NIC_GC355_BASE + NIC_WRITE_QOS_OFFSET,
90 kNIC_REG_WRITE_QOS_PXP = NIC_PXP_BASE + NIC_WRITE_QOS_OFFSET,
91 kNIC_REG_WRITE_QOS_LCDIF = NIC_LCDIF_BASE + NIC_WRITE_QOS_OFFSET,
92 kNIC_REG_WRITE_QOS_LCDIFV2 = NIC_LCDIFV2_BASE + NIC_WRITE_QOS_OFFSET,
93 kNIC_REG_WRITE_QOS_CSI = NIC_CSI_BASE + NIC_WRITE_QOS_OFFSET,
94 kNIC_REG_WRITE_QOS_CAAM = NIC_CAAM_BASE + NIC_WRITE_QOS_OFFSET,
95 kNIC_REG_WRITE_QOS_ENET1G_RX = NIC_ENET1G_RX_BASE + NIC_WRITE_QOS_OFFSET,
96 kNIC_REG_WRITE_QOS_ENET1G_TX = NIC_ENET1G_TX_BASE + NIC_WRITE_QOS_OFFSET,
97 kNIC_REG_WRITE_QOS_ENET = NIC_ENET_BASE + NIC_WRITE_QOS_OFFSET,
98 kNIC_REG_WRITE_QOS_USBO2 = NIC_USBO2_BASE + NIC_WRITE_QOS_OFFSET,
99 kNIC_REG_WRITE_QOS_USDHC1 = NIC_USDHC1_BASE + NIC_WRITE_QOS_OFFSET,
100 kNIC_REG_WRITE_QOS_USDHC2 = NIC_USDHC2_BASE + NIC_WRITE_QOS_OFFSET,
101 kNIC_REG_WRITE_QOS_ENET_QOS = NIC_ENET_QOS_BASE + NIC_WRITE_QOS_OFFSET,
102 kNIC_REG_WRITE_QOS_CM7 = NIC_CM7_BASE + NIC_WRITE_QOS_OFFSET,
103 kNIC_REG_WRITE_QOS_DMA = NIC_DMA_BASE + NIC_WRITE_QOS_OFFSET,
104 kNIC_REG_WRITE_QOS_IEE = NIC_IEE_BASE + NIC_WRITE_QOS_OFFSET,
107 kNIC_REG_FN_MOD_GC355 = NIC_GC355_BASE + NIC_FN_MOD_OFFSET,
108 kNIC_REG_FN_MOD_PXP = NIC_PXP_BASE + NIC_FN_MOD_OFFSET,
109 kNIC_REG_FN_MOD_LCDIF = NIC_LCDIF_BASE + NIC_FN_MOD_OFFSET,
110 kNIC_REG_FN_MOD_LCDIFV2 = NIC_LCDIFV2_BASE + NIC_FN_MOD_OFFSET,
111 kNIC_REG_FN_MOD_CSI = NIC_CSI_BASE + NIC_FN_MOD_OFFSET,
112 kNIC_REG_FN_MOD_CAAM = NIC_CAAM_BASE + NIC_FN_MOD_OFFSET,
113 kNIC_REG_FN_MOD_ENET1G_RX = NIC_ENET1G_RX_BASE + NIC_FN_MOD_OFFSET,
114 kNIC_REG_FN_MOD_ENET1G_TX = NIC_ENET1G_TX_BASE + NIC_FN_MOD_OFFSET,
115 kNIC_REG_FN_MOD_ENET = NIC_ENET_BASE + NIC_FN_MOD_OFFSET,
116 kNIC_REG_FN_MOD_USBO2 = NIC_USBO2_BASE + NIC_FN_MOD_OFFSET,
117 kNIC_REG_FN_MOD_USDHC1 = NIC_USDHC1_BASE + NIC_FN_MOD_OFFSET,
118 kNIC_REG_FN_MOD_USDHC2 = NIC_USDHC2_BASE + NIC_FN_MOD_OFFSET,
119 kNIC_REG_FN_MOD_ENET_QOS = NIC_ENET_QOS_BASE + NIC_FN_MOD_OFFSET,
120 kNIC_REG_FN_MOD_CM7 = NIC_CM7_BASE + NIC_FN_MOD_OFFSET,
121 kNIC_REG_FN_MOD_DMA = NIC_DMA_BASE + NIC_FN_MOD_OFFSET,
122 kNIC_REG_FN_MOD_IEE = NIC_IEE_BASE + NIC_FN_MOD_OFFSET,
125 kNIC_REG_FN_MOD_AHB_ENET = NIC_ENET_BASE + NIC_FN_MOD_AHB_OFFSET,
126 kNIC_REG_FN_MOD_AHB_DMA = NIC_DMA_BASE + NIC_FN_MOD_AHB_OFFSET,
129 kNIC_REG_WR_TIDEMARK_LPSRMIX_M = NIC_LPSRMIX_M_BASE + NIC_WR_TIDEMARK_OFFSET,
133typedef enum _nic_fn_mod_ahb
135 kNIC_FN_MOD_AHB_RD_INCR_OVERRIDE = 0,
136 kNIC_FN_MOD_AHB_WR_INCR_OVERRIDE,
137 kNIC_FN_MOD_AHB_LOCK_OVERRIDE,
141typedef enum _nic_fn_mod
143 kNIC_FN_MOD_ReadIssue = 0,
144 kNIC_FN_MOD_WriteIssue,
171#if defined(__cplusplus)
181static inline void NIC_SetReadQos(nic_reg_t base, nic_qos_t value)
183 *(
volatile uint32_t *)(base) = (value & NIC_QOS_MASK);
193static inline nic_qos_t NIC_GetReadQos(nic_reg_t base)
195 return (nic_qos_t)((*(
volatile uint32_t *)(base)) & NIC_QOS_MASK);
204static void inline NIC_SetWriteQos(nic_reg_t base, nic_qos_t value)
206 *(
volatile uint32_t *)(base) = (value & NIC_QOS_MASK);
216static inline nic_qos_t NIC_GetWriteQos(nic_reg_t base)
218 return (nic_qos_t)((*(
volatile uint32_t *)(base)) & NIC_QOS_MASK);
227static inline void NIC_SetFnModAhb(nic_reg_t base, nic_fn_mod_ahb_t v)
229 *(
volatile uint32_t *)(base) = v;
239static inline nic_fn_mod_ahb_t NIC_GetFnModAhb(nic_reg_t base)
241 return (nic_fn_mod_ahb_t)((*(
volatile uint32_t *)(base)) & NIC_FN_MOD_AHB_MASK);
250static inline void NIC_SetWrTideMark(nic_reg_t base, uint8_t value)
252 *(
volatile uint32_t *)(base) = (value & NIC_WR_TIDEMARK_MASK);
262static inline uint8_t NIC_GetWrTideMark(nic_reg_t base)
264 return (uint8_t)((*(
volatile uint32_t *)(base)) & NIC_WR_TIDEMARK_MASK);
273static inline void NIC_SetFnMod(nic_reg_t base, nic_fn_mod_t value)
275 *(
volatile uint32_t *)(base) = value;
285static inline nic_fn_mod_t NIC_GetFnMod(nic_reg_t base)
287 return (nic_fn_mod_t)((*(
volatile uint32_t *)(base)) & NIC_FN_MOD_MASK);
290#if defined(__cplusplus)
__STATIC_FORCEINLINE void __DSB(void)
Data Synchronization Barrier.
Definition: cmsis_gcc.h:286