1 /*
2 ** ###################################################################
3 **     Version:             rev. 1.1, 2019-12-03
4 **     Build:               b210318
5 **
6 **     Abstract:
7 **         Chip specific module features.
8 **
9 **     Copyright 2016 Freescale Semiconductor, Inc.
10 **     Copyright 2016-2021 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 (2018-08-22)
20 **         Initial version based on v0.2UM
21 **     - rev. 1.1 (2019-12-03)
22 **         Initial version based on v0.6UM
23 **
24 ** ###################################################################
25 */
26 
27 #ifndef _LPC55S16_FEATURES_H_
28 #define _LPC55S16_FEATURES_H_
29 
30 /* SOC module features */
31 
32 /* @brief LPC_CAN availability on the SoC. */
33 #define FSL_FEATURE_SOC_LPC_CAN_COUNT (1)
34 /* @brief CASPER availability on the SoC. */
35 #define FSL_FEATURE_SOC_CASPER_COUNT (1)
36 /* @brief CRC availability on the SoC. */
37 #define FSL_FEATURE_SOC_CRC_COUNT (1)
38 /* @brief CTIMER availability on the SoC. */
39 #define FSL_FEATURE_SOC_CTIMER_COUNT (5)
40 /* @brief CDOG availability on the SoC. */
41 #define FSL_FEATURE_SOC_CDOG_COUNT (1)
42 /* @brief DMA availability on the SoC. */
43 #define FSL_FEATURE_SOC_DMA_COUNT (2)
44 /* @brief FLASH availability on the SoC. */
45 #define FSL_FEATURE_SOC_FLASH_COUNT (1)
46 /* @brief FLEXCOMM availability on the SoC. */
47 #define FSL_FEATURE_SOC_FLEXCOMM_COUNT (9)
48 /* @brief GINT availability on the SoC. */
49 #define FSL_FEATURE_SOC_GINT_COUNT (2)
50 /* @brief GPIO availability on the SoC. */
51 #define FSL_FEATURE_SOC_GPIO_COUNT (1)
52 /* @brief SECGPIO availability on the SoC. */
53 #define FSL_FEATURE_SOC_SECGPIO_COUNT (1)
54 /* @brief HASHCRYPT availability on the SoC. */
55 #define FSL_FEATURE_SOC_HASHCRYPT_COUNT (1)
56 /* @brief I2C availability on the SoC. */
57 #define FSL_FEATURE_SOC_I2C_COUNT (8)
58 /* @brief I2S availability on the SoC. */
59 #define FSL_FEATURE_SOC_I2S_COUNT (8)
60 /* @brief INPUTMUX availability on the SoC. */
61 #define FSL_FEATURE_SOC_INPUTMUX_COUNT (1)
62 /* @brief IOCON availability on the SoC. */
63 #define FSL_FEATURE_SOC_IOCON_COUNT (1)
64 /* @brief LPADC availability on the SoC. */
65 #define FSL_FEATURE_SOC_LPADC_COUNT (1)
66 /* @brief MRT availability on the SoC. */
67 #define FSL_FEATURE_SOC_MRT_COUNT (1)
68 /* @brief OSTIMER availability on the SoC. */
69 #define FSL_FEATURE_SOC_OSTIMER_COUNT (1)
70 /* @brief PINT availability on the SoC. */
71 #define FSL_FEATURE_SOC_PINT_COUNT (1)
72 /* @brief SECPINT availability on the SoC. */
73 #define FSL_FEATURE_SOC_SECPINT_COUNT (1)
74 /* @brief PMC availability on the SoC. */
75 #define FSL_FEATURE_SOC_PMC_COUNT (1)
76 /* @brief PUF availability on the SoC. */
77 #define FSL_FEATURE_SOC_PUF_COUNT (1)
78 /* @brief PUF_SRAM_CTRL availability on the SoC. */
79 #define FSL_FEATURE_SOC_PUF_SRAM_CTRL_COUNT (1)
80 /* @brief LPC_RNG1 availability on the SoC. */
81 #define FSL_FEATURE_SOC_LPC_RNG1_COUNT (1)
82 /* @brief RTC availability on the SoC. */
83 #define FSL_FEATURE_SOC_RTC_COUNT (1)
84 /* @brief SCT availability on the SoC. */
85 #define FSL_FEATURE_SOC_SCT_COUNT (1)
86 /* @brief SPI availability on the SoC. */
87 #define FSL_FEATURE_SOC_SPI_COUNT (9)
88 /* @brief SYSCON availability on the SoC. */
89 #define FSL_FEATURE_SOC_SYSCON_COUNT (1)
90 /* @brief SYSCTL1 availability on the SoC. */
91 #define FSL_FEATURE_SOC_SYSCTL1_COUNT (1)
92 /* @brief USART availability on the SoC. */
93 #define FSL_FEATURE_SOC_USART_COUNT (8)
94 /* @brief USB availability on the SoC. */
95 #define FSL_FEATURE_SOC_USB_COUNT (1)
96 /* @brief USBFSH availability on the SoC. */
97 #define FSL_FEATURE_SOC_USBFSH_COUNT (1)
98 /* @brief USBHSD availability on the SoC. */
99 #define FSL_FEATURE_SOC_USBHSD_COUNT (1)
100 /* @brief USBHSH availability on the SoC. */
101 #define FSL_FEATURE_SOC_USBHSH_COUNT (1)
102 /* @brief USBPHY availability on the SoC. */
103 #define FSL_FEATURE_SOC_USBPHY_COUNT (1)
104 /* @brief UTICK availability on the SoC. */
105 #define FSL_FEATURE_SOC_UTICK_COUNT (1)
106 /* @brief WWDT availability on the SoC. */
107 #define FSL_FEATURE_SOC_WWDT_COUNT (1)
108 
109 /* LPADC module features */
110 
111 /* @brief FIFO availability on the SoC. */
112 #define FSL_FEATURE_LPADC_FIFO_COUNT (2)
113 /* @brief Has subsequent trigger priority (bitfield CFG[TPRICTRL]). */
114 #define FSL_FEATURE_LPADC_HAS_CFG_SUBSEQUENT_PRIORITY (1)
115 /* @brief Has differential mode (bitfield CMDLn[DIFF]). */
116 #define FSL_FEATURE_LPADC_HAS_CMDL_DIFF (0)
117 /* @brief Has channel scale (bitfield CMDLn[CSCALE]). */
118 #define FSL_FEATURE_LPADC_HAS_CMDL_CSCALE (0)
119 /* @brief Has conversion type select (bitfield CMDLn[CTYPE]). */
120 #define FSL_FEATURE_LPADC_HAS_CMDL_CTYPE (1)
121 /* @brief Has conversion resolution select  (bitfield CMDLn[MODE]). */
122 #define FSL_FEATURE_LPADC_HAS_CMDL_MODE (1)
123 /* @brief Has compare function enable (bitfield CMDHn[CMPEN]). */
124 #define FSL_FEATURE_LPADC_HAS_CMDH_CMPEN (1)
125 /* @brief Has Wait for trigger assertion before execution (bitfield CMDHn[WAIT_TRIG]). */
126 #define FSL_FEATURE_LPADC_HAS_CMDH_WAIT_TRIG (1)
127 /* @brief Has offset calibration (bitfield CTRL[CALOFS]). */
128 #define FSL_FEATURE_LPADC_HAS_CTRL_CALOFS (1)
129 /* @brief Has gain calibration (bitfield CTRL[CAL_REQ]). */
130 #define FSL_FEATURE_LPADC_HAS_CTRL_CAL_REQ (1)
131 /* @brief Has calibration average (bitfield CTRL[CAL_AVGS]). */
132 #define FSL_FEATURE_LPADC_HAS_CTRL_CAL_AVGS (1)
133 /* @brief Has internal clock (bitfield CFG[ADCKEN]). */
134 #define FSL_FEATURE_LPADC_HAS_CFG_ADCKEN (0)
135 /* @brief Enable support for low voltage reference on option 1 reference (bitfield CFG[VREF1RNG]). */
136 #define FSL_FEATURE_LPADC_HAS_CFG_VREF1RNG (0)
137 /* @brief Has calibration (bitfield CFG[CALOFS]). */
138 #define FSL_FEATURE_LPADC_HAS_CFG_CALOFS (0)
139 /* @brief Has offset trim (register OFSTRIM). */
140 #define FSL_FEATURE_LPADC_HAS_OFSTRIM (1)
141 /* @brief Has internal temperature sensor. */
142 #define FSL_FEATURE_LPADC_HAS_INTERNAL_TEMP_SENSOR (1)
143 /* @brief Temperature sensor parameter A (slope). */
144 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_A (799.0f)
145 /* @brief Temperature sensor parameter B (offset). */
146 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_B (280.0f)
147 /* @brief Temperature sensor parameter Alpha. */
148 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_ALPHA (8.5f)
149 /* @brief Temperature sensor need calibration. */
150 #define FSL_FEATURE_LPADC_TEMP_NEED_CALIBRATION (1)
151 /* @brief the address of temperature sensor parameter A (slope) in Flash. */
152 #define FSL_FEATURE_FLASH_NMPA_TEMP_SLOPE_ADDRS (0x3FD28U)
153 /* @brief the address of temperature sensor parameter B (offset) in Flash. */
154 #define FSL_FEATURE_FLASH_NMPA_TEMP_OFFSET_ADDRS (0x3FD2CU)
155 /* @brief the buffer size of temperature sensor. */
156 #define FSL_FEATURE_LPADC_TEMP_SENS_BUFFER_SIZE (2U)
157 
158 /* CAN module features */
159 
160 /* @brief Support CANFD or not */
161 #define FSL_FEATURE_CAN_SUPPORT_CANFD (1)
162 
163 /* CASPER module features */
164 
165 /* @brief Base address of the CASPER dedicated RAM */
166 #define FSL_FEATURE_CASPER_RAM_BASE_ADDRESS (0x04000000)
167 /* @brief HW interleaving of the CASPER dedicated RAM */
168 #define FSL_FEATURE_CASPER_RAM_HW_INTERLEAVE (1)
169 
170 /* CTIMER module features */
171 
172 /* No feature definitions */
173 
174 /* DMA module features */
175 
176 /* @brief Number of channels */
177 #define FSL_FEATURE_DMA_NUMBER_OF_CHANNELS (23)
178 /* @brief Align size of DMA descriptor */
179 #define FSL_FEATURE_DMA_DESCRIPTOR_ALIGN_SIZE (512)
180 /* @brief DMA head link descriptor table align size */
181 #define FSL_FEATURE_DMA_LINK_DESCRIPTOR_ALIGN_SIZE (16U)
182 
183 /* FLEXCOMM module features */
184 
185 /* @brief FLEXCOMM0 USART INDEX 0 */
186 #define FSL_FEATURE_FLEXCOMM0_USART_INDEX  (0)
187 /* @brief FLEXCOMM0 SPI INDEX 0 */
188 #define FSL_FEATURE_FLEXCOMM0_SPI_INDEX  (0)
189 /* @brief FLEXCOMM0 I2C INDEX 0 */
190 #define FSL_FEATURE_FLEXCOMM0_I2C_INDEX  (0)
191 /* @brief FLEXCOMM0 I2S INDEX 0 */
192 #define FSL_FEATURE_FLEXCOMM0_I2S_INDEX  (0)
193 /* @brief FLEXCOMM1 USART INDEX 1 */
194 #define FSL_FEATURE_FLEXCOMM1_USART_INDEX  (1)
195 /* @brief FLEXCOMM1 SPI INDEX 1 */
196 #define FSL_FEATURE_FLEXCOMM1_SPI_INDEX  (1)
197 /* @brief FLEXCOMM1 I2C INDEX 1 */
198 #define FSL_FEATURE_FLEXCOMM1_I2C_INDEX  (1)
199 /* @brief FLEXCOMM1 I2S INDEX 1 */
200 #define FSL_FEATURE_FLEXCOMM1_I2S_INDEX  (1)
201 /* @brief FLEXCOMM2 USART INDEX 2 */
202 #define FSL_FEATURE_FLEXCOMM2_USART_INDEX  (2)
203 /* @brief FLEXCOMM2 SPI INDEX 2 */
204 #define FSL_FEATURE_FLEXCOMM2_SPI_INDEX  (2)
205 /* @brief FLEXCOMM2 I2C INDEX 2 */
206 #define FSL_FEATURE_FLEXCOMM2_I2C_INDEX  (2)
207 /* @brief FLEXCOMM2 I2S INDEX 2 */
208 #define FSL_FEATURE_FLEXCOMM2_I2S_INDEX  (2)
209 /* @brief FLEXCOMM3 USART INDEX 3 */
210 #define FSL_FEATURE_FLEXCOMM3_USART_INDEX  (3)
211 /* @brief FLEXCOMM3 SPI INDEX 3 */
212 #define FSL_FEATURE_FLEXCOMM3_SPI_INDEX  (3)
213 /* @brief FLEXCOMM3 I2C INDEX 3 */
214 #define FSL_FEATURE_FLEXCOMM3_I2C_INDEX  (3)
215 /* @brief FLEXCOMM3 I2S INDEX 3 */
216 #define FSL_FEATURE_FLEXCOMM3_I2S_INDEX  (3)
217 /* @brief FLEXCOMM4 USART INDEX 4 */
218 #define FSL_FEATURE_FLEXCOMM4_USART_INDEX  (4)
219 /* @brief FLEXCOMM4 SPI INDEX 4 */
220 #define FSL_FEATURE_FLEXCOMM4_SPI_INDEX  (4)
221 /* @brief FLEXCOMM4 I2C INDEX 4 */
222 #define FSL_FEATURE_FLEXCOMM4_I2C_INDEX  (4)
223 /* @brief FLEXCOMM4 I2S INDEX 4 */
224 #define FSL_FEATURE_FLEXCOMM4_I2S_INDEX  (4)
225 /* @brief FLEXCOMM5 USART INDEX 5 */
226 #define FSL_FEATURE_FLEXCOMM5_USART_INDEX  (5)
227 /* @brief FLEXCOMM5 SPI INDEX 5 */
228 #define FSL_FEATURE_FLEXCOMM5_SPI_INDEX  (5)
229 /* @brief FLEXCOMM5 I2C INDEX 5 */
230 #define FSL_FEATURE_FLEXCOMM5_I2C_INDEX  (5)
231 /* @brief FLEXCOMM5 I2S INDEX 5 */
232 #define FSL_FEATURE_FLEXCOMM5_I2S_INDEX  (5)
233 /* @brief FLEXCOMM6 USART INDEX 6 */
234 #define FSL_FEATURE_FLEXCOMM6_USART_INDEX  (6)
235 /* @brief FLEXCOMM6 SPI INDEX 6 */
236 #define FSL_FEATURE_FLEXCOMM6_SPI_INDEX  (6)
237 /* @brief FLEXCOMM6 I2C INDEX 6 */
238 #define FSL_FEATURE_FLEXCOMM6_I2C_INDEX  (6)
239 /* @brief FLEXCOMM6 I2S INDEX 6 */
240 #define FSL_FEATURE_FLEXCOMM6_I2S_INDEX  (6)
241 /* @brief FLEXCOMM7 USART INDEX 7 */
242 #define FSL_FEATURE_FLEXCOMM7_USART_INDEX  (7)
243 /* @brief FLEXCOMM7 SPI INDEX 7 */
244 #define FSL_FEATURE_FLEXCOMM7_SPI_INDEX  (7)
245 /* @brief FLEXCOMM7 I2C INDEX 7 */
246 #define FSL_FEATURE_FLEXCOMM7_I2C_INDEX  (7)
247 /* @brief FLEXCOMM7 I2S INDEX 7 */
248 #define FSL_FEATURE_FLEXCOMM7_I2S_INDEX  (7)
249 /* @brief FLEXCOMM8 SPI(HS_SPI) INDEX 8 */
250 #define FSL_FEATURE_FLEXCOMM8_SPI_INDEX  (8)
251 /* @brief I2S has DMIC interconnection */
252 #define FSL_FEATURE_FLEXCOMM_INSTANCE_I2S_HAS_DMIC_INTERCONNECTIONn(x) (0)
253 /* @brief I2S support dual channel transfer */
254 #define FSL_FEATURE_FLEXCOMM_INSTANCE_I2S_SUPPORT_SECONDARY_CHANNELn(x) \
255     (((x) == FLEXCOMM0) ? (0) : \
256     (((x) == FLEXCOMM1) ? (0) : \
257     (((x) == FLEXCOMM2) ? (0) : \
258     (((x) == FLEXCOMM3) ? (0) : \
259     (((x) == FLEXCOMM4) ? (0) : \
260     (((x) == FLEXCOMM5) ? (0) : \
261     (((x) == FLEXCOMM6) ? (1) : \
262     (((x) == FLEXCOMM7) ? (1) : \
263     (((x) == FLEXCOMM8) ? (0) : (-1))))))))))
264 
265 /* HASHCRYPT module features */
266 
267 /* @brief the address of alias offset */
268 #define FSL_FEATURE_HASHCRYPT_ALIAS_OFFSET (0x00000000)
269 /* @brief hashcrypt has reload feature */
270 #define FSL_FEATURE_HASHCRYPT_HAS_RELOAD_FEATURE (1)
271 
272 /* I2S module features */
273 
274 /* @brief I2S6 and I2S7 support dual channel transfer. */
275 #define FSL_FEATURE_I2S_SUPPORT_SECONDARY_CHANNEL (1)
276 /* @brief I2S has DMIC interconnection */
277 #define FSL_FEATURE_FLEXCOMM_I2S_HAS_DMIC_INTERCONNECTION (0)
278 
279 /* IOCON module features */
280 
281 /* @brief Func bit field width */
282 #define FSL_FEATURE_IOCON_FUNC_FIELD_WIDTH (4)
283 
284 /* MRT module features */
285 
286 /* @brief number of channels. */
287 #define FSL_FEATURE_MRT_NUMBER_OF_CHANNELS  (4)
288 
289 /* PINT module features */
290 
291 /* @brief Number of connected outputs */
292 #define FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS (8)
293 
294 /* PLU module features */
295 
296 /* @brief Has WAKEINT_CTRL register. */
297 #define FSL_FEATURE_PLU_HAS_WAKEINT_CTRL_REG (1)
298 
299 /* PMC module features */
300 
301 /* @brief UTICK does not support PD configure. */
302 #define FSL_FEATURE_UTICK_HAS_NO_PDCFG (1)
303 /* @brief WDT OSC does not support PD configure. */
304 #define FSL_FEATURE_WWDT_HAS_NO_PDCFG (1)
305 
306 /* POWERLIB module features */
307 
308 /* @brief Powerlib API is different with other LPC series devices. */
309 #define FSL_FEATURE_POWERLIB_EXTEND (1)
310 
311 /* PUF module features */
312 
313 /* @brief Number of PUF key slots available on device. */
314 #define FSL_FEATURE_PUF_HAS_KEYSLOTS (4)
315 /* @brief the shift status value */
316 #define FSL_FEATURE_PUF_HAS_SHIFT_STATUS (1)
317 /* @brief PUF has dedicated SRAM control */
318 #define FSL_FEATURE_PUF_HAS_SRAM_CTRL (1)
319 
320 /* RTC module features */
321 
322 /* No feature definitions */
323 
324 /* SCT module features */
325 
326 /* @brief Number of events */
327 #define FSL_FEATURE_SCT_NUMBER_OF_EVENTS (16)
328 /* @brief Number of states */
329 #define FSL_FEATURE_SCT_NUMBER_OF_STATES (32)
330 /* @brief Number of match capture */
331 #define FSL_FEATURE_SCT_NUMBER_OF_MATCH_CAPTURE (16)
332 /* @brief Number of outputs */
333 #define FSL_FEATURE_SCT_NUMBER_OF_OUTPUTS (10)
334 
335 /* SECPINT module features */
336 
337 /* @brief Number of connected outputs */
338 #define FSL_FEATURE_SECPINT_NUMBER_OF_CONNECTED_OUTPUTS (2)
339 
340 /* SYSCON module features */
341 
342 /* @brief Flash page size in bytes */
343 #define FSL_FEATURE_SYSCON_FLASH_PAGE_SIZE_BYTES (512)
344 /* @brief Flash sector size in bytes */
345 #define FSL_FEATURE_SYSCON_FLASH_SECTOR_SIZE_BYTES (32768)
346 /* @brief Flash size in bytes */
347 #define FSL_FEATURE_SYSCON_FLASH_SIZE_BYTES (229376)
348 /* @brief Has Power Down mode */
349 #define FSL_FEATURE_SYSCON_HAS_POWERDOWN_MODE (1)
350 /* @brief CCM_ANALOG availability on the SoC.  */
351 #define FSL_FEATURE_SOC_CCM_ANALOG_COUNT (1)
352 /* @brief Starter register discontinuous. */
353 #define FSL_FEATURE_SYSCON_STARTER_DISCONTINUOUS (1)
354 
355 /* SYSCTL1 module features */
356 
357 /* @brief SYSCTRL has Code Gray feature. */
358 #define FSL_FEATURE_SYSCTRL_HAS_CODE_GRAY (1)
359 
360 /* USB module features */
361 
362 /* @brief Size of the USB dedicated RAM */
363 #define FSL_FEATURE_USB_USB_RAM (0x00004000)
364 /* @brief Base address of the USB dedicated RAM */
365 #define FSL_FEATURE_USB_USB_RAM_BASE_ADDRESS (0x20010000)
366 /* @brief USB version */
367 #define FSL_FEATURE_USB_VERSION (200)
368 /* @brief Number of the endpoint in USB FS */
369 #define FSL_FEATURE_USB_EP_NUM (5)
370 
371 /* USBFSH module features */
372 
373 /* @brief Size of the USB dedicated RAM */
374 #define FSL_FEATURE_USBFSH_USB_RAM (0x00004000)
375 /* @brief Base address of the USB dedicated RAM */
376 #define FSL_FEATURE_USBFSH_USB_RAM_BASE_ADDRESS (0x20010000)
377 /* @brief USBFSH version */
378 #define FSL_FEATURE_USBFSH_VERSION (200)
379 
380 /* USBHSD module features */
381 
382 /* @brief Size of the USB dedicated RAM */
383 #define FSL_FEATURE_USBHSD_USB_RAM (0x00004000)
384 /* @brief Base address of the USB dedicated RAM */
385 #define FSL_FEATURE_USBHSD_USB_RAM_BASE_ADDRESS (0x20010000)
386 /* @brief USBHSD version */
387 #define FSL_FEATURE_USBHSD_VERSION (300)
388 /* @brief Number of the endpoint in USB HS */
389 #define FSL_FEATURE_USBHSD_EP_NUM (6)
390 
391 /* USBHSH module features */
392 
393 /* @brief Size of the USB dedicated RAM */
394 #define FSL_FEATURE_USBHSH_USB_RAM (0x00004000)
395 /* @brief Base address of the USB dedicated RAM */
396 #define FSL_FEATURE_USBHSH_USB_RAM_BASE_ADDRESS (0x20010000)
397 /* @brief USBHSH version */
398 #define FSL_FEATURE_USBHSH_VERSION (300)
399 
400 /* USBPHY module features */
401 
402 /* @brief Size of the USB dedicated RAM */
403 #define FSL_FEATURE_USBPHY_USB_RAM (0x00004000)
404 /* @brief Base address of the USB dedicated RAM */
405 #define FSL_FEATURE_USBPHY_USB_RAM_BASE_ADDRESS (0x20010000)
406 /* @brief USBHSD version */
407 #define FSL_FEATURE_USBPHY_VERSION (300)
408 /* @brief Number of the endpoint in USB HS */
409 #define FSL_FEATURE_USBPHY_EP_NUM (6)
410 
411 /* WWDT module features */
412 
413 /* @brief Has no RESET register. */
414 #define FSL_FEATURE_WWDT_HAS_NO_RESET (1)
415 /* @brief WWDT does not support oscillator lock. */
416 #define FSL_FEATURE_WWDT_HAS_NO_OSCILLATOR_LOCK (1)
417 
418 #endif /* _LPC55S16_FEATURES_H_ */
419 
420