Commit | Line | Data |
---|---|---|
6f5f943b | 1 | /* |
26eef35f | 2 | ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio |
6f5f943b AT |
3 | |
4 | Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | you may not use this file except in compliance with the License. | |
6 | You may obtain a copy of the License at | |
7 | ||
8 | http://www.apache.org/licenses/LICENSE-2.0 | |
9 | ||
10 | Unless required by applicable law or agreed to in writing, software | |
11 | distributed under the License is distributed on an "AS IS" BASIS, | |
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | See the License for the specific language governing permissions and | |
14 | limitations under the License. | |
15 | */ | |
16 | ||
17 | /** | |
18 | * @file templates/halconf.h | |
19 | * @brief HAL configuration header. | |
20 | * @details HAL configuration file, this file allows to enable or disable the | |
21 | * various device drivers from your application. You may also use | |
22 | * this file in order to override the device drivers default settings. | |
23 | * | |
24 | * @addtogroup HAL_CONF | |
25 | * @{ | |
26 | */ | |
27 | ||
26eef35f JY |
28 | #ifndef HALCONF_H |
29 | #define HALCONF_H | |
30 | ||
31 | #define _CHIBIOS_HAL_CONF_ | |
32 | #define _CHIBIOS_HAL_CONF_VER_7_0_ | |
6f5f943b AT |
33 | |
34 | #include "mcuconf.h" | |
35 | ||
36 | /** | |
37 | * @brief Enables the PAL subsystem. | |
38 | */ | |
39 | #if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) | |
26eef35f | 40 | #define HAL_USE_PAL TRUE |
6f5f943b AT |
41 | #endif |
42 | ||
43 | /** | |
44 | * @brief Enables the ADC subsystem. | |
45 | */ | |
46 | #if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) | |
26eef35f | 47 | #define HAL_USE_ADC FALSE |
6f5f943b AT |
48 | #endif |
49 | ||
50 | /** | |
51 | * @brief Enables the CAN subsystem. | |
52 | */ | |
53 | #if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) | |
26eef35f | 54 | #define HAL_USE_CAN FALSE |
6f5f943b AT |
55 | #endif |
56 | ||
57 | /** | |
26eef35f | 58 | * @brief Enables the cryptographic subsystem. |
6f5f943b | 59 | */ |
26eef35f JY |
60 | #if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) |
61 | #define HAL_USE_CRY FALSE | |
6f5f943b AT |
62 | #endif |
63 | ||
64 | /** | |
26eef35f | 65 | * @brief Enables the DAC subsystem. |
6f5f943b | 66 | */ |
26eef35f JY |
67 | #if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) |
68 | #define HAL_USE_DAC FALSE | |
6f5f943b AT |
69 | #endif |
70 | ||
71 | /** | |
72 | * @brief Enables the GPT subsystem. | |
73 | */ | |
74 | #if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) | |
26eef35f | 75 | #define HAL_USE_GPT FALSE |
6f5f943b AT |
76 | #endif |
77 | ||
78 | /** | |
79 | * @brief Enables the I2C subsystem. | |
80 | */ | |
81 | #if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) | |
26eef35f | 82 | #define HAL_USE_I2C TRUE |
6f5f943b AT |
83 | #endif |
84 | ||
85 | /** | |
86 | * @brief Enables the I2S subsystem. | |
87 | */ | |
88 | #if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) | |
26eef35f | 89 | #define HAL_USE_I2S FALSE |
6f5f943b AT |
90 | #endif |
91 | ||
92 | /** | |
93 | * @brief Enables the ICU subsystem. | |
94 | */ | |
95 | #if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) | |
26eef35f | 96 | #define HAL_USE_ICU FALSE |
6f5f943b AT |
97 | #endif |
98 | ||
99 | /** | |
100 | * @brief Enables the MAC subsystem. | |
101 | */ | |
102 | #if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) | |
26eef35f | 103 | #define HAL_USE_MAC FALSE |
6f5f943b AT |
104 | #endif |
105 | ||
106 | /** | |
107 | * @brief Enables the MMC_SPI subsystem. | |
108 | */ | |
109 | #if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) | |
26eef35f | 110 | #define HAL_USE_MMC_SPI FALSE |
6f5f943b AT |
111 | #endif |
112 | ||
113 | /** | |
114 | * @brief Enables the PWM subsystem. | |
115 | */ | |
116 | #if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) | |
26eef35f | 117 | #define HAL_USE_PWM TRUE |
6f5f943b AT |
118 | #endif |
119 | ||
120 | /** | |
121 | * @brief Enables the RTC subsystem. | |
122 | */ | |
123 | #if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) | |
26eef35f | 124 | #define HAL_USE_RTC FALSE |
6f5f943b AT |
125 | #endif |
126 | ||
127 | /** | |
128 | * @brief Enables the SDC subsystem. | |
129 | */ | |
130 | #if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) | |
26eef35f | 131 | #define HAL_USE_SDC FALSE |
6f5f943b AT |
132 | #endif |
133 | ||
134 | /** | |
135 | * @brief Enables the SERIAL subsystem. | |
136 | */ | |
137 | #if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) | |
26eef35f | 138 | #define HAL_USE_SERIAL FALSE |
6f5f943b AT |
139 | #endif |
140 | ||
141 | /** | |
142 | * @brief Enables the SERIAL over USB subsystem. | |
143 | */ | |
144 | #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) | |
26eef35f JY |
145 | #define HAL_USE_SERIAL_USB FALSE |
146 | #endif | |
147 | ||
148 | /** | |
149 | * @brief Enables the SIO subsystem. | |
150 | */ | |
151 | #if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) | |
152 | #define HAL_USE_SIO FALSE | |
6f5f943b AT |
153 | #endif |
154 | ||
155 | /** | |
156 | * @brief Enables the SPI subsystem. | |
157 | */ | |
158 | #if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) | |
26eef35f JY |
159 | #define HAL_USE_SPI TRUE |
160 | #endif | |
161 | ||
162 | /** | |
163 | * @brief Enables the TRNG subsystem. | |
164 | */ | |
165 | #if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) | |
166 | #define HAL_USE_TRNG FALSE | |
6f5f943b AT |
167 | #endif |
168 | ||
169 | /** | |
170 | * @brief Enables the UART subsystem. | |
171 | */ | |
172 | #if !defined(HAL_USE_UART) || defined(__DOXYGEN__) | |
26eef35f | 173 | #define HAL_USE_UART FALSE |
6f5f943b AT |
174 | #endif |
175 | ||
176 | /** | |
177 | * @brief Enables the USB subsystem. | |
178 | */ | |
179 | #if !defined(HAL_USE_USB) || defined(__DOXYGEN__) | |
26eef35f | 180 | #define HAL_USE_USB TRUE |
6f5f943b AT |
181 | #endif |
182 | ||
183 | /** | |
184 | * @brief Enables the WDG subsystem. | |
185 | */ | |
186 | #if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) | |
26eef35f JY |
187 | #define HAL_USE_WDG FALSE |
188 | #endif | |
189 | ||
190 | /** | |
191 | * @brief Enables the WSPI subsystem. | |
192 | */ | |
193 | #if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) | |
194 | #define HAL_USE_WSPI FALSE | |
195 | #endif | |
196 | ||
197 | /*===========================================================================*/ | |
198 | /* PAL driver related settings. */ | |
199 | /*===========================================================================*/ | |
200 | ||
201 | /** | |
202 | * @brief Enables synchronous APIs. | |
203 | * @note Disabling this option saves both code and data space. | |
204 | */ | |
205 | #if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) | |
206 | #define PAL_USE_CALLBACKS FALSE | |
207 | #endif | |
208 | ||
209 | /** | |
210 | * @brief Enables synchronous APIs. | |
211 | * @note Disabling this option saves both code and data space. | |
212 | */ | |
213 | #if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) | |
214 | #define PAL_USE_WAIT FALSE | |
6f5f943b AT |
215 | #endif |
216 | ||
217 | /*===========================================================================*/ | |
218 | /* ADC driver related settings. */ | |
219 | /*===========================================================================*/ | |
220 | ||
221 | /** | |
222 | * @brief Enables synchronous APIs. | |
223 | * @note Disabling this option saves both code and data space. | |
224 | */ | |
225 | #if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) | |
26eef35f | 226 | #define ADC_USE_WAIT TRUE |
6f5f943b AT |
227 | #endif |
228 | ||
229 | /** | |
230 | * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. | |
231 | * @note Disabling this option saves both code and data space. | |
232 | */ | |
233 | #if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) | |
26eef35f | 234 | #define ADC_USE_MUTUAL_EXCLUSION TRUE |
6f5f943b AT |
235 | #endif |
236 | ||
237 | /*===========================================================================*/ | |
238 | /* CAN driver related settings. */ | |
239 | /*===========================================================================*/ | |
240 | ||
241 | /** | |
242 | * @brief Sleep mode related APIs inclusion switch. | |
243 | */ | |
244 | #if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) | |
26eef35f JY |
245 | #define CAN_USE_SLEEP_MODE TRUE |
246 | #endif | |
247 | ||
248 | /** | |
249 | * @brief Enforces the driver to use direct callbacks rather than OSAL events. | |
250 | */ | |
251 | #if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) | |
252 | #define CAN_ENFORCE_USE_CALLBACKS FALSE | |
253 | #endif | |
254 | ||
255 | /*===========================================================================*/ | |
256 | /* CRY driver related settings. */ | |
257 | /*===========================================================================*/ | |
258 | ||
259 | /** | |
260 | * @brief Enables the SW fall-back of the cryptographic driver. | |
261 | * @details When enabled, this option, activates a fall-back software | |
262 | * implementation for algorithms not supported by the underlying | |
263 | * hardware. | |
264 | * @note Fall-back implementations may not be present for all algorithms. | |
265 | */ | |
266 | #if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) | |
267 | #define HAL_CRY_USE_FALLBACK FALSE | |
268 | #endif | |
269 | ||
270 | /** | |
271 | * @brief Makes the driver forcibly use the fall-back implementations. | |
272 | */ | |
273 | #if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) | |
274 | #define HAL_CRY_ENFORCE_FALLBACK FALSE | |
275 | #endif | |
276 | ||
277 | /*===========================================================================*/ | |
278 | /* DAC driver related settings. */ | |
279 | /*===========================================================================*/ | |
280 | ||
281 | /** | |
282 | * @brief Enables synchronous APIs. | |
283 | * @note Disabling this option saves both code and data space. | |
284 | */ | |
285 | #if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) | |
286 | #define DAC_USE_WAIT TRUE | |
287 | #endif | |
288 | ||
289 | /** | |
290 | * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. | |
291 | * @note Disabling this option saves both code and data space. | |
292 | */ | |
293 | #if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) | |
294 | #define DAC_USE_MUTUAL_EXCLUSION TRUE | |
6f5f943b AT |
295 | #endif |
296 | ||
297 | /*===========================================================================*/ | |
298 | /* I2C driver related settings. */ | |
299 | /*===========================================================================*/ | |
300 | ||
301 | /** | |
302 | * @brief Enables the mutual exclusion APIs on the I2C bus. | |
303 | */ | |
304 | #if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) | |
26eef35f | 305 | #define I2C_USE_MUTUAL_EXCLUSION TRUE |
6f5f943b AT |
306 | #endif |
307 | ||
308 | /*===========================================================================*/ | |
309 | /* MAC driver related settings. */ | |
310 | /*===========================================================================*/ | |
311 | ||
312 | /** | |
26eef35f | 313 | * @brief Enables the zero-copy API. |
6f5f943b AT |
314 | */ |
315 | #if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) | |
26eef35f | 316 | #define MAC_USE_ZERO_COPY FALSE |
6f5f943b AT |
317 | #endif |
318 | ||
319 | /** | |
320 | * @brief Enables an event sources for incoming packets. | |
321 | */ | |
322 | #if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) | |
26eef35f | 323 | #define MAC_USE_EVENTS TRUE |
6f5f943b AT |
324 | #endif |
325 | ||
326 | /*===========================================================================*/ | |
327 | /* MMC_SPI driver related settings. */ | |
328 | /*===========================================================================*/ | |
329 | ||
330 | /** | |
331 | * @brief Delays insertions. | |
332 | * @details If enabled this options inserts delays into the MMC waiting | |
333 | * routines releasing some extra CPU time for the threads with | |
334 | * lower priority, this may slow down the driver a bit however. | |
335 | * This option is recommended also if the SPI driver does not | |
336 | * use a DMA channel and heavily loads the CPU. | |
337 | */ | |
338 | #if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) | |
26eef35f | 339 | #define MMC_NICE_WAITING TRUE |
6f5f943b AT |
340 | #endif |
341 | ||
342 | /*===========================================================================*/ | |
343 | /* SDC driver related settings. */ | |
344 | /*===========================================================================*/ | |
345 | ||
346 | /** | |
347 | * @brief Number of initialization attempts before rejecting the card. | |
348 | * @note Attempts are performed at 10mS intervals. | |
349 | */ | |
350 | #if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) | |
26eef35f | 351 | #define SDC_INIT_RETRY 100 |
6f5f943b AT |
352 | #endif |
353 | ||
354 | /** | |
355 | * @brief Include support for MMC cards. | |
356 | * @note MMC support is not yet implemented so this option must be kept | |
357 | * at @p FALSE. | |
358 | */ | |
359 | #if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) | |
26eef35f | 360 | #define SDC_MMC_SUPPORT FALSE |
6f5f943b AT |
361 | #endif |
362 | ||
363 | /** | |
364 | * @brief Delays insertions. | |
365 | * @details If enabled this options inserts delays into the MMC waiting | |
366 | * routines releasing some extra CPU time for the threads with | |
367 | * lower priority, this may slow down the driver a bit however. | |
368 | */ | |
369 | #if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) | |
26eef35f JY |
370 | #define SDC_NICE_WAITING TRUE |
371 | #endif | |
372 | ||
373 | /** | |
374 | * @brief OCR initialization constant for V20 cards. | |
375 | */ | |
376 | #if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) | |
377 | #define SDC_INIT_OCR_V20 0x50FF8000U | |
378 | #endif | |
379 | ||
380 | /** | |
381 | * @brief OCR initialization constant for non-V20 cards. | |
382 | */ | |
383 | #if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) | |
384 | #define SDC_INIT_OCR 0x80100000U | |
6f5f943b AT |
385 | #endif |
386 | ||
387 | /*===========================================================================*/ | |
388 | /* SERIAL driver related settings. */ | |
389 | /*===========================================================================*/ | |
390 | ||
391 | /** | |
392 | * @brief Default bit rate. | |
393 | * @details Configuration parameter, this is the baud rate selected for the | |
394 | * default configuration. | |
395 | */ | |
396 | #if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) | |
26eef35f | 397 | #define SERIAL_DEFAULT_BITRATE 38400 |
6f5f943b AT |
398 | #endif |
399 | ||
400 | /** | |
401 | * @brief Serial buffers size. | |
402 | * @details Configuration parameter, you can change the depth of the queue | |
403 | * buffers depending on the requirements of your application. | |
26eef35f | 404 | * @note The default is 16 bytes for both the transmission and receive |
6f5f943b AT |
405 | * buffers. |
406 | */ | |
407 | #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) | |
26eef35f | 408 | #define SERIAL_BUFFERS_SIZE 16 |
6f5f943b AT |
409 | #endif |
410 | ||
411 | /*===========================================================================*/ | |
412 | /* SERIAL_USB driver related setting. */ | |
413 | /*===========================================================================*/ | |
414 | ||
415 | /** | |
416 | * @brief Serial over USB buffers size. | |
417 | * @details Configuration parameter, the buffer size must be a multiple of | |
418 | * the USB data endpoint maximum packet size. | |
26eef35f | 419 | * @note The default is 256 bytes for both the transmission and receive |
6f5f943b AT |
420 | * buffers. |
421 | */ | |
422 | #if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) | |
26eef35f JY |
423 | #define SERIAL_USB_BUFFERS_SIZE 1 |
424 | #endif | |
425 | ||
426 | /** | |
427 | * @brief Serial over USB number of buffers. | |
428 | * @note The default is 2 buffers. | |
429 | */ | |
430 | #if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) | |
431 | #define SERIAL_USB_BUFFERS_NUMBER 2 | |
6f5f943b AT |
432 | #endif |
433 | ||
434 | /*===========================================================================*/ | |
435 | /* SPI driver related settings. */ | |
436 | /*===========================================================================*/ | |
437 | ||
438 | /** | |
439 | * @brief Enables synchronous APIs. | |
440 | * @note Disabling this option saves both code and data space. | |
441 | */ | |
442 | #if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) | |
26eef35f JY |
443 | #define SPI_USE_WAIT TRUE |
444 | #endif | |
445 | ||
446 | /** | |
447 | * @brief Enables circular transfers APIs. | |
448 | * @note Disabling this option saves both code and data space. | |
449 | */ | |
450 | #if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) | |
451 | #define SPI_USE_CIRCULAR FALSE | |
6f5f943b AT |
452 | #endif |
453 | ||
26eef35f | 454 | |
6f5f943b AT |
455 | /** |
456 | * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. | |
457 | * @note Disabling this option saves both code and data space. | |
458 | */ | |
459 | #if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) | |
26eef35f JY |
460 | #define SPI_USE_MUTUAL_EXCLUSION TRUE |
461 | #endif | |
462 | ||
463 | /** | |
464 | * @brief Handling method for SPI CS line. | |
465 | * @note Disabling this option saves both code and data space. | |
466 | */ | |
467 | #if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) | |
468 | #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD | |
469 | #endif | |
470 | ||
471 | /*===========================================================================*/ | |
472 | /* UART driver related settings. */ | |
473 | /*===========================================================================*/ | |
474 | ||
475 | /** | |
476 | * @brief Enables synchronous APIs. | |
477 | * @note Disabling this option saves both code and data space. | |
478 | */ | |
479 | #if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) | |
480 | #define UART_USE_WAIT FALSE | |
6f5f943b AT |
481 | #endif |
482 | ||
26eef35f JY |
483 | /** |
484 | * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. | |
485 | * @note Disabling this option saves both code and data space. | |
486 | */ | |
487 | #if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) | |
488 | #define UART_USE_MUTUAL_EXCLUSION FALSE | |
489 | #endif | |
6f5f943b AT |
490 | |
491 | /*===========================================================================*/ | |
492 | /* USB driver related settings. */ | |
493 | /*===========================================================================*/ | |
494 | ||
495 | /** | |
496 | * @brief Enables synchronous APIs. | |
497 | * @note Disabling this option saves both code and data space. | |
498 | */ | |
499 | #if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) | |
26eef35f JY |
500 | #define USB_USE_WAIT TRUE |
501 | #endif | |
502 | ||
503 | /*===========================================================================*/ | |
504 | /* WSPI driver related settings. */ | |
505 | /*===========================================================================*/ | |
506 | ||
507 | /** | |
508 | * @brief Enables synchronous APIs. | |
509 | * @note Disabling this option saves both code and data space. | |
510 | */ | |
511 | #if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) | |
512 | #define WSPI_USE_WAIT TRUE | |
513 | #endif | |
514 | ||
515 | /** | |
516 | * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. | |
517 | * @note Disabling this option saves both code and data space. | |
518 | */ | |
519 | #if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) | |
520 | #define WSPI_USE_MUTUAL_EXCLUSION TRUE | |
6f5f943b AT |
521 | #endif |
522 | ||
26eef35f | 523 | #endif /* HALCONF_H */ |
6f5f943b AT |
524 | |
525 | /** @} */ |