1 /*
2 ** ###################################################################
3 **     Version:             rev. 1.1, 2021-08-04
4 **     Build:               b240322
5 **
6 **     Abstract:
7 **         Chip specific module features.
8 **
9 **     Copyright 2016 Freescale Semiconductor, Inc.
10 **     Copyright 2016-2024 NXP
11 **     SPDX-License-Identifier: BSD-3-Clause
12 **
13 **     http:                 www.nxp.com
14 **     mail:                 support@nxp.com
15 **
16 **     Revisions:
17 **     - rev. 1.0 (2021-04-12)
18 **         Initial version based on RM DraftF
19 **     - rev. 1.1 (2021-08-04)
20 **         Initial version based on RM DraftG
21 **
22 ** ###################################################################
23 */
24 
25 #ifndef _LPC55S36_FEATURES_H_
26 #define _LPC55S36_FEATURES_H_
27 
28 /* SOC module features */
29 
30 #if defined(CPU_LPC55S36JBD100)
31     /* @brief AOI availability on the SoC. */
32     #define FSL_FEATURE_SOC_AOI_COUNT (2)
33     /* @brief CACHE64_CTRL availability on the SoC. */
34     #define FSL_FEATURE_SOC_CACHE64_CTRL_COUNT (1)
35     /* @brief CACHE64_POLSEL availability on the SoC. */
36     #define FSL_FEATURE_SOC_CACHE64_POLSEL_COUNT (1)
37     /* @brief LPC_CAN availability on the SoC. */
38     #define FSL_FEATURE_SOC_LPC_CAN_COUNT (1)
39     /* @brief CDOG availability on the SoC. */
40     #define FSL_FEATURE_SOC_CDOG_COUNT (1)
41     /* @brief CRC availability on the SoC. */
42     #define FSL_FEATURE_SOC_CRC_COUNT (1)
43     /* @brief CTIMER availability on the SoC. */
44     #define FSL_FEATURE_SOC_CTIMER_COUNT (5)
45     /* @brief DMA availability on the SoC. */
46     #define FSL_FEATURE_SOC_DMA_COUNT (2)
47     /* @brief DMIC availability on the SoC. */
48     #define FSL_FEATURE_SOC_DMIC_COUNT (1)
49     /* @brief ELS availability on the SoC. */
50     #define FSL_FEATURE_SOC_ELS_COUNT (1)
51     /* @brief ENC availability on the SoC. */
52     #define FSL_FEATURE_SOC_ENC_COUNT (2)
53     /* @brief FLASH availability on the SoC. */
54     #define FSL_FEATURE_SOC_FLASH_COUNT (1)
55     /* @brief FLEXCOMM availability on the SoC. */
56     #define FSL_FEATURE_SOC_FLEXCOMM_COUNT (9)
57     /* @brief FLEXSPI availability on the SoC. */
58     #define FSL_FEATURE_SOC_FLEXSPI_COUNT (1)
59     /* @brief FREQME availability on the SoC. */
60     #define FSL_FEATURE_SOC_FREQME_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 (2)
65     /* @brief I2C availability on the SoC. */
66     #define FSL_FEATURE_SOC_I2C_COUNT (8)
67     /* @brief I3C availability on the SoC. */
68     #define FSL_FEATURE_SOC_I3C_COUNT (1)
69     /* @brief I2S availability on the SoC. */
70     #define FSL_FEATURE_SOC_I2S_COUNT (8)
71     /* @brief INPUTMUX availability on the SoC. */
72     #define FSL_FEATURE_SOC_INPUTMUX_COUNT (1)
73     /* @brief IOCON availability on the SoC. */
74     #define FSL_FEATURE_SOC_IOCON_COUNT (1)
75     /* @brief ITRC availability on the SoC. */
76     #define FSL_FEATURE_SOC_ITRC_COUNT (1)
77     /* @brief LPADC availability on the SoC. */
78     #define FSL_FEATURE_SOC_LPADC_COUNT (2)
79     /* @brief LPCMP availability on the SoC. */
80     #define FSL_FEATURE_SOC_LPCMP_COUNT (3)
81     /* @brief LPDAC availability on the SoC. */
82     #define FSL_FEATURE_SOC_LPDAC_COUNT (3)
83     /* @brief MAILBOX availability on the SoC. */
84     #define FSL_FEATURE_SOC_MAILBOX_COUNT (1)
85     /* @brief MRT availability on the SoC. */
86     #define FSL_FEATURE_SOC_MRT_COUNT (1)
87     /* @brief OPAMP availability on the SoC. */
88     #define FSL_FEATURE_SOC_OPAMP_COUNT (3)
89     /* @brief OSTIMER availability on the SoC. */
90     #define FSL_FEATURE_SOC_OSTIMER_COUNT (1)
91     /* @brief PINT availability on the SoC. */
92     #define FSL_FEATURE_SOC_PINT_COUNT (2)
93     /* @brief PKC availability on the SoC. */
94     #define FSL_FEATURE_SOC_PKC_COUNT (1)
95     /* @brief PMC availability on the SoC. */
96     #define FSL_FEATURE_SOC_PMC_COUNT (1)
97     /* @brief POWERQUAD availability on the SoC. */
98     #define FSL_FEATURE_SOC_POWERQUAD_COUNT (1)
99     /* @brief PWM availability on the SoC. */
100     #define FSL_FEATURE_SOC_PWM_COUNT (2)
101     /* @brief PUF availability on the SoC. */
102     #define FSL_FEATURE_SOC_PUF_COUNT (1)
103     /* @brief RTC availability on the SoC. */
104     #define FSL_FEATURE_SOC_RTC_COUNT (1)
105     /* @brief SCT availability on the SoC. */
106     #define FSL_FEATURE_SOC_SCT_COUNT (1)
107     /* @brief SPI availability on the SoC. */
108     #define FSL_FEATURE_SOC_SPI_COUNT (9)
109     /* @brief SYSCON availability on the SoC. */
110     #define FSL_FEATURE_SOC_SYSCON_COUNT (1)
111     /* @brief USART availability on the SoC. */
112     #define FSL_FEATURE_SOC_USART_COUNT (8)
113     /* @brief USB availability on the SoC. */
114     #define FSL_FEATURE_SOC_USB_COUNT (1)
115     /* @brief USBFSH availability on the SoC. */
116     #define FSL_FEATURE_SOC_USBFSH_COUNT (1)
117     /* @brief UTICK availability on the SoC. */
118     #define FSL_FEATURE_SOC_UTICK_COUNT (1)
119     /* @brief VREF availability on the SoC. */
120     #define FSL_FEATURE_SOC_VREF_COUNT (1)
121     /* @brief WWDT availability on the SoC. */
122     #define FSL_FEATURE_SOC_WWDT_COUNT (1)
123 #elif defined(CPU_LPC55S36JHI48)
124     /* @brief AOI availability on the SoC. */
125     #define FSL_FEATURE_SOC_AOI_COUNT (2)
126     /* @brief CACHE64_CTRL availability on the SoC. */
127     #define FSL_FEATURE_SOC_CACHE64_CTRL_COUNT (1)
128     /* @brief CACHE64_POLSEL availability on the SoC. */
129     #define FSL_FEATURE_SOC_CACHE64_POLSEL_COUNT (1)
130     /* @brief LPC_CAN availability on the SoC. */
131     #define FSL_FEATURE_SOC_LPC_CAN_COUNT (1)
132     /* @brief CDOG availability on the SoC. */
133     #define FSL_FEATURE_SOC_CDOG_COUNT (1)
134     /* @brief CRC availability on the SoC. */
135     #define FSL_FEATURE_SOC_CRC_COUNT (1)
136     /* @brief CTIMER availability on the SoC. */
137     #define FSL_FEATURE_SOC_CTIMER_COUNT (5)
138     /* @brief DMA availability on the SoC. */
139     #define FSL_FEATURE_SOC_DMA_COUNT (2)
140     /* @brief DMIC availability on the SoC. */
141     #define FSL_FEATURE_SOC_DMIC_COUNT (1)
142     /* @brief ELS availability on the SoC. */
143     #define FSL_FEATURE_SOC_ELS_COUNT (1)
144     /* @brief ENC availability on the SoC. */
145     #define FSL_FEATURE_SOC_ENC_COUNT (2)
146     /* @brief FLASH availability on the SoC. */
147     #define FSL_FEATURE_SOC_FLASH_COUNT (1)
148     /* @brief FLEXCOMM availability on the SoC. */
149     #define FSL_FEATURE_SOC_FLEXCOMM_COUNT (9)
150     /* @brief FLEXSPI availability on the SoC. */
151     #define FSL_FEATURE_SOC_FLEXSPI_COUNT (1)
152     /* @brief FREQME availability on the SoC. */
153     #define FSL_FEATURE_SOC_FREQME_COUNT (1)
154     /* @brief GINT availability on the SoC. */
155     #define FSL_FEATURE_SOC_GINT_COUNT (2)
156     /* @brief GPIO availability on the SoC. */
157     #define FSL_FEATURE_SOC_GPIO_COUNT (2)
158     /* @brief I2C availability on the SoC. */
159     #define FSL_FEATURE_SOC_I2C_COUNT (8)
160     /* @brief I3C availability on the SoC. */
161     #define FSL_FEATURE_SOC_I3C_COUNT (1)
162     /* @brief I2S availability on the SoC. */
163     #define FSL_FEATURE_SOC_I2S_COUNT (8)
164     /* @brief INPUTMUX availability on the SoC. */
165     #define FSL_FEATURE_SOC_INPUTMUX_COUNT (1)
166     /* @brief IOCON availability on the SoC. */
167     #define FSL_FEATURE_SOC_IOCON_COUNT (1)
168     /* @brief ITRC availability on the SoC. */
169     #define FSL_FEATURE_SOC_ITRC_COUNT (1)
170     /* @brief LPADC availability on the SoC. */
171     #define FSL_FEATURE_SOC_LPADC_COUNT (2)
172     /* @brief LPCMP availability on the SoC. */
173     #define FSL_FEATURE_SOC_LPCMP_COUNT (3)
174     /* @brief LPDAC availability on the SoC. */
175     #define FSL_FEATURE_SOC_LPDAC_COUNT (3)
176     /* @brief MAILBOX availability on the SoC. */
177     #define FSL_FEATURE_SOC_MAILBOX_COUNT (1)
178     /* @brief MRT availability on the SoC. */
179     #define FSL_FEATURE_SOC_MRT_COUNT (1)
180     /* @brief OPAMP availability on the SoC. */
181     #define FSL_FEATURE_SOC_OPAMP_COUNT (3)
182     /* @brief OSTIMER availability on the SoC. */
183     #define FSL_FEATURE_SOC_OSTIMER_COUNT (1)
184     /* @brief PINT availability on the SoC. */
185     #define FSL_FEATURE_SOC_PINT_COUNT (2)
186     /* @brief PKC availability on the SoC. */
187     #define FSL_FEATURE_SOC_PKC_COUNT (1)
188     /* @brief PMC availability on the SoC. */
189     #define FSL_FEATURE_SOC_PMC_COUNT (1)
190     /* @brief POWERQUAD availability on the SoC. */
191     #define FSL_FEATURE_SOC_POWERQUAD_COUNT (1)
192     /* @brief PWM availability on the SoC. */
193     #define FSL_FEATURE_SOC_PWM_COUNT (2)
194     /* @brief PUF availability on the SoC. */
195     #define FSL_FEATURE_SOC_PUF_COUNT (1)
196     /* @brief RTC availability on the SoC. */
197     #define FSL_FEATURE_SOC_RTC_COUNT (1)
198     /* @brief SCT availability on the SoC. */
199     #define FSL_FEATURE_SOC_SCT_COUNT (1)
200     /* @brief SPI availability on the SoC. */
201     #define FSL_FEATURE_SOC_SPI_COUNT (9)
202     /* @brief SYSCON availability on the SoC. */
203     #define FSL_FEATURE_SOC_SYSCON_COUNT (1)
204     /* @brief USART availability on the SoC. */
205     #define FSL_FEATURE_SOC_USART_COUNT (8)
206     /* @brief UTICK availability on the SoC. */
207     #define FSL_FEATURE_SOC_UTICK_COUNT (1)
208     /* @brief VREF availability on the SoC. */
209     #define FSL_FEATURE_SOC_VREF_COUNT (1)
210     /* @brief WWDT availability on the SoC. */
211     #define FSL_FEATURE_SOC_WWDT_COUNT (1)
212 #endif
213 
214 /* LPADC module features */
215 
216 /* @brief FIFO availability on the SoC. */
217 #define FSL_FEATURE_LPADC_FIFO_COUNT (2)
218 /* @brief Has subsequent trigger priority (bitfield CFG[TPRICTRL]). */
219 #define FSL_FEATURE_LPADC_HAS_CFG_SUBSEQUENT_PRIORITY (1)
220 /* @brief Has differential mode (bitfield CMDLn[DIFF]). */
221 #define FSL_FEATURE_LPADC_HAS_CMDL_DIFF (0)
222 /* @brief Has channel scale (bitfield CMDLn[CSCALE]). */
223 #define FSL_FEATURE_LPADC_HAS_CMDL_CSCALE (0)
224 /* @brief Has conversion type select (bitfield CMDLn[CTYPE]). */
225 #define FSL_FEATURE_LPADC_HAS_CMDL_CTYPE (1)
226 /* @brief Has conversion resolution select  (bitfield CMDLn[MODE]). */
227 #define FSL_FEATURE_LPADC_HAS_CMDL_MODE (1)
228 /* @brief Has compare function enable (bitfield CMDHn[CMPEN]). */
229 #define FSL_FEATURE_LPADC_HAS_CMDH_CMPEN (1)
230 /* @brief Has Wait for trigger assertion before execution (bitfield CMDHn[WAIT_TRIG]). */
231 #define FSL_FEATURE_LPADC_HAS_CMDH_WAIT_TRIG (1)
232 /* @brief Has offset calibration (bitfield CTRL[CALOFS]). */
233 #define FSL_FEATURE_LPADC_HAS_CTRL_CALOFS (1)
234 /* @brief Has gain calibration (bitfield CTRL[CAL_REQ]). */
235 #define FSL_FEATURE_LPADC_HAS_CTRL_CAL_REQ (1)
236 /* @brief Has calibration average (bitfield CTRL[CAL_AVGS]). */
237 #define FSL_FEATURE_LPADC_HAS_CTRL_CAL_AVGS (1)
238 /* @brief Has internal clock (bitfield CFG[ADCKEN]). */
239 #define FSL_FEATURE_LPADC_HAS_CFG_ADCKEN (0)
240 /* @brief Enable support for low voltage reference on option 1 reference (bitfield CFG[VREF1RNG]). */
241 #define FSL_FEATURE_LPADC_HAS_CFG_VREF1RNG (0)
242 /* @brief Has calibration (bitfield CFG[CALOFS]). */
243 #define FSL_FEATURE_LPADC_HAS_CFG_CALOFS (0)
244 /* @brief Has offset trim (register OFSTRIM). */
245 #define FSL_FEATURE_LPADC_HAS_OFSTRIM (1)
246 /* @brief OFSTRIM availability on the SoC. */
247 #define FSL_FEATURE_LPADC_OFSTRIM_COUNT (2)
248 /* @brief Has Trigger status register. */
249 #define FSL_FEATURE_LPADC_HAS_TSTAT (1)
250 /* @brief Has power select (bitfield CFG[PWRSEL]). */
251 #define FSL_FEATURE_LPADC_HAS_CFG_PWRSEL (1)
252 /* @brief Has alternate channel B scale (bitfield CMDLn[ALTB_CSCALE]). */
253 #define FSL_FEATURE_LPADC_HAS_CMDL_ALTB_CSCALE (0)
254 /* @brief Has alternate channel B select enable (bitfield CMDLn[ALTBEN]). */
255 #define FSL_FEATURE_LPADC_HAS_CMDL_ALTBEN (1)
256 /* @brief Has alternate channel input (bitfield CMDLn[ALTB_ADCH]). */
257 #define FSL_FEATURE_LPADC_HAS_CMDL_ALTB_ADCH (1)
258 /* @brief Has offset calibration mode (bitfield CTRL[CALOFSMODE]). */
259 #define FSL_FEATURE_LPADC_HAS_CTRL_CALOFSMODE (0)
260 /* @brief Conversion averaged bitfiled width. */
261 #define FSL_FEATURE_LPADC_CONVERSIONS_AVERAGED_BITFIELD_WIDTH (3)
262 /* @brief Has B side channels. */
263 #define FSL_FEATURE_LPADC_HAS_B_SIDE_CHANNELS (1)
264 /* @brief Indicate whether the LPADC STAT register has trigger exception interrupt function (bitfield STAT[TEXC_INT]). */
265 #define FSL_FEATURE_LPADC_HAS_STAT_TEXC_INT (1)
266 /* @brief Indicate whether the LPADC STAT register has trigger completion interrupt function (bitfield STAT[TCOMP_INT]). */
267 #define FSL_FEATURE_LPADC_HAS_STAT_TCOMP_INT (1)
268 /* @brief Indicate whether the LPADC STAT register has calibration ready function (bitfield STAT[CAL_RDY]). */
269 #define FSL_FEATURE_LPADC_HAS_STAT_CAL_RDY (1)
270 /* @brief Indicate whether the LPADC STAT register has ADC active function (bitfield STAT[ADC_ACTIVE]). */
271 #define FSL_FEATURE_LPADC_HAS_STAT_ADC_ACTIVE (1)
272 /* @brief Indicate whether the LPADC IE register has trigger exception interrupt enable function (bitfield IE[TEXC_IE]). */
273 #define FSL_FEATURE_LPADC_HAS_IE_TEXC_IE (1)
274 /* @brief Indicate whether the LPADC IE register has trigger completion interrupt enable function (bitfield IE[TCOMP_IE]). */
275 #define FSL_FEATURE_LPADC_HAS_IE_TCOMP_IE (1)
276 /* @brief Indicate whether the LPADC CFG register has trigger resume/restart enable function (bitfield CFG[TRES]). */
277 #define FSL_FEATURE_LPADC_HAS_CFG_TRES (1)
278 /* @brief Indicate whether the LPADC CFG register has trigger command resume/restart enable function (bitfield CFG[TCMDRES]). */
279 #define FSL_FEATURE_LPADC_HAS_CFG_TCMDRES (1)
280 /* @brief Indicate whether the LPADC CFG register has high priority trigger exception disable function (bitfield CFG[HPT_EXDI]). */
281 #define FSL_FEATURE_LPADC_HAS_CFG_HPT_EXDI (1)
282 /* @brief Indicate LPADC CFG register TPRICTRL bitfield width. */
283 #define FSL_FEATURE_LPADC_CFG_TPRICTRL_BITFIELD_WIDTH (2)
284 /* @brief Has internal temperature sensor. */
285 #define FSL_FEATURE_LPADC_HAS_INTERNAL_TEMP_SENSOR (1)
286 /* @brief Temperature sensor parameter A (slope). */
287 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_A (768.0f)
288 /* @brief Temperature sensor parameter B (offset). */
289 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_B (292.7f)
290 /* @brief Temperature sensor parameter Alpha. */
291 #define FSL_FEATURE_LPADC_TEMP_PARAMETER_ALPHA (9.7f)
292 /* @brief Temperature sensor need calibration. */
293 #define FSL_FEATURE_LPADC_TEMP_NEED_CALIBRATION (1)
294 /* @brief the address of temperature sensor parameter A (slope) in Flash. */
295 #define FSL_FEATURE_FLASH_NMPA_TEMP_SLOPE_ADDRS (0x3FD28U)
296 /* @brief the address of temperature sensor parameter B (offset) in Flash. */
297 #define FSL_FEATURE_FLASH_NMPA_TEMP_OFFSET_ADDRS (0x3FD2CU)
298 /* @brief the buffer size of temperature sensor. */
299 #define FSL_FEATURE_LPADC_TEMP_SENS_BUFFER_SIZE (2U)
300 
301 /* ANACTRL module features */
302 
303 /* @brief Has PLL_USB_OUT_BIT_FIELD bitfile in XO32M_CTRL reigster. */
304 #define FSL_FEATURE_ANACTRL_HAS_NO_ENABLE_PLL_USB_OUT_BIT_FIELD (1)
305 /* @brief Has XO32M_ADC_CLK_MODE bitfile in DUMMY_CTRL reigster. */
306 #define FSL_FEATURE_ANACTRL_HAS_XO32M_ADC_CLK_MODE_BIF_FIELD (1)
307 /* @brief Has auxiliary bias(register AUX_BIAS). */
308 #define FSL_FEATURE_ANACTRL_HAS_AUX_BIAS_REG (1)
309 /* @brief Has FREQ_ME_CTRL reigster. */
310 #define FSL_FEATURE_ANACTRL_HAS_NO_FREQ_ME_CTRL (1)
311 
312 /* AOI module features */
313 
314 /* @brief Maximum value of input mux. */
315 #define FSL_FEATURE_AOI_MODULE_INPUTS (4)
316 /* @brief Number of events related to number of registers AOIx_BFCRT01n/AOIx_BFCRT23n. */
317 #define FSL_FEATURE_AOI_EVENT_COUNT (4)
318 
319 /* CACHE64_CTRL module features */
320 
321 /* @brief Cache Line size in byte. */
322 #define FSL_FEATURE_CACHE64_CTRL_LINESIZE_BYTE (32)
323 
324 /* CACHE64_POLSEL module features */
325 
326 /* No feature definitions */
327 
328 /* CAN module features */
329 
330 /* @brief Support CANFD or not */
331 #define FSL_FEATURE_CAN_SUPPORT_CANFD (1)
332 
333 /* CDOG module features */
334 
335 /* No feature definitions */
336 
337 /* CRC module features */
338 
339 /* @brief Has data register with name CRC */
340 #define FSL_FEATURE_CRC_HAS_CRC_REG (0)
341 
342 /* CTIMER module features */
343 
344 /* @brief CTIMER has no capture channel. */
345 #define FSL_FEATURE_CTIMER_HAS_NO_INPUT_CAPTURE (0)
346 /* @brief CTIMER has no capture 2 interrupt. */
347 #define FSL_FEATURE_CTIMER_HAS_NO_IR_CR2INT (0)
348 /* @brief CTIMER capture 3 interrupt. */
349 #define FSL_FEATURE_CTIMER_HAS_IR_CR3INT (1)
350 /* @brief Has CTIMER CCR_CAP2 (register bits CCR[CAP2RE][CAP2FE][CAP2I]. */
351 #define FSL_FEATURE_CTIMER_HAS_NO_CCR_CAP2 (0)
352 /* @brief Has CTIMER CCR_CAP3 (register bits CCR[CAP3RE][CAP3FE][CAP3I]). */
353 #define FSL_FEATURE_CTIMER_HAS_CCR_CAP3 (1)
354 /* @brief CTIMER Has register MSR */
355 #define FSL_FEATURE_CTIMER_HAS_MSR (1)
356 
357 /* LPDAC module features */
358 
359 /* @brief FIFO size. */
360 #define FSL_FEATURE_LPDAC_FIFO_SIZE (16)
361 /* @brief Has OPAMP as buffer, speed control signal (bitfield GCR[BUF_SPD_CTRL]). */
362 #define FSL_FEATURE_LPDAC_HAS_GCR_BUF_SPD_CTRL (1)
363 /* @brief Buffer Enable(bitfield GCR[BUF_EN]). */
364 #define FSL_FEATURE_LPDAC_HAS_GCR_BUF_EN (1)
365 /* @brief RCLK cycles before data latch(bitfield GCR[LATCH_CYC]). */
366 #define FSL_FEATURE_LPDAC_HAS_GCR_LATCH_CYC (1)
367 /* @brief VREF source number. */
368 #define FSL_FEATURE_ANALOG_NUM_OF_VREF_SRC (3)
369 /* @brief Has internal reference current options. */
370 #define FSL_FEATURE_LPDAC_HAS_INTERNAL_REFERENCE_CURRENT (1)
371 /* @brief Support Period trigger mode DAC (bitfield IER[PTGCOCO_IE]). */
372 #define FSL_FEATURE_LPDAC_HAS_PERIODIC_TRIGGER_MODE (1)
373 
374 /* DMA module features */
375 
376 /* @brief Number of channels */
377 #define FSL_FEATURE_DMA_NUMBER_OF_CHANNELSn(x) \
378     (((x) == DMA0) ? (52) : \
379     (((x) == DMA1) ? (16) : (-1)))
380 /* @brief Max channels */
381 #define FSL_FEATURE_DMA_MAX_CHANNELS (52)
382 /* @brief All channels */
383 #define FSL_FEATURE_DMA_ALL_CHANNELS (68U)
384 /* @brief Align size of DMA0 descriptor */
385 #define FSL_FEATURE_DMA0_DESCRIPTOR_ALIGN_SIZE (1024)
386 /* @brief Align size of DMA1 descriptor */
387 #define FSL_FEATURE_DMA1_DESCRIPTOR_ALIGN_SIZE (256)
388 /* @brief Align size of DMA descriptor */
389 #define FSL_FEATURE_DMA_DESCRIPTOR_ALIGN_SIZEn(x) \
390     (((x) == DMA0) ? (1024) : \
391     (((x) == DMA1) ? (256) : (-1)))
392 /* @brief DMA head link descriptor table align size */
393 #define FSL_FEATURE_DMA_LINK_DESCRIPTOR_ALIGN_SIZE (16U)
394 
395 /* DMIC module features */
396 
397 /* @brief Number of channels */
398 #define FSL_FEATURE_DMIC_CHANNEL_NUM (2)
399 /* @brief DMIC channel support stereo data */
400 #define FSL_FEATURE_DMIC_IO_HAS_STEREO_2_4_6 (0)
401 /* @brief DMIC does not support bypass channel clock */
402 #define FSL_FEATURE_DMIC_IO_HAS_NO_BYPASS (1)
403 /* @brief DMIC channel FIFO register support sign extended */
404 #define FSL_FEATURE_DMIC_CHANNEL_HAS_SIGNEXTEND (1)
405 /* @brief DMIC has no IOCFG register */
406 #define FSL_FEATURE_DMIC_HAS_NO_IOCFG (1)
407 /* @brief DMIC has decimator reset function */
408 #define FSL_FEATURE_DMIC_HAS_DECIMATOR_RESET_FUNC (1)
409 /* @brief DMIC has global channel synchronization function */
410 #define FSL_FEATURE_DMIC_HAS_GLOBAL_SYNC_FUNC (1)
411 
412 /* ENC module features */
413 
414 /* @brief Has no simultaneous PHASEA and PHASEB change interrupt (register bit field CTRL2[SABIE] and CTRL2[SABIRQ]). */
415 #define FSL_FEATURE_ENC_HAS_NO_CTRL2_SAB_INT (0)
416 /* @brief Has register CTRL3. */
417 #define FSL_FEATURE_ENC_HAS_CTRL3 (1)
418 /* @brief Has register LASTEDGE or LASTEDGEH. */
419 #define FSL_FEATURE_ENC_HAS_LASTEDGE (1)
420 /* @brief Has register POSDPERBFR, POSDPERH, or POSDPER. */
421 #define FSL_FEATURE_ENC_HAS_POSDPER (1)
422 /* @brief Has bitfiled FILT[FILT_PRSC]. */
423 #define FSL_FEATURE_ENC_HAS_FILT_PRSC (1)
424 
425 /* FLEXCOMM module features */
426 
427 /* @brief FLEXCOMM0 USART INDEX 0 */
428 #define FSL_FEATURE_FLEXCOMM0_USART_INDEX  (0)
429 /* @brief FLEXCOMM0 SPI INDEX 0 */
430 #define FSL_FEATURE_FLEXCOMM0_SPI_INDEX  (0)
431 /* @brief FLEXCOMM0 I2C INDEX 0 */
432 #define FSL_FEATURE_FLEXCOMM0_I2C_INDEX  (0)
433 /* @brief FLEXCOMM0 I2S INDEX 0 */
434 #define FSL_FEATURE_FLEXCOMM0_I2S_INDEX  (0)
435 /* @brief FLEXCOMM1 USART INDEX 1 */
436 #define FSL_FEATURE_FLEXCOMM1_USART_INDEX  (1)
437 /* @brief FLEXCOMM1 SPI INDEX 1 */
438 #define FSL_FEATURE_FLEXCOMM1_SPI_INDEX  (1)
439 /* @brief FLEXCOMM1 I2C INDEX 1 */
440 #define FSL_FEATURE_FLEXCOMM1_I2C_INDEX  (1)
441 /* @brief FLEXCOMM1 I2S INDEX 1 */
442 #define FSL_FEATURE_FLEXCOMM1_I2S_INDEX  (1)
443 /* @brief FLEXCOMM2 USART INDEX 2 */
444 #define FSL_FEATURE_FLEXCOMM2_USART_INDEX  (2)
445 /* @brief FLEXCOMM2 SPI INDEX 2 */
446 #define FSL_FEATURE_FLEXCOMM2_SPI_INDEX  (2)
447 /* @brief FLEXCOMM2 I2C INDEX 2 */
448 #define FSL_FEATURE_FLEXCOMM2_I2C_INDEX  (2)
449 /* @brief FLEXCOMM2 I2S INDEX 2 */
450 #define FSL_FEATURE_FLEXCOMM2_I2S_INDEX  (2)
451 /* @brief FLEXCOMM3 USART INDEX 3 */
452 #define FSL_FEATURE_FLEXCOMM3_USART_INDEX  (3)
453 /* @brief FLEXCOMM3 SPI INDEX 3 */
454 #define FSL_FEATURE_FLEXCOMM3_SPI_INDEX  (3)
455 /* @brief FLEXCOMM3 I2C INDEX 3 */
456 #define FSL_FEATURE_FLEXCOMM3_I2C_INDEX  (3)
457 /* @brief FLEXCOMM3 I2S INDEX 3 */
458 #define FSL_FEATURE_FLEXCOMM3_I2S_INDEX  (3)
459 /* @brief FLEXCOMM4 USART INDEX 4 */
460 #define FSL_FEATURE_FLEXCOMM4_USART_INDEX  (4)
461 /* @brief FLEXCOMM4 SPI INDEX 4 */
462 #define FSL_FEATURE_FLEXCOMM4_SPI_INDEX  (4)
463 /* @brief FLEXCOMM4 I2C INDEX 4 */
464 #define FSL_FEATURE_FLEXCOMM4_I2C_INDEX  (4)
465 /* @brief FLEXCOMM4 I2S INDEX 4 */
466 #define FSL_FEATURE_FLEXCOMM4_I2S_INDEX  (4)
467 /* @brief FLEXCOMM5 USART INDEX 5 */
468 #define FSL_FEATURE_FLEXCOMM5_USART_INDEX  (5)
469 /* @brief FLEXCOMM5 SPI INDEX 5 */
470 #define FSL_FEATURE_FLEXCOMM5_SPI_INDEX  (5)
471 /* @brief FLEXCOMM5 I2C INDEX 5 */
472 #define FSL_FEATURE_FLEXCOMM5_I2C_INDEX  (5)
473 /* @brief FLEXCOMM5 I2S INDEX 5 */
474 #define FSL_FEATURE_FLEXCOMM5_I2S_INDEX  (5)
475 /* @brief FLEXCOMM6 USART INDEX 6 */
476 #define FSL_FEATURE_FLEXCOMM6_USART_INDEX  (6)
477 /* @brief FLEXCOMM6 SPI INDEX 6 */
478 #define FSL_FEATURE_FLEXCOMM6_SPI_INDEX  (6)
479 /* @brief FLEXCOMM6 I2C INDEX 6 */
480 #define FSL_FEATURE_FLEXCOMM6_I2C_INDEX  (6)
481 /* @brief FLEXCOMM6 I2S INDEX 6 */
482 #define FSL_FEATURE_FLEXCOMM6_I2S_INDEX  (6)
483 /* @brief FLEXCOMM7 USART INDEX 7 */
484 #define FSL_FEATURE_FLEXCOMM7_USART_INDEX  (7)
485 /* @brief FLEXCOMM7 SPI INDEX 7 */
486 #define FSL_FEATURE_FLEXCOMM7_SPI_INDEX  (7)
487 /* @brief FLEXCOMM7 I2C INDEX 7 */
488 #define FSL_FEATURE_FLEXCOMM7_I2C_INDEX  (7)
489 /* @brief FLEXCOMM7 I2S INDEX 7 */
490 #define FSL_FEATURE_FLEXCOMM7_I2S_INDEX  (7)
491 /* @brief FLEXCOMM8 SPI(HS_SPI) INDEX 8 */
492 #define FSL_FEATURE_FLEXCOMM8_SPI_INDEX  (8)
493 /* @brief I2S has DMIC interconnection */
494 #define FSL_FEATURE_FLEXCOMM_INSTANCE_I2S_HAS_DMIC_INTERCONNECTIONn(x) \
495     (((x) == FLEXCOMM0) ? (0) : \
496     (((x) == FLEXCOMM1) ? (0) : \
497     (((x) == FLEXCOMM2) ? (0) : \
498     (((x) == FLEXCOMM3) ? (0) : \
499     (((x) == FLEXCOMM4) ? (0) : \
500     (((x) == FLEXCOMM5) ? (0) : \
501     (((x) == FLEXCOMM6) ? (0) : \
502     (((x) == FLEXCOMM7) ? (1) : \
503     (((x) == FLEXCOMM8) ? (0) : (-1))))))))))
504 /* @brief I2S support dual channel transfer */
505 #define FSL_FEATURE_FLEXCOMM_INSTANCE_I2S_SUPPORT_SECONDARY_CHANNELn(x) \
506     (((x) == FLEXCOMM0) ? (0) : \
507     (((x) == FLEXCOMM1) ? (0) : \
508     (((x) == FLEXCOMM2) ? (0) : \
509     (((x) == FLEXCOMM3) ? (0) : \
510     (((x) == FLEXCOMM4) ? (0) : \
511     (((x) == FLEXCOMM5) ? (0) : \
512     (((x) == FLEXCOMM6) ? (1) : \
513     (((x) == FLEXCOMM7) ? (1) : \
514     (((x) == FLEXCOMM8) ? (0) : (-1))))))))))
515 
516 /* FLEXSPI module features */
517 
518 /* @brief FlexSPI AHB buffer count */
519 #define FSL_FEATURE_FLEXSPI_AHB_BUFFER_COUNTn(x) (8)
520 /* @brief FlexSPI has no MCR0 ARDFEN bit */
521 #define FSL_FEATURE_FLEXSPI_HAS_NO_MCR0_ARDFEN (1)
522 /* @brief FlexSPI has no MCR0 ATDFEN bit */
523 #define FSL_FEATURE_FLEXSPI_HAS_NO_MCR0_ATDFEN (1)
524 /* @brief FlexSPI has no MCR0 COMBINATIONEN bit */
525 #define FSL_FEATURE_FLEXSPI_HAS_NO_MCR0_COMBINATIONEN (1)
526 /* @brief FlexSPI has no STS0 DATALEARNPHASEB bit */
527 #define FSL_FEATURE_FLEXSPI_HAS_NO_STS0_DATALEARNPHASEB (1)
528 /* @brief FlexSPI has no IPCR1 IPAREN bit */
529 #define FSL_FEATURE_FLEXSPI_HAS_NO_IPCR1_IPAREN (1)
530 /* @brief FlexSPI has no AHBCR APAREN bit */
531 #define FSL_FEATURE_FLEXSPI_HAS_NO_AHBCR_APAREN (1)
532 /* @brief FlexSPI has no MCR2 SCKBDIFFOPT bit */
533 #define FSL_FEATURE_FLEXSPI_HAS_NO_MCR2_SCKBDIFFOPT (1)
534 /* @brief FlexSPI has no FLSHCR4 WMENB bit */
535 #define FSL_FEATURE_FLEXSPI_HAS_NO_FLSHCR4_WMENB (1)
536 /* @brief FlexSPI has no STS2 BSLVLOCK bit */
537 #define FSL_FEATURE_FLEXSPI_HAS_NO_STS2_BSLVLOCK (1)
538 /* @brief FlexSPI has no STS2 BREFLOCK bit */
539 #define FSL_FEATURE_FLEXSPI_HAS_NO_STS2_BREFLOCK (1)
540 /* @brief FlexSPI supports Port A only, do not support Port B. */
541 #define FSL_FEATURE_FLEXSPI_NO_SUPPORT_PORTB (1)
542 /* @brief FlexSPI LUTKEY is read only. */
543 #define FSL_FEATURE_FLEXSPI_LUTKEY_IS_RO (1)
544 /* @brief There is AHBBUSERROREN bit in INTEN register. */
545 #define FSL_FEATURE_FLEXSPI_HAS_INTEN_AHBBUSERROREN (0)
546 /* @brief There is CLRAHBTX_RXBUF bit in AHBCR register. */
547 #define FSL_FEATURE_FLEXSPI_HAS_AHBCR_CLRAHBTX_RXBUF (1)
548 /* @brief FLEXSPI has no IP parallel mode. */
549 #define FSL_FEATURE_FLEXSPI_HAS_NO_IP_PARALLEL_MODE (1)
550 /* @brief FLEXSPI has no AHB parallel mode. */
551 #define FSL_FEATURE_FLEXSPI_HAS_NO_AHB_PARALLEL_MODE (1)
552 /* @brief FLEXSPI support address shift. */
553 #define FSL_FEATURE_FLEXSPI_SUPPORT_ADDRESS_SHIFT (0)
554 /* @brief FlexSPI AHB RX buffer size (byte) */
555 #define FSL_FEATURE_FLEXSPI_AHB_RX_BUFFER_SIZEn(x) (2048)
556 
557 /* GINT module features */
558 
559 /* @brief The count of th port which are supported in GINT. */
560 #define FSL_FEATURE_GINT_PORT_COUNT (2)
561 
562 /* I2S module features */
563 
564 /* @brief I2S support dual channel transfer. */
565 #define FSL_FEATURE_I2S_SUPPORT_SECONDARY_CHANNEL (1)
566 /* @brief I2S has DMIC interconnection. */
567 #define FSL_FEATURE_FLEXCOMM_I2S_HAS_DMIC_INTERCONNECTION (1)
568 
569 /* I3C module features */
570 
571 /* @brief Has TERM bitfile in MERRWARN register. */
572 #define FSL_FEATURE_I3C_HAS_NO_MERRWARN_TERM (1)
573 /* @brief SOC has no reset driver. */
574 #define FSL_FEATURE_I3C_HAS_NO_RESET (0)
575 /* @brief Use fixed BAMATCH count, do not provide editable BAMATCH. */
576 #define FSL_FEATURE_I3C_HAS_NO_SCONFIG_BAMATCH (0)
577 /* @brief Register SCONFIG do not have IDRAND bitfield. */
578 #define FSL_FEATURE_I3C_HAS_NO_SCONFIG_IDRAND (0)
579 /* @brief Register SCONFIG has HDROK bitfield. */
580 #define FSL_FEATURE_I3C_HAS_HDROK (0)
581 /* @brief SOC doesn't support slave IBI/MR/HJ. */
582 #define FSL_FEATURE_I3C_HAS_NO_SLAVE_IBI_MR_HJ (0)
583 
584 /* INPUTMUX module features */
585 
586 /* @brief Inputmux has DMA Request Enable */
587 #define FSL_FEATURE_INPUTMUX_HAS_SIGNAL_ENA (1)
588 /* @brief Inputmux has channel mux control */
589 #define FSL_FEATURE_INPUTMUX_HAS_CHANNEL_MUX (0)
590 
591 /* IOCON module features */
592 
593 /* @brief Func bit field width */
594 #define FSL_FEATURE_IOCON_FUNC_FIELD_WIDTH (4)
595 
596 /* MRT module features */
597 
598 /* @brief number of channels. */
599 #define FSL_FEATURE_MRT_NUMBER_OF_CHANNELS  (4)
600 
601 /* PINT module features */
602 
603 /* @brief Number of connected outputs */
604 #define FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS (8)
605 /* @brief Number of connected outputs */
606 #define FSL_FEATURE_SECPINT_NUMBER_OF_CONNECTED_OUTPUTS (2)
607 
608 /* PMC module features */
609 
610 /* @brief UTICK does not support PD configure. */
611 #define FSL_FEATURE_UTICK_HAS_NO_PDCFG (1)
612 /* @brief WDT OSC does not support PD configure. */
613 #define FSL_FEATURE_WWDT_HAS_NO_PDCFG (1)
614 
615 /* POWERQUAD module features */
616 
617 /* @brief Sine and Cossine fix errata */
618 #define FSL_FEATURE_POWERQUAD_SIN_COS_FIX_ERRATA  (1)
619 
620 /* PUF module features */
621 
622 /* @brief the shift status value */
623 #define FSL_FEATURE_PUF_HAS_SHIFT_STATUS (1)
624 /* @brief Puf Activation Code Address. */
625 #define FSL_FEATURE_PUF_ACTIVATION_CODE_ADDRESS (255488)
626 /* @brief Puf Activation Code Size. */
627 #define FSL_FEATURE_PUF_ACTIVATION_CODE_SIZE (996)
628 
629 /* PWM module features */
630 
631 /* @brief If (e)FlexPWM has module A channels (outputs). */
632 #define FSL_FEATURE_PWM_HAS_CHANNELA (1)
633 /* @brief If (e)FlexPWM has module B channels (outputs). */
634 #define FSL_FEATURE_PWM_HAS_CHANNELB (1)
635 /* @brief If (e)FlexPWM has module X channels (outputs). */
636 #define FSL_FEATURE_PWM_HAS_CHANNELX (1)
637 /* @brief If (e)FlexPWM has fractional feature. */
638 #define FSL_FEATURE_PWM_HAS_FRACTIONAL (1)
639 /* @brief If (e)FlexPWM has mux trigger source select bit field. */
640 #define FSL_FEATURE_PWM_HAS_MUX_TRIGGER_SOURCE_SEL (1)
641 /* @brief Number of submodules in each (e)FlexPWM module. */
642 #define FSL_FEATURE_PWM_SUBMODULE_COUNT (4)
643 /* @brief Number of fault channel in each (e)FlexPWM module. */
644 #define FSL_FEATURE_PWM_FAULT_CH_COUNT (1)
645 /* @brief (e)FlexPWM has no WAITEN Bitfield In CTRL2 Register. */
646 #define FSL_FEATURE_PWM_HAS_NO_WAITEN (0)
647 /* @brief If (e)FlexPWM has phase delay feature. */
648 #define FSL_FEATURE_PWM_HAS_PHASE_DELAY (1)
649 /* @brief If (e)FlexPWM has input filter capture feature. */
650 #define FSL_FEATURE_PWM_HAS_INPUT_FILTER_CAPTURE (1)
651 /* @brief If (e)FlexPWM has module capture functionality on A channels (inputs). */
652 #define FSL_FEATURE_PWM_HAS_CAPTURE_ON_CHANNELA (1)
653 /* @brief If (e)FlexPWM has module capture functionality on B channels (inputs). */
654 #define FSL_FEATURE_PWM_HAS_CAPTURE_ON_CHANNELB (1)
655 /* @brief If (e)FlexPWM has module capture functionality on X channels (inputs). */
656 #define FSL_FEATURE_PWM_HAS_CAPTURE_ON_CHANNELX (1)
657 
658 /* RTC module features */
659 
660 /* @brief Has Tamper Direction Register support. */
661 #define FSL_FEATURE_RTC_HAS_TAMPER_DIRECTION (0)
662 /* @brief Has Tamper Queue Status and Control Register support. */
663 #define FSL_FEATURE_RTC_HAS_TAMPER_QUEUE (1)
664 /* @brief Has RTC subsystem. */
665 #define FSL_FEATURE_RTC_HAS_SUBSYSTEM (1)
666 /* @brief Has Reset in system level. */
667 #define FSL_FEATURE_RTC_HAS_RESET (1)
668 /* @brief Has RTC Tamper 23 Filter Configuration Register support. */
669 #define FSL_FEATURE_RTC_HAS_FILTER23_CFG (1)
670 /* @brief Has WAKEUP_MODE bitfile in CTRL2 register. */
671 #define FSL_FEATURE_RTC_HAS_NO_CTRL2_WAKEUP_MODE (1)
672 /* @brief Has CLK_SEL bitfile in CTRL register. */
673 #define FSL_FEATURE_RTC_HAS_CLOCK_SELECT (0)
674 /* @brief Has CLKO_DIS bitfile in CTRL register. */
675 #define FSL_FEATURE_RTC_HAS_CLOCK_OUTPUT_DISABLE (0)
676 /* @brief Has No Tamper in RTC. */
677 #define FSL_FEATURE_RTC_HAS_NO_TAMPER_FEATURE (0)
678 /* @brief Has CPU_LOW_VOLT bitfile in STATUS register. */
679 #define FSL_FEATURE_RTC_HAS_NO_CPU_LOW_VOLT_FLAG (0)
680 /* @brief Has RST_SRC bitfile in STATUS register. */
681 #define FSL_FEATURE_RTC_HAS_NO_RST_SRC_FLAG (0)
682 /* @brief Has GP_DATA_REG register. */
683 #define FSL_FEATURE_RTC_HAS_NO_GP_DATA_REG (0)
684 /* @brief Has TIMER_STB_MASK bitfile in CTRL register. */
685 #define FSL_FEATURE_RTC_HAS_NO_TIMER_STB_MASK (0)
686 
687 /* SCT module features */
688 
689 /* @brief Number of events */
690 #define FSL_FEATURE_SCT_NUMBER_OF_EVENTS (16)
691 /* @brief Number of states */
692 #define FSL_FEATURE_SCT_NUMBER_OF_STATES (32)
693 /* @brief Number of match capture */
694 #define FSL_FEATURE_SCT_NUMBER_OF_MATCH_CAPTURE (16)
695 /* @brief Number of outputs */
696 #define FSL_FEATURE_SCT_NUMBER_OF_OUTPUTS (10)
697 
698 /* SPI module features */
699 
700 /* @brief SSEL pin count. */
701 #define FSL_FEATURE_SPI_SSEL_COUNT (4)
702 
703 /* SYSCON module features */
704 
705 /* @brief Flash page size in bytes */
706 #define FSL_FEATURE_SYSCON_FLASH_PAGE_SIZE_BYTES (512)
707 /* @brief Flash sector size in bytes */
708 #define FSL_FEATURE_SYSCON_FLASH_SECTOR_SIZE_BYTES (32768)
709 /* @brief Flash size in bytes */
710 #define FSL_FEATURE_SYSCON_FLASH_SIZE_BYTES (251904)
711 
712 /* SYSCTL module features */
713 
714 /* @brief SYSCTRL has Code Gray feature. */
715 #define FSL_FEATURE_SYSCTRL_HAS_CODE_GRAY (1)
716 
717 /* USART module features */
718 
719 /* @brief Has FIFO Receive Timeout Configuration (register FIFORXTIMEOUTCFG). */
720 #define FSL_FEATURE_USART_HAS_FIFORXTIMEOUTCFG (1)
721 
722 /* USB module features */
723 
724 #if defined(CPU_LPC55S36JBD100)
725     /* @brief USB version */
726     #define FSL_FEATURE_USB_VERSION (200)
727     /* @brief Number of the endpoint in USB FS */
728     #define FSL_FEATURE_USB_EP_NUM (5)
729 #endif /* defined(CPU_LPC55S36JBD100) */
730 
731 /* USBFSH module features */
732 
733 #if defined(CPU_LPC55S36JBD100)
734     /* @brief USBFSH version */
735     #define FSL_FEATURE_USBFSH_VERSION (200)
736 #endif /* defined(CPU_LPC55S36JBD100) */
737 
738 /* VREF module features */
739 
740 /* @brief Has chop oscillator (bit TRM[CHOPEN]) */
741 #define FSL_FEATURE_VREF_HAS_CHOP_OSC (0)
742 /* @brief Has second order curvature compensation (bit SC[ICOMPEN]) */
743 #define FSL_FEATURE_VREF_HAS_COMPENSATION (0)
744 /* @brief If high/low buffer mode supported */
745 #define FSL_FEATURE_VREF_MODE_LV_TYPE (0)
746 /* @brief Module has also low reference (registers VREFL/VREFH) */
747 #define FSL_FEATURE_VREF_HAS_LOW_REFERENCE (0)
748 /* @brief Has VREF_TRM4. */
749 #define FSL_FEATURE_VREF_HAS_TRM4 (0)
750 
751 /* WWDT module features */
752 
753 /* @brief Has no RESET register. */
754 #define FSL_FEATURE_WWDT_HAS_NO_RESET (1)
755 
756 #endif /* _LPC55S36_FEATURES_H_ */
757 
758