First wave of feature cut conversions: CHEBUZZF3, MIDELICF3, and SPRACINGF3EVO.
[betaflight.git] / src / main / target / common_defaults_post.h
blobc96246da7aac76f7c840312df99bc644eaabcb96
1 /*
2 * This file is part of Cleanflight and Betaflight.
4 * Cleanflight and Betaflight are free software. You can redistribute
5 * this software and/or modify this software under the terms of the
6 * GNU General Public License as published by the Free Software
7 * Foundation, either version 3 of the License, or (at your option)
8 * any later version.
10 * Cleanflight and Betaflight are distributed in the hope that they
11 * will be useful, but WITHOUT ANY WARRANTY; without even the implied
12 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this software.
18 * If not, see <http://www.gnu.org/licenses/>.
21 // pg/max7456
23 #ifdef USE_MAX7456
24 #ifndef MAX7456_CLOCK_CONFIG_DEFAULT
25 #define MAX7456_CLOCK_CONFIG_DEFAULT MAX7456_CLOCK_CONFIG_OC
26 #endif
28 #ifndef MAX7456_SPI_CLK
29 #define MAX7456_SPI_CLK (SPI_CLOCK_STANDARD)
30 #endif
32 #ifndef MAX7456_RESTORE_CLK
33 #define MAX7456_RESTORE_CLK (SPI_CLOCK_FAST)
34 #endif
36 #ifndef MAX7456_SPI_CS_PIN
37 #define MAX7456_SPI_CS_PIN NONE
38 #endif
40 #ifndef MAX7456_SPI_INSTANCE
41 #define MAX7456_SPI_INSTANCE NULL
42 #endif
43 #endif
45 // pg/flash
47 #ifdef USE_FLASH_M25P16
48 #ifndef FLASH_CS_PIN
49 #define FLASH_CS_PIN NONE
50 #endif
52 #ifndef FLASH_SPI_INSTANCE
53 #define FLASH_SPI_INSTANCE NULL
54 #endif
55 #endif
57 // pg/flash
59 #ifdef USE_FLASH_M25P16
60 #ifndef FLASH_CS_PIN
61 #define FLASH_CS_PIN NONE
62 #endif
64 #ifndef FLASH_SPI_INSTANCE
65 #define FLASH_SPI_INSTANCE NULL
66 #endif
67 #endif
69 // pg/bus_i2c
71 #ifdef I2C_FULL_RECONFIGURABILITY
72 #ifdef USE_I2C_DEVICE_1
73 #define I2C1_SCL NONE
74 #define I2C1_SDA NONE
75 #endif
77 #ifdef USE_I2C_DEVICE_2
78 #define I2C2_SCL NONE
79 #define I2C2_SDA NONE
80 #endif
82 #ifdef USE_I2C_DEVICE_3
83 #define I2C3_SCL NONE
84 #define I2C3_SDA NONE
85 #endif
87 #ifdef USE_I2C_DEVICE_4
88 #define I2C4_SCL NONE
89 #define I2C4_SDA NONE
90 #endif
92 #else // I2C_FULL_RECONFIGURABILITY
94 // Backward compatibility for exisiting targets
96 #ifdef STM32F1
97 #ifndef I2C1_SCL
98 #define I2C1_SCL PB8
99 #endif
100 #ifndef I2C1_SDA
101 #define I2C1_SDA PB9
102 #endif
103 #ifndef I2C2_SCL
104 #define I2C2_SCL PB10
105 #endif
106 #ifndef I2C2_SDA
107 #define I2C2_SDA PB11
108 #endif
109 #endif // STM32F1
111 #ifdef STM32F3
112 #ifndef I2C1_SCL
113 #define I2C1_SCL PB6
114 #endif
115 #ifndef I2C1_SDA
116 #define I2C1_SDA PB7
117 #endif
118 #ifndef I2C2_SCL
119 #define I2C2_SCL PA9
120 #endif
121 #ifndef I2C2_SDA
122 #define I2C2_SDA PA10
123 #endif
124 #endif // STM32F3
126 #ifdef STM32F4
127 #ifndef I2C1_SCL
128 #define I2C1_SCL PB6
129 #endif
130 #ifndef I2C1_SDA
131 #define I2C1_SDA PB7
132 #endif
133 #ifndef I2C2_SCL
134 #define I2C2_SCL PB10
135 #endif
136 #ifndef I2C2_SDA
137 #define I2C2_SDA PB11
138 #endif
139 #ifndef I2C3_SCL
140 #define I2C3_SCL PA8
141 #endif
142 #ifndef I2C3_SDA
143 #define I2C3_SDA PC9
144 #endif
145 #endif // STM32F4
147 #ifdef STM32F7
148 #ifndef I2C1_SCL
149 #define I2C1_SCL PB6
150 #endif
151 #ifndef I2C1_SDA
152 #define I2C1_SDA PB7
153 #endif
154 #ifndef I2C2_SCL
155 #define I2C2_SCL PB10
156 #endif
157 #ifndef I2C2_SDA
158 #define I2C2_SDA PB11
159 #endif
160 #ifndef I2C3_SCL
161 #define I2C3_SCL PA8
162 #endif
163 #ifndef I2C3_SDA
164 #define I2C3_SDA PB4
165 #endif
166 #ifndef I2C4_SCL
167 #define I2C4_SCL PD12
168 #endif
169 #ifndef I2C4_SDA
170 #define I2C4_SDA PD13
171 #endif
172 #endif // STM32F7
174 #endif // I2C_FULL_RECONFIGURABILITY
176 // Default values for internal pullup
178 #if defined(USE_I2C_PULLUP)
179 #define I2C1_PULLUP true
180 #define I2C2_PULLUP true
181 #define I2C3_PULLUP true
182 #define I2C4_PULLUP true
183 #else
184 #define I2C1_PULLUP false
185 #define I2C2_PULLUP false
186 #define I2C3_PULLUP false
187 #define I2C4_PULLUP false
188 #endif
190 // pg/bus_spi
192 #ifdef SPI_FULL_RECONFIGURABILITY
194 #ifdef USE_SPI_DEVICE_1
195 #define SPI1_SCK_PIN NONE
196 #define SPI1_MISO_PIN NONE
197 #define SPI1_MOSI_PIN NONE
198 #endif
200 #ifdef USE_SPI_DEVICE_2
201 #define SPI2_SCK_PIN NONE
202 #define SPI2_MISO_PIN NONE
203 #define SPI2_MOSI_PIN NONE
204 #endif
206 #ifdef USE_SPI_DEVICE_3
207 #define SPI3_SCK_PIN NONE
208 #define SPI3_MISO_PIN NONE
209 #define SPI3_MOSI_PIN NONE
210 #endif
212 #ifdef USE_SPI_DEVICE_4
213 #define SPI4_SCK_PIN NONE
214 #define SPI4_MISO_PIN NONE
215 #define SPI4_MOSI_PIN NONE
216 #endif
218 #else
220 // Pin defaults for backward compatibility
222 #ifndef SPI1_SCK_PIN
223 #define SPI1_SCK_PIN PA5
224 #define SPI1_MISO_PIN PA6
225 #define SPI1_MOSI_PIN PA7
226 #endif
228 #ifndef SPI2_SCK_PIN
229 #define SPI2_SCK_PIN PB13
230 #define SPI2_MISO_PIN PB14
231 #define SPI2_MOSI_PIN PB15
232 #endif
234 #ifndef SPI3_SCK_PIN
235 #define SPI3_SCK_PIN PB3
236 #define SPI3_MISO_PIN PB4
237 #define SPI3_MOSI_PIN PB5
238 #endif
239 #endif
241 // Extracted from rx/rx.c and rx/rx.h
243 #define RX_MAPPABLE_CHANNEL_COUNT 8
245 #ifndef RX_SPI_DEFAULT_PROTOCOL
246 #define RX_SPI_DEFAULT_PROTOCOL 0
247 #endif
248 #ifndef SERIALRX_PROVIDER
249 #define SERIALRX_PROVIDER 0
250 #endif
252 #define RX_MIN_USEC 885
253 #define RX_MAX_USEC 2115
254 #define RX_MID_USEC 1500
256 #ifndef SPEKTRUM_BIND_PIN
257 #define SPEKTRUM_BIND_PIN NONE
258 #endif
260 #ifndef BINDPLUG_PIN
261 #define BINDPLUG_PIN NONE
262 #endif
264 #ifdef USE_RX_SPI
265 #ifndef RX_SPI_LED_PIN
266 #define RX_SPI_LED_PIN NONE
267 #endif
268 #endif
270 // F4 and F7 single gyro boards
271 #if defined(USE_MULTI_GYRO) && !defined(GYRO_2_SPI_INSTANCE)
272 #define GYRO_2_SPI_INSTANCE GYRO_1_SPI_INSTANCE
273 #define GYRO_2_CS_PIN NONE
274 #define GYRO_2_ALIGN ALIGN_DEFAULT
275 #define GYRO_2_EXTI_PIN NONE
276 #define ACC_2_ALIGN ALIGN_DEFAULT
277 #endif
279 #if !defined(GYRO_1_SPI_INSTANCE)
280 #define GYRO_1_SPI_INSTANCE NULL
281 #endif
283 #if !defined(GYRO_1_CS_PIN)
284 #define GYRO_1_CS_PIN NONE
285 #endif
287 #if !defined(GYRO_1_EXTI_PIN)
288 #define GYRO_1_EXTI_PIN NONE
289 #endif
291 #if !defined(GYRO_1_ALIGN)
292 #define GYRO_1_ALIGN ALIGN_DEFAULT
293 #endif
295 #if !defined(ACC_1_ALIGN)
296 #define ACC_1_ALIGN ALIGN_DEFAULT
297 #endif
299 #if defined(MPU_ADDRESS)
300 #define GYRO_I2C_ADDRESS MPU_ADDRESS
301 #else
302 #define GYRO_I2C_ADDRESS 0 // AUTO
303 #endif
305 #ifdef USE_MULTI_GYRO
306 #define MAX_GYRODEV_COUNT 2
307 #else
308 #define MAX_GYRODEV_COUNT 1
309 #endif
311 #ifdef USE_VCP
312 #ifndef USB_DETECT_PIN
313 #define USB_DETECT_PIN NONE
314 #endif
315 #ifndef USB_MSC_BUTTON_PIN
316 #define USB_MSC_BUTTON_PIN NONE
317 #endif
318 #if !defined(MSC_BUTTON_IPU)
319 #define MSC_BUTTON_IPU true
320 #endif
321 #endif
323 #ifdef USE_TIMER_MGMT
324 #ifndef MAX_TIMER_PINMAP_COUNT
325 #define MAX_TIMER_PINMAP_COUNT 21 // Largest known for F405RG (OMNINXT)
326 #endif
327 #endif
329 #ifdef USE_SDCARD
330 #ifndef SDCARD_DETECT_PIN
331 #define SDCARD_DETECT_PIN NONE
332 #endif
333 #ifdef SDCARD_DETECT_INVERTED
334 #define SDCARD_DETECT_IS_INVERTED 1
335 #else
336 #define SDCARD_DETECT_IS_INVERTED 0
337 #endif
338 #ifdef USE_SDCARD_SPI
339 #ifndef SDCARD_SPI_INSTANCE
340 #define SDCARD_SPI_INSTANCE NULL
341 #endif
342 #ifndef SDCARD_SPI_CS_PIN
343 #define SDCARD_SPI_CS_PIN NONE
344 #endif
345 #endif // USE_SDCARD_SPI
346 #ifdef USE_SDCARD_SDIO
347 #ifndef SDCARD_SDIO_DMA_OPT
348 #define SDCARD_SDIO_DMA_OPT (-1)
349 #endif
350 #endif // USE_SDCARD_SDIO
351 #endif // USE_SDCARD
353 #if defined(USE_UART1) || defined(USE_UART2) || defined(USE_UART3) || defined(USE_UART4) || defined(USE_UART5) || defined(USE_UART6) || defined(USE_UART7) || defined(USE_UART8)
354 #define USE_UART
355 #endif
357 #ifdef USE_UART
358 #if defined(INVERTER_PIN_UART1) || defined(INVERTER_PIN_UART2) || defined(INVERTER_PIN_UART3) || defined(INVERTER_PIN_UART4) || defined(INVERTER_PIN_UART5) || defined(INVERTER_PIN_UART6)
359 #define USE_INVERTER
360 #endif
361 #endif
363 #ifndef DEFAULT_MIXER
364 #define DEFAULT_MIXER MIXER_QUADX
365 #endif
367 #if defined(USE_RANGEFINDER) && defined(USE_RANGEFINDER_HCSR04)
368 #ifndef RANGEFINDER_HCSR04_TRIGGER_PIN
369 #define RANGEFINDER_HCSR04_TRIGGER_PIN NONE
370 #endif
371 #ifndef RANGEFINDER_HCSR04_ECHO_PIN
372 #define RANGEFINDER_HCSR04_ECHO_PIN NONE
373 #endif
374 #endif
376 // Mag
377 #if defined(USE_MAG)
378 #ifndef MAG_SPI_INSTANCE
379 #define MAG_SPI_INSTANCE NULL
380 #endif
381 #ifndef MAG_CS_PIN
382 #define MAG_CS_PIN NONE
383 #endif
384 #ifndef MAG_I2C_INSTANCE
385 #define MAG_I2C_INSTANCE I2C_DEVICE
386 #endif
387 #endif
389 #ifndef MAG_INT_EXTI
390 #define MAG_INT_EXTI NONE
391 #endif
393 // Baro
394 #if defined(USE_BARO)
395 #ifndef BARO_SPI_INSTANCE
396 #define BARO_SPI_INSTANCE NULL
397 #endif
398 #ifndef BARO_CS_PIN
399 #define BARO_CS_PIN NONE
400 #endif
401 #ifndef BARO_I2C_INSTANCE
402 #define BARO_I2C_INSTANCE I2C_DEVICE
403 #endif
404 #endif
406 #ifdef USE_ADC
407 #if !defined(GENERIC_TARGET) && !defined(ADC_INSTANCE)
408 #define ADC_INSTANCE ADC1
409 #ifndef ADC1_DMA_OPT
410 #define ADC1_DMA_OPT 1
411 #endif
412 #endif
414 #if !defined(ADC1_DMA_OPT)
415 #define ADC1_DMA_OPT (-1)
416 #endif
417 #if !defined(ADC2_DMA_OPT)
418 #define ADC2_DMA_OPT (-1)
419 #endif
420 #if !defined(ADC3_DMA_OPT)
421 #define ADC3_DMA_OPT (-1)
422 #endif
424 #endif // USE_ADC
426 #ifdef USE_SPI
427 #ifdef USE_SPI_DEVICE_1
428 #ifndef SPI1_TX_DMA_OPT
429 #define SPI1_TX_DMA_OPT (-1)
430 #endif
431 #ifndef SPI1_RX_DMA_OPT
432 #define SPI1_RX_DMA_OPT (-1)
433 #endif
434 #endif
435 #ifdef USE_SPI_DEVICE_2
436 #ifndef SPI2_TX_DMA_OPT
437 #define SPI2_TX_DMA_OPT (-1)
438 #endif
439 #ifndef SPI2_RX_DMA_OPT
440 #define SPI2_RX_DMA_OPT (-1)
441 #endif
442 #endif
443 #ifdef USE_SPI_DEVICE_3
444 #ifndef SPI3_TX_DMA_OPT
445 #define SPI3_TX_DMA_OPT (-1)
446 #endif
447 #ifndef SPI3_RX_DMA_OPT
448 #define SPI3_RX_DMA_OPT (-1)
449 #endif
450 #endif
451 #ifdef USE_SPI_DEVICE_4
452 #ifndef SPI4_TX_DMA_OPT
453 #define SPI4_TX_DMA_OPT (-1)
454 #endif
455 #ifndef SPI4_RX_DMA_OPT
456 #define SPI4_RX_DMA_OPT (-1)
457 #endif
458 #endif
459 #endif
461 #ifdef USE_UART1
462 #ifndef UART1_TX_DMA_OPT
463 #define UART1_TX_DMA_OPT (-1)
464 #endif
465 #ifndef UART1_RX_DMA_OPT
466 #define UART1_RX_DMA_OPT (-1)
467 #endif
468 #endif
470 #ifdef USE_UART2
471 #ifndef UART2_TX_DMA_OPT
472 #define UART2_TX_DMA_OPT (-1)
473 #endif
474 #ifndef UART2_RX_DMA_OPT
475 #define UART2_RX_DMA_OPT (-1)
476 #endif
477 #endif
479 #ifdef USE_UART3
480 #ifndef UART3_TX_DMA_OPT
481 #define UART3_TX_DMA_OPT (-1)
482 #endif
483 #ifndef UART3_RX_DMA_OPT
484 #define UART3_RX_DMA_OPT (-1)
485 #endif
486 #endif
488 #ifdef USE_UART4
489 #ifndef UART4_TX_DMA_OPT
490 #define UART4_TX_DMA_OPT (-1)
491 #endif
492 #ifndef UART4_RX_DMA_OPT
493 #define UART4_RX_DMA_OPT (-1)
494 #endif
495 #endif
497 #ifdef USE_UART5
498 #ifndef UART5_TX_DMA_OPT
499 #define UART5_TX_DMA_OPT (-1)
500 #endif
501 #ifndef UART5_RX_DMA_OPT
502 #define UART5_RX_DMA_OPT (-1)
503 #endif
504 #endif
506 #ifdef USE_UART6
507 #ifndef UART6_TX_DMA_OPT
508 #define UART6_TX_DMA_OPT (-1)
509 #endif
510 #ifndef UART6_RX_DMA_OPT
511 #define UART6_RX_DMA_OPT (-1)
512 #endif
513 #endif
515 #ifdef USE_UART7
516 #ifndef UART7_TX_DMA_OPT
517 #define UART7_TX_DMA_OPT (-1)
518 #endif
519 #ifndef UART7_RX_DMA_OPT
520 #define UART7_RX_DMA_OPT (-1)
521 #endif
522 #endif
524 #ifdef USE_UART8
525 #ifndef UART8_TX_DMA_OPT
526 #define UART8_TX_DMA_OPT (-1)
527 #endif
528 #ifndef UART8_RX_DMA_OPT
529 #define UART8_RX_DMA_OPT (-1)
530 #endif
531 #endif