From cc0fbdd549dc15b07a6cd03957d4e6795b0ab5bf Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 15 Apr 2016 09:26:27 +1000 Subject: [PATCH] px4fmu: added SET_MODE ioctl this gives control over timer capture driver --- src/drivers/px4fmu/fmu.cpp | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/drivers/px4fmu/fmu.cpp b/src/drivers/px4fmu/fmu.cpp index 69ba665e65..9b5f828df1 100644 --- a/src/drivers/px4fmu/fmu.cpp +++ b/src/drivers/px4fmu/fmu.cpp @@ -1901,6 +1901,59 @@ PX4FMU::pwm_ioctl(file *filp, int cmd, unsigned long arg) break; } + case PWM_SERVO_SET_MODE: { + switch (arg) { + case PWM_SERVO_MODE_NONE: + ret = set_mode(MODE_NONE); + break; + + case PWM_SERVO_MODE_2PWM: + ret = set_mode(MODE_2PWM); + break; + + case PWM_SERVO_MODE_2PWM2CAP: + ret = set_mode(MODE_2PWM2CAP); + break; + + case PWM_SERVO_MODE_3PWM: + ret = set_mode(MODE_3PWM); + break; + + case PWM_SERVO_MODE_3PWM1CAP: + ret = set_mode(MODE_3PWM1CAP); + break; + + case PWM_SERVO_MODE_4PWM: + ret = set_mode(MODE_4PWM); + break; + + case PWM_SERVO_MODE_6PWM: + ret = set_mode(MODE_6PWM); + break; + + case PWM_SERVO_MODE_8PWM: + ret = set_mode(MODE_8PWM); + break; + + case PWM_SERVO_MODE_4CAP: + ret = set_mode(MODE_4CAP); + break; + + case PWM_SERVO_MODE_5CAP: + ret = set_mode(MODE_5CAP); + break; + + case PWM_SERVO_MODE_6CAP: + ret = set_mode(MODE_6CAP); + break; + + default: + ret = -EINVAL; + } + + break; + } + #ifdef RC_SERIAL_PORT case DSM_BIND_START: