Merge pull request #7641 from etracer65/use_beeper_compile_warnings
[betaflight.git] / src / main / target / common_post.h
blobadec2de9340d85c860773c497b85939f023274f2
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 // Touch up configuration
23 #pragma once
25 #include "build/version.h"
27 // Targets with built-in vtx do not need external vtx
28 #if defined(USE_VTX_RTC6705) && !defined(VTX_RTC6705_OPTIONAL)
29 #undef USE_VTX_SMARTAUDIO
30 #undef USE_VTX_TRAMP
31 #endif
33 #ifndef USE_DSHOT
34 #undef USE_ESC_SENSOR
35 #endif
37 #ifndef USE_ESC_SENSOR
38 #undef USE_ESC_SENSOR_TELEMETRY
39 #endif
41 // XXX Followup implicit dependencies among DASHBOARD, display_xxx and USE_I2C.
42 // XXX This should eventually be cleaned up.
43 #ifndef USE_I2C
44 #undef USE_I2C_OLED_DISPLAY
45 #undef USE_DASHBOARD
46 #else
47 #ifdef USE_DASHBOARD
48 #define USE_I2C_OLED_DISPLAY
49 #endif
50 #endif
52 // XXX Remove USE_BARO_BMP280 and USE_BARO_MS5611 if USE_I2C is not defined.
53 // XXX This should go away buy editing relevant target.h files
54 #if !defined(USE_I2C)
55 #if defined(USE_BARO_BMP280)
56 #undef USE_BARO_BMP280
57 #endif
58 #if defined(USE_BARO_MS5611)
59 #undef USE_BARO_MS5611
60 #endif
61 #endif
63 #if !defined(USE_BARO) && !defined(USE_GPS)
64 #undef USE_VARIO
65 #endif
67 #if !defined(USE_SERIAL_RX)
68 #undef USE_SERIALRX_CRSF
69 #undef USE_SERIALRX_IBUS
70 #undef USE_SERIALRX_JETIEXBUS
71 #undef USE_SERIALRX_SBUS
72 #undef USE_SERIALRX_SPEKTRUM
73 #undef USE_SERIALRX_SUMD
74 #undef USE_SERIALRX_SUMH
75 #undef USE_SERIALRX_XBUS
76 #undef USE_SERIALRX_FPORT
77 #endif
79 #if !defined(USE_TELEMETRY)
80 #undef USE_CRSF_CMS_TELEMETRY
81 #undef USE_TELEMETRY_CRSF
82 #undef USE_TELEMETRY_FRSKY_HUB
83 #undef USE_TELEMETRY_HOTT
84 #undef USE_TELEMETRY_IBUS
85 #undef USE_TELEMETRY_IBUS_EXTENDED
86 #undef USE_TELEMETRY_JETIEXBUS
87 #undef USE_TELEMETRY_LTM
88 #undef USE_TELEMETRY_MAVLINK
89 #undef USE_TELEMETRY_SMARTPORT
90 #undef USE_TELEMETRY_SRXL
91 #undef USE_SERIALRX_FPORT
92 #endif
94 #if !defined(USE_SERIALRX_CRSF)
95 #undef USE_TELEMETRY_CRSF
96 #endif
98 #if !defined(USE_TELEMETRY_CRSF) || !defined(USE_CMS)
99 #undef USE_CRSF_CMS_TELEMETRY
100 #endif
102 #if !defined(USE_SERIALRX_JETIEXBUS)
103 #undef USE_TELEMETRY_JETIEXBUS
104 #endif
106 #if !defined(USE_TELEMETRY_IBUS)
107 #undef USE_TELEMETRY_IBUS_EXTENDED
108 #endif
110 // If USE_SERIALRX_SPEKTRUM was dropped by a target, drop all related options
111 #ifndef USE_SERIALRX_SPEKTRUM
112 #undef USE_SPEKTRUM_BIND
113 #undef USE_SPEKTRUM_BIND_PLUG
114 #undef USE_SPEKTRUM_REAL_RSSI
115 #undef USE_SPEKTRUM_FAKE_RSSI
116 #undef USE_SPEKTRUM_RSSI_PERCENT_CONVERSION
117 #undef USE_SPEKTRUM_VTX_CONTROL
118 #undef USE_SPEKTRUM_VTX_TELEMETRY
119 #undef USE_SPEKTRUM_CMS_TELEMETRY
120 #undef USE_TELEMETRY_SRXL
121 #endif
123 #if defined(USE_SERIALRX_SBUS) || defined(USE_SERIALRX_FPORT)
124 #define USE_SBUS_CHANNELS
125 #endif
127 #if !defined(USE_TELEMETRY_SMARTPORT) && !defined(USE_TELEMETRY_CRSF)
128 #undef USE_MSP_OVER_TELEMETRY
129 #endif
131 /* If either VTX_CONTROL or VTX_COMMON is undefined then remove common code and device drivers */
132 #if !defined(USE_VTX_COMMON) || !defined(USE_VTX_CONTROL)
133 #undef USE_VTX_COMMON
134 #undef USE_VTX_CONTROL
135 #undef USE_VTX_TRAMP
136 #undef USE_VTX_SMARTAUDIO
137 #endif
139 #if defined(USE_RX_FRSKY_SPI_D) || defined(USE_RX_FRSKY_SPI_X)
140 #define USE_RX_CC2500
141 #define USE_RX_FRSKY_SPI
142 #endif
144 #if defined(USE_RX_SFHSS_SPI)
145 #define USE_RX_CC2500
146 #endif
148 // Burst dshot to default off if not configured explicitly by target
149 #ifndef ENABLE_DSHOT_DMAR
150 #define ENABLE_DSHOT_DMAR false
151 #endif
153 // Some target doesn't define USE_ADC which USE_ADC_INTERNAL depends on
154 #ifndef USE_ADC
155 #undef USE_ADC_INTERNAL
156 #endif
158 #if (!defined(USE_SDCARD) && !defined(USE_FLASHFS)) || !defined(USE_BLACKBOX)
159 #undef USE_USB_MSC
160 #endif
162 #if !defined(USE_VCP)
163 #undef USE_USB_CDC_HID
164 #undef USE_USB_MSC
165 #endif
167 #if defined(USE_USB_CDC_HID) || defined(USE_USB_MSC)
168 #define USE_USB_ADVANCED_PROFILES
169 #endif
172 #if defined(USE_FLASH_W25M512)
173 #define USE_FLASH_W25M
174 #define USE_FLASH_M25P16
175 #endif
177 #if defined(USE_FLASH_M25P16)
178 #define USE_FLASH_CHIP
179 #endif
181 #if defined(USE_MAX7456)
182 #define USE_OSD
183 #endif
185 #if !defined(USE_OSD)
186 #undef USE_RX_LINK_QUALITY_INFO
187 #undef USE_OSD_PROFILES
188 #undef USE_OSD_STICK_OVERLAY
189 #endif
191 #if defined(USE_GPS_RESCUE)
192 #define USE_GPS
193 #endif
195 // Generate USE_SPI_GYRO or USE_I2C_GYRO
196 #if defined(USE_GYRO_L3G4200D) || defined(USE_GYRO_MPU3050) || defined(USE_GYRO_MPU6000) || defined(USE_GYRO_MPU6050) || defined(USE_GYRO_MPU6500)
197 #define USE_I2C_GYRO
198 #endif
200 #if defined(USE_GYRO_SPI_ICM20689) || defined(USE_GYRO_SPI_MPU6000) || defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_MPU9250) || defined(USE_GYRO_L3GD20)
201 #define USE_SPI_GYRO
202 #endif
204 // CX10 is a special case of SPI RX which requires XN297
205 #if defined(USE_RX_CX10)
206 #define USE_RX_XN297
207 #endif
209 #ifdef USE_UNIFIED_TARGET
210 #define USE_CONFIGURATION_STATE
212 // Setup crystal frequency for backward compatibility
213 // Should be set to zero for generic targets and set with CLI variable set system_hse_value.
214 #define SYSTEM_HSE_VALUE 0
215 #else
216 #ifdef TARGET_XTAL_MHZ
217 #define SYSTEM_HSE_VALUE TARGET_XTAL_MHZ
218 #else
219 #define SYSTEM_HSE_VALUE (HSE_VALUE/1000000U)
220 #endif
221 #endif // USE_UNIFIED_TARGET
223 // Number of pins that needs pre-init
224 #ifdef USE_SPI
225 #ifndef SPI_PREINIT_COUNT
226 #define SPI_PREINIT_COUNT 16 // 2 x 8 (GYROx2, BARO, MAG, MAX, FLASHx2, RX)
227 #endif
228 #endif
230 #if (!defined(USE_FLASHFS) || !defined(USE_RTC_TIME) || !defined(USE_USB_MSC))
231 #undef USE_PERSISTENT_MSC_RTC
232 #endif
234 #if !defined(USE_SERIAL_4WAY_BLHELI_BOOTLOADER) && !defined(USE_SERIAL_4WAY_SK_BOOTLOADER)
235 #undef USE_SERIAL_4WAY_BLHELI_INTERFACE
236 #elif !defined(USE_SERIAL_4WAY_BLHELI_INTERFACE) && (defined(USE_SERIAL_4WAY_BLHELI_BOOTLOADER) || defined(USE_SERIAL_4WAY_SK_BOOTLOADER))
237 #define USE_SERIAL_4WAY_BLHELI_INTERFACE
238 #endif
240 #if !defined(USE_LED_STRIP)
241 #undef USE_LED_STRIP_STATUS_MODE
242 #endif
244 #if defined(USE_LED_STRIP) && !defined(USE_LED_STRIP_STATUS_MODE)
245 #define USE_WS2811_SINGLE_COLOUR
246 #endif
248 #if defined(SIMULATOR_BUILD) || defined(UNIT_TEST)
249 // This feature uses 'arm_math.h', which does not exist for x86.
250 #undef USE_GYRO_DATA_ANALYSE
251 #endif
253 #ifndef USE_DSHOT
254 #undef USE_DSHOT_TELEMETRY
255 #undef USE_RPM_FILTER
256 #endif
258 #ifndef USE_CMS
259 #undef USE_CMS_FAILSAFE_MENU
260 #endif
262 #ifndef USE_DSHOT_TELEMETRY
263 #undef USE_RPM_FILTER
264 #endif
266 #if !defined(USE_BOARD_INFO)
267 #undef USE_SIGNATURE
268 #endif
270 #if !defined(USE_ACC)
271 #undef USE_GPS_RESCUE
272 #undef USE_ACRO_TRAINER
273 #endif
275 #ifndef USE_BEEPER
276 #undef BEEPER_PIN
277 #undef BEEPER_PWM_HZ
278 #endif