diff --git a/boards/ark/fmu-v6x/src/board_config.h b/boards/ark/fmu-v6x/src/board_config.h index 1151ecd845..302fbc22d9 100644 --- a/boards/ark/fmu-v6x/src/board_config.h +++ b/boards/ark/fmu-v6x/src/board_config.h @@ -322,10 +322,6 @@ #define HRT_PPM_CHANNEL /* T8C1 */ 1 /* use capture/compare channel 1 */ #define GPIO_PPM_IN /* PI5 T8C1 */ GPIO_TIM8_CH1IN_2 -/* RC Serial port */ - -#define RC_SERIAL_PORT "/dev/ttyS5" - /* Input Capture Channels. */ #define INPUT_CAP1_TIMER 1 #define INPUT_CAP1_CHANNEL /* T1C2 */ 2 diff --git a/boards/auterion/fmu-v6s/default.px4board b/boards/auterion/fmu-v6s/default.px4board index cdd39eca1c..ec6faca62a 100644 --- a/boards/auterion/fmu-v6s/default.px4board +++ b/boards/auterion/fmu-v6s/default.px4board @@ -4,6 +4,7 @@ CONFIG_BOARD_ETHERNET=y CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS6" CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS0" CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS2" +CONFIG_BOARD_SERIAL_RC="/dev/ttyS4" CONFIG_BOARD_PARAM_FILE="/fs/microsd/params" CONFIG_DRIVERS_ADC_BOARD_ADC=y CONFIG_DRIVERS_BAROMETER_BMP388=y @@ -20,10 +21,10 @@ CONFIG_COMMON_LIGHT=y CONFIG_COMMON_MAGNETOMETER=y CONFIG_DATAMAN_PERSISTENT_STORAGE=n CONFIG_DRIVERS_PWM_OUT=y +CONFIG_COMMON_RC=y CONFIG_DRIVERS_POWER_MONITOR_INA226=y CONFIG_DRIVERS_POWER_MONITOR_INA228=y CONFIG_DRIVERS_POWER_MONITOR_INA238=y -CONFIG_DRIVERS_RC_INPUT=y CONFIG_DRIVERS_ROBOCLAW=y CONFIG_DRIVERS_UAVCAN=y CONFIG_BOARD_UAVCAN_INTERFACES=1 diff --git a/boards/auterion/fmu-v6s/src/board_config.h b/boards/auterion/fmu-v6s/src/board_config.h index 63d7ab0441..afad06894e 100644 --- a/boards/auterion/fmu-v6s/src/board_config.h +++ b/boards/auterion/fmu-v6s/src/board_config.h @@ -145,9 +145,6 @@ #define HRT_PPM_CHANNEL /* T8C2 */ 2 /* use capture/compare channel 1 */ #define GPIO_PPM_IN /* PC7 */ GPIO_TIM8_CH2IN_1 -/* RC Serial port (input only) */ -#define RC_SERIAL_PORT "/dev/ttyS4" - /* This board provides a DMA pool and APIs */ #define BOARD_DMA_ALLOC_POOL_SIZE 5120 diff --git a/boards/px4/fmu-v5x/default.px4board b/boards/px4/fmu-v5x/default.px4board index a0344dcf1d..d9aa91eae6 100644 --- a/boards/px4/fmu-v5x/default.px4board +++ b/boards/px4/fmu-v5x/default.px4board @@ -7,6 +7,7 @@ CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS6" CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS4" CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS1" CONFIG_BOARD_SERIAL_EXT2="/dev/ttyS3" +CONFIG_BOARD_SERIAL_RC="/dev/ttyS5" CONFIG_DRIVERS_ADC_ADS1115=y CONFIG_DRIVERS_ADC_BOARD_ADC=y CONFIG_DRIVERS_BAROMETER_BMP388=y @@ -43,7 +44,6 @@ CONFIG_DRIVERS_PWM_INPUT=y CONFIG_DRIVERS_PWM_OUT=y CONFIG_DRIVERS_PX4IO=y CONFIG_COMMON_RC=y -CONFIG_DRIVERS_RC_INPUT=y CONFIG_DRIVERS_SAFETY_BUTTON=y CONFIG_DRIVERS_SMART_BATTERY_BATMON=y CONFIG_COMMON_TELEMETRY=y diff --git a/boards/px4/fmu-v5x/src/board_config.h b/boards/px4/fmu-v5x/src/board_config.h index aaa7c21df8..846d8e0b6a 100644 --- a/boards/px4/fmu-v5x/src/board_config.h +++ b/boards/px4/fmu-v5x/src/board_config.h @@ -286,8 +286,6 @@ #define HRT_PPM_CHANNEL /* T8C1 */ 1 /* use capture/compare channel 1 */ #define GPIO_PPM_IN /* PI5 T8C1 */ GPIO_TIM8_CH1IN_2 -/* RC Serial port */ -#define RC_SERIAL_PORT "/dev/ttyS5" /* Some RC protocols are bi-directional, therefore we need a half-duplex UART */ #define RC_SERIAL_SINGLEWIRE /* The STM32 UART by default wires half-duplex mode to the TX pin, but our diff --git a/boards/px4/fmu-v6x/default.px4board b/boards/px4/fmu-v6x/default.px4board index 8b7f5aadca..45030adde4 100644 --- a/boards/px4/fmu-v6x/default.px4board +++ b/boards/px4/fmu-v6x/default.px4board @@ -7,6 +7,7 @@ CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS6" CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS4" CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS1" CONFIG_BOARD_SERIAL_EXT2="/dev/ttyS3" +CONFIG_BOARD_SERIAL_RC="/dev/ttyS5" CONFIG_DRIVERS_ADC_ADS1115=y CONFIG_DRIVERS_ADC_BOARD_ADC=y CONFIG_DRIVERS_BAROMETER_BMP388=y @@ -42,7 +43,7 @@ CONFIG_DRIVERS_POWER_MONITOR_PM_SELECTOR_AUTERION=y CONFIG_DRIVERS_PWM_INPUT=y CONFIG_DRIVERS_PWM_OUT=y CONFIG_DRIVERS_PX4IO=y -CONFIG_DRIVERS_RC_INPUT=y +CONFIG_COMMON_RC=y CONFIG_DRIVERS_SAFETY_BUTTON=y CONFIG_DRIVERS_TONE_ALARM=y CONFIG_DRIVERS_UAVCAN=y diff --git a/boards/px4/fmu-v6x/src/board_config.h b/boards/px4/fmu-v6x/src/board_config.h index 6590699a39..a57610545c 100644 --- a/boards/px4/fmu-v6x/src/board_config.h +++ b/boards/px4/fmu-v6x/src/board_config.h @@ -323,8 +323,6 @@ #define HRT_PPM_CHANNEL /* T8C1 */ 1 /* use capture/compare channel 1 */ #define GPIO_PPM_IN /* PI5 T8C1 */ GPIO_TIM8_CH1IN_2 -/* RC Serial port */ -#define RC_SERIAL_PORT "/dev/ttyS5" /* Some RC protocols are bi-directional, therefore we need a half-duplex UART */ #define RC_SERIAL_SINGLEWIRE /* The STM32 UART by default wires half-duplex mode to the TX pin, but our diff --git a/boards/px4/fmu-v6xrt/default.px4board b/boards/px4/fmu-v6xrt/default.px4board index 692b727ed9..42e2d0aaad 100644 --- a/boards/px4/fmu-v6xrt/default.px4board +++ b/boards/px4/fmu-v6xrt/default.px4board @@ -6,6 +6,7 @@ CONFIG_BOARD_SERIAL_GPS2="/dev/ttyS3" CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS2" CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS5" CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS6" +CONFIG_BOARD_SERIAL_RC="/dev/ttyS4" CONFIG_DRIVERS_ADC_ADS1115=y CONFIG_DRIVERS_ADC_BOARD_ADC=y CONFIG_DRIVERS_BAROMETER_BMP388=y @@ -40,7 +41,7 @@ CONFIG_DRIVERS_POWER_MONITOR_INA238=y CONFIG_DRIVERS_POWER_MONITOR_PM_SELECTOR_AUTERION=y CONFIG_DRIVERS_PWM_OUT=y CONFIG_DRIVERS_PX4IO=y -CONFIG_DRIVERS_RC_INPUT=y +CONFIG_COMMON_RC=y CONFIG_DRIVERS_SAFETY_BUTTON=y CONFIG_COMMON_TELEMETRY=y CONFIG_DRIVERS_TONE_ALARM=y diff --git a/boards/px4/fmu-v6xrt/src/board_config.h b/boards/px4/fmu-v6xrt/src/board_config.h index 059d0ac696..75f6dba54d 100644 --- a/boards/px4/fmu-v6xrt/src/board_config.h +++ b/boards/px4/fmu-v6xrt/src/board_config.h @@ -451,7 +451,6 @@ #define HRT_PPM_CHANNEL /* GPIO_EMC_B1_09 GPIO_GPT5_CAPTURE1_1 */ 1 /* use capture/compare channel 1 */ #define GPIO_PPM_IN /* GPIO_EMC_B1_09 GPT1_CAPTURE2 */ (GPIO_GPT5_CAPTURE1_1 | GENERAL_INPUT_IOMUX) -#define RC_SERIAL_PORT "/dev/ttyS4" #define RC_SERIAL_SINGLEWIRE 1 // Suport Single wire wiring #define RC_SERIAL_SWAP_RXTX 1 // Set Swap (but not supported in HW) to use Single wire #define RC_SERIAL_SWAP_USING_SINGLEWIRE 1 // Set to use Single wire swap as HW does not support swap diff --git a/platforms/common/include/px4_platform_common/board_common.h b/platforms/common/include/px4_platform_common/board_common.h index 763b09994c..f8c983b8d4 100644 --- a/platforms/common/include/px4_platform_common/board_common.h +++ b/platforms/common/include/px4_platform_common/board_common.h @@ -47,6 +47,7 @@ #include #include #include +#include /************************************************************************************ * Definitions ************************************************************************************/ @@ -258,6 +259,15 @@ # define BOARD_EEPROM_WP_CTRL(on_true) #endif +/* + * Support both RC_SERIAL_PORT and CONFIG_BOARD_SERIAL_RC + */ +#if defined(CONFIG_BOARD_SERIAL_RC) +# define RC_SERIAL CONFIG_BOARD_SERIAL_RC +#else +# define RC_SERIAL RC_SERIAL_PORT +#endif + /* * Defined when a supports version and type API. */ @@ -450,7 +460,7 @@ __BEGIN_DECLS * Name: board_rc_singlewire * * Description: - * A board may define RC_SERIAL_SINGLEWIRE, so that RC_SERIAL_PORT is configured + * A board may define RC_SERIAL_SINGLEWIRE, so that RC_SERIAL is configured * as singlewire UART. * * Input Parameters: @@ -463,7 +473,7 @@ __BEGIN_DECLS ************************************************************************************/ #if defined(RC_SERIAL_SINGLEWIRE) -static inline bool board_rc_singlewire(const char *device) { return strcmp(device, RC_SERIAL_PORT) == 0; } +static inline bool board_rc_singlewire(const char *device) { return strcmp(device, RC_SERIAL) == 0; } #elif defined(RC_SERIAL_SINGLEWIRE_FORCE) static inline bool board_rc_singlewire(const char *device) { return true; } #else @@ -474,7 +484,7 @@ static inline bool board_rc_singlewire(const char *device) { return false; } * Name: board_rc_swap_rxtx * * Description: - * A board may define RC_SERIAL_SWAP_RXTX, so that RC_SERIAL_PORT is configured + * A board may define RC_SERIAL_SWAP_RXTX, so that RC_SERIAL is configured * as UART with RX/TX swapped. * * It can optionaly define RC_SERIAL_SWAP_USING_SINGLEWIRE If the board is wired @@ -496,7 +506,7 @@ static inline bool board_rc_singlewire(const char *device) { return false; } ************************************************************************************/ #if defined(RC_SERIAL_SWAP_RXTX) -static inline bool board_rc_swap_rxtx(const char *device) { return strcmp(device, RC_SERIAL_PORT) == 0; } +static inline bool board_rc_swap_rxtx(const char *device) { return strcmp(device, RC_SERIAL) == 0; } #else static inline bool board_rc_swap_rxtx(const char *device) { return false; } #endif @@ -506,7 +516,7 @@ static inline bool board_rc_swap_rxtx(const char *device) { return false; } * * Description: * All boards may optionally define RC_INVERT_INPUT(bool invert) that is - * used to invert the RC_SERIAL_PORT RC port (e.g. to toggle an external XOR via + * used to invert the RC_SERIAL RC port (e.g. to toggle an external XOR via * GPIO). * * Input Parameters: @@ -521,7 +531,7 @@ static inline bool board_rc_swap_rxtx(const char *device) { return false; } #ifdef RC_INVERT_INPUT static inline bool board_rc_invert_input(const char *device, bool invert) { - if (strcmp(device, RC_SERIAL_PORT) == 0) { RC_INVERT_INPUT(invert); return true; } + if (strcmp(device, RC_SERIAL) == 0) { RC_INVERT_INPUT(invert); return true; } return false; }