diff --git a/src/main/blackbox/blackbox.c b/src/main/blackbox/blackbox.c
index 96dedade74..a59cc8d78f 100644
--- a/src/main/blackbox/blackbox.c
+++ b/src/main/blackbox/blackbox.c
@@ -72,7 +72,6 @@
#include "flight/altitudehold.h"
#include "flight/failsafe.h"
#include "flight/imu.h"
-#include "flight/pid.h"
#include "flight/navigation.h"
#include "config/runtime_config.h"
diff --git a/src/main/blackbox/blackbox_io.c b/src/main/blackbox/blackbox_io.c
index 88306767c6..cd4f05d980 100644
--- a/src/main/blackbox/blackbox_io.c
+++ b/src/main/blackbox/blackbox_io.c
@@ -53,7 +53,6 @@
#include "flight/altitudehold.h"
#include "flight/failsafe.h"
#include "flight/imu.h"
-#include "flight/pid.h"
#include "flight/navigation.h"
#include "config/runtime_config.h"
diff --git a/src/main/config/config.c b/src/main/config/config.c
index 48ad7fa563..c1ddd2d281 100755
--- a/src/main/config/config.c
+++ b/src/main/config/config.c
@@ -23,7 +23,6 @@
#include "debug.h"
#include "build_config.h"
-#include "debug.h"
#include "blackbox/blackbox_io.h"
diff --git a/src/main/drivers/bus_i2c.h b/src/main/drivers/bus_i2c.h
index d31d806225..86f7a66181 100644
--- a/src/main/drivers/bus_i2c.h
+++ b/src/main/drivers/bus_i2c.h
@@ -21,8 +21,8 @@
#define I2C_LONG_TIMEOUT ((uint32_t)(10 * I2C_SHORT_TIMEOUT))
#define I2C_DEFAULT_TIMEOUT I2C_SHORT_TIMEOUT
-#include "io.h"
-#include "rcc.h"
+#include "drivers/io.h"
+#include "drivers/rcc.h"
#ifndef I2C_DEVICE
#define I2C_DEVICE I2CINVALID
diff --git a/src/main/drivers/exti.h b/src/main/drivers/exti.h
index 713ec50aec..8071c65e33 100644
--- a/src/main/drivers/exti.h
+++ b/src/main/drivers/exti.h
@@ -18,7 +18,7 @@
#pragma once
-#include "io.h"
+#include "drivers/io.h"
// old EXTI interface, to be replaced
typedef struct extiConfig_s {
diff --git a/src/main/drivers/sound_beeper.h b/src/main/drivers/sound_beeper.h
index 4fad6422cc..ab7a7c3dfc 100644
--- a/src/main/drivers/sound_beeper.h
+++ b/src/main/drivers/sound_beeper.h
@@ -17,7 +17,7 @@
#pragma once
-#include "io.h"
+#include "drivers/io.h"
#ifdef BEEPER
#define BEEP_TOGGLE systemBeepToggle()
diff --git a/src/main/flight/altitudehold.h b/src/main/flight/altitudehold.h
index da16978814..3677fbb287 100644
--- a/src/main/flight/altitudehold.h
+++ b/src/main/flight/altitudehold.h
@@ -15,21 +15,19 @@
* along with Cleanflight. If not, see .
*/
-#pragma once
+#include "io/escservo.h"
+#include "io/rc_controls.h"
+#include "flight/pid.h"
+
+#include "sensors/barometer.h"
extern int32_t AltHold;
extern int32_t vario;
void calculateEstimatedAltitude(uint32_t currentTime);
-struct pidProfile_s;
-struct barometerConfig_s;
-struct rcControlsConfig_s;
-struct escAndServoConfig_s;
-void configureAltitudeHold(struct pidProfile_s *initialPidProfile, struct barometerConfig_s *intialBarometerConfig, struct rcControlsConfig_s *initialRcControlsConfig, struct escAndServoConfig_s *initialEscAndServoConfig);
-
-struct airplaneConfig_t;
-void applyAltHold(struct airplaneConfig_s *airplaneConfig);
+void configureAltitudeHold(pidProfile_t *initialPidProfile, barometerConfig_t *intialBarometerConfig, rcControlsConfig_t *initialRcControlsConfig, escAndServoConfig_t *initialEscAndServoConfig);
+void applyAltHold(airplaneConfig_t *airplaneConfig);
void updateAltHoldState(void);
void updateSonarAltHoldState(void);
diff --git a/src/main/flight/imu.h b/src/main/flight/imu.h
index e5229a2ead..94b361fcf6 100644
--- a/src/main/flight/imu.h
+++ b/src/main/flight/imu.h
@@ -69,10 +69,9 @@ typedef struct accProcessor_s {
accProcessorState_e state;
} accProcessor_t;
-struct pidProfile_s;
void imuConfigure(
imuRuntimeConfig_t *initialImuRuntimeConfig,
- struct pidProfile_s *initialPidProfile,
+ pidProfile_t *initialPidProfile,
accDeadband_t *initialAccDeadband,
uint16_t throttle_correction_angle
);
diff --git a/src/main/flight/pid.h b/src/main/flight/pid.h
index 3adbe31671..4f3623c319 100644
--- a/src/main/flight/pid.h
+++ b/src/main/flight/pid.h
@@ -14,6 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with Cleanflight. If not, see .
*/
+#include "rx/rx.h"
#pragma once
diff --git a/src/main/io/display.c b/src/main/io/display.c
index a22ca88023..1e5eee9746 100644
--- a/src/main/io/display.c
+++ b/src/main/io/display.c
@@ -63,8 +63,6 @@
#include "io/display.h"
-#include "rx/rx.h"
-
#include "scheduler/scheduler.h"
extern profile_t *currentProfile;
diff --git a/src/main/io/rc_controls.h b/src/main/io/rc_controls.h
index a3622aacab..aace839d9b 100644
--- a/src/main/io/rc_controls.h
+++ b/src/main/io/rc_controls.h
@@ -17,6 +17,8 @@
#pragma once
+#include "rx/rx.h"
+
typedef enum {
BOXARM = 0,
BOXANGLE,
@@ -165,9 +167,8 @@ typedef struct rcControlsConfig_s {
bool areUsingSticksToArm(void);
bool areSticksInApModePosition(uint16_t ap_mode);
-struct rxConfig_s;
-throttleStatus_e calculateThrottleStatus(struct rxConfig_s *rxConfig, uint16_t deadband3d_throttle);
-void processRcStickPositions(struct rxConfig_s *rxConfig, throttleStatus_e throttleStatus, bool disarm_kill_switch);
+throttleStatus_e calculateThrottleStatus(rxConfig_t *rxConfig, uint16_t deadband3d_throttle);
+void processRcStickPositions(rxConfig_t *rxConfig, throttleStatus_e throttleStatus, bool disarm_kill_switch);
bool isRangeActive(uint8_t auxChannelIndex, channelRange_t *range);
void updateActivatedModes(modeActivationCondition_t *modeActivationConditions);
@@ -256,7 +257,7 @@ bool isAirmodeActive(void);
bool isSuperExpoActive(void);
void resetAdjustmentStates(void);
void updateAdjustmentStates(adjustmentRange_t *adjustmentRanges);
-void processRcAdjustments(controlRateConfig_t *controlRateConfig, struct rxConfig_s *rxConfig);
+void processRcAdjustments(controlRateConfig_t *controlRateConfig, rxConfig_t *rxConfig);
bool isUsingSticksForArming(void);
diff --git a/src/main/io/rc_curves.c b/src/main/io/rc_curves.c
index 4a2b20bdde..89b46522f2 100644
--- a/src/main/io/rc_curves.c
+++ b/src/main/io/rc_curves.c
@@ -18,13 +18,12 @@
#include
#include
-#include "config/config.h"
-
-#include "io/escservo.h"
#include "io/rc_controls.h"
+#include "io/escservo.h"
+
#include "io/rc_curves.h"
-#include "rx/rx.h"
+#include "config/config.h"
#define THROTTLE_LOOKUP_LENGTH 12
static int16_t lookupThrottleRC[THROTTLE_LOOKUP_LENGTH]; // lookup table for expo & mid THROTTLE
diff --git a/src/main/rx/rx.c b/src/main/rx/rx.c
index f5c0c9a9d7..a7a09a44b7 100644
--- a/src/main/rx/rx.c
+++ b/src/main/rx/rx.c
@@ -41,8 +41,6 @@
#include "drivers/timer.h"
#include "drivers/pwm_rx.h"
#include "drivers/system.h"
-
-#include "rx/rx.h"
#include "rx/pwm.h"
#include "rx/sbus.h"
#include "rx/spektrum.h"
@@ -53,6 +51,8 @@
#include "rx/ibus.h"
#include "rx/jetiexbus.h"
+#include "rx/rx.h"
+
//#define DEBUG_RX_SIGNAL_LOSS
diff --git a/src/main/rx/xbus.h b/src/main/rx/xbus.h
index 19dc6d5735..bc76f56786 100644
--- a/src/main/rx/xbus.h
+++ b/src/main/rx/xbus.h
@@ -17,5 +17,7 @@
#pragma once
+#include "rx/rx.h"
+
bool xBusInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback);
uint8_t xBusFrameStatus(void);
diff --git a/src/main/sensors/battery.c b/src/main/sensors/battery.c
index 6d165cbc57..75aac6cf0a 100644
--- a/src/main/sensors/battery.c
+++ b/src/main/sensors/battery.c
@@ -35,8 +35,6 @@
#include "io/rc_controls.h"
#include "io/beeper.h"
-#include "rx/rx.h"
-
#define VBATT_PRESENT_THRESHOLD_MV 10
#define VBATT_LPF_FREQ 0.4f
diff --git a/src/main/telemetry/frsky.h b/src/main/telemetry/frsky.h
index c057f22376..555eb43e83 100644
--- a/src/main/telemetry/frsky.h
+++ b/src/main/telemetry/frsky.h
@@ -17,13 +17,14 @@
#pragma once
+#include "rx/rx.h"
+
typedef enum {
FRSKY_VFAS_PRECISION_LOW = 0,
FRSKY_VFAS_PRECISION_HIGH
} frskyVFasPrecision_e;
-struct rxConfig_s;
-void handleFrSkyTelemetry(struct rxConfig_s *rxConfig, uint16_t deadband3d_throttle);
+void handleFrSkyTelemetry(rxConfig_t *rxConfig, uint16_t deadband3d_throttle);
void checkFrSkyTelemetryState(void);
void initFrSkyTelemetry(telemetryConfig_t *telemetryConfig);
diff --git a/src/main/telemetry/hott.h b/src/main/telemetry/hott.h
index 19d4c5369a..64a43bd507 100644
--- a/src/main/telemetry/hott.h
+++ b/src/main/telemetry/hott.h
@@ -488,8 +488,7 @@ typedef struct HOTT_AIRESC_MSG_s {
void handleHoTTTelemetry(void);
void checkHoTTTelemetryState(void);
-struct telemetryConfig_s;
-void initHoTTTelemetry(struct telemetryConfig_s *telemetryConfig);
+void initHoTTTelemetry(telemetryConfig_t *telemetryConfig);
void configureHoTTTelemetryPort(void);
void freeHoTTTelemetryPort(void);
diff --git a/src/main/telemetry/ltm.h b/src/main/telemetry/ltm.h
index e5b4790c5a..6e4b80cbfa 100644
--- a/src/main/telemetry/ltm.h
+++ b/src/main/telemetry/ltm.h
@@ -19,8 +19,7 @@
#pragma once
-struct telemetryConfig_s;
-void initLtmTelemetry(struct telemetryConfig_s *initialTelemetryConfig);
+void initLtmTelemetry(telemetryConfig_t *initialTelemetryConfig);
void handleLtmTelemetry(void);
void checkLtmTelemetryState(void);
diff --git a/src/main/telemetry/smartport.h b/src/main/telemetry/smartport.h
index 932ba1a929..b24be90708 100644
--- a/src/main/telemetry/smartport.h
+++ b/src/main/telemetry/smartport.h
@@ -7,8 +7,7 @@
#pragma once
-struct telemetryConfig_s;
-void initSmartPortTelemetry(struct telemetryConfig_s *);
+void initSmartPortTelemetry(telemetryConfig_t *);
void handleSmartPortTelemetry(void);
void checkSmartPortTelemetryState(void);