2 ** ###################################################################
3 ** Version: rev. 1.0, 2014-05-14
7 ** Chip specific module features.
9 ** Copyright: 2014 Freescale Semiconductor, Inc.
10 ** All rights reserved.
12 ** Redistribution and use in source and binary forms, with or without modification,
13 ** are permitted provided that the following conditions are met:
15 ** o Redistributions of source code must retain the above copyright notice, this list
16 ** of conditions and the following disclaimer.
18 ** o Redistributions in binary form must reproduce the above copyright notice, this
19 ** list of conditions and the following disclaimer in the documentation and/or
20 ** other materials provided with the distribution.
22 ** o Neither the name of Freescale Semiconductor, Inc. nor the names of its
23 ** contributors may be used to endorse or promote products derived from this
24 ** software without specific prior written permission.
26 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
27 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
30 ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31 ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
32 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
33 ** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 ** http: www.freescale.com
38 ** mail: support@freescale.com
41 ** - rev. 1.0 (2014-05-14)
44 ** ###################################################################
47 #if !defined(__FSL_UART_FEATURES_H__)
48 #define __FSL_UART_FEATURES_H__
50 #if defined(CPU_MK02FN128VFM10) || defined(CPU_MK02FN64VFM10) || defined(CPU_MK02FN128VLF10) || defined(CPU_MK02FN64VLF10) || \
51 defined(CPU_MK02FN128VLH10) || defined(CPU_MK02FN64VLH10) || defined(CPU_MKV30F128VFM10) || defined(CPU_MKV30F64VFM10) || \
52 defined(CPU_MKV30F128VLF10) || defined(CPU_MKV30F64VLF10) || defined(CPU_MKV30F128VLH10) || defined(CPU_MKV30F64VLH10)
53 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
54 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
55 /* @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). */
56 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
57 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
59 ((x) == 1 ? (0) : (-1)))
60 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
61 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
62 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
63 #define FSL_FEATURE_UART_HAS_FIFO (1)
64 /* @brief Hardware flow control (RTS, CTS) is supported. */
65 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
66 /* @brief Infrared (modulation) is supported. */
67 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
68 /* @brief 2 bits long stop bit is available. */
69 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (0)
70 /* @brief Maximal data width without parity bit. */
71 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
72 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
74 ((x) == 1 ? (0) : (-1)))
75 /* @brief Baud rate fine adjustment is available. */
76 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
77 /* @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). */
78 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
79 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
81 ((x) == 1 ? (0) : (-1)))
82 /* @brief Baud rate oversampling is available. */
83 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
84 /* @brief Baud rate oversampling is available. */
85 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
86 /* @brief Peripheral type. */
87 #define FSL_FEATURE_UART_IS_SCI (0)
88 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
89 #define FSL_FEATURE_UART_FIFO_SIZE (8)
90 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
92 ((x) == 1 ? (1) : (-1)))
93 /* @brief Maximal data width without parity bit. */
94 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
95 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
97 ((x) == 1 ? (9) : (-1)))
98 /* @brief Maximal data width with parity bit. */
99 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
100 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
102 ((x) == 1 ? (10) : (-1)))
103 /* @brief Supports two match addresses to filter incoming frames. */
104 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
105 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
107 ((x) == 1 ? (1) : (-1)))
108 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
109 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
110 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
112 ((x) == 1 ? (0) : (-1)))
113 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
114 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
115 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
117 ((x) == 1 ? (1) : (-1)))
118 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
119 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
120 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
122 ((x) == 1 ? (1) : (-1)))
123 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
124 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (0)
125 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
127 ((x) == 1 ? (0) : (-1)))
128 /* @brief Has improved smart card (ISO7816 protocol) support. */
129 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
130 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
132 ((x) == 1 ? (0) : (-1)))
133 /* @brief Has local operation network (CEA709.1-B protocol) support. */
134 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
135 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
137 ((x) == 1 ? (0) : (-1)))
138 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
139 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
140 #elif defined(CPU_MK20DX128VMP5) || defined(CPU_MK20DN128VMP5) || defined(CPU_MK20DX64VMP5) || defined(CPU_MK20DN64VMP5) || \
141 defined(CPU_MK20DX32VMP5) || defined(CPU_MK20DN32VMP5) || defined(CPU_MK20DX128VLH5) || defined(CPU_MK20DN128VLH5) || \
142 defined(CPU_MK20DX64VLH5) || defined(CPU_MK20DN64VLH5) || defined(CPU_MK20DX32VLH5) || defined(CPU_MK20DN32VLH5) || \
143 defined(CPU_MK20DX128VFT5) || defined(CPU_MK20DN128VFT5) || defined(CPU_MK20DX64VFT5) || defined(CPU_MK20DN64VFT5) || \
144 defined(CPU_MK20DX32VFT5) || defined(CPU_MK20DN32VFT5) || defined(CPU_MK20DX128VLF5) || defined(CPU_MK20DN128VLF5) || \
145 defined(CPU_MK20DX64VLF5) || defined(CPU_MK20DN64VLF5) || defined(CPU_MK20DX32VLF5) || defined(CPU_MK20DN32VLF5)
146 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
147 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (0)
148 /* @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). */
149 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
150 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
153 ((x) == 2 ? (0) : (-1))))
154 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
155 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
156 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
157 #define FSL_FEATURE_UART_HAS_FIFO (1)
158 /* @brief Hardware flow control (RTS, CTS) is supported. */
159 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
160 /* @brief Infrared (modulation) is supported. */
161 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
162 /* @brief 2 bits long stop bit is available. */
163 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (0)
164 /* @brief Maximal data width without parity bit. */
165 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
166 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
169 ((x) == 2 ? (0) : (-1))))
170 /* @brief Baud rate fine adjustment is available. */
171 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
172 /* @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). */
173 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
174 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
177 ((x) == 2 ? (0) : (-1))))
178 /* @brief Baud rate oversampling is available. */
179 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
180 /* @brief Baud rate oversampling is available. */
181 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
182 /* @brief Peripheral type. */
183 #define FSL_FEATURE_UART_IS_SCI (0)
184 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
185 #define FSL_FEATURE_UART_FIFO_SIZE (8)
186 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
189 ((x) == 2 ? (1) : (-1))))
190 /* @brief Maximal data width without parity bit. */
191 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
192 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
195 ((x) == 2 ? (9) : (-1))))
196 /* @brief Maximal data width with parity bit. */
197 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
198 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
201 ((x) == 2 ? (10) : (-1))))
202 /* @brief Supports two match addresses to filter incoming frames. */
203 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
204 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
207 ((x) == 2 ? (1) : (-1))))
208 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
209 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
210 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
213 ((x) == 2 ? (0) : (-1))))
214 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
215 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
216 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
219 ((x) == 2 ? (1) : (-1))))
220 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
221 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
222 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
225 ((x) == 2 ? (1) : (-1))))
226 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
227 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (1)
228 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
231 ((x) == 2 ? (0) : (-1))))
232 /* @brief Has improved smart card (ISO7816 protocol) support. */
233 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
234 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
237 ((x) == 2 ? (0) : (-1))))
238 /* @brief Has local operation network (CEA709.1-B protocol) support. */
239 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (1)
240 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
243 ((x) == 2 ? (0) : (-1))))
244 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
245 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
246 #elif defined(CPU_MK20DX128VFM5) || defined(CPU_MK20DN128VFM5) || defined(CPU_MK20DX64VFM5) || defined(CPU_MK20DN64VFM5) || \
247 defined(CPU_MK20DX32VFM5) || defined(CPU_MK20DN32VFM5)
248 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
249 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (0)
250 /* @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). */
251 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
252 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
254 ((x) == 1 ? (0) : (-1)))
255 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
256 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
257 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
258 #define FSL_FEATURE_UART_HAS_FIFO (1)
259 /* @brief Hardware flow control (RTS, CTS) is supported. */
260 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
261 /* @brief Infrared (modulation) is supported. */
262 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
263 /* @brief 2 bits long stop bit is available. */
264 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (0)
265 /* @brief Maximal data width without parity bit. */
266 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
267 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
269 ((x) == 1 ? (0) : (-1)))
270 /* @brief Baud rate fine adjustment is available. */
271 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
272 /* @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). */
273 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
274 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
276 ((x) == 1 ? (0) : (-1)))
277 /* @brief Baud rate oversampling is available. */
278 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
279 /* @brief Baud rate oversampling is available. */
280 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
281 /* @brief Peripheral type. */
282 #define FSL_FEATURE_UART_IS_SCI (0)
283 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
284 #define FSL_FEATURE_UART_FIFO_SIZE (8)
285 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
287 ((x) == 1 ? (1) : (-1)))
288 /* @brief Maximal data width without parity bit. */
289 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
290 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
292 ((x) == 1 ? (9) : (-1)))
293 /* @brief Maximal data width with parity bit. */
294 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
295 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
297 ((x) == 1 ? (10) : (-1)))
298 /* @brief Supports two match addresses to filter incoming frames. */
299 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
300 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
302 ((x) == 1 ? (1) : (-1)))
303 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
304 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
305 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
307 ((x) == 1 ? (0) : (-1)))
308 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
309 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
310 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
312 ((x) == 1 ? (1) : (-1)))
313 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
314 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
315 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
317 ((x) == 1 ? (1) : (-1)))
318 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
319 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (1)
320 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
322 ((x) == 1 ? (0) : (-1)))
323 /* @brief Has improved smart card (ISO7816 protocol) support. */
324 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
325 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
327 ((x) == 1 ? (0) : (-1)))
328 /* @brief Has local operation network (CEA709.1-B protocol) support. */
329 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (1)
330 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
332 ((x) == 1 ? (0) : (-1)))
333 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
334 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
335 #elif defined(CPU_MK22FN128VDC10) || defined(CPU_MK22FN128VLH10) || defined(CPU_MK22FN128VLL10) || defined(CPU_MK22FN128VMP10) || \
336 defined(CPU_MK22FN256VDC12) || defined(CPU_MK22FN256VLH12) || defined(CPU_MK22FN256VLL12) || defined(CPU_MK22FN256VMP12) || \
337 defined(CPU_MK22FN512VDC12) || defined(CPU_MK22FN512VLH12) || defined(CPU_MK22FN512VLL12) || defined(CPU_MKV31F128VLH10) || \
338 defined(CPU_MKV31F128VLL10) || defined(CPU_MKV31F256VLH12) || defined(CPU_MKV31F256VLL12) || defined(CPU_MKV31F512VLH12) || \
339 defined(CPU_MKV31F512VLL12)
340 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
341 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
342 /* @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). */
343 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
344 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
347 ((x) == 2 ? (0) : (-1))))
348 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
349 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
350 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
351 #define FSL_FEATURE_UART_HAS_FIFO (1)
352 /* @brief Hardware flow control (RTS, CTS) is supported. */
353 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
354 /* @brief Infrared (modulation) is supported. */
355 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
356 /* @brief 2 bits long stop bit is available. */
357 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (0)
358 /* @brief Maximal data width without parity bit. */
359 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
360 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
363 ((x) == 2 ? (0) : (-1))))
364 /* @brief Baud rate fine adjustment is available. */
365 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
366 /* @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). */
367 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
368 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
371 ((x) == 2 ? (0) : (-1))))
372 /* @brief Baud rate oversampling is available. */
373 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
374 /* @brief Baud rate oversampling is available. */
375 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
376 /* @brief Peripheral type. */
377 #define FSL_FEATURE_UART_IS_SCI (0)
378 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
379 #define FSL_FEATURE_UART_FIFO_SIZE (8)
380 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
383 ((x) == 2 ? (1) : (-1))))
384 /* @brief Maximal data width without parity bit. */
385 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
386 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
389 ((x) == 2 ? (9) : (-1))))
390 /* @brief Maximal data width with parity bit. */
391 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
392 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
395 ((x) == 2 ? (10) : (-1))))
396 /* @brief Supports two match addresses to filter incoming frames. */
397 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
398 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
401 ((x) == 2 ? (1) : (-1))))
402 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
403 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
404 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
407 ((x) == 2 ? (0) : (-1))))
408 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
409 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
410 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
413 ((x) == 2 ? (1) : (-1))))
414 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
415 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
416 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
419 ((x) == 2 ? (1) : (-1))))
420 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
421 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (1)
422 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
425 ((x) == 2 ? (0) : (-1))))
426 /* @brief Has improved smart card (ISO7816 protocol) support. */
427 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (1)
428 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
431 ((x) == 2 ? (0) : (-1))))
432 /* @brief Has local operation network (CEA709.1-B protocol) support. */
433 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
434 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
437 ((x) == 2 ? (0) : (-1))))
438 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
439 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
440 #elif defined(CPU_MK24FN1M0VDC12) || defined(CPU_MK24FN1M0VLL12) || defined(CPU_MK24FN1M0VLQ12) || defined(CPU_MK24FN256VDC12) || \
441 defined(CPU_MK63FN1M0VLQ12) || defined(CPU_MK63FN1M0VMD12) || defined(CPU_MK64FX512VDC12) || defined(CPU_MK64FN1M0VDC12) || \
442 defined(CPU_MK64FX512VLL12) || defined(CPU_MK64FN1M0VLL12) || defined(CPU_MK64FX512VLQ12) || defined(CPU_MK64FN1M0VLQ12) || \
443 defined(CPU_MK64FX512VMD12) || defined(CPU_MK64FN1M0VMD12)
444 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
445 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
446 /* @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). */
447 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
448 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
454 ((x) == 5 ? (0) : (-1)))))))
455 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
456 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
457 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
458 #define FSL_FEATURE_UART_HAS_FIFO (1)
459 /* @brief Hardware flow control (RTS, CTS) is supported. */
460 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
461 /* @brief Infrared (modulation) is supported. */
462 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
463 /* @brief 2 bits long stop bit is available. */
464 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (1)
465 /* @brief Maximal data width without parity bit. */
466 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
467 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
473 ((x) == 5 ? (0) : (-1)))))))
474 /* @brief Baud rate fine adjustment is available. */
475 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
476 /* @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). */
477 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
478 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
484 ((x) == 5 ? (0) : (-1)))))))
485 /* @brief Baud rate oversampling is available. */
486 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
487 /* @brief Baud rate oversampling is available. */
488 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
489 /* @brief Peripheral type. */
490 #define FSL_FEATURE_UART_IS_SCI (0)
491 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
492 #define FSL_FEATURE_UART_FIFO_SIZE (8)
493 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
499 ((x) == 5 ? (1) : (-1)))))))
500 /* @brief Maximal data width without parity bit. */
501 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
502 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
508 ((x) == 5 ? (9) : (-1)))))))
509 /* @brief Maximal data width with parity bit. */
510 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
511 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
517 ((x) == 5 ? (10) : (-1)))))))
518 /* @brief Supports two match addresses to filter incoming frames. */
519 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
520 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
526 ((x) == 5 ? (1) : (-1)))))))
527 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
528 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
529 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
535 ((x) == 5 ? (0) : (-1)))))))
536 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
537 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
538 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
544 ((x) == 5 ? (1) : (-1)))))))
545 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
546 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
547 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
553 ((x) == 5 ? (1) : (-1)))))))
554 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
555 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (1)
556 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
562 ((x) == 5 ? (0) : (-1)))))))
563 /* @brief Has improved smart card (ISO7816 protocol) support. */
564 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
565 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
571 ((x) == 5 ? (0) : (-1)))))))
572 /* @brief Has local operation network (CEA709.1-B protocol) support. */
573 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
574 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
580 ((x) == 5 ? (0) : (-1)))))))
581 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
582 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
583 #elif defined(CPU_MK65FN2M0CAC18) || defined(CPU_MK65FX1M0CAC18) || defined(CPU_MK65FN2M0VMI18) || defined(CPU_MK65FX1M0VMI18) || \
584 defined(CPU_MK66FN2M0VLQ18) || defined(CPU_MK66FX1M0VLQ18) || defined(CPU_MK66FN2M0VMD18) || defined(CPU_MK66FX1M0VMD18)
585 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
586 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
587 /* @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). */
588 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
589 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
594 ((x) == 4 ? (0) : (-1))))))
595 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
596 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
597 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
598 #define FSL_FEATURE_UART_HAS_FIFO (1)
599 /* @brief Hardware flow control (RTS, CTS) is supported. */
600 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
601 /* @brief Infrared (modulation) is supported. */
602 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
603 /* @brief 2 bits long stop bit is available. */
604 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (1)
605 /* @brief Maximal data width without parity bit. */
606 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
607 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
612 ((x) == 4 ? (0) : (-1))))))
613 /* @brief Baud rate fine adjustment is available. */
614 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
615 /* @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). */
616 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
617 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
622 ((x) == 4 ? (0) : (-1))))))
623 /* @brief Baud rate oversampling is available. */
624 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
625 /* @brief Baud rate oversampling is available. */
626 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
627 /* @brief Peripheral type. */
628 #define FSL_FEATURE_UART_IS_SCI (0)
629 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
630 #define FSL_FEATURE_UART_FIFO_SIZE (8)
631 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
636 ((x) == 4 ? (1) : (-1))))))
637 /* @brief Maximal data width without parity bit. */
638 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
639 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
644 ((x) == 4 ? (9) : (-1))))))
645 /* @brief Maximal data width with parity bit. */
646 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
647 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
652 ((x) == 4 ? (10) : (-1))))))
653 /* @brief Supports two match addresses to filter incoming frames. */
654 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
655 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
660 ((x) == 4 ? (1) : (-1))))))
661 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
662 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
663 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
668 ((x) == 4 ? (0) : (-1))))))
669 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
670 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
671 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
676 ((x) == 4 ? (1) : (-1))))))
677 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
678 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
679 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
684 ((x) == 4 ? (1) : (-1))))))
685 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
686 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (1)
687 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
692 ((x) == 4 ? (0) : (-1))))))
693 /* @brief Has improved smart card (ISO7816 protocol) support. */
694 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (1)
695 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
700 ((x) == 4 ? (0) : (-1))))))
701 /* @brief Has local operation network (CEA709.1-B protocol) support. */
702 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
703 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
708 ((x) == 4 ? (0) : (-1))))))
709 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
710 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
711 #elif defined(CPU_MK70FN1M0VMF12) || defined(CPU_MK70FX512VMF12) || defined(CPU_MK70FN1M0VMF15) || defined(CPU_MK70FX512VMF15) || \
712 defined(CPU_MK70FN1M0VMJ12) || defined(CPU_MK70FX512VMJ12) || defined(CPU_MK70FN1M0VMJ15) || defined(CPU_MK70FX512VMJ15)
713 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
714 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
715 /* @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). */
716 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
717 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
723 ((x) == 5 ? (0) : (-1)))))))
724 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
725 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
726 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
727 #define FSL_FEATURE_UART_HAS_FIFO (1)
728 /* @brief Hardware flow control (RTS, CTS) is supported. */
729 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
730 /* @brief Infrared (modulation) is supported. */
731 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
732 /* @brief 2 bits long stop bit is available. */
733 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (0)
734 /* @brief Maximal data width without parity bit. */
735 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
736 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
742 ((x) == 5 ? (0) : (-1)))))))
743 /* @brief Baud rate fine adjustment is available. */
744 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
745 /* @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). */
746 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
747 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
753 ((x) == 5 ? (0) : (-1)))))))
754 /* @brief Baud rate oversampling is available. */
755 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
756 /* @brief Baud rate oversampling is available. */
757 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
758 /* @brief Peripheral type. */
759 #define FSL_FEATURE_UART_IS_SCI (0)
760 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
761 #define FSL_FEATURE_UART_FIFO_SIZE (8)
762 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
768 ((x) == 5 ? (8) : (-1)))))))
769 /* @brief Maximal data width without parity bit. */
770 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
771 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
777 ((x) == 5 ? (9) : (-1)))))))
778 /* @brief Maximal data width with parity bit. */
779 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
780 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
786 ((x) == 5 ? (10) : (-1)))))))
787 /* @brief Supports two match addresses to filter incoming frames. */
788 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
789 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
795 ((x) == 5 ? (1) : (-1)))))))
796 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
797 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
798 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
804 ((x) == 5 ? (0) : (-1)))))))
805 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
806 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
807 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
813 ((x) == 5 ? (1) : (-1)))))))
814 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
815 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
816 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
822 ((x) == 5 ? (1) : (-1)))))))
823 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
824 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (1)
825 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
831 ((x) == 5 ? (0) : (-1)))))))
832 /* @brief Has improved smart card (ISO7816 protocol) support. */
833 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
834 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
840 ((x) == 5 ? (0) : (-1)))))))
841 /* @brief Has local operation network (CEA709.1-B protocol) support. */
842 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (1)
843 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
849 ((x) == 5 ? (0) : (-1)))))))
850 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
851 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
852 #elif defined(CPU_MKL05Z8VFK4) || defined(CPU_MKL05Z16VFK4) || defined(CPU_MKL05Z32VFK4) || defined(CPU_MKL05Z8VLC4) || \
853 defined(CPU_MKL05Z16VLC4) || defined(CPU_MKL05Z32VLC4) || defined(CPU_MKL05Z8VFM4) || defined(CPU_MKL05Z16VFM4) || \
854 defined(CPU_MKL05Z32VFM4) || defined(CPU_MKL05Z16VLF4) || defined(CPU_MKL05Z32VLF4)
855 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
856 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
857 /* @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). */
858 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (1)
859 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
860 ((x) == 0 ? (1) : (-1))
861 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
862 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (0)
863 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
864 #define FSL_FEATURE_UART_HAS_FIFO (0)
865 /* @brief Hardware flow control (RTS, CTS) is supported. */
866 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (0)
867 /* @brief Infrared (modulation) is supported. */
868 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (0)
869 /* @brief 2 bits long stop bit is available. */
870 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (1)
871 /* @brief Maximal data width without parity bit. */
872 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (1)
873 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
874 ((x) == 0 ? (1) : (-1))
875 /* @brief Baud rate fine adjustment is available. */
876 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (0)
877 /* @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). */
878 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (1)
879 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
880 ((x) == 0 ? (1) : (-1))
881 /* @brief Baud rate oversampling is available. */
882 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (1)
883 /* @brief Baud rate oversampling is available. */
884 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (1)
885 /* @brief Peripheral type. */
886 #define FSL_FEATURE_UART_IS_SCI (1)
887 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
888 #define FSL_FEATURE_UART_FIFO_SIZE (0)
889 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
890 ((x) == 0 ? (0) : (-1))
891 /* @brief Maximal data width without parity bit. */
892 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (10)
893 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
894 ((x) == 0 ? (10) : (-1))
895 /* @brief Maximal data width with parity bit. */
896 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (9)
897 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
898 ((x) == 0 ? (9) : (-1))
899 /* @brief Supports two match addresses to filter incoming frames. */
900 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
901 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
902 ((x) == 0 ? (1) : (-1))
903 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
904 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (1)
905 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
906 ((x) == 0 ? (1) : (-1))
907 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
908 #define FSL_FEATURE_UART_HAS_DMA_SELECT (0)
909 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
910 ((x) == 0 ? (0) : (-1))
911 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
912 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
913 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
914 ((x) == 0 ? (1) : (-1))
915 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
916 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (0)
917 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
918 ((x) == 0 ? (0) : (-1))
919 /* @brief Has improved smart card (ISO7816 protocol) support. */
920 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
921 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
922 ((x) == 0 ? (0) : (-1))
923 /* @brief Has local operation network (CEA709.1-B protocol) support. */
924 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
925 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
926 ((x) == 0 ? (0) : (-1))
927 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
928 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
929 #elif defined(CPU_MKL13Z64VFM4) || defined(CPU_MKL13Z128VFM4) || defined(CPU_MKL13Z256VFM4) || defined(CPU_MKL13Z64VFT4) || \
930 defined(CPU_MKL13Z128VFT4) || defined(CPU_MKL13Z256VFT4) || defined(CPU_MKL13Z64VLH4) || defined(CPU_MKL13Z128VLH4) || \
931 defined(CPU_MKL13Z256VLH4) || defined(CPU_MKL13Z64VMP4) || defined(CPU_MKL13Z128VMP4) || defined(CPU_MKL13Z256VMP4) || \
932 defined(CPU_MKL23Z64VFM4) || defined(CPU_MKL23Z128VFM4) || defined(CPU_MKL23Z256VFM4) || defined(CPU_MKL23Z64VFT4) || \
933 defined(CPU_MKL23Z128VFT4) || defined(CPU_MKL23Z256VFT4) || defined(CPU_MKL23Z64VLH4) || defined(CPU_MKL23Z128VLH4) || \
934 defined(CPU_MKL23Z256VLH4) || defined(CPU_MKL23Z64VMP4) || defined(CPU_MKL23Z128VMP4) || defined(CPU_MKL23Z256VMP4) || \
935 defined(CPU_MKL33Z128VLH4) || defined(CPU_MKL33Z256VLH4) || defined(CPU_MKL33Z128VMP4) || defined(CPU_MKL33Z256VMP4) || \
936 defined(CPU_MKL43Z64VLH4) || defined(CPU_MKL43Z128VLH4) || defined(CPU_MKL43Z256VLH4) || defined(CPU_MKL43Z64VMP4) || \
937 defined(CPU_MKL43Z128VMP4) || defined(CPU_MKL43Z256VMP4)
938 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
939 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
940 /* @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). */
941 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
942 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
943 ((x) == 0 ? (0) : (-1))
944 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
945 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
946 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
947 #define FSL_FEATURE_UART_HAS_FIFO (1)
948 /* @brief Hardware flow control (RTS, CTS) is supported. */
949 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
950 /* @brief Infrared (modulation) is supported. */
951 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
952 /* @brief 2 bits long stop bit is available. */
953 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (0)
954 /* @brief Maximal data width without parity bit. */
955 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
956 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
957 ((x) == 0 ? (0) : (-1))
958 /* @brief Baud rate fine adjustment is available. */
959 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
960 /* @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). */
961 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
962 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
963 ((x) == 0 ? (0) : (-1))
964 /* @brief Baud rate oversampling is available. */
965 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
966 /* @brief Baud rate oversampling is available. */
967 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
968 /* @brief Peripheral type. */
969 #define FSL_FEATURE_UART_IS_SCI (0)
970 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
971 #define FSL_FEATURE_UART_FIFO_SIZE (8)
972 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
973 ((x) == 0 ? (8) : (-1))
974 /* @brief Maximal data width without parity bit. */
975 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
976 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
977 ((x) == 0 ? (9) : (-1))
978 /* @brief Maximal data width with parity bit. */
979 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
980 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
981 ((x) == 0 ? (10) : (-1))
982 /* @brief Supports two match addresses to filter incoming frames. */
983 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
984 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
985 ((x) == 0 ? (1) : (-1))
986 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
987 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
988 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
989 ((x) == 0 ? (0) : (-1))
990 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
991 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
992 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
993 ((x) == 0 ? (1) : (-1))
994 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
995 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
996 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
997 ((x) == 0 ? (1) : (-1))
998 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
999 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (1)
1000 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
1001 ((x) == 0 ? (1) : (-1))
1002 /* @brief Has improved smart card (ISO7816 protocol) support. */
1003 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (1)
1004 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
1005 ((x) == 0 ? (1) : (-1))
1006 /* @brief Has local operation network (CEA709.1-B protocol) support. */
1007 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
1008 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
1009 ((x) == 0 ? (0) : (-1))
1010 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
1011 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
1012 #elif defined(CPU_MKL25Z32VFM4) || defined(CPU_MKL25Z64VFM4) || defined(CPU_MKL25Z128VFM4) || defined(CPU_MKL25Z32VFT4) || \
1013 defined(CPU_MKL25Z64VFT4) || defined(CPU_MKL25Z128VFT4) || defined(CPU_MKL25Z32VLH4) || defined(CPU_MKL25Z64VLH4) || \
1014 defined(CPU_MKL25Z128VLH4) || defined(CPU_MKL25Z32VLK4) || defined(CPU_MKL25Z64VLK4) || defined(CPU_MKL25Z128VLK4) || \
1015 defined(CPU_MKL26Z256VLK4) || defined(CPU_MKL26Z128VLL4) || defined(CPU_MKL26Z256VLL4) || defined(CPU_MKL26Z128VMC4) || \
1016 defined(CPU_MKL26Z256VMC4) || defined(CPU_MKL46Z128VLH4) || defined(CPU_MKL46Z256VLH4) || defined(CPU_MKL46Z128VLL4) || \
1017 defined(CPU_MKL46Z256VLL4) || defined(CPU_MKL46Z128VMC4) || defined(CPU_MKL46Z256VMC4)
1018 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
1019 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
1020 /* @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). */
1021 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (1)
1022 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
1025 ((x) == 2 ? (0) : (-1))))
1026 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
1027 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (0)
1028 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
1029 #define FSL_FEATURE_UART_HAS_FIFO (0)
1030 /* @brief Hardware flow control (RTS, CTS) is supported. */
1031 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (0)
1032 /* @brief Infrared (modulation) is supported. */
1033 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (0)
1034 /* @brief 2 bits long stop bit is available. */
1035 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (1)
1036 /* @brief Maximal data width without parity bit. */
1037 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (1)
1038 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
1041 ((x) == 2 ? (0) : (-1))))
1042 /* @brief Baud rate fine adjustment is available. */
1043 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (0)
1044 /* @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). */
1045 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (1)
1046 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
1049 ((x) == 2 ? (0) : (-1))))
1050 /* @brief Baud rate oversampling is available. */
1051 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (1)
1052 /* @brief Baud rate oversampling is available. */
1053 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (1)
1054 /* @brief Peripheral type. */
1055 #define FSL_FEATURE_UART_IS_SCI (1)
1056 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
1057 #define FSL_FEATURE_UART_FIFO_SIZE (0)
1058 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
1061 ((x) == 2 ? (0) : (-1))))
1062 /* @brief Maximal data width without parity bit. */
1063 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (10)
1064 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
1065 ((x) == 0 ? (10) : \
1067 ((x) == 2 ? (9) : (-1))))
1068 /* @brief Maximal data width with parity bit. */
1069 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (9)
1070 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
1073 ((x) == 2 ? (8) : (-1))))
1074 /* @brief Supports two match addresses to filter incoming frames. */
1075 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
1076 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
1079 ((x) == 2 ? (0) : (-1))))
1080 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
1081 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (1)
1082 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
1085 ((x) == 2 ? (0) : (-1))))
1086 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
1087 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
1088 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
1091 ((x) == 2 ? (1) : (-1))))
1092 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
1093 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
1094 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
1097 ((x) == 2 ? (0) : (-1))))
1098 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
1099 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (0)
1100 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
1103 ((x) == 2 ? (0) : (-1))))
1104 /* @brief Has improved smart card (ISO7816 protocol) support. */
1105 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
1106 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
1109 ((x) == 2 ? (0) : (-1))))
1110 /* @brief Has local operation network (CEA709.1-B protocol) support. */
1111 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
1112 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
1115 ((x) == 2 ? (0) : (-1))))
1116 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
1117 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
1118 #elif defined(CPU_MKV40F128VLH15) || defined(CPU_MKV40F128VLL15) || defined(CPU_MKV40F256VLH15) || defined(CPU_MKV40F256VLL15) || \
1119 defined(CPU_MKV40F64VLH15) || defined(CPU_MKV43F128VLH15) || defined(CPU_MKV43F128VLL15) || defined(CPU_MKV43F64VLH15) || \
1120 defined(CPU_MKV44F128VLH15) || defined(CPU_MKV44F128VLL15) || defined(CPU_MKV44F64VLH15) || defined(CPU_MKV45F128VLH15) || \
1121 defined(CPU_MKV45F128VLL15) || defined(CPU_MKV45F256VLH15) || defined(CPU_MKV45F256VLL15) || defined(CPU_MKV46F128VLH15) || \
1122 defined(CPU_MKV46F128VLL15) || defined(CPU_MKV46F256VLH15) || defined(CPU_MKV46F256VLL15)
1123 /* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
1124 #define FSL_FEATURE_UART_HAS_IRQ_EXTENDED_FUNCTIONS (1)
1125 /* @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). */
1126 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORT (0)
1127 #define FSL_FEATURE_UART_HAS_LOW_POWER_UART_SUPPORTn(x) \
1129 ((x) == 1 ? (0) : (-1)))
1130 /* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
1131 #define FSL_FEATURE_UART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
1132 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
1133 #define FSL_FEATURE_UART_HAS_FIFO (1)
1134 /* @brief Hardware flow control (RTS, CTS) is supported. */
1135 #define FSL_FEATURE_UART_HAS_MODEM_SUPPORT (1)
1136 /* @brief Infrared (modulation) is supported. */
1137 #define FSL_FEATURE_UART_HAS_IR_SUPPORT (1)
1138 /* @brief 2 bits long stop bit is available. */
1139 #define FSL_FEATURE_UART_HAS_STOP_BIT_CONFIG_SUPPORT (1)
1140 /* @brief Maximal data width without parity bit. */
1141 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORT (0)
1142 #define FSL_FEATURE_UART_HAS_10BIT_DATA_SUPPORTn(x) \
1144 ((x) == 1 ? (0) : (-1)))
1145 /* @brief Baud rate fine adjustment is available. */
1146 #define FSL_FEATURE_UART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (1)
1147 /* @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). */
1148 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (0)
1149 #define FSL_FEATURE_UART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORTn(x) \
1151 ((x) == 1 ? (0) : (-1)))
1152 /* @brief Baud rate oversampling is available. */
1153 #define FSL_FEATURE_UART_HAS_RX_RESYNC_SUPPORT (0)
1154 /* @brief Baud rate oversampling is available. */
1155 #define FSL_FEATURE_UART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (0)
1156 /* @brief Peripheral type. */
1157 #define FSL_FEATURE_UART_IS_SCI (0)
1158 /* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
1159 #define FSL_FEATURE_UART_FIFO_SIZE (8)
1160 #define FSL_FEATURE_UART_FIFO_SIZEn(x) \
1162 ((x) == 1 ? (8) : (-1)))
1163 /* @brief Maximal data width without parity bit. */
1164 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITY (9)
1165 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_NO_PARITYn(x) \
1167 ((x) == 1 ? (9) : (-1)))
1168 /* @brief Maximal data width with parity bit. */
1169 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITY (10)
1170 #define FSL_FEATURE_UART_MAX_DATA_WIDTH_WITH_PARITYn(x) \
1171 ((x) == 0 ? (10) : \
1172 ((x) == 1 ? (10) : (-1)))
1173 /* @brief Supports two match addresses to filter incoming frames. */
1174 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHING (1)
1175 #define FSL_FEATURE_UART_HAS_ADDRESS_MATCHINGn(x) \
1177 ((x) == 1 ? (1) : (-1)))
1178 /* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
1179 #define FSL_FEATURE_UART_HAS_DMA_ENABLE (0)
1180 #define FSL_FEATURE_UART_HAS_DMA_ENABLEn(x) \
1182 ((x) == 1 ? (0) : (-1)))
1183 /* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
1184 #define FSL_FEATURE_UART_HAS_DMA_SELECT (1)
1185 #define FSL_FEATURE_UART_HAS_DMA_SELECTn(x) \
1187 ((x) == 1 ? (1) : (-1)))
1188 /* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
1189 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECT (1)
1190 #define FSL_FEATURE_UART_HAS_BIT_ORDER_SELECTn(x) \
1192 ((x) == 1 ? (1) : (-1)))
1193 /* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
1194 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORT (0)
1195 #define FSL_FEATURE_UART_HAS_SMART_CARD_SUPPORTn(x) \
1197 ((x) == 1 ? (0) : (-1)))
1198 /* @brief Has improved smart card (ISO7816 protocol) support. */
1199 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
1200 #define FSL_FEATURE_UART_HAS_IMPROVED_SMART_CARD_SUPPORTn(x) \
1202 ((x) == 1 ? (0) : (-1)))
1203 /* @brief Has local operation network (CEA709.1-B protocol) support. */
1204 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
1205 #define FSL_FEATURE_UART_HAS_LOCAL_OPERATION_NETWORK_SUPPORTn(x) \
1207 ((x) == 1 ? (0) : (-1)))
1208 /* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
1209 #define FSL_FEATURE_UART_HAS_32BIT_REGISTERS (0)
1211 #error "No valid CPU defined!"
1214 #endif /* __FSL_UART_FEATURES_H__ */
1216 /*******************************************************************************
1218 ******************************************************************************/