From 0a9beee25ddef62cbe902f4d3cb3c93bfd4ba21f Mon Sep 17 00:00:00 2001 From: blckmn Date: Sat, 30 Jul 2016 12:02:07 +1000 Subject: [PATCH] Added support to turn inversion off for UART1 will need to look at controlling it within configuration once param groups are in place. --- src/main/drivers/inverter.c | 9 +++++++-- src/main/target/BLUEJAYF4/hardware_revision.c | 19 ++++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/drivers/inverter.c b/src/main/drivers/inverter.c index 967c87680a..336f850865 100644 --- a/src/main/drivers/inverter.c +++ b/src/main/drivers/inverter.c @@ -27,11 +27,16 @@ #include "inverter.h" -static const IO_t pin = DEFIO_IO(INVERTER); +/* + TODO: move this to support multiple inverters on different UARTs etc + possibly move to put it in the UART driver itself. +*/ +static IO_t pin = IO_NONE; void initInverter(void) { - IOInit(pin, OWNER_INVERTER, RESOURCE_OUTPUT, 0); + pin = IOGetByTag(IO_TAG(INVERTER)); + IOInit(pin, OWNER_INVERTER, RESOURCE_OUTPUT, 1); IOConfigGPIO(pin, IOCFG_OUT_PP); inverterSet(false); diff --git a/src/main/target/BLUEJAYF4/hardware_revision.c b/src/main/target/BLUEJAYF4/hardware_revision.c index 6ed07e16f9..3162e9f487 100644 --- a/src/main/target/BLUEJAYF4/hardware_revision.c +++ b/src/main/target/BLUEJAYF4/hardware_revision.c @@ -58,13 +58,26 @@ void detectHardwareRevision(void) if (!IORead(pin1)) { if (!IORead(pin2)) { hardwareRevision = BJF4_REV3A; - return; } hardwareRevision = BJF4_REV3; - return; } - hardwareRevision = BJF4_REV2; + if (hardwareRevision == UNKNOWN) { + hardwareRevision = BJF4_REV2; + return; + } + + /* + enable the UART1 inversion PC9 + + TODO: once param groups are in place, inverter outputs + can be moved to be simple IO outputs, and merely set them + HI or LO in configuration. + */ + IO_t uart1invert = IOGetByTag(IO_TAG(PC9)); + IOInit(uart1invert, OWNER_INVERTER, RESOURCE_OUTPUT, 2); + IOConfigGPIO(uart1invert, IOCFG_AF_PP); + IOLo(uart1invert); } void updateHardwareRevision(void)