1 /*
2 ** ###################################################################
3 **     Version:             rev. 1.2, 2017-06-08
4 **     Build:               b220714
5 **
6 **     Abstract:
7 **         Chip specific module features.
8 **
9 **     Copyright 2016 Freescale Semiconductor, Inc.
10 **     Copyright 2016-2022 NXP
11 **     All rights reserved.
12 **
13 **     SPDX-License-Identifier: BSD-3-Clause
14 **
15 **     http:                 www.nxp.com
16 **     mail:                 support@nxp.com
17 **
18 **     Revisions:
19 **     - rev. 1.0 (2016-08-12)
20 **         Initial version.
21 **     - rev. 1.1 (2016-11-25)
22 **         Update CANFD and Classic CAN register.
23 **         Add MAC TIMERSTAMP registers.
24 **     - rev. 1.2 (2017-06-08)
25 **         Remove RTC_CTRL_RTC_OSC_BYPASS.
26 **         SYSCON_ARMTRCLKDIV rename to SYSCON_ARMTRACECLKDIV.
27 **         Remove RESET and HALT from SYSCON_AHBCLKDIV.
28 **
29 ** ###################################################################
30 */
31 
32 #ifndef _LPC54616_FEATURES_H_
33 #define _LPC54616_FEATURES_H_
34 
35 /* SOC module features */
36 
37 /* @brief ADC availability on the SoC. */
38 #define FSL_FEATURE_SOC_ADC_COUNT (1)
39 /* @brief ASYNC_SYSCON availability on the SoC. */
40 #define FSL_FEATURE_SOC_ASYNC_SYSCON_COUNT (1)
41 /* @brief LPC_CAN availability on the SoC. */
42 #define FSL_FEATURE_SOC_LPC_CAN_COUNT (2)
43 /* @brief CRC availability on the SoC. */
44 #define FSL_FEATURE_SOC_CRC_COUNT (1)
45 /* @brief CTIMER availability on the SoC. */
46 #define FSL_FEATURE_SOC_CTIMER_COUNT (5)
47 /* @brief DMA availability on the SoC. */
48 #define FSL_FEATURE_SOC_DMA_COUNT (1)
49 /* @brief DMIC availability on the SoC. */
50 #define FSL_FEATURE_SOC_DMIC_COUNT (1)
51 /* @brief EEPROM availability on the SoC. */
52 #define FSL_FEATURE_SOC_EEPROM_COUNT (1)
53 /* @brief EMC availability on the SoC. */
54 #define FSL_FEATURE_SOC_EMC_COUNT (1)
55 /* @brief LPC_ENET availability on the SoC. */
56 #define FSL_FEATURE_SOC_LPC_ENET_COUNT (1)
57 /* @brief FLEXCOMM availability on the SoC. */
58 #define FSL_FEATURE_SOC_FLEXCOMM_COUNT (10)
59 /* @brief FMC availability on the SoC. */
60 #define FSL_FEATURE_SOC_FMC_COUNT (1)
61 /* @brief GINT availability on the SoC. */
62 #define FSL_FEATURE_SOC_GINT_COUNT (2)
63 /* @brief GPIO availability on the SoC. */
64 #define FSL_FEATURE_SOC_GPIO_COUNT (1)
65 /* @brief I2C availability on the SoC. */
66 #define FSL_FEATURE_SOC_I2C_COUNT (10)
67 /* @brief I2S availability on the SoC. */
68 #define FSL_FEATURE_SOC_I2S_COUNT (2)
69 /* @brief INPUTMUX availability on the SoC. */
70 #define FSL_FEATURE_SOC_INPUTMUX_COUNT (1)
71 /* @brief IOCON availability on the SoC. */
72 #define FSL_FEATURE_SOC_IOCON_COUNT (1)
73 /* @brief MPU availability on the SoC. */
74 #define FSL_FEATURE_SOC_MPU_COUNT (1)
75 /* @brief MRT availability on the SoC. */
76 #define FSL_FEATURE_SOC_MRT_COUNT (1)
77 /* @brief PINT availability on the SoC. */
78 #define FSL_FEATURE_SOC_PINT_COUNT (1)
79 /* @brief RIT availability on the SoC. */
80 #define FSL_FEATURE_SOC_RIT_COUNT (1)
81 /* @brief LPC_RNG availability on the SoC. */
82 #define FSL_FEATURE_SOC_LPC_RNG_COUNT (1)
83 /* @brief RTC availability on the SoC. */
84 #define FSL_FEATURE_SOC_RTC_COUNT (1)
85 /* @brief SCT availability on the SoC. */
86 #define FSL_FEATURE_SOC_SCT_COUNT (1)
87 /* @brief SDIF availability on the SoC. */
88 #define FSL_FEATURE_SOC_SDIF_COUNT (1)
89 /* @brief SMARTCARD availability on the SoC. */
90 #define FSL_FEATURE_SOC_SMARTCARD_COUNT (2)
91 /* @brief SPI availability on the SoC. */
92 #define FSL_FEATURE_SOC_SPI_COUNT (10)
93 /* @brief SPIFI availability on the SoC. */
94 #define FSL_FEATURE_SOC_SPIFI_COUNT (1)
95 /* @brief SYSCON availability on the SoC. */
96 #define FSL_FEATURE_SOC_SYSCON_COUNT (1)
97 /* @brief USART availability on the SoC. */
98 #define FSL_FEATURE_SOC_USART_COUNT (10)
99 /* @brief USB availability on the SoC. */
100 #define FSL_FEATURE_SOC_USB_COUNT (1)
101 /* @brief USBFSH availability on the SoC. */
102 #define FSL_FEATURE_SOC_USBFSH_COUNT (1)
103 /* @brief USBHSD availability on the SoC. */
104 #define FSL_FEATURE_SOC_USBHSD_COUNT (1)
105 /* @brief USBHSH availability on the SoC. */
106 #define FSL_FEATURE_SOC_USBHSH_COUNT (1)
107 /* @brief UTICK availability on the SoC. */
108 #define FSL_FEATURE_SOC_UTICK_COUNT (1)
109 /* @brief WWDT availability on the SoC. */
110 #define FSL_FEATURE_SOC_WWDT_COUNT (1)
111 
112 /* ADC module features */
113 
114 /* @brief Do not has input select (register INSEL). */
115 #define FSL_FEATURE_ADC_HAS_NO_INSEL  (0)
116 /* @brief Has ASYNMODE bitfile in CTRL reigster. */
117 #define FSL_FEATURE_ADC_HAS_CTRL_ASYNMODE (1)
118 /* @brief Has ASYNMODE bitfile in CTRL reigster. */
119 #define FSL_FEATURE_ADC_HAS_CTRL_RESOL (1)
120 /* @brief Has ASYNMODE bitfile in CTRL reigster. */
121 #define FSL_FEATURE_ADC_HAS_CTRL_BYPASSCAL (1)
122 /* @brief Has ASYNMODE bitfile in CTRL reigster. */
123 #define FSL_FEATURE_ADC_HAS_CTRL_TSAMP (1)
124 /* @brief Has ASYNMODE bitfile in CTRL reigster. */
125 #define FSL_FEATURE_ADC_HAS_CTRL_LPWRMODE (0)
126 /* @brief Has ASYNMODE bitfile in CTRL reigster. */
127 #define FSL_FEATURE_ADC_HAS_CTRL_CALMODE (0)
128 /* @brief Has startup register. */
129 #define FSL_FEATURE_ADC_HAS_STARTUP_REG (1)
130 /* @brief Has ADC Trim register */
131 #define FSL_FEATURE_ADC_HAS_TRIM_REG (0)
132 /* @brief Has Calibration register. */
133 #define FSL_FEATURE_ADC_HAS_CALIB_REG (1)
134 
135 /* CAN module features */
136 
137 /* @brief Support CANFD or not */
138 #define FSL_FEATURE_CAN_SUPPORT_CANFD (1)
139 
140 /* CTIMER module features */
141 
142 /* @brief CTIMER has no capture channel. */
143 #define FSL_FEATURE_CTIMER_HAS_NO_INPUT_CAPTURE (0)
144 /* @brief CTIMER has no capture 2 interrupt. */
145 #define FSL_FEATURE_CTIMER_HAS_NO_IR_CR2INT (0)
146 /* @brief CTIMER capture 3 interrupt. */
147 #define FSL_FEATURE_CTIMER_HAS_IR_CR3INT (1)
148 /* @brief Has CTIMER CCR_CAP2 (register bits CCR[CAP2RE][CAP2FE][CAP2I]. */
149 #define FSL_FEATURE_CTIMER_HAS_NO_CCR_CAP2 (0)
150 /* @brief Has CTIMER CCR_CAP3 (register bits CCR[CAP3RE][CAP3FE][CAP3I]). */
151 #define FSL_FEATURE_CTIMER_HAS_CCR_CAP3 (1)
152 /* @brief CTIMER Has register MSR */
153 #define FSL_FEATURE_CTIMER_HAS_MSR (1)
154 
155 /* DMA module features */
156 
157 /* @brief Number of channels */
158 #define FSL_FEATURE_DMA_NUMBER_OF_CHANNELS (30)
159 /* @brief Align size of DMA descriptor */
160 #define FSL_FEATURE_DMA_DESCRIPTOR_ALIGN_SIZE (512)
161 /* @brief DMA head link descriptor table align size */
162 #define FSL_FEATURE_DMA_LINK_DESCRIPTOR_ALIGN_SIZE (16U)
163 
164 /* EEPROM module features */
165 
166 /* @brief Size of the EEPROM */
167 #define FSL_FEATURE_EEPROM_SIZE (0x00004000)
168 /* @brief Base address of the EEPROM */
169 #define FSL_FEATURE_EEPROM_BASE_ADDRESS (0x40108000)
170 /* @brief Page count of the EEPROM */
171 #define FSL_FEATURE_EEPROM_PAGE_COUNT (128)
172 /* @brief Command number for eeprom program */
173 #define FSL_FEATURE_EEPROM_PROGRAM_CMD (6)
174 /* @brief EEPROM internal clock freqency */
175 #define FSL_FEATURE_EEPROM_INTERNAL_FREQ (1500000)
176 
177 /* FLEXCOMM module features */
178 
179 /* @brief FLEXCOMM0 USART INDEX 0 */
180 #define FSL_FEATURE_FLEXCOMM0_USART_INDEX  (0)
181 /* @brief FLEXCOMM0 SPI INDEX 0 */
182 #define FSL_FEATURE_FLEXCOMM0_SPI_INDEX  (0)
183 /* @brief FLEXCOMM0 I2C INDEX 0 */
184 #define FSL_FEATURE_FLEXCOMM0_I2C_INDEX  (0)
185 /* @brief FLEXCOMM1 USART INDEX 1 */
186 #define FSL_FEATURE_FLEXCOMM1_USART_INDEX  (1)
187 /* @brief FLEXCOMM1 SPI INDEX 1 */
188 #define FSL_FEATURE_FLEXCOMM1_SPI_INDEX  (1)
189 /* @brief FLEXCOMM1 I2C INDEX 1 */
190 #define FSL_FEATURE_FLEXCOMM1_I2C_INDEX  (1)
191 /* @brief FLEXCOMM2 USART INDEX 2 */
192 #define FSL_FEATURE_FLEXCOMM2_USART_INDEX  (2)
193 /* @brief FLEXCOMM2 SPI INDEX 2 */
194 #define FSL_FEATURE_FLEXCOMM2_SPI_INDEX  (2)
195 /* @brief FLEXCOMM2 I2C INDEX 2 */
196 #define FSL_FEATURE_FLEXCOMM2_I2C_INDEX  (2)
197 /* @brief FLEXCOMM3 USART INDEX 3 */
198 #define FSL_FEATURE_FLEXCOMM3_USART_INDEX  (3)
199 /* @brief FLEXCOMM3 SPI INDEX 3 */
200 #define FSL_FEATURE_FLEXCOMM3_SPI_INDEX  (3)
201 /* @brief FLEXCOMM3 I2C INDEX 3 */
202 #define FSL_FEATURE_FLEXCOMM3_I2C_INDEX  (3)
203 /* @brief FLEXCOMM4 USART INDEX 4 */
204 #define FSL_FEATURE_FLEXCOMM4_USART_INDEX  (4)
205 /* @brief FLEXCOMM4 SPI INDEX 4 */
206 #define FSL_FEATURE_FLEXCOMM4_SPI_INDEX  (4)
207 /* @brief FLEXCOMM4 I2C INDEX 4 */
208 #define FSL_FEATURE_FLEXCOMM4_I2C_INDEX  (4)
209 /* @brief FLEXCOMM5 USART INDEX 5 */
210 #define FSL_FEATURE_FLEXCOMM5_USART_INDEX  (5)
211 /* @brief FLEXCOMM5 SPI INDEX 5 */
212 #define FSL_FEATURE_FLEXCOMM5_SPI_INDEX  (5)
213 /* @brief FLEXCOMM5 I2C INDEX 5 */
214 #define FSL_FEATURE_FLEXCOMM5_I2C_INDEX  (5)
215 /* @brief FLEXCOMM6 USART INDEX 6 */
216 #define FSL_FEATURE_FLEXCOMM6_USART_INDEX  (6)
217 /* @brief FLEXCOMM6 SPI INDEX 6 */
218 #define FSL_FEATURE_FLEXCOMM6_SPI_INDEX  (6)
219 /* @brief FLEXCOMM6 I2C INDEX 6 */
220 #define FSL_FEATURE_FLEXCOMM6_I2C_INDEX  (6)
221 /* @brief FLEXCOMM7 I2S INDEX 0 */
222 #define FSL_FEATURE_FLEXCOMM6_I2S_INDEX  (0)
223 /* @brief FLEXCOMM7 USART INDEX 7 */
224 #define FSL_FEATURE_FLEXCOMM7_USART_INDEX  (7)
225 /* @brief FLEXCOMM7 SPI INDEX 7 */
226 #define FSL_FEATURE_FLEXCOMM7_SPI_INDEX  (7)
227 /* @brief FLEXCOMM7 I2C INDEX 7 */
228 #define FSL_FEATURE_FLEXCOMM7_I2C_INDEX  (7)
229 /* @brief FLEXCOMM7 I2S INDEX 1 */
230 #define FSL_FEATURE_FLEXCOMM7_I2S_INDEX  (1)
231 /* @brief FLEXCOMM4 USART INDEX 8 */
232 #define FSL_FEATURE_FLEXCOMM8_USART_INDEX  (8)
233 /* @brief FLEXCOMM4 SPI INDEX 8 */
234 #define FSL_FEATURE_FLEXCOMM8_SPI_INDEX  (8)
235 /* @brief FLEXCOMM4 I2C INDEX 8 */
236 #define FSL_FEATURE_FLEXCOMM8_I2C_INDEX  (8)
237 /* @brief FLEXCOMM5 USART INDEX 9 */
238 #define FSL_FEATURE_FLEXCOMM9_USART_INDEX  (9)
239 /* @brief FLEXCOMM5 SPI INDEX 9 */
240 #define FSL_FEATURE_FLEXCOMM9_SPI_INDEX  (9)
241 /* @brief FLEXCOMM5 I2C INDEX 9 */
242 #define FSL_FEATURE_FLEXCOMM9_I2C_INDEX  (9)
243 /* @brief I2S has DMIC interconnection */
244 #define FSL_FEATURE_FLEXCOMM_INSTANCE_I2S_HAS_DMIC_INTERCONNECTIONn(x) \
245     (((x) == FLEXCOMM0) ? (0) : \
246     (((x) == FLEXCOMM1) ? (0) : \
247     (((x) == FLEXCOMM2) ? (0) : \
248     (((x) == FLEXCOMM3) ? (0) : \
249     (((x) == FLEXCOMM4) ? (0) : \
250     (((x) == FLEXCOMM5) ? (0) : \
251     (((x) == FLEXCOMM6) ? (0) : \
252     (((x) == FLEXCOMM7) ? (1) : \
253     (((x) == FLEXCOMM8) ? (0) : \
254     (((x) == FLEXCOMM9) ? (0) : (-1)))))))))))
255 
256 /* I2S module features */
257 
258 /* @brief I2S support dual channel transfer. */
259 #define FSL_FEATURE_I2S_SUPPORT_SECONDARY_CHANNEL (1)
260 /* @brief I2S has DMIC interconnection */
261 #define FSL_FEATURE_FLEXCOMM_I2S_HAS_DMIC_INTERCONNECTION (1)
262 
263 /* IOCON module features */
264 
265 /* @brief Func bit field width */
266 #define FSL_FEATURE_IOCON_FUNC_FIELD_WIDTH (4)
267 
268 /* MRT module features */
269 
270 /* @brief number of channels. */
271 #define FSL_FEATURE_MRT_NUMBER_OF_CHANNELS  (4)
272 
273 /* interrupt module features */
274 
275 /* @brief Lowest interrupt request number. */
276 #define FSL_FEATURE_INTERRUPT_IRQ_MIN (-14)
277 /* @brief Highest interrupt request number. */
278 #define FSL_FEATURE_INTERRUPT_IRQ_MAX (105)
279 
280 /* PINT module features */
281 
282 /* @brief Number of connected outputs */
283 #define FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS (8)
284 
285 /* RTC module features */
286 
287 /* @brief RTC has no reset control */
288 #define FSL_FEATURE_RTC_HAS_NO_RESET (1)
289 
290 /* SCT module features */
291 
292 /* @brief Number of events */
293 #define FSL_FEATURE_SCT_NUMBER_OF_EVENTS (10)
294 /* @brief Number of states */
295 #define FSL_FEATURE_SCT_NUMBER_OF_STATES (10)
296 /* @brief Number of match capture */
297 #define FSL_FEATURE_SCT_NUMBER_OF_MATCH_CAPTURE (10)
298 /* @brief Number of outputs */
299 #define FSL_FEATURE_SCT_NUMBER_OF_OUTPUTS (10)
300 
301 /* SDIF module features */
302 
303 /* @brief FIFO depth, every location is a WORD */
304 #define FSL_FEATURE_SDIF_FIFO_DEPTH_64_32BITS (64)
305 /* @brief Max DMA buffer size */
306 #define FSL_FEATURE_SDIF_INTERNAL_DMA_MAX_BUFFER_SIZE (4096)
307 /* @brief Max source clock in HZ */
308 #define FSL_FEATURE_SDIF_MAX_SOURCE_CLOCK (52000000)
309 
310 /* SPI module features */
311 
312 /* @brief SSEL pin count. */
313 #define FSL_FEATURE_SPI_SSEL_COUNT (4)
314 
315 /* SPIFI module features */
316 
317 /* @brief SPIFI start address */
318 #define FSL_FEATURE_SPIFI_START_ADDR (0x10000000)
319 /* @brief SPIFI end address */
320 #define FSL_FEATURE_SPIFI_END_ADDR (0x17FFFFFF)
321 
322 /* SYSCON module features */
323 
324 #if defined(CPU_LPC54616J256ET180)
325     /* @brief Pointer to ROM IAP entry functions */
326     #define FSL_FEATURE_SYSCON_IAP_ENTRY_LOCATION (0x03000205)
327     /* @brief IAP Reinvoke ISP command parameter is pointer */
328     #define FSL_FEATURE_SYSCON_IAP_REINVOKE_ISP_PARAM_POINTER (1)
329     /* @brief Flash page size in bytes */
330     #define FSL_FEATURE_SYSCON_FLASH_PAGE_SIZE_BYTES (256)
331     /* @brief Flash sector size in bytes */
332     #define FSL_FEATURE_SYSCON_FLASH_SECTOR_SIZE_BYTES (32768)
333     /* @brief Flash size in bytes */
334     #define FSL_FEATURE_SYSCON_FLASH_SIZE_BYTES (262144)
335     /* @brief IAP has Flash read & write function */
336     #define FSL_FEATURE_IAP_HAS_FLASH_FUNCTION (1)
337     /* @brief IAP has EEPROM read & write function */
338     #define FSL_FEATURE_IAP_HAS_EEPROM_FUNCTION (1)
339     /* @brief IAP has read Flash signature function  */
340     #define FSL_FEATURE_IAP_HAS_FLASH_SIGNATURE_READ (0)
341     /* @brief IAP has read extended Flash signature function */
342     #define FSL_FEATURE_IAP_HAS_FLASH_EXTENDED_SIGNATURE_READ (1)
343     /* @brief RIT has no reset control */
344     #define FSL_FEATURE_RIT_HAS_NO_RESET (1)
345 #elif defined(CPU_LPC54616J512BD100) || defined(CPU_LPC54616J512BD208) || defined(CPU_LPC54616J512ET100)
346     /* @brief Pointer to ROM IAP entry functions */
347     #define FSL_FEATURE_SYSCON_IAP_ENTRY_LOCATION (0x03000205)
348     /* @brief IAP Reinvoke ISP command parameter is pointer */
349     #define FSL_FEATURE_SYSCON_IAP_REINVOKE_ISP_PARAM_POINTER (1)
350     /* @brief Flash page size in bytes */
351     #define FSL_FEATURE_SYSCON_FLASH_PAGE_SIZE_BYTES (256)
352     /* @brief Flash sector size in bytes */
353     #define FSL_FEATURE_SYSCON_FLASH_SECTOR_SIZE_BYTES (32768)
354     /* @brief Flash size in bytes */
355     #define FSL_FEATURE_SYSCON_FLASH_SIZE_BYTES (524288)
356     /* @brief IAP has Flash read & write function */
357     #define FSL_FEATURE_IAP_HAS_FLASH_FUNCTION (1)
358     /* @brief IAP has EEPROM read & write function */
359     #define FSL_FEATURE_IAP_HAS_EEPROM_FUNCTION (1)
360     /* @brief IAP has read Flash signature function  */
361     #define FSL_FEATURE_IAP_HAS_FLASH_SIGNATURE_READ (0)
362     /* @brief IAP has read extended Flash signature function */
363     #define FSL_FEATURE_IAP_HAS_FLASH_EXTENDED_SIGNATURE_READ (1)
364     /* @brief RIT has no reset control */
365     #define FSL_FEATURE_RIT_HAS_NO_RESET (1)
366 #endif /* defined(CPU_LPC54616J256ET180) */
367 
368 /* SysTick module features */
369 
370 /* @brief Systick has external reference clock. */
371 #define FSL_FEATURE_SYSTICK_HAS_EXT_REF (0)
372 /* @brief Systick external reference clock is core clock divided by this value. */
373 #define FSL_FEATURE_SYSTICK_EXT_REF_CORE_DIV (0)
374 
375 /* USB module features */
376 
377 /* @brief Size of the USB dedicated RAM */
378 #define FSL_FEATURE_USB_USB_RAM (0x00002000)
379 /* @brief Base address of the USB dedicated RAM */
380 #define FSL_FEATURE_USB_USB_RAM_BASE_ADDRESS (0x40100000)
381 /* @brief Number of the endpoint in USB FS */
382 #define FSL_FEATURE_USB_EP_NUM (5)
383 
384 /* USBFSH module features */
385 
386 /* @brief Size of the USB dedicated RAM */
387 #define FSL_FEATURE_USBFSH_USB_RAM (0x00002000)
388 /* @brief Base address of the USB dedicated RAM */
389 #define FSL_FEATURE_USBFSH_USB_RAM_BASE_ADDRESS (0x40100000)
390 
391 /* USBHSD module features */
392 
393 /* @brief Size of the USB dedicated RAM */
394 #define FSL_FEATURE_USBHSD_USB_RAM (0x00002000)
395 /* @brief Base address of the USB dedicated RAM */
396 #define FSL_FEATURE_USBHSD_USB_RAM_BASE_ADDRESS (0x40100000)
397 /* @brief Number of the endpoint in USB HS */
398 #define FSL_FEATURE_USBHSD_EP_NUM (6)
399 
400 /* USBHSH module features */
401 
402 /* @brief Size of the USB dedicated RAM */
403 #define FSL_FEATURE_USBHSH_USB_RAM (0x00002000)
404 /* @brief Base address of the USB dedicated RAM */
405 #define FSL_FEATURE_USBHSH_USB_RAM_BASE_ADDRESS (0x40100000)
406 
407 /* WWDT module features */
408 
409 /* @brief Has no RESET register. */
410 #define FSL_FEATURE_WWDT_HAS_NO_RESET (1)
411 
412 #endif /* _LPC54616_FEATURES_H_ */
413 
414