diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp index 9a91f35a16..7694850181 100644 --- a/src/drivers/px4io/px4io.cpp +++ b/src/drivers/px4io/px4io.cpp @@ -99,8 +99,7 @@ #include "modules/dataman/dataman.h" -extern device::Device *PX4IO_i2c_interface() weak_function; -extern device::Device *PX4IO_serial_interface() weak_function; +#include "px4io_driver.h" #define PX4IO_SET_DEBUG _IOC(0xff00, 0) #define PX4IO_INAIR_RESTART_ENABLE _IOC(0xff00, 1) @@ -2973,10 +2972,12 @@ get_interface() #ifndef CONFIG_ARCH_BOARD_PX4FMU_V1 +#ifdef PX4IO_SERIAL_BASE /* try for a serial interface */ if (PX4IO_serial_interface != nullptr) { interface = PX4IO_serial_interface(); } +#endif if (interface != nullptr) { goto got; @@ -2984,10 +2985,12 @@ get_interface() #endif +#ifdef PX4_I2C_OBDEV_PX4IO /* try for an I2C interface if we haven't got a serial one */ if (PX4IO_i2c_interface != nullptr) { interface = PX4IO_i2c_interface(); } +#endif if (interface != nullptr) { goto got; diff --git a/src/drivers/px4io/px4io_driver.h b/src/drivers/px4io/px4io_driver.h index 0944412fb0..591c3920d2 100644 --- a/src/drivers/px4io/px4io_driver.h +++ b/src/drivers/px4io/px4io_driver.h @@ -39,6 +39,8 @@ #pragma once +#include + #ifdef PX4_I2C_OBDEV_PX4IO device::Device *PX4IO_i2c_interface(); #endif diff --git a/src/drivers/px4io/px4io_i2c.cpp b/src/drivers/px4io/px4io_i2c.cpp index 574a58f52a..4574ec732a 100755 --- a/src/drivers/px4io/px4io_i2c.cpp +++ b/src/drivers/px4io/px4io_i2c.cpp @@ -53,9 +53,9 @@ #include -#ifdef PX4_I2C_OBDEV_PX4IO +#include "px4io_driver.h" -device::Device *PX4IO_i2c_interface(); +#ifdef PX4_I2C_OBDEV_PX4IO class PX4IO_I2C : public device::I2C { diff --git a/src/drivers/px4io/px4io_serial.cpp b/src/drivers/px4io/px4io_serial.cpp index 93f55f9486..c05883aeb8 100644 --- a/src/drivers/px4io/px4io_serial.cpp +++ b/src/drivers/px4io/px4io_serial.cpp @@ -68,9 +68,9 @@ #include -#ifdef PX4IO_SERIAL_BASE +#include "px4io_driver.h" -device::Device *PX4IO_serial_interface(); +#ifdef PX4IO_SERIAL_BASE /* serial register accessors */ #define REG(_x) (*(volatile uint32_t *)(PX4IO_SERIAL_BASE + _x))