From c042f49fdefe79a67df6ef2829fba7d8e0c66e46 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 23 Nov 2016 15:21:44 -1000 Subject: [PATCH] System Changes for AUAV X2.1 --- src/drivers/drv_gpio.h | 44 +++++++++++++++++++++++++++++---- src/drivers/px4io/px4io.cpp | 3 ++- src/modules/gpio_led/gpio_led.c | 18 +++++++++----- 3 files changed, 53 insertions(+), 12 deletions(-) diff --git a/src/drivers/drv_gpio.h b/src/drivers/drv_gpio.h index c980fa3998..4ca2ca5d94 100644 --- a/src/drivers/drv_gpio.h +++ b/src/drivers/drv_gpio.h @@ -42,6 +42,34 @@ #include +#ifdef CONFIG_ARCH_BOARD_AUAV_X21 +/* + * PX4FMUv2 GPIO numbers. + * + * There are no alternate functions on this board. + */ +# define GPIO_SERVO_1 (1<<0) /**< servo 1 output */ +# define GPIO_SERVO_2 (1<<1) /**< servo 2 output */ +# define GPIO_SERVO_3 (1<<2) /**< servo 3 output */ +# define GPIO_SERVO_4 (1<<3) /**< servo 4 output */ +# define GPIO_SERVO_5 (1<<4) /**< servo 5 output */ +# define GPIO_SERVO_6 (1<<5) /**< servo 6 output */ + +# define GPIO_5V_PERIPH_EN (1<<6) /**< PA8 - !VDD_5V_PERIPH_EN */ +# define GPIO_3V3_SENSORS_EN (1<<7) /**< PE3 - VDD_3V3_SENSORS_EN */ +# define GPIO_BRICK_VALID (1<<8) /**< PB5 - !VDD_BRICK_VALID */ +# define GPIO_SERVO_VALID (1<<9) /**< PB7 - !VDD_SERVO_VALID */ +# define GPIO_5V_HIPOWER_OC (1<<10) /**< PE10 - !VDD_5V_HIPOWER_OC */ +# define GPIO_5V_PERIPH_OC (1<<11) /**< PE10 - !VDD_5V_PERIPH_OC */ + +/** + * Device paths for things that support the GPIO ioctl protocol. + */ +# define PX4FMU_DEVICE_PATH "/dev/px4fmu" +# define PX4IO_DEVICE_PATH "/dev/px4io" + +#endif + #ifdef CONFIG_ARCH_BOARD_PX4FMU_V1 /* * PX4FMU GPIO numbers. @@ -199,12 +227,18 @@ /* no GPIO driver on the SITL configuration */ #endif -#if !defined(CONFIG_ARCH_BOARD_PX4IO_V1) && !defined(CONFIG_ARCH_BOARD_PX4IO_V2) && \ - !defined(CONFIG_ARCH_BOARD_PX4FMU_V1) && !defined(CONFIG_ARCH_BOARD_PX4FMU_V2) && \ - !defined(CONFIG_ARCH_BOARD_AEROCORE) && !defined(CONFIG_ARCH_BOARD_PX4_STM32F4DISCOVERY) && \ +#if !defined(CONFIG_ARCH_BOARD_PX4IO_V1) && \ + !defined(CONFIG_ARCH_BOARD_PX4IO_V2) && \ + !defined(CONFIG_ARCH_BOARD_PX4FMU_V1) && \ + !defined(CONFIG_ARCH_BOARD_PX4FMU_V2) && \ + !defined(CONFIG_ARCH_BOARD_AUAV_X21) && \ + !defined(CONFIG_ARCH_BOARD_AEROCORE) && \ + !defined(CONFIG_ARCH_BOARD_PX4_STM32F4DISCOVERY) && \ !defined(CONFIG_ARCH_BOARD_MINDPX_V2) && \ - !defined(CONFIG_ARCH_BOARD_PX4FMU_V4) && !defined(CONFIG_ARCH_BOARD_SITL) && \ - !defined(CONFIG_ARCH_BOARD_TAP_V1) && !defined(CONFIG_ARCH_BOARD_ASC_V1) && \ + !defined(CONFIG_ARCH_BOARD_PX4FMU_V4) && \ + !defined(CONFIG_ARCH_BOARD_SITL) && \ + !defined(CONFIG_ARCH_BOARD_TAP_V1) && \ + !defined(CONFIG_ARCH_BOARD_ASC_V1) && \ !defined(CONFIG_ARCH_BOARD_CRAZYFLIE) # error No CONFIG_ARCH_BOARD_xxxx set #endif diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp index bdbe35df87..737410027f 100644 --- a/src/drivers/px4io/px4io.cpp +++ b/src/drivers/px4io/px4io.cpp @@ -3625,7 +3625,8 @@ px4io_main(int argc, char *argv[]) fn[1] = "/fs/microsd/px4io1.bin"; fn[2] = "/fs/microsd/px4io.bin"; fn[3] = nullptr; -#elif defined(CONFIG_ARCH_BOARD_PX4FMU_V2) +#elif defined(CONFIG_ARCH_BOARD_PX4FMU_V2) || \ + defined(CONFIG_ARCH_BOARD_AUAV_X21) fn[0] = "/etc/extras/px4io-v2.bin"; fn[1] = "/fs/microsd/px4io2.bin"; fn[2] = "/fs/microsd/px4io.bin"; diff --git a/src/modules/gpio_led/gpio_led.c b/src/modules/gpio_led/gpio_led.c index 2fffdcb97e..c58575de7b 100644 --- a/src/modules/gpio_led/gpio_led.c +++ b/src/modules/gpio_led/gpio_led.c @@ -92,8 +92,10 @@ int gpio_led_main(int argc, char *argv[]) "\t\tr2\tPX4IO RELAY2" ); #endif -#if defined(CONFIG_ARCH_BOARD_PX4FMU_V2) || defined(CONFIG_ARCH_BOARD_PX4FMU_V4) \ - || defined(CONFIG_ARCH_BOARD_MINDPX_V2) +#if defined(CONFIG_ARCH_BOARD_AUAV_X21) || \ + defined(CONFIG_ARCH_BOARD_PX4FMU_V2) || \ + defined(CONFIG_ARCH_BOARD_PX4FMU_V4) || \ + defined(CONFIG_ARCH_BOARD_MINDPX_V2) errx(1, "usage: gpio_led {start|stop} [-p ]\n" "\t-p \tUse specified AUX OUT pin number (default: 1)" ); @@ -115,8 +117,10 @@ int gpio_led_main(int argc, char *argv[]) #ifdef CONFIG_ARCH_BOARD_PX4FMU_V1 char *pin_name = "PX4FMU GPIO_EXT1"; #endif -#if defined(CONFIG_ARCH_BOARD_PX4FMU_V2) || defined(CONFIG_ARCH_BOARD_PX4FMU_V4) \ - || defined(CONFIG_ARCH_BOARD_MINDPX_V2) +#if defined(CONFIG_ARCH_BOARD_AUAV_X21) || \ + defined(CONFIG_ARCH_BOARD_PX4FMU_V2) || \ + defined(CONFIG_ARCH_BOARD_PX4FMU_V4) || \ + defined(CONFIG_ARCH_BOARD_MINDPX_V2) char pin_name[] = "AUX OUT 1"; #endif @@ -159,8 +163,10 @@ int gpio_led_main(int argc, char *argv[]) } #endif -#if defined(CONFIG_ARCH_BOARD_PX4FMU_V2) || defined(CONFIG_ARCH_BOARD_PX4FMU_V4) \ - || defined(CONFIG_ARCH_BOARD_MINDPX_V2) +#if defined(CONFIG_ARCH_BOARD_AUAV_X21) || \ + defined(CONFIG_ARCH_BOARD_PX4FMU_V2) || \ + defined(CONFIG_ARCH_BOARD_PX4FMU_V4) || \ + defined(CONFIG_ARCH_BOARD_MINDPX_V2) unsigned int n = strtoul(argv[3], NULL, 10); if (n >= 1 && n <= 6) {