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)