aboutsummaryrefslogtreecommitdiff
path: root/keyboards/projectkb
diff options
context:
space:
mode:
authorJames Young <xxiinophobia@yahoo.com>2020-02-29 12:00:00 -0800
committerJames Young <xxiinophobia@yahoo.com>2020-02-29 11:59:30 -0800
commit26eef35f07698d23aafae90e1c230b52e100a334 (patch)
treeeb8e43fc58ca55788e6e89430af0db55ea79e324 /keyboards/projectkb
parent85041ff05bf0e5f4ff4535caf6e638491a5614c8 (diff)
downloadqmk_firmware-26eef35f07698d23aafae90e1c230b52e100a334.tar.gz
qmk_firmware-26eef35f07698d23aafae90e1c230b52e100a334.zip
2020 February 29 Breaking Changes Update (#8064)
Diffstat (limited to 'keyboards/projectkb')
-rw-r--r--keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.c179
-rw-r--r--keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.h26
-rw-r--r--keyboards/projectkb/alice/chconf.h202
-rw-r--r--keyboards/projectkb/alice/halconf.h264
4 files changed, 608 insertions, 63 deletions
diff --git a/keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.c b/keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.c
index 9d10fbd75..7c09bd997 100644
--- a/keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.c
+++ b/keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.c
@@ -1,5 +1,5 @@
1/* 1/*
2 ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio 2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3 3
4 Licensed under the Apache License, Version 2.0 (the "License"); 4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License. 5 you may not use this file except in compliance with the License.
@@ -20,14 +20,76 @@
20 */ 20 */
21 21
22#include "hal.h" 22#include "hal.h"
23#include "stm32_gpio.h"
24
25/*===========================================================================*/
26/* Driver local definitions. */
27/*===========================================================================*/
28
29/*===========================================================================*/
30/* Driver exported variables. */
31/*===========================================================================*/
32
33/*===========================================================================*/
34/* Driver local variables and types. */
35/*===========================================================================*/
36
37/**
38 * @brief Type of STM32 GPIO port setup.
39 */
40typedef struct {
41 uint32_t moder;
42 uint32_t otyper;
43 uint32_t ospeedr;
44 uint32_t pupdr;
45 uint32_t odr;
46 uint32_t afrl;
47 uint32_t afrh;
48} gpio_setup_t;
49
50/**
51 * @brief Type of STM32 GPIO initialization data.
52 */
53typedef struct {
54#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
55 gpio_setup_t PAData;
56#endif
57#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
58 gpio_setup_t PBData;
59#endif
60#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
61 gpio_setup_t PCData;
62#endif
63#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
64 gpio_setup_t PDData;
65#endif
66#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
67 gpio_setup_t PEData;
68#endif
69#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
70 gpio_setup_t PFData;
71#endif
72#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
73 gpio_setup_t PGData;
74#endif
75#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
76 gpio_setup_t PHData;
77#endif
78#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
79 gpio_setup_t PIData;
80#endif
81#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
82 gpio_setup_t PJData;
83#endif
84#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
85 gpio_setup_t PKData;
86#endif
87} gpio_config_t;
23 88
24#if HAL_USE_PAL || defined(__DOXYGEN__)
25/** 89/**
26 * @brief PAL setup. 90 * @brief STM32 GPIO static initialization data.
27 * @details Digital I/O ports static configuration as defined in @p board.h.
28 * This variable is used by the HAL when initializing the PAL driver.
29 */ 91 */
30const PALConfig pal_default_config = { 92static const gpio_config_t gpio_default_config = {
31#if STM32_HAS_GPIOA 93#if STM32_HAS_GPIOA
32 {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, 94 {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
33 VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, 95 VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
@@ -62,23 +124,118 @@ const PALConfig pal_default_config = {
62#endif 124#endif
63#if STM32_HAS_GPIOI 125#if STM32_HAS_GPIOI
64 {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, 126 {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
65 VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH} 127 VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
128#endif
129#if STM32_HAS_GPIOJ
130 {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
131 VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
132#endif
133#if STM32_HAS_GPIOK
134 {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
135 VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
66#endif 136#endif
67}; 137};
138
139/*===========================================================================*/
140/* Driver local functions. */
141/*===========================================================================*/
142
143static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
144
145 gpiop->OTYPER = config->otyper;
146 gpiop->OSPEEDR = config->ospeedr;
147 gpiop->PUPDR = config->pupdr;
148 gpiop->ODR = config->odr;
149 gpiop->AFRL = config->afrl;
150 gpiop->AFRH = config->afrh;
151 gpiop->MODER = config->moder;
152}
153
154static void stm32_gpio_init(void) {
155
156 /* Enabling GPIO-related clocks, the mask comes from the
157 registry header file.*/
158 rccResetAHB(STM32_GPIO_EN_MASK);
159 rccEnableAHB(STM32_GPIO_EN_MASK, true);
160
161 /* Initializing all the defined GPIO ports.*/
162#if STM32_HAS_GPIOA
163 gpio_init(GPIOA, &gpio_default_config.PAData);
164#endif
165#if STM32_HAS_GPIOB
166 gpio_init(GPIOB, &gpio_default_config.PBData);
68#endif 167#endif
168#if STM32_HAS_GPIOC
169 gpio_init(GPIOC, &gpio_default_config.PCData);
170#endif
171#if STM32_HAS_GPIOD
172 gpio_init(GPIOD, &gpio_default_config.PDData);
173#endif
174#if STM32_HAS_GPIOE
175 gpio_init(GPIOE, &gpio_default_config.PEData);
176#endif
177#if STM32_HAS_GPIOF
178 gpio_init(GPIOF, &gpio_default_config.PFData);
179#endif
180#if STM32_HAS_GPIOG
181 gpio_init(GPIOG, &gpio_default_config.PGData);
182#endif
183#if STM32_HAS_GPIOH
184 gpio_init(GPIOH, &gpio_default_config.PHData);
185#endif
186#if STM32_HAS_GPIOI
187 gpio_init(GPIOI, &gpio_default_config.PIData);
188#endif
189#if STM32_HAS_GPIOJ
190 gpio_init(GPIOJ, &gpio_default_config.PJData);
191#endif
192#if STM32_HAS_GPIOK
193 gpio_init(GPIOK, &gpio_default_config.PKData);
194#endif
195}
196
197/*===========================================================================*/
198/* Driver interrupt handlers. */
199/*===========================================================================*/
69 200
70void enter_bootloader_mode_if_requested(void); 201/*===========================================================================*/
202/* Driver exported functions. */
203/*===========================================================================*/
71 204
72/** 205/**
73 * @brief Early initialization code. 206 * @brief Early initialization code.
74 * @details This initialization must be performed just after stack setup 207 * @details GPIO ports and system clocks are initialized before everything
75 * and before any other initialization. 208 * else.
76 */ 209 */
77void __early_init(void) { 210void __early_init(void) {
211 extern void enter_bootloader_mode_if_requested(void);
78 enter_bootloader_mode_if_requested(); 212 enter_bootloader_mode_if_requested();
213 stm32_gpio_init();
79 stm32_clock_init(); 214 stm32_clock_init();
80} 215}
81 216
217#if HAL_USE_SDC || defined(__DOXYGEN__)
218/**
219 * @brief SDC card detection.
220 */
221bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
222
223 (void)sdcp;
224 /* TODO: Fill the implementation.*/
225 return true;
226}
227
228/**
229 * @brief SDC card write protection detection.
230 */
231bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
232
233 (void)sdcp;
234 /* TODO: Fill the implementation.*/
235 return false;
236}
237#endif /* HAL_USE_SDC */
238
82#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) 239#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
83/** 240/**
84 * @brief MMC_SPI card detection. 241 * @brief MMC_SPI card detection.
@@ -106,4 +263,6 @@ bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
106 * @todo Add your board-specific code, if any. 263 * @todo Add your board-specific code, if any.
107 */ 264 */
108void boardInit(void) { 265void boardInit(void) {
266 SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
267 SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
109} 268}
diff --git a/keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.h b/keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.h
index de3a93d1c..57636d1f1 100644
--- a/keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.h
+++ b/keyboards/projectkb/alice/boards/ST_STM32F072B_DISCOVERY/board.h
@@ -22,6 +22,10 @@
22#ifndef BOARD_H 22#ifndef BOARD_H
23#define BOARD_H 23#define BOARD_H
24 24
25/*===========================================================================*/
26/* Driver constants. */
27/*===========================================================================*/
28
25/* 29/*
26 * Setup for ST STM32F072B-Discovery board. 30 * Setup for ST STM32F072B-Discovery board.
27 */ 31 */
@@ -166,11 +170,9 @@
166#define LINE_USB_DP PAL_LINE(GPIOA, 12U) 170#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
167#define LINE_SWDIO PAL_LINE(GPIOA, 13U) 171#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
168#define LINE_SWCLK PAL_LINE(GPIOA, 14U) 172#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
169
170#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U) 173#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
171#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U) 174#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
172#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U) 175#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
173
174#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U) 176#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U)
175#define LINE_LED_RED PAL_LINE(GPIOC, 6U) 177#define LINE_LED_RED PAL_LINE(GPIOC, 6U)
176#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U) 178#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U)
@@ -178,11 +180,24 @@
178#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U) 180#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U)
179#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U) 181#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
180#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U) 182#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
183#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
184#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
181 185
186/*===========================================================================*/
187/* Driver pre-compile time settings. */
188/*===========================================================================*/
182 189
190/*===========================================================================*/
191/* Derived constants and error checks. */
192/*===========================================================================*/
183 193
184#define LINE_OSC_IN PAL_LINE(GPIOF, 0U) 194/*===========================================================================*/
185#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U) 195/* Driver data structures and types. */
196/*===========================================================================*/
197
198/*===========================================================================*/
199/* Driver macros. */
200/*===========================================================================*/
186 201
187/* 202/*
188 * I/O ports initial setup, this configuration is established soon after reset 203 * I/O ports initial setup, this configuration is established soon after reset
@@ -908,6 +923,9 @@
908 PIN_AFIO_AF(GPIOF_PIN14, 0U) | \ 923 PIN_AFIO_AF(GPIOF_PIN14, 0U) | \
909 PIN_AFIO_AF(GPIOF_PIN15, 0U)) 924 PIN_AFIO_AF(GPIOF_PIN15, 0U))
910 925
926/*===========================================================================*/
927/* External declarations. */
928/*===========================================================================*/
911 929
912#if !defined(_FROM_ASM_) 930#if !defined(_FROM_ASM_)
913#ifdef __cplusplus 931#ifdef __cplusplus
diff --git a/keyboards/projectkb/alice/chconf.h b/keyboards/projectkb/alice/chconf.h
index 89388dd5a..4640ff533 100644
--- a/keyboards/projectkb/alice/chconf.h
+++ b/keyboards/projectkb/alice/chconf.h
@@ -1,5 +1,5 @@
1/* 1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio 2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3 3
4 Licensed under the Apache License, Version 2.0 (the "License"); 4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License. 5 you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
15*/ 15*/
16 16
17/** 17/**
18 * @file templates/chconf.h 18 * @file rt/templates/chconf.h
19 * @brief Configuration file template. 19 * @brief Configuration file template.
20 * @details A copy of this file must be placed in each project directory, it 20 * @details A copy of this file must be placed in each project directory, it
21 * contains the application specific kernel settings. 21 * contains the application specific kernel settings.
@@ -29,6 +29,7 @@
29#define CHCONF_H 29#define CHCONF_H
30 30
31#define _CHIBIOS_RT_CONF_ 31#define _CHIBIOS_RT_CONF_
32#define _CHIBIOS_RT_CONF_VER_6_0_
32 33
33/*===========================================================================*/ 34/*===========================================================================*/
34/** 35/**
@@ -41,14 +42,34 @@
41 * @brief System time counter resolution. 42 * @brief System time counter resolution.
42 * @note Allowed values are 16 or 32 bits. 43 * @note Allowed values are 16 or 32 bits.
43 */ 44 */
45#if !defined(CH_CFG_ST_RESOLUTION)
44#define CH_CFG_ST_RESOLUTION 32 46#define CH_CFG_ST_RESOLUTION 32
47#endif
45 48
46/** 49/**
47 * @brief System tick frequency. 50 * @brief System tick frequency.
48 * @details Frequency of the system timer that drives the system ticks. This 51 * @details Frequency of the system timer that drives the system ticks. This
49 * setting also defines the system tick time unit. 52 * setting also defines the system tick time unit.
50 */ 53 */
54#if !defined(CH_CFG_ST_FREQUENCY)
51#define CH_CFG_ST_FREQUENCY 10000 55#define CH_CFG_ST_FREQUENCY 10000
56#endif
57
58/**
59 * @brief Time intervals data size.
60 * @note Allowed values are 16, 32 or 64 bits.
61 */
62#if !defined(CH_CFG_INTERVALS_SIZE)
63#define CH_CFG_INTERVALS_SIZE 32
64#endif
65
66/**
67 * @brief Time types data size.
68 * @note Allowed values are 16 or 32 bits.
69 */
70#if !defined(CH_CFG_TIME_TYPES_SIZE)
71#define CH_CFG_TIME_TYPES_SIZE 32
72#endif
52 73
53/** 74/**
54 * @brief Time delta constant for the tick-less mode. 75 * @brief Time delta constant for the tick-less mode.
@@ -58,7 +79,9 @@
58 * The value one is not valid, timeouts are rounded up to 79 * The value one is not valid, timeouts are rounded up to
59 * this value. 80 * this value.
60 */ 81 */
82#if !defined(CH_CFG_ST_TIMEDELTA)
61#define CH_CFG_ST_TIMEDELTA 2 83#define CH_CFG_ST_TIMEDELTA 2
84#endif
62 85
63/** @} */ 86/** @} */
64 87
@@ -81,7 +104,9 @@
81 * @note The round robin preemption is not supported in tickless mode and 104 * @note The round robin preemption is not supported in tickless mode and
82 * must be set to zero in that case. 105 * must be set to zero in that case.
83 */ 106 */
107#if !defined(CH_CFG_TIME_QUANTUM)
84#define CH_CFG_TIME_QUANTUM 0 108#define CH_CFG_TIME_QUANTUM 0
109#endif
85 110
86/** 111/**
87 * @brief Managed RAM size. 112 * @brief Managed RAM size.
@@ -94,7 +119,9 @@
94 * provide the @p __heap_base__ and @p __heap_end__ symbols. 119 * provide the @p __heap_base__ and @p __heap_end__ symbols.
95 * @note Requires @p CH_CFG_USE_MEMCORE. 120 * @note Requires @p CH_CFG_USE_MEMCORE.
96 */ 121 */
122#if !defined(CH_CFG_MEMCORE_SIZE)
97#define CH_CFG_MEMCORE_SIZE 0 123#define CH_CFG_MEMCORE_SIZE 0
124#endif
98 125
99/** 126/**
100 * @brief Idle thread automatic spawn suppression. 127 * @brief Idle thread automatic spawn suppression.
@@ -103,7 +130,9 @@
103 * function becomes the idle thread and must implement an 130 * function becomes the idle thread and must implement an
104 * infinite loop. 131 * infinite loop.
105 */ 132 */
133#if !defined(CH_CFG_NO_IDLE_THREAD)
106#define CH_CFG_NO_IDLE_THREAD FALSE 134#define CH_CFG_NO_IDLE_THREAD FALSE
135#endif
107 136
108/** @} */ 137/** @} */
109 138
@@ -122,7 +151,9 @@
122 * @note This is not related to the compiler optimization options. 151 * @note This is not related to the compiler optimization options.
123 * @note The default is @p TRUE. 152 * @note The default is @p TRUE.
124 */ 153 */
154#if !defined(CH_CFG_OPTIMIZE_SPEED)
125#define CH_CFG_OPTIMIZE_SPEED FALSE 155#define CH_CFG_OPTIMIZE_SPEED FALSE
156#endif
126 157
127/** @} */ 158/** @} */
128 159
@@ -140,7 +171,9 @@
140 * 171 *
141 * @note The default is @p TRUE. 172 * @note The default is @p TRUE.
142 */ 173 */
174#if !defined(CH_CFG_USE_TM)
143#define CH_CFG_USE_TM FALSE 175#define CH_CFG_USE_TM FALSE
176#endif
144 177
145/** 178/**
146 * @brief Threads registry APIs. 179 * @brief Threads registry APIs.
@@ -148,7 +181,9 @@
148 * 181 *
149 * @note The default is @p TRUE. 182 * @note The default is @p TRUE.
150 */ 183 */
184#if !defined(CH_CFG_USE_REGISTRY)
151#define CH_CFG_USE_REGISTRY TRUE 185#define CH_CFG_USE_REGISTRY TRUE
186#endif
152 187
153/** 188/**
154 * @brief Threads synchronization APIs. 189 * @brief Threads synchronization APIs.
@@ -157,7 +192,9 @@
157 * 192 *
158 * @note The default is @p TRUE. 193 * @note The default is @p TRUE.
159 */ 194 */
195#if !defined(CH_CFG_USE_WAITEXIT)
160#define CH_CFG_USE_WAITEXIT TRUE 196#define CH_CFG_USE_WAITEXIT TRUE
197#endif
161 198
162/** 199/**
163 * @brief Semaphores APIs. 200 * @brief Semaphores APIs.
@@ -165,7 +202,9 @@
165 * 202 *
166 * @note The default is @p TRUE. 203 * @note The default is @p TRUE.
167 */ 204 */
205#if !defined(CH_CFG_USE_SEMAPHORES)
168#define CH_CFG_USE_SEMAPHORES TRUE 206#define CH_CFG_USE_SEMAPHORES TRUE
207#endif
169 208
170/** 209/**
171 * @brief Semaphores queuing mode. 210 * @brief Semaphores queuing mode.
@@ -176,7 +215,9 @@
176 * requirements. 215 * requirements.
177 * @note Requires @p CH_CFG_USE_SEMAPHORES. 216 * @note Requires @p CH_CFG_USE_SEMAPHORES.
178 */ 217 */
218#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
179#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE 219#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
220#endif
180 221
181/** 222/**
182 * @brief Mutexes APIs. 223 * @brief Mutexes APIs.
@@ -184,7 +225,9 @@
184 * 225 *
185 * @note The default is @p TRUE. 226 * @note The default is @p TRUE.
186 */ 227 */
228#if !defined(CH_CFG_USE_MUTEXES)
187#define CH_CFG_USE_MUTEXES TRUE 229#define CH_CFG_USE_MUTEXES TRUE
230#endif
188 231
189/** 232/**
190 * @brief Enables recursive behavior on mutexes. 233 * @brief Enables recursive behavior on mutexes.
@@ -194,7 +237,9 @@
194 * @note The default is @p FALSE. 237 * @note The default is @p FALSE.
195 * @note Requires @p CH_CFG_USE_MUTEXES. 238 * @note Requires @p CH_CFG_USE_MUTEXES.
196 */ 239 */
240#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
197#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE 241#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
242#endif
198 243
199/** 244/**
200 * @brief Conditional Variables APIs. 245 * @brief Conditional Variables APIs.
@@ -204,7 +249,9 @@
204 * @note The default is @p TRUE. 249 * @note The default is @p TRUE.
205 * @note Requires @p CH_CFG_USE_MUTEXES. 250 * @note Requires @p CH_CFG_USE_MUTEXES.
206 */ 251 */
252#if !defined(CH_CFG_USE_CONDVARS)
207#define CH_CFG_USE_CONDVARS TRUE 253#define CH_CFG_USE_CONDVARS TRUE
254#endif
208 255
209/** 256/**
210 * @brief Conditional Variables APIs with timeout. 257 * @brief Conditional Variables APIs with timeout.
@@ -214,7 +261,9 @@
214 * @note The default is @p TRUE. 261 * @note The default is @p TRUE.
215 * @note Requires @p CH_CFG_USE_CONDVARS. 262 * @note Requires @p CH_CFG_USE_CONDVARS.
216 */ 263 */
264#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
217#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE 265#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
266#endif
218 267
219/** 268/**
220 * @brief Events Flags APIs. 269 * @brief Events Flags APIs.
@@ -222,7 +271,9 @@
222 * 271 *
223 * @note The default is @p TRUE. 272 * @note The default is @p TRUE.
224 */ 273 */
274#if !defined(CH_CFG_USE_EVENTS)
225#define CH_CFG_USE_EVENTS TRUE 275#define CH_CFG_USE_EVENTS TRUE
276#endif
226 277
227/** 278/**
228 * @brief Events Flags APIs with timeout. 279 * @brief Events Flags APIs with timeout.
@@ -232,7 +283,9 @@
232 * @note The default is @p TRUE. 283 * @note The default is @p TRUE.
233 * @note Requires @p CH_CFG_USE_EVENTS. 284 * @note Requires @p CH_CFG_USE_EVENTS.
234 */ 285 */
286#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
235#define CH_CFG_USE_EVENTS_TIMEOUT TRUE 287#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
288#endif
236 289
237/** 290/**
238 * @brief Synchronous Messages APIs. 291 * @brief Synchronous Messages APIs.
@@ -241,7 +294,9 @@
241 * 294 *
242 * @note The default is @p TRUE. 295 * @note The default is @p TRUE.
243 */ 296 */
297#if !defined(CH_CFG_USE_MESSAGES)
244#define CH_CFG_USE_MESSAGES TRUE 298#define CH_CFG_USE_MESSAGES TRUE
299#endif
245 300
246/** 301/**
247 * @brief Synchronous Messages queuing mode. 302 * @brief Synchronous Messages queuing mode.
@@ -252,7 +307,9 @@
252 * requirements. 307 * requirements.
253 * @note Requires @p CH_CFG_USE_MESSAGES. 308 * @note Requires @p CH_CFG_USE_MESSAGES.
254 */ 309 */
310#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
255#define CH_CFG_USE_MESSAGES_PRIORITY FALSE 311#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
312#endif
256 313
257/** 314/**
258 * @brief Mailboxes APIs. 315 * @brief Mailboxes APIs.
@@ -262,7 +319,9 @@
262 * @note The default is @p TRUE. 319 * @note The default is @p TRUE.
263 * @note Requires @p CH_CFG_USE_SEMAPHORES. 320 * @note Requires @p CH_CFG_USE_SEMAPHORES.
264 */ 321 */
322#if !defined(CH_CFG_USE_MAILBOXES)
265#define CH_CFG_USE_MAILBOXES TRUE 323#define CH_CFG_USE_MAILBOXES TRUE
324#endif
266 325
267/** 326/**
268 * @brief Core Memory Manager APIs. 327 * @brief Core Memory Manager APIs.
@@ -271,7 +330,9 @@
271 * 330 *
272 * @note The default is @p TRUE. 331 * @note The default is @p TRUE.
273 */ 332 */
333#if !defined(CH_CFG_USE_MEMCORE)
274#define CH_CFG_USE_MEMCORE FALSE 334#define CH_CFG_USE_MEMCORE FALSE
335#endif
275 336
276/** 337/**
277 * @brief Heap Allocator APIs. 338 * @brief Heap Allocator APIs.
@@ -283,7 +344,9 @@
283 * @p CH_CFG_USE_SEMAPHORES. 344 * @p CH_CFG_USE_SEMAPHORES.
284 * @note Mutexes are recommended. 345 * @note Mutexes are recommended.
285 */ 346 */
347#if !defined(CH_CFG_USE_HEAP)
286#define CH_CFG_USE_HEAP FALSE 348#define CH_CFG_USE_HEAP FALSE
349#endif
287 350
288/** 351/**
289 * @brief Memory Pools Allocator APIs. 352 * @brief Memory Pools Allocator APIs.
@@ -292,7 +355,31 @@
292 * 355 *
293 * @note The default is @p TRUE. 356 * @note The default is @p TRUE.
294 */ 357 */
358#if !defined(CH_CFG_USE_MEMPOOLS)
295#define CH_CFG_USE_MEMPOOLS FALSE 359#define CH_CFG_USE_MEMPOOLS FALSE
360#endif
361
362/**
363 * @brief Objects FIFOs APIs.
364 * @details If enabled then the objects FIFOs APIs are included
365 * in the kernel.
366 *
367 * @note The default is @p TRUE.
368 */
369#if !defined(CH_CFG_USE_OBJ_FIFOS)
370#define CH_CFG_USE_OBJ_FIFOS FALSE
371#endif
372
373/**
374 * @brief Pipes APIs.
375 * @details If enabled then the pipes APIs are included
376 * in the kernel.
377 *
378 * @note The default is @p TRUE.
379 */
380#if !defined(CH_CFG_USE_PIPES)
381#define CH_CFG_USE_PIPES FALSE
382#endif
296 383
297/** 384/**
298 * @brief Dynamic Threads APIs. 385 * @brief Dynamic Threads APIs.
@@ -303,7 +390,80 @@
303 * @note Requires @p CH_CFG_USE_WAITEXIT. 390 * @note Requires @p CH_CFG_USE_WAITEXIT.
304 * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. 391 * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
305 */ 392 */
393#if !defined(CH_CFG_USE_DYNAMIC)
306#define CH_CFG_USE_DYNAMIC FALSE 394#define CH_CFG_USE_DYNAMIC FALSE
395#endif
396
397/** @} */
398
399/*===========================================================================*/
400/**
401 * @name Objects factory options
402 * @{
403 */
404/*===========================================================================*/
405
406/**
407 * @brief Objects Factory APIs.
408 * @details If enabled then the objects factory APIs are included in the
409 * kernel.
410 *
411 * @note The default is @p FALSE.
412 */
413#if !defined(CH_CFG_USE_FACTORY)
414#define CH_CFG_USE_FACTORY FALSE
415#endif
416
417/**
418 * @brief Maximum length for object names.
419 * @details If the specified length is zero then the name is stored by
420 * pointer but this could have unintended side effects.
421 */
422#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH)
423#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8
424#endif
425
426/**
427 * @brief Enables the registry of generic objects.
428 */
429#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY)
430#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE
431#endif
432
433/**
434 * @brief Enables factory for generic buffers.
435 */
436#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS)
437#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE
438#endif
439
440/**
441 * @brief Enables factory for semaphores.
442 */
443#if !defined(CH_CFG_FACTORY_SEMAPHORES)
444#define CH_CFG_FACTORY_SEMAPHORES FALSE
445#endif
446
447/**
448 * @brief Enables factory for mailboxes.
449 */
450#if !defined(CH_CFG_FACTORY_MAILBOXES)
451#define CH_CFG_FACTORY_MAILBOXES FALSE
452#endif
453
454/**
455 * @brief Enables factory for objects FIFOs.
456 */
457#if !defined(CH_CFG_FACTORY_OBJ_FIFOS)
458#define CH_CFG_FACTORY_OBJ_FIFOS FALSE
459#endif
460
461/**
462 * @brief Enables factory for Pipes.
463 */
464#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__)
465#define CH_CFG_FACTORY_PIPES FALSE
466#endif
307 467
308/** @} */ 468/** @} */
309 469
@@ -319,7 +479,9 @@
319 * 479 *
320 * @note The default is @p FALSE. 480 * @note The default is @p FALSE.
321 */ 481 */
482#if !defined(CH_DBG_STATISTICS)
322#define CH_DBG_STATISTICS FALSE 483#define CH_DBG_STATISTICS FALSE
484#endif
323 485
324/** 486/**
325 * @brief Debug option, system state check. 487 * @brief Debug option, system state check.
@@ -328,7 +490,9 @@
328 * 490 *
329 * @note The default is @p FALSE. 491 * @note The default is @p FALSE.
330 */ 492 */
493#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
331#define CH_DBG_SYSTEM_STATE_CHECK FALSE 494#define CH_DBG_SYSTEM_STATE_CHECK FALSE
495#endif
332 496
333/** 497/**
334 * @brief Debug option, parameters checks. 498 * @brief Debug option, parameters checks.
@@ -337,7 +501,9 @@
337 * 501 *
338 * @note The default is @p FALSE. 502 * @note The default is @p FALSE.
339 */ 503 */
504#if !defined(CH_DBG_ENABLE_CHECKS)
340#define CH_DBG_ENABLE_CHECKS FALSE 505#define CH_DBG_ENABLE_CHECKS FALSE
506#endif
341 507
342/** 508/**
343 * @brief Debug option, consistency checks. 509 * @brief Debug option, consistency checks.
@@ -347,7 +513,9 @@
347 * 513 *
348 * @note The default is @p FALSE. 514 * @note The default is @p FALSE.
349 */ 515 */
516#if !defined(CH_DBG_ENABLE_ASSERTS)
350#define CH_DBG_ENABLE_ASSERTS FALSE 517#define CH_DBG_ENABLE_ASSERTS FALSE
518#endif
351 519
352/** 520/**
353 * @brief Debug option, trace buffer. 521 * @brief Debug option, trace buffer.
@@ -355,14 +523,18 @@
355 * 523 *
356 * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. 524 * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
357 */ 525 */
526#if !defined(CH_DBG_TRACE_MASK)
358#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED 527#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
528#endif
359 529
360/** 530/**
361 * @brief Trace buffer entries. 531 * @brief Trace buffer entries.
362 * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is 532 * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
363 * different from @p CH_DBG_TRACE_MASK_DISABLED. 533 * different from @p CH_DBG_TRACE_MASK_DISABLED.
364 */ 534 */
535#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
365#define CH_DBG_TRACE_BUFFER_SIZE 128 536#define CH_DBG_TRACE_BUFFER_SIZE 128
537#endif
366 538
367/** 539/**
368 * @brief Debug option, stack checks. 540 * @brief Debug option, stack checks.
@@ -374,7 +546,9 @@
374 * @note The default failure mode is to halt the system with the global 546 * @note The default failure mode is to halt the system with the global
375 * @p panic_msg variable set to @p NULL. 547 * @p panic_msg variable set to @p NULL.
376 */ 548 */
549#if !defined(CH_DBG_ENABLE_STACK_CHECK)
377#define CH_DBG_ENABLE_STACK_CHECK FALSE 550#define CH_DBG_ENABLE_STACK_CHECK FALSE
551#endif
378 552
379/** 553/**
380 * @brief Debug option, stacks initialization. 554 * @brief Debug option, stacks initialization.
@@ -384,7 +558,9 @@
384 * 558 *
385 * @note The default is @p FALSE. 559 * @note The default is @p FALSE.
386 */ 560 */
561#if !defined(CH_DBG_FILL_THREADS)
387#define CH_DBG_FILL_THREADS FALSE 562#define CH_DBG_FILL_THREADS FALSE
563#endif
388 564
389/** 565/**
390 * @brief Debug option, threads profiling. 566 * @brief Debug option, threads profiling.
@@ -395,7 +571,9 @@
395 * @note This debug option is not currently compatible with the 571 * @note This debug option is not currently compatible with the
396 * tickless mode. 572 * tickless mode.
397 */ 573 */
574#if !defined(CH_DBG_THREADS_PROFILING)
398#define CH_DBG_THREADS_PROFILING FALSE 575#define CH_DBG_THREADS_PROFILING FALSE
576#endif
399 577
400/** @} */ 578/** @} */
401 579
@@ -407,6 +585,22 @@
407/*===========================================================================*/ 585/*===========================================================================*/
408 586
409/** 587/**
588 * @brief System structure extension.
589 * @details User fields added to the end of the @p ch_system_t structure.
590 */
591#define CH_CFG_SYSTEM_EXTRA_FIELDS \
592 /* Add threads custom fields here.*/
593
594/**
595 * @brief System initialization hook.
596 * @details User initialization code added to the @p chSysInit() function
597 * just before interrupts are enabled globally.
598 */
599#define CH_CFG_SYSTEM_INIT_HOOK() { \
600 /* Add threads initialization code here.*/ \
601}
602
603/**
410 * @brief Threads descriptor structure extension. 604 * @brief Threads descriptor structure extension.
411 * @details User fields added to the end of the @p thread_t structure. 605 * @details User fields added to the end of the @p thread_t structure.
412 */ 606 */
@@ -415,9 +609,9 @@
415 609
416/** 610/**
417 * @brief Threads initialization hook. 611 * @brief Threads initialization hook.
418 * @details User initialization code added to the @p chThdInit() API. 612 * @details User initialization code added to the @p _thread_init() function.
419 * 613 *
420 * @note It is invoked from within @p chThdInit() and implicitly from all 614 * @note It is invoked from within @p _thread_init() and implicitly from all
421 * the threads creation APIs. 615 * the threads creation APIs.
422 */ 616 */
423#define CH_CFG_THREAD_INIT_HOOK(tp) { \ 617#define CH_CFG_THREAD_INIT_HOOK(tp) { \
diff --git a/keyboards/projectkb/alice/halconf.h b/keyboards/projectkb/alice/halconf.h
index da08cdbae..adb1a9071 100644
--- a/keyboards/projectkb/alice/halconf.h
+++ b/keyboards/projectkb/alice/halconf.h
@@ -1,5 +1,5 @@
1/* 1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio 2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3 3
4 Licensed under the Apache License, Version 2.0 (the "License"); 4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License. 5 you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@
25 * @{ 25 * @{
26 */ 26 */
27 27
28#pragma once 28#ifndef HALCONF_H
29#define HALCONF_H
30
31#define _CHIBIOS_HAL_CONF_
32#define _CHIBIOS_HAL_CONF_VER_7_0_
29 33
30#include "mcuconf.h" 34#include "mcuconf.h"
31 35
@@ -33,140 +37,181 @@
33 * @brief Enables the PAL subsystem. 37 * @brief Enables the PAL subsystem.
34 */ 38 */
35#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) 39#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
36#define HAL_USE_PAL TRUE 40#define HAL_USE_PAL TRUE
37#endif 41#endif
38 42
39/** 43/**
40 * @brief Enables the ADC subsystem. 44 * @brief Enables the ADC subsystem.
41 */ 45 */
42#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) 46#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
43#define HAL_USE_ADC FALSE 47#define HAL_USE_ADC FALSE
44#endif 48#endif
45 49
46/** 50/**
47 * @brief Enables the CAN subsystem. 51 * @brief Enables the CAN subsystem.
48 */ 52 */
49#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) 53#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
50#define HAL_USE_CAN FALSE 54#define HAL_USE_CAN FALSE
51#endif 55#endif
52 56
53/** 57/**
54 * @brief Enables the DAC subsystem. 58 * @brief Enables the cryptographic subsystem.
55 */ 59 */
56#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) 60#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__)
57#define HAL_USE_DAC FALSE 61#define HAL_USE_CRY FALSE
58#endif 62#endif
59 63
60/** 64/**
61 * @brief Enables the EXT subsystem. 65 * @brief Enables the DAC subsystem.
62 */ 66 */
63#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) 67#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
64#define HAL_USE_EXT FALSE 68#define HAL_USE_DAC FALSE
65#endif 69#endif
66 70
67/** 71/**
68 * @brief Enables the GPT subsystem. 72 * @brief Enables the GPT subsystem.
69 */ 73 */
70#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) 74#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
71#define HAL_USE_GPT FALSE 75#define HAL_USE_GPT FALSE
72#endif 76#endif
73 77
74/** 78/**
75 * @brief Enables the I2C subsystem. 79 * @brief Enables the I2C subsystem.
76 */ 80 */
77#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) 81#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
78#define HAL_USE_I2C TRUE 82#define HAL_USE_I2C TRUE
79#endif 83#endif
80 84
81/** 85/**
82 * @brief Enables the I2S subsystem. 86 * @brief Enables the I2S subsystem.
83 */ 87 */
84#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) 88#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
85#define HAL_USE_I2S FALSE 89#define HAL_USE_I2S FALSE
86#endif 90#endif
87 91
88/** 92/**
89 * @brief Enables the ICU subsystem. 93 * @brief Enables the ICU subsystem.
90 */ 94 */
91#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) 95#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
92#define HAL_USE_ICU FALSE 96#define HAL_USE_ICU FALSE
93#endif 97#endif
94 98
95/** 99/**
96 * @brief Enables the MAC subsystem. 100 * @brief Enables the MAC subsystem.
97 */ 101 */
98#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) 102#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
99#define HAL_USE_MAC FALSE 103#define HAL_USE_MAC FALSE
100#endif 104#endif
101 105
102/** 106/**
103 * @brief Enables the MMC_SPI subsystem. 107 * @brief Enables the MMC_SPI subsystem.
104 */ 108 */
105#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) 109#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
106#define HAL_USE_MMC_SPI FALSE 110#define HAL_USE_MMC_SPI FALSE
107#endif 111#endif
108 112
109/** 113/**
110 * @brief Enables the PWM subsystem. 114 * @brief Enables the PWM subsystem.
111 */ 115 */
112#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) 116#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
113#define HAL_USE_PWM TRUE 117#define HAL_USE_PWM TRUE
114#endif 118#endif
115 119
116/** 120/**
117 * @brief Enables the RTC subsystem. 121 * @brief Enables the RTC subsystem.
118 */ 122 */
119#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) 123#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
120#define HAL_USE_RTC FALSE 124#define HAL_USE_RTC FALSE
121#endif 125#endif
122 126
123/** 127/**
124 * @brief Enables the SDC subsystem. 128 * @brief Enables the SDC subsystem.
125 */ 129 */
126#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) 130#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
127#define HAL_USE_SDC FALSE 131#define HAL_USE_SDC FALSE
128#endif 132#endif
129 133
130/** 134/**
131 * @brief Enables the SERIAL subsystem. 135 * @brief Enables the SERIAL subsystem.
132 */ 136 */
133#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) 137#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
134#define HAL_USE_SERIAL FALSE 138#define HAL_USE_SERIAL FALSE
135#endif 139#endif
136 140
137/** 141/**
138 * @brief Enables the SERIAL over USB subsystem. 142 * @brief Enables the SERIAL over USB subsystem.
139 */ 143 */
140#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) 144#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
141#define HAL_USE_SERIAL_USB FALSE 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
142#endif 153#endif
143 154
144/** 155/**
145 * @brief Enables the SPI subsystem. 156 * @brief Enables the SPI subsystem.
146 */ 157 */
147#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) 158#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
148#define HAL_USE_SPI TRUE 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
149#endif 167#endif
150 168
151/** 169/**
152 * @brief Enables the UART subsystem. 170 * @brief Enables the UART subsystem.
153 */ 171 */
154#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) 172#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
155#define HAL_USE_UART FALSE 173#define HAL_USE_UART FALSE
156#endif 174#endif
157 175
158/** 176/**
159 * @brief Enables the USB subsystem. 177 * @brief Enables the USB subsystem.
160 */ 178 */
161#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) 179#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
162#define HAL_USE_USB TRUE 180#define HAL_USE_USB TRUE
163#endif 181#endif
164 182
165/** 183/**
166 * @brief Enables the WDG subsystem. 184 * @brief Enables the WDG subsystem.
167 */ 185 */
168#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) 186#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
169#define HAL_USE_WDG FALSE 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
170#endif 215#endif
171 216
172/*===========================================================================*/ 217/*===========================================================================*/
@@ -178,7 +223,7 @@
178 * @note Disabling this option saves both code and data space. 223 * @note Disabling this option saves both code and data space.
179 */ 224 */
180#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) 225#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
181#define ADC_USE_WAIT TRUE 226#define ADC_USE_WAIT TRUE
182#endif 227#endif
183 228
184/** 229/**
@@ -186,7 +231,7 @@
186 * @note Disabling this option saves both code and data space. 231 * @note Disabling this option saves both code and data space.
187 */ 232 */
188#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) 233#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
189#define ADC_USE_MUTUAL_EXCLUSION TRUE 234#define ADC_USE_MUTUAL_EXCLUSION TRUE
190#endif 235#endif
191 236
192/*===========================================================================*/ 237/*===========================================================================*/
@@ -197,7 +242,56 @@
197 * @brief Sleep mode related APIs inclusion switch. 242 * @brief Sleep mode related APIs inclusion switch.
198 */ 243 */
199#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) 244#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
200#define CAN_USE_SLEEP_MODE TRUE 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
201#endif 295#endif
202 296
203/*===========================================================================*/ 297/*===========================================================================*/
@@ -208,7 +302,7 @@
208 * @brief Enables the mutual exclusion APIs on the I2C bus. 302 * @brief Enables the mutual exclusion APIs on the I2C bus.
209 */ 303 */
210#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) 304#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
211#define I2C_USE_MUTUAL_EXCLUSION TRUE 305#define I2C_USE_MUTUAL_EXCLUSION TRUE
212#endif 306#endif
213 307
214/*===========================================================================*/ 308/*===========================================================================*/
@@ -216,17 +310,17 @@
216/*===========================================================================*/ 310/*===========================================================================*/
217 311
218/** 312/**
219 * @brief Enables an event sources for incoming packets. 313 * @brief Enables the zero-copy API.
220 */ 314 */
221#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) 315#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
222#define MAC_USE_ZERO_COPY FALSE 316#define MAC_USE_ZERO_COPY FALSE
223#endif 317#endif
224 318
225/** 319/**
226 * @brief Enables an event sources for incoming packets. 320 * @brief Enables an event sources for incoming packets.
227 */ 321 */
228#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) 322#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
229#define MAC_USE_EVENTS TRUE 323#define MAC_USE_EVENTS TRUE
230#endif 324#endif
231 325
232/*===========================================================================*/ 326/*===========================================================================*/
@@ -242,7 +336,7 @@
242 * use a DMA channel and heavily loads the CPU. 336 * use a DMA channel and heavily loads the CPU.
243 */ 337 */
244#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) 338#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
245#define MMC_NICE_WAITING TRUE 339#define MMC_NICE_WAITING TRUE
246#endif 340#endif
247 341
248/*===========================================================================*/ 342/*===========================================================================*/
@@ -254,7 +348,7 @@
254 * @note Attempts are performed at 10mS intervals. 348 * @note Attempts are performed at 10mS intervals.
255 */ 349 */
256#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) 350#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
257#define SDC_INIT_RETRY 100 351#define SDC_INIT_RETRY 100
258#endif 352#endif
259 353
260/** 354/**
@@ -263,7 +357,7 @@
263 * at @p FALSE. 357 * at @p FALSE.
264 */ 358 */
265#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) 359#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
266#define SDC_MMC_SUPPORT FALSE 360#define SDC_MMC_SUPPORT FALSE
267#endif 361#endif
268 362
269/** 363/**
@@ -273,7 +367,21 @@
273 * lower priority, this may slow down the driver a bit however. 367 * lower priority, this may slow down the driver a bit however.
274 */ 368 */
275#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) 369#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
276#define SDC_NICE_WAITING TRUE 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
277#endif 385#endif
278 386
279/*===========================================================================*/ 387/*===========================================================================*/
@@ -286,18 +394,18 @@
286 * default configuration. 394 * default configuration.
287 */ 395 */
288#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) 396#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
289#define SERIAL_DEFAULT_BITRATE 38400 397#define SERIAL_DEFAULT_BITRATE 38400
290#endif 398#endif
291 399
292/** 400/**
293 * @brief Serial buffers size. 401 * @brief Serial buffers size.
294 * @details Configuration parameter, you can change the depth of the queue 402 * @details Configuration parameter, you can change the depth of the queue
295 * buffers depending on the requirements of your application. 403 * buffers depending on the requirements of your application.
296 * @note The default is 64 bytes for both the transmission and receive 404 * @note The default is 16 bytes for both the transmission and receive
297 * buffers. 405 * buffers.
298 */ 406 */
299#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) 407#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
300#define SERIAL_BUFFERS_SIZE 16 408#define SERIAL_BUFFERS_SIZE 16
301#endif 409#endif
302 410
303/*===========================================================================*/ 411/*===========================================================================*/
@@ -308,11 +416,19 @@
308 * @brief Serial over USB buffers size. 416 * @brief Serial over USB buffers size.
309 * @details Configuration parameter, the buffer size must be a multiple of 417 * @details Configuration parameter, the buffer size must be a multiple of
310 * the USB data endpoint maximum packet size. 418 * the USB data endpoint maximum packet size.
311 * @note The default is 64 bytes for both the transmission and receive 419 * @note The default is 256 bytes for both the transmission and receive
312 * buffers. 420 * buffers.
313 */ 421 */
314#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) 422#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
315#define SERIAL_USB_BUFFERS_SIZE 1 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
316#endif 432#endif
317 433
318/*===========================================================================*/ 434/*===========================================================================*/
@@ -324,17 +440,53 @@
324 * @note Disabling this option saves both code and data space. 440 * @note Disabling this option saves both code and data space.
325 */ 441 */
326#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) 442#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
327#define SPI_USE_WAIT TRUE 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
328#endif 452#endif
329 453
454
330/** 455/**
331 * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. 456 * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
332 * @note Disabling this option saves both code and data space. 457 * @note Disabling this option saves both code and data space.
333 */ 458 */
334#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) 459#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
335#define SPI_USE_MUTUAL_EXCLUSION TRUE 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
336#endif 469#endif
337 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
481#endif
482
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
338 490
339/*===========================================================================*/ 491/*===========================================================================*/
340/* USB driver related settings. */ 492/* USB driver related settings. */
@@ -345,7 +497,29 @@
345 * @note Disabling this option saves both code and data space. 497 * @note Disabling this option saves both code and data space.
346 */ 498 */
347#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) 499#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
348#define USB_USE_WAIT TRUE 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
349#endif 513#endif
350 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
521#endif
522
523#endif /* HALCONF_H */
524
351/** @} */ 525/** @} */