1 /*
2 ** ###################################################################
3 **     Version:             rev. 1.0, 2020-04-09
4 **     Build:               b220725
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 (2020-04-09)
20 **         Initial version based on Niobe4mini
21 **
22 ** ###################################################################
23 */
24 
25 #ifndef _LPC5502CPXXXX_FEATURES_H_
26 #define _LPC5502CPXXXX_FEATURES_H_
27 
28 /* SOC module features */
29 
30 /* @brief LPC_CAN availability on the SoC. */
31 #define FSL_FEATURE_SOC_LPC_CAN_COUNT (1)
32 /* @brief CRC availability on the SoC. */
33 #define FSL_FEATURE_SOC_CRC_COUNT (1)
34 /* @brief CTIMER availability on the SoC. */
35 #define FSL_FEATURE_SOC_CTIMER_COUNT (5)
36 /* @brief CDOG availability on the SoC. */
37 #define FSL_FEATURE_SOC_CDOG_COUNT (1)
38 /* @brief DMA availability on the SoC. */
39 #define FSL_FEATURE_SOC_DMA_COUNT (2)
40 /* @brief FLASH availability on the SoC. */
41 #define FSL_FEATURE_SOC_FLASH_COUNT (1)
42 /* @brief FLEXCOMM availability on the SoC. */
43 #define FSL_FEATURE_SOC_FLEXCOMM_COUNT (8)
44 /* @brief GINT availability on the SoC. */
45 #define FSL_FEATURE_SOC_GINT_COUNT (2)
46 /* @brief GPIO availability on the SoC. */
47 #define FSL_FEATURE_SOC_GPIO_COUNT (1)
48 /* @brief SECGPIO availability on the SoC. */
49 #define FSL_FEATURE_SOC_SECGPIO_COUNT (1)
50 /* @brief I2C availability on the SoC. */
51 #define FSL_FEATURE_SOC_I2C_COUNT (7)
52 /* @brief I2S availability on the SoC. */
53 #define FSL_FEATURE_SOC_I2S_COUNT (4)
54 /* @brief INPUTMUX availability on the SoC. */
55 #define FSL_FEATURE_SOC_INPUTMUX_COUNT (1)
56 /* @brief IOCON availability on the SoC. */
57 #define FSL_FEATURE_SOC_IOCON_COUNT (1)
58 /* @brief LPADC availability on the SoC. */
59 #define FSL_FEATURE_SOC_LPADC_COUNT (1)
60 /* @brief MPU availability on the SoC. */
61 #define FSL_FEATURE_SOC_MPU_COUNT (1)
62 /* @brief MRT availability on the SoC. */
63 #define FSL_FEATURE_SOC_MRT_COUNT (1)
64 /* @brief OSTIMER availability on the SoC. */
65 #define FSL_FEATURE_SOC_OSTIMER_COUNT (1)
66 /* @brief PINT availability on the SoC. */
67 #define FSL_FEATURE_SOC_PINT_COUNT (1)
68 /* @brief SECPINT availability on the SoC. */
69 #define FSL_FEATURE_SOC_SECPINT_COUNT (1)
70 /* @brief PMC availability on the SoC. */
71 #define FSL_FEATURE_SOC_PMC_COUNT (1)
72 /* @brief LPC_RNG1 availability on the SoC. */
73 #define FSL_FEATURE_SOC_LPC_RNG1_COUNT (1)
74 /* @brief RTC availability on the SoC. */
75 #define FSL_FEATURE_SOC_RTC_COUNT (1)
76 /* @brief SCT availability on the SoC. */
77 #define FSL_FEATURE_SOC_SCT_COUNT (1)
78 /* @brief SPI availability on the SoC. */
79 #define FSL_FEATURE_SOC_SPI_COUNT (4)
80 /* @brief SYSCON availability on the SoC. */
81 #define FSL_FEATURE_SOC_SYSCON_COUNT (1)
82 /* @brief SYSCTL1 availability on the SoC. */
83 #define FSL_FEATURE_SOC_SYSCTL1_COUNT (1)
84 /* @brief USART availability on the SoC. */
85 #define FSL_FEATURE_SOC_USART_COUNT (7)
86 /* @brief UTICK availability on the SoC. */
87 #define FSL_FEATURE_SOC_UTICK_COUNT (1)
88 /* @brief WWDT availability on the SoC. */
89 #define FSL_FEATURE_SOC_WWDT_COUNT (1)
90 
91 /* LPADC module features */
92 
93 /* @brief FIFO availability on the SoC. */
94 #define FSL_FEATURE_LPADC_FIFO_COUNT (2)
95 /* @brief Has subsequent trigger priority (bitfield CFG[TPRICTRL]). */
96 #define FSL_FEATURE_LPADC_HAS_CFG_SUBSEQUENT_PRIORITY (1)
97 /* @brief Has differential mode (bitfield CMDLn[DIFF]). */
98 #define FSL_FEATURE_LPADC_HAS_CMDL_DIFF (0)
99 /* @brief Has channel scale (bitfield CMDLn[CSCALE]). */
100 #define FSL_FEATURE_LPADC_HAS_CMDL_CSCALE (0)
101 /* @brief Has conversion type select (bitfield CMDLn[CTYPE]). */
102 #define FSL_FEATURE_LPADC_HAS_CMDL_CTYPE (1)
103 /* @brief Has conversion resolution select  (bitfield CMDLn[MODE]). */
104 #define FSL_FEATURE_LPADC_HAS_CMDL_MODE (1)
105 /* @brief Has compare function enable (bitfield CMDHn[CMPEN]). */
106 #define FSL_FEATURE_LPADC_HAS_CMDH_CMPEN (1)
107 /* @brief Has Wait for trigger assertion before execution (bitfield CMDHn[WAIT_TRIG]). */
108 #define FSL_FEATURE_LPADC_HAS_CMDH_WAIT_TRIG (1)
109 /* @brief Has offset calibration (bitfield CTRL[CALOFS]). */
110 #define FSL_FEATURE_LPADC_HAS_CTRL_CALOFS (1)
111 /* @brief Has gain calibration (bitfield CTRL[CAL_REQ]). */
112 #define FSL_FEATURE_LPADC_HAS_CTRL_CAL_REQ (1)
113 /* @brief Has calibration average (bitfield CTRL[CAL_AVGS]). */
114 #define FSL_FEATURE_LPADC_HAS_CTRL_CAL_AVGS (1)
115 /* @brief Has internal clock (bitfield CFG[ADCKEN]). */
116 #define FSL_FEATURE_LPADC_HAS_CFG_ADCKEN (0)
117 /* @brief Enable support for low voltage reference on option 1 reference (bitfield CFG[VREF1RNG]). */
118 #define FSL_FEATURE_LPADC_HAS_CFG_VREF1RNG (0)
119 /* @brief Has calibration (bitfield CFG[CALOFS]). */
120 #define FSL_FEATURE_LPADC_HAS_CFG_CALOFS (0)
121 /* @brief Has offset trim (register OFSTRIM). */
122 #define FSL_FEATURE_LPADC_HAS_OFSTRIM (1)
123 /* @brief OFSTRIM availability on the SoC. */
124 #define FSL_FEATURE_LPADC_OFSTRIM_COUNT (2)
125 /* @brief Has Trigger status register. */
126 #define FSL_FEATURE_LPADC_HAS_TSTAT (1)
127 /* @brief Has power select (bitfield CFG[PWRSEL]). */
128 #define FSL_FEATURE_LPADC_HAS_CFG_PWRSEL (1)
129 /* @brief Has alternate channel B scale (bitfield CMDLn[ALTB_CSCALE]). */
130 #define FSL_FEATURE_LPADC_HAS_CMDL_ALTB_CSCALE (0)
131 /* @brief Has alternate channel B select enable (bitfield CMDLn[ALTBEN]). */
132 #define FSL_FEATURE_LPADC_HAS_CMDL_ALTBEN (0)
133 /* @brief Has alternate channel input (bitfield CMDLn[ALTB_ADCH]). */
134 #define FSL_FEATURE_LPADC_HAS_CMDL_ALTB_ADCH (0)
135 /* @brief Has offset calibration mode (bitfield CTRL[CALOFSMODE]). */
136 #define FSL_FEATURE_LPADC_HAS_CTRL_CALOFSMODE (0)
137 /* @brief Conversion averaged bitfiled width. */
138 #define FSL_FEATURE_LPADC_CONVERSIONS_AVERAGED_BITFIELD_WIDTH (3)
139 /* @brief Has B side channels. */
140 #define FSL_FEATURE_LPADC_HAS_B_SIDE_CHANNELS (1)
141 /* @brief Indicate whether the LPADC STAT register has trigger exception interrupt function (bitfield STAT[TEXC_INT]). */
142 #define FSL_FEATURE_LPADC_HAS_STAT_TEXC_INT (1)
143 /* @brief Indicate whether the LPADC STAT register has trigger completion interrupt function (bitfield STAT[TCOMP_INT]). */
144 #define FSL_FEATURE_LPADC_HAS_STAT_TCOMP_INT (1)
145 /* @brief Indicate whether the LPADC STAT register has calibration ready function (bitfield STAT[CAL_RDY]). */
146 #define FSL_FEATURE_LPADC_HAS_STAT_CAL_RDY (1)
147 /* @brief Indicate whether the LPADC STAT register has ADC active function (bitfield STAT[ADC_ACTIVE]). */
148 #define FSL_FEATURE_LPADC_HAS_STAT_ADC_ACTIVE (1)
149 /* @brief Indicate whether the LPADC IE register has trigger exception interrupt enable function (bitfield IE[TEXC_IE]). */
150 #define FSL_FEATURE_LPADC_HAS_IE_TEXC_IE (1)
151 /* @brief Indicate whether the LPADC IE register has trigger completion interrupt enable function (bitfield IE[TCOMP_IE]). */
152 #define FSL_FEATURE_LPADC_HAS_IE_TCOMP_IE (1)
153 /* @brief Indicate whether the LPADC CFG register has trigger resume/restart enable function (bitfield CFG[TRES]). */
154 #define FSL_FEATURE_LPADC_HAS_CFG_TRES (1)
155 /* @brief Indicate whether the LPADC CFG register has trigger command resume/restart enable function (bitfield CFG[TCMDRES]). */
156 #define FSL_FEATURE_LPADC_HAS_CFG_TCMDRES (1)
157 /* @brief Indicate whether the LPADC CFG register has high priority trigger exception disable function (bitfield CFG[HPT_EXDI]). */
158 #define FSL_FEATURE_LPADC_HAS_CFG_HPT_EXDI (1)
159 /* @brief Indicate LPADC CFG register TPRICTRL bitfield width. */
160 #define FSL_FEATURE_LPADC_CFG_TPRICTRL_BITFIELD_WIDTH (2)
161 /* @brief Has internal temperature sensor. */
162 #define FSL_FEATURE_LPADC_HAS_INTERNAL_TEMP_SENSOR (1)
163 /* @brief Temperature sensor parameter A (slope). */
164 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_A (799.0f)
165 /* @brief Temperature sensor parameter B (offset). */
166 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_B (280.0f)
167 /* @brief Temperature sensor parameter Alpha. */
168 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_ALPHA (8.5f)
169 /* @brief Temperature sensor need calibration. */
170 #define FSL_FEATURE_LPADC_TEMP_NEED_CALIBRATION (1)
171 /* @brief the address of temperature sensor parameter A (slope) in Flash. */
172 #define FSL_FEATURE_FLASH_NMPA_TEMP_SLOPE_ADDRS (0x3FD28U)
173 /* @brief the address of temperature sensor parameter B (offset) in Flash. */
174 #define FSL_FEATURE_FLASH_NMPA_TEMP_OFFSET_ADDRS (0x3FD2CU)
175 /* @brief the buffer size of temperature sensor. */
176 #define FSL_FEATURE_LPADC_TEMP_SENS_BUFFER_SIZE (2U)
177 
178 /* ANALOGCTRL module features */
179 
180 /* @brief Has PLL_USB_OUT_BIT_FIELD bitfile in XO32M_CTRL reigster. */
181 #define FSL_FEATURE_ANACTRL_HAS_NO_ENABLE_PLL_USB_OUT_BIT_FIELD (1)
182 /* @brief Has XO32M_ADC_CLK_MODE bitfile in DUMMY_CTRL reigster. */
183 #define FSL_FEATURE_ANACTRL_HAS_XO32M_ADC_CLK_MODE_BIF_FIELD (1)
184 /* @brief Has auxiliary bias(register AUX_BIAS). */
185 #define FSL_FEATURE_ANACTRL_HAS_AUX_BIAS_REG (1)
186 
187 /* CAN module features */
188 
189 /* @brief Support CANFD or not */
190 #define FSL_FEATURE_CAN_SUPPORT_CANFD (1)
191 
192 /* CTIMER module features */
193 
194 /* @brief CTIMER has no capture channel. */
195 #define FSL_FEATURE_CTIMER_HAS_NO_INPUT_CAPTURE (0)
196 /* @brief CTIMER has no capture 2 interrupt. */
197 #define FSL_FEATURE_CTIMER_HAS_NO_IR_CR2INT (0)
198 /* @brief CTIMER capture 3 interrupt. */
199 #define FSL_FEATURE_CTIMER_HAS_IR_CR3INT (1)
200 /* @brief Has CTIMER CCR_CAP2 (register bits CCR[CAP2RE][CAP2FE][CAP2I]. */
201 #define FSL_FEATURE_CTIMER_HAS_NO_CCR_CAP2 (0)
202 /* @brief Has CTIMER CCR_CAP3 (register bits CCR[CAP3RE][CAP3FE][CAP3I]). */
203 #define FSL_FEATURE_CTIMER_HAS_CCR_CAP3 (1)
204 /* @brief CTIMER Has register MSR */
205 #define FSL_FEATURE_CTIMER_HAS_MSR (1)
206 
207 /* DMA module features */
208 
209 /* @brief Number of channels */
210 #define FSL_FEATURE_DMA_NUMBER_OF_CHANNELS (23)
211 /* @brief Align size of DMA descriptor */
212 #define FSL_FEATURE_DMA_DESCRIPTOR_ALIGN_SIZE (512)
213 /* @brief DMA head link descriptor table align size */
214 #define FSL_FEATURE_DMA_LINK_DESCRIPTOR_ALIGN_SIZE (16U)
215 
216 /* FLEXCOMM module features */
217 
218 /* @brief FLEXCOMM0 USART INDEX 0 */
219 #define FSL_FEATURE_FLEXCOMM0_USART_INDEX  (0)
220 /* @brief FLEXCOMM0 SPI INDEX 0 */
221 #define FSL_FEATURE_FLEXCOMM0_SPI_INDEX  (0)
222 /* @brief FLEXCOMM0 I2C INDEX 0 */
223 #define FSL_FEATURE_FLEXCOMM0_I2C_INDEX  (0)
224 /* @brief FLEXCOMM0 I2S INDEX 0 */
225 #define FSL_FEATURE_FLEXCOMM0_I2S_INDEX  (0)
226 /* @brief FLEXCOMM1 USART INDEX 1 */
227 #define FSL_FEATURE_FLEXCOMM1_USART_INDEX  (1)
228 /* @brief FLEXCOMM1 I2C INDEX 1 */
229 #define FSL_FEATURE_FLEXCOMM1_I2C_INDEX  (1)
230 /* @brief FLEXCOMM2 USART INDEX 2 */
231 #define FSL_FEATURE_FLEXCOMM2_USART_INDEX  (2)
232 /* @brief FLEXCOMM2 I2C INDEX 2 */
233 #define FSL_FEATURE_FLEXCOMM2_I2C_INDEX  (2)
234 /* @brief FLEXCOMM3 USART INDEX 3 */
235 #define FSL_FEATURE_FLEXCOMM3_USART_INDEX  (3)
236 /* @brief FLEXCOMM3 SPI INDEX 3 */
237 #define FSL_FEATURE_FLEXCOMM3_SPI_INDEX  (3)
238 /* @brief FLEXCOMM3 I2C INDEX 3 */
239 #define FSL_FEATURE_FLEXCOMM3_I2C_INDEX  (3)
240 /* @brief FLEXCOMM3 I2S INDEX 3 */
241 #define FSL_FEATURE_FLEXCOMM3_I2S_INDEX  (3)
242 /* @brief FLEXCOMM4 USART INDEX 4 */
243 #define FSL_FEATURE_FLEXCOMM4_USART_INDEX  (4)
244 /* @brief FLEXCOMM4 I2C INDEX 4 */
245 #define FSL_FEATURE_FLEXCOMM4_I2C_INDEX  (4)
246 /* @brief FLEXCOMM4 I2S INDEX 4 */
247 #define FSL_FEATURE_FLEXCOMM4_I2S_INDEX  (4)
248 /* @brief FLEXCOMM5 USART INDEX 5 */
249 #define FSL_FEATURE_FLEXCOMM5_USART_INDEX  (5)
250 /* @brief FLEXCOMM5 I2C INDEX 5 */
251 #define FSL_FEATURE_FLEXCOMM5_I2C_INDEX  (5)
252 /* @brief FLEXCOMM6 USART INDEX 6 */
253 #define FSL_FEATURE_FLEXCOMM6_USART_INDEX  (6)
254 /* @brief FLEXCOMM6 SPI INDEX 6 */
255 #define FSL_FEATURE_FLEXCOMM6_SPI_INDEX  (6)
256 /* @brief FLEXCOMM6 I2C INDEX 6 */
257 #define FSL_FEATURE_FLEXCOMM6_I2C_INDEX  (6)
258 /* @brief FLEXCOMM6 I2S INDEX 6 */
259 #define FSL_FEATURE_FLEXCOMM6_I2S_INDEX  (6)
260 /* @brief FLEXCOMM8 SPI(HS_SPI) INDEX 8 */
261 #define FSL_FEATURE_FLEXCOMM8_SPI_INDEX  (8)
262 /* @brief I2S has DMIC interconnection */
263 #define FSL_FEATURE_FLEXCOMM_INSTANCE_I2S_HAS_DMIC_INTERCONNECTIONn(x) (0)
264 /* @brief I2S support dual channel transfer */
265 #define FSL_FEATURE_FLEXCOMM_INSTANCE_I2S_SUPPORT_SECONDARY_CHANNELn(x) \
266     (((x) == FLEXCOMM0) ? (0) : \
267     (((x) == FLEXCOMM1) ? (0) : \
268     (((x) == FLEXCOMM2) ? (0) : \
269     (((x) == FLEXCOMM3) ? (0) : \
270     (((x) == FLEXCOMM4) ? (0) : \
271     (((x) == FLEXCOMM5) ? (0) : \
272     (((x) == FLEXCOMM6) ? (1) : \
273     (((x) == FLEXCOMM8) ? (0) : (-1)))))))))
274 
275 /* GINT module features */
276 
277 /* @brief The count of th port which are supported in GINT. */
278 #define FSL_FEATURE_GINT_PORT_COUNT (2)
279 
280 /* I2S module features */
281 
282 /* @brief I2S6 and I2S7 support dual channel transfer. */
283 #define FSL_FEATURE_I2S_SUPPORT_SECONDARY_CHANNEL (1)
284 /* @brief I2S has DMIC interconnection */
285 #define FSL_FEATURE_FLEXCOMM_I2S_HAS_DMIC_INTERCONNECTION (0)
286 
287 /* INPUTMUX module features */
288 
289 /* @brief Inputmux has DMA Request Enable */
290 #define FSL_FEATURE_INPUTMUX_HAS_SIGNAL_ENA (0)
291 /* @brief Inputmux has channel mux control */
292 #define FSL_FEATURE_INPUTMUX_HAS_CHANNEL_MUX (0)
293 
294 /* IOCON module features */
295 
296 /* @brief Func bit field width */
297 #define FSL_FEATURE_IOCON_FUNC_FIELD_WIDTH (4)
298 
299 /* MRT module features */
300 
301 /* @brief number of channels. */
302 #define FSL_FEATURE_MRT_NUMBER_OF_CHANNELS  (4)
303 
304 /* PINT module features */
305 
306 /* @brief Number of connected outputs */
307 #define FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS (8)
308 
309 /* PLU module features */
310 
311 /* @brief Has WAKEINT_CTRL register. */
312 #define FSL_FEATURE_PLU_HAS_WAKEINT_CTRL_REG (1)
313 
314 /* PMC module features */
315 
316 /* @brief UTICK does not support PD configure. */
317 #define FSL_FEATURE_UTICK_HAS_NO_PDCFG (1)
318 /* @brief WDT OSC does not support PD configure. */
319 #define FSL_FEATURE_WWDT_HAS_NO_PDCFG (1)
320 
321 /* POWERLIB module features */
322 
323 /* @brief Powerlib API is different with other LPC series devices. */
324 #define FSL_FEATURE_POWERLIB_EXTEND (1)
325 
326 /* RTC module features */
327 
328 /* @brief Has SUBSEC Register (register SUBSEC) */
329 #define FSL_FEATURE_RTC_HAS_SUBSEC (1)
330 
331 /* SCT module features */
332 
333 /* @brief Number of events */
334 #define FSL_FEATURE_SCT_NUMBER_OF_EVENTS (16)
335 /* @brief Number of states */
336 #define FSL_FEATURE_SCT_NUMBER_OF_STATES (32)
337 /* @brief Number of match capture */
338 #define FSL_FEATURE_SCT_NUMBER_OF_MATCH_CAPTURE (16)
339 /* @brief Number of outputs */
340 #define FSL_FEATURE_SCT_NUMBER_OF_OUTPUTS (10)
341 
342 /* SECPINT module features */
343 
344 /* @brief Number of connected outputs */
345 #define FSL_FEATURE_SECPINT_NUMBER_OF_CONNECTED_OUTPUTS (2)
346 
347 /* SPI module features */
348 
349 /* @brief SSEL pin count. */
350 #define FSL_FEATURE_SPI_SSEL_COUNT (4)
351 
352 /* SYSCON module features */
353 
354 /* @brief Flash page size in bytes */
355 #define FSL_FEATURE_SYSCON_FLASH_PAGE_SIZE_BYTES (512)
356 /* @brief Flash sector size in bytes */
357 #define FSL_FEATURE_SYSCON_FLASH_SECTOR_SIZE_BYTES (32768)
358 /* @brief Flash size in bytes */
359 #define FSL_FEATURE_SYSCON_FLASH_SIZE_BYTES (65536)
360 /* @brief Has Power Down mode */
361 #define FSL_FEATURE_SYSCON_HAS_POWERDOWN_MODE (1)
362 /* @brief CCM_ANALOG availability on the SoC.  */
363 #define FSL_FEATURE_SOC_CCM_ANALOG_COUNT (1)
364 /* @brief Starter register discontinuous. */
365 #define FSL_FEATURE_SYSCON_STARTER_DISCONTINUOUS (1)
366 
367 /* SYSCTL1 module features */
368 
369 /* @brief SYSCTRL has Code Gray feature. */
370 #define FSL_FEATURE_SYSCTRL_HAS_CODE_GRAY (1)
371 
372 /* WWDT module features */
373 
374 /* @brief Has no RESET register. */
375 #define FSL_FEATURE_WWDT_HAS_NO_RESET (1)
376 /* @brief WWDT does not support oscillator lock. */
377 #define FSL_FEATURE_WWDT_HAS_NO_OSCILLATOR_LOCK (1)
378 
379 #endif /* _LPC5502CPXXXX_FEATURES_H_ */
380 
381