1 /*
2 ** ###################################################################
3 **     Version:             rev. 1.0, 2017-05-19
4 **     Build:               b210915
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 (2017-05-19)
20 **         Initial version.
21 **
22 ** ###################################################################
23 */
24 
25 #ifndef _MKE04Z4_FEATURES_H_
26 #define _MKE04Z4_FEATURES_H_
27 
28 /* SOC module features */
29 
30 /* @brief ACMP availability on the SoC. */
31 #define FSL_FEATURE_SOC_ACMP_COUNT (2)
32 /* @brief ADC availability on the SoC. */
33 #define FSL_FEATURE_SOC_ADC_COUNT (1)
34 /* @brief CRC availability on the SoC. */
35 #define FSL_FEATURE_SOC_CRC_COUNT (1)
36 /* @brief FGPIO availability on the SoC. */
37 #define FSL_FEATURE_SOC_FGPIO_COUNT (1)
38 /* @brief FTM availability on the SoC. */
39 #define FSL_FEATURE_SOC_FTM_COUNT (2)
40 /* @brief FTMRE availability on the SoC. */
41 #define FSL_FEATURE_SOC_FTMRE_COUNT (1)
42 /* @brief GPIO availability on the SoC. */
43 #define FSL_FEATURE_SOC_GPIO_COUNT (1)
44 /* @brief I2C availability on the SoC. */
45 #define FSL_FEATURE_SOC_I2C_COUNT (1)
46 /* @brief ICS availability on the SoC. */
47 #define FSL_FEATURE_SOC_ICS_COUNT (1)
48 /* @brief IRQ availability on the SoC. */
49 #define FSL_FEATURE_SOC_IRQ_COUNT (1)
50 /* @brief KBI availability on the SoC. */
51 #define FSL_FEATURE_SOC_KBI_COUNT (2)
52 /* @brief MCM availability on the SoC. */
53 #define FSL_FEATURE_SOC_MCM_COUNT (1)
54 /* @brief OSC availability on the SoC. */
55 #define FSL_FEATURE_SOC_OSC_COUNT (1)
56 /* @brief PIT availability on the SoC. */
57 #define FSL_FEATURE_SOC_PIT_COUNT (1)
58 /* @brief PMC availability on the SoC. */
59 #define FSL_FEATURE_SOC_PMC_COUNT (1)
60 /* @brief PORT availability on the SoC. */
61 #define FSL_FEATURE_SOC_PORT_COUNT (1)
62 /* @brief PWT availability on the SoC. */
63 #define FSL_FEATURE_SOC_PWT_COUNT (1)
64 /* @brief ROM availability on the SoC. */
65 #define FSL_FEATURE_SOC_ROM_COUNT (1)
66 /* @brief RTC availability on the SoC. */
67 #define FSL_FEATURE_SOC_RTC_COUNT (1)
68 /* @brief SIM availability on the SoC. */
69 #define FSL_FEATURE_SOC_SIM_COUNT (1)
70 /* @brief SPI availability on the SoC. */
71 #define FSL_FEATURE_SOC_SPI_COUNT (1)
72 /* @brief UART availability on the SoC. */
73 #define FSL_FEATURE_SOC_UART_COUNT (1)
74 /* @brief WDOG availability on the SoC. */
75 #define FSL_FEATURE_SOC_WDOG_COUNT (1)
76 
77 /* ADC module features */
78 
79 /* @brief Has status and control register 5. */
80 #define FSL_FEATURE_ADC_HAS_SC5_REG (1)
81 /* @brief Has hardware trigger multiple conversion enable. */
82 #define FSL_FEATURE_ADC_HAS_SC4_HTRGME (1)
83 
84 /* CRC module features */
85 
86 /* @brief Has data register with name CRC */
87 #define FSL_FEATURE_CRC_HAS_CRC_REG (0)
88 
89 /* FGPIO module features */
90 
91 /* No feature definitions */
92 
93 /* FTM module features */
94 
95 /* @brief Number of channels. */
96 #define FSL_FEATURE_FTM_CHANNEL_COUNTn(x) (8)
97 /* @brief Has counter reset by the selected input capture event (register bits C0SC[ICRST], C1SC[ICRST], ...). */
98 #define FSL_FEATURE_FTM_HAS_COUNTER_RESET_BY_CAPTURE_EVENT (0)
99 /* @brief Has extended deadtime value. */
100 #define FSL_FEATURE_FTM_HAS_EXTENDED_DEADTIME_VALUE (0)
101 /* @brief Enable pwm output for the module. */
102 #define FSL_FEATURE_FTM_HAS_ENABLE_PWM_OUTPUT (0)
103 /* @brief Has half-cycle reload for the module. */
104 #define FSL_FEATURE_FTM_HAS_HALFCYCLE_RELOAD (0)
105 /* @brief Has reload interrupt. */
106 #define FSL_FEATURE_FTM_HAS_RELOAD_INTERRUPT (0)
107 /* @brief Has reload initialization trigger. */
108 #define FSL_FEATURE_FTM_HAS_RELOAD_INITIALIZATION_TRIGGER (0)
109 /* @brief Has DMA support, bitfield CnSC[DMA]. */
110 #define FSL_FEATURE_FTM_HAS_DMA_SUPPORT (0)
111 /* @brief If channel 6 is used to generate channel trigger, bitfield EXTTRIG[CH6TRIG]. */
112 #define FSL_FEATURE_FTM_HAS_CHANNEL6_TRIGGER (0)
113 /* @brief If channel 7 is used to generate channel trigger, bitfield EXTTRIG[CH7TRIG]. */
114 #define FSL_FEATURE_FTM_HAS_CHANNEL7_TRIGGER (0)
115 /* @brief Has no QDCTRL. */
116 #define FSL_FEATURE_FTM_HAS_NO_QDCTRL (1)
117 /* @brief If instance has only TPM function. */
118 #define FSL_FEATURE_FTM_IS_TPM_ONLY_INSTANCEn(x) \
119     (((x) == FTM0) ? (1) : \
120     (((x) == FTM2) ? (0) : (-1)))
121 /* @brief TPM Has no CONF. */
122 #define FSL_FEATURE_TPM_HAS_NO_CONF (1)
123 /* @brief There is CLKS bit in SC register. */
124 #define FSL_FEATURE_TPM_HAS_SC_CLKS (1)
125 /* @brief Wait CnV register is updated after CnV register is written. */
126 #define FSL_FEATURE_TPM_WAIT_CnV_REGISTER_UPDATE (1)
127 /* @brief CHF is cleared by write a 0 to the CHF bit in CnSC register. */
128 #define FSL_FEATURE_TPM_CnSC_CHF_WRITE_0_CLEAR (1)
129 /* @brief Has no STATUS. */
130 #define FSL_FEATURE_TPM_HAS_NO_STATUS (1)
131 /* @brief Number of channels. */
132 #define FSL_FEATURE_TPM_CHANNEL_COUNTn(x) \
133     (((x) == FTM0) ? (2) : \
134     (((x) == FTM2) ? (-1) : (-1)))
135 /* @brief Whether TRIG register has effect. */
136 #define FSL_FEATURE_TPM_TRIG_HAS_EFFECTn(x) (0)
137 /* @brief Whether POL register has effect. */
138 #define FSL_FEATURE_TPM_POL_HAS_EFFECTn(x) (0)
139 /* @brief Whether 32 bits counter has effect. */
140 #define FSL_FEATURE_TPM_HAS_32BIT_COUNTERn(x) (0)
141 
142 /* FTMRE module features */
143 
144 /* @brief Is of type FTMRE. */
145 #define FSL_FEATURE_FLASH_IS_FTMRE (1)
146 /* @brief Is of type FTMRH. */
147 #define FSL_FEATURE_FLASH_IS_FTMRH (0)
148 /* @brief Has EEPROM region protection (register FEPROT). */
149 #define FSL_FEATURE_FLASH_HAS_EEROM_REGION_PROTECTION (0)
150 /* @brief Has flash cache control in FMC module. */
151 #define FSL_FEATURE_FLASH_HAS_FMC_FLASH_CACHE_CONTROLS (0)
152 /* @brief Has flash cache control in MCM module. */
153 #define FSL_FEATURE_FLASH_HAS_MCM_FLASH_CACHE_CONTROLS (1)
154 /* @brief P-Flash higher region start address. */
155 #define FSL_FEATURE_FLASH_PFLASH_HIGH_START_ADDRESS (0x00007FFF)
156 /* @brief P-Flash start address. */
157 #define FSL_FEATURE_FLASH_PFLASH_START_ADDRESS (0x00000000)
158 /* @brief P-Flash block count. */
159 #define FSL_FEATURE_FLASH_PFLASH_BLOCK_COUNT (1)
160 /* @brief P-Flash block size. */
161 #define FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE (8192)
162 /* @brief P-Flash sector size. */
163 #define FSL_FEATURE_FLASH_PFLASH_BLOCK_SECTOR_SIZE (512)
164 /* @brief P-Flash write unit size. */
165 #define FSL_FEATURE_FLASH_PFLASH_BLOCK_WRITE_UNIT_SIZE (8)
166 /* @brief P-Flash data path width. */
167 #define FSL_FEATURE_FLASH_PFLASH_BLOCK_DATA_PATH_WIDTH (16)
168 /* @brief Has EEPROM memory. */
169 #define FSL_FEATURE_FLASH_HAS_EEPROM (0)
170 /* @brief EEPROM start address. */
171 #define FSL_FEATURE_FLASH_EEPROM_START_ADDRESS (0x10000000)
172 /* @brief EEPROM block count. */
173 #define FSL_FEATURE_FLASH_EEPROM_BLOCK_COUNT (0)
174 /* @brief EEPROM block size . */
175 #define FSL_FEATURE_FLASH_EEPROM_BLOCK_SIZE (0)
176 /* @brief EEPROM sector size. */
177 #define FSL_FEATURE_FLASH_EEPROM_BLOCK_SECTOR_SIZE (0)
178 /* @brief EEPROM write unit size. */
179 #define FSL_FEATURE_FLASH_EEPROM_BLOCK_WRITE_UNIT_SIZE (0)
180 /* @brief EEPROM data path width. */
181 #define FSL_FEATURE_FLASH_EEPROM_BLOCK_DATA_PATH_WIDTH (0)
182 /* @brief Has 0x01 Erase Verify All Blocks command. */
183 #define FSL_FEATURE_FLASH_HAS_ERASE_VERIFY_ALL_BLOCKS_CMD (1)
184 /* @brief Has 0x02 Erase Verify Block command. */
185 #define FSL_FEATURE_FLASH_HAS_ERASE_VERIFY_BLOCK_CMD (1)
186 /* @brief Has 0x03 Erase Verify Flash Section command. */
187 #define FSL_FEATURE_FLASH_HAS_ERASE_VERIFY_FLASH_SECTION_CMD (1)
188 /* @brief Has 0x04 Read Once command. */
189 #define FSL_FEATURE_FLASH_HAS_READ_ONCE_CMD (1)
190 /* @brief Has 0x06 Program Flash command. */
191 #define FSL_FEATURE_FLASH_HAS_PROGRAM_FLASH_CMD (1)
192 /* @brief Has 0x07 Program Once command. */
193 #define FSL_FEATURE_FLASH_HAS_PROGRAM_ONCE_CMD (1)
194 /* @brief Has 0x08 Erase All Blocks command. */
195 #define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_CMD (1)
196 /* @brief Has 0x09 Erase Flash Block command. */
197 #define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_BLOCK_CMD (1)
198 /* @brief Has 0x0A Erase Flash Sector command. */
199 #define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_SECTOR_CMD (1)
200 /* @brief Has 0x0B Unsecure Flash command. */
201 #define FSL_FEATURE_FLASH_HAS_UNSECURE_FLASH_CMD (1)
202 /* @brief Has 0x0C Verify Backdoor Access Key command. */
203 #define FSL_FEATURE_FLASH_HAS_VERIFY_BACKDOOR_ACCESS_KEY_CMD (1)
204 /* @brief Has 0x0D Set User Margin Level command. */
205 #define FSL_FEATURE_FLASH_HAS_SET_USER_MARGIN_LEVEL_CMD (1)
206 /* @brief Has 0x0E Set Factory Margin Level command. */
207 #define FSL_FEATURE_FLASH_HAS_SET_FACTORY_MARGIN_LEVEL_CMD (1)
208 /* @brief Has 0x0F Configure NVM command. */
209 #define FSL_FEATURE_FLASH_HAS_CONFIGURE_NVM_CMD (0)
210 /* @brief Has 0x10 Erase Verify EEPROM Section command. */
211 #define FSL_FEATURE_FLASH_HAS_ERASE_VERIFY_EEPROM_SECTION_CMD (0)
212 /* @brief Has 0x11 Program EEPROM command. */
213 #define FSL_FEATURE_FLASH_HAS_PROGRAM_EEPROM_CMD (0)
214 /* @brief Has 0x12 Erase EEPROM Sector command. */
215 #define FSL_FEATURE_FLASH_HAS_ERASE_EEPROM_SECTOR_CMD (0)
216 /* @brief P-Flash Erase sector command address alignment. */
217 #define FSL_FEATURE_FLASH_PFLASH_SECTOR_CMD_ADDRESS_ALIGMENT (4)
218 /* @brief P-Flash Rrogram/Verify section command address alignment. */
219 #define FSL_FEATURE_FLASH_PFLASH_SECTION_CMD_ADDRESS_ALIGMENT (4)
220 /* @brief P-Flash Program flash command address alignment. */
221 #define FSL_FEATURE_FLASH_PFLASH_PROGRAM_CMD_ADDRESS_ALIGMENT (4)
222 
223 /* GPIO module features */
224 
225 /* @brief Has GPIO attribute checker register (GACR). */
226 #define FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER (0)
227 
228 /* I2C module features */
229 
230 /* @brief Has System Management Bus support (registers SMB, A2, SLTL and SLTH). */
231 #define FSL_FEATURE_I2C_HAS_SMBUS (1)
232 /* @brief Maximum supported baud rate in kilobit per second. */
233 #define FSL_FEATURE_I2C_MAX_BAUD_KBPS (400)
234 /* @brief Is affected by errata with ID 6070 (repeat start cannot be generated if the F[MULT] bit field is set to a non-zero value). */
235 #define FSL_FEATURE_I2C_HAS_ERRATA_6070 (0)
236 /* @brief Has DMA support (register bit C1[DMAEN]). */
237 #define FSL_FEATURE_I2C_HAS_DMA_SUPPORT (0)
238 /* @brief Has I2C bus start and stop detection (register bits FLT[SSIE], FLT[STARTF] and FLT[STOPF]). */
239 #define FSL_FEATURE_I2C_HAS_START_STOP_DETECT (1)
240 /* @brief Has I2C bus stop detection (register bits FLT[STOPIE] and FLT[STOPF]). */
241 #define FSL_FEATURE_I2C_HAS_STOP_DETECT (0)
242 /* @brief Has I2C bus stop hold off (register bit FLT[SHEN]). */
243 #define FSL_FEATURE_I2C_HAS_STOP_HOLD_OFF (1)
244 /* @brief Maximum width of the glitch filter in number of bus clocks. */
245 #define FSL_FEATURE_I2C_MAX_GLITCH_FILTER_WIDTH (15)
246 /* @brief Has control of the drive capability of the I2C pins. */
247 #define FSL_FEATURE_I2C_HAS_HIGH_DRIVE_SELECTION (0)
248 /* @brief Has double buffering support (register S2). */
249 #define FSL_FEATURE_I2C_HAS_DOUBLE_BUFFERING (0)
250 /* @brief Has double buffer enable. */
251 #define FSL_FEATURE_I2C_HAS_DOUBLE_BUFFER_ENABLE (0)
252 
253 /* KBI module features */
254 
255 /* @brief KBI module has source pin. */
256 #define FSL_FEATURE_KBI_HAS_SOURCE_PIN (0)
257 /* @brief KBI register width. */
258 #define FSL_FEATURE_KBI_REG_WIDTH (8)
259 
260 /* PIT module features */
261 
262 /* @brief Number of channels (related to number of registers LDVALn, CVALn, TCTRLn, TFLGn). */
263 #define FSL_FEATURE_PIT_TIMER_COUNT (2)
264 /* @brief Has lifetime timer (related to existence of registers LTMR64L and LTMR64H). */
265 #define FSL_FEATURE_PIT_HAS_LIFETIME_TIMER (0)
266 /* @brief Has chain mode (related to existence of register bit field TCTRLn[CHN]). */
267 #define FSL_FEATURE_PIT_HAS_CHAIN_MODE (1)
268 /* @brief Has shared interrupt handler (has not individual interrupt handler for each channel). */
269 #define FSL_FEATURE_PIT_HAS_SHARED_IRQ_HANDLER (0)
270 /* @brief Has timer enable control. */
271 #define FSL_FEATURE_PIT_HAS_MDIS (1)
272 
273 /* SPI module features */
274 
275 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
276 #define FSL_FEATURE_SPI_HAS_FIFO (0)
277 /* @brief Has DMA support (register bit fields C2[RXDMAE] and C2[TXDMAE]). */
278 #define FSL_FEATURE_SPI_HAS_DMA_SUPPORT (0)
279 /* @brief Has separate DMA RX and TX requests. */
280 #define FSL_FEATURE_SPI_HAS_SEPARATE_DMA_RX_TX_REQn(x) (0)
281 /* @brief Receive/transmit FIFO size in number of 16-bit communication items. */
282 #define FSL_FEATURE_SPI_FIFO_SIZEn(x) (0)
283 /* @brief Maximum transfer data width in bits. */
284 #define FSL_FEATURE_SPI_MAX_DATA_WIDTH (8)
285 /* @brief The data register name has postfix (L as low and H as high). */
286 #define FSL_FEATURE_SPI_DATA_REGISTER_HAS_POSTFIX (0)
287 /* @brief Has separated TXDATA and CMD FIFOs (register SREX). */
288 #define FSL_FEATURE_SPI_HAS_SEPARATE_TXDATA_CMD_FIFO (0)
289 /* @brief Has 16-bit data transfer support. */
290 #define FSL_FEATURE_SPI_16BIT_TRANSFERS (0)
291 
292 /* UART module features */
293 
294 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
295 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
296 /* @brief Has low power features (can be enabled in wait mode via register bit C1[DOZEEN] or CTRL[DOZEEN] if the registers are 32-bit wide). */
297 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
298 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
299 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (0)
300 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
301 #define FSL_FEATURE_UART_HAS_FIFO (0)
302 /* @brief Hardware flow control (RTS, CTS) is supported. */
303 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (0)
304 /* @brief Infrared (modulation) is supported. */
305 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (0)
306 /* @brief 2 bits long stop bit is available. */
307 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (1)
308 /* @brief If 10-bit mode is supported. */
309 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
310 /* @brief Baud rate fine adjustment is available. */
311 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (0)
312 /* @brief Baud rate oversampling is available (has bit fields C4[OSR], C5[BOTHEDGE], C5[RESYNCDIS] or BAUD[OSR], BAUD[BOTHEDGE], BAUD[RESYNCDIS] if the registers are 32-bit wide). */
313 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
314 /* @brief Baud rate oversampling is available. */
315 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (1)
316 /* @brief Baud rate oversampling is available. */
317 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (1)
318 /* @brief Peripheral type. */
319 #define FSL_FEATURE_UART_IS_SCI (0)
320 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
321 #define FSL_FEATURE_UART_FIFO_SIZE (0)
322 /* @brief Supports two match addresses to filter incoming frames. */
323 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (0)
324 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
325 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
326 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
327 #define FSL_FEATURE_UART_HAS_DMA_SELECT (0)
328 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
329 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (0)
330 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
331 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (0)
332 /* @brief Has improved smart card (ISO7816 protocol) support. */
333 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
334 /* @brief Has local operation network (CEA709.1-B protocol) support. */
335 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
336 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
337 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
338 /* @brief Lin break detect available (has bit BDH[LBKDIE]). */
339 #define FSL_FEATURE_UART_HAS_LIN_BREAK_DETECT (1)
340 /* @brief UART stops in Wait mode available (has bit C1[UARTSWAI]). */
341 #define FSL_FEATURE_UART_HAS_WAIT_MODE_OPERATION (1)
342 /* @brief Has separate DMA RX and TX requests. */
343 #define FSL_FEATURE_UART_HAS_SEPARATE_DMA_RX_TX_REQn(x) (0)
344 
345 #endif /* _MKE04Z4_FEATURES_H_ */
346 
347