From 90841282b03339c7361db306d280f4bdd96de1e4 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 27 Mar 2024 09:57:02 +0100 Subject: [PATCH] Add resource for LPUART (#13306) * Add resource for LPUART * Fix per review * Fix per review 2 --- src/main/cli/cli.c | 20 ++++++++++++++------ src/main/drivers/resource.c | 2 ++ src/main/drivers/resource.h | 2 ++ src/main/drivers/serial.h | 1 + 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/cli/cli.c b/src/main/cli/cli.c index 4f8b412f7b..4957f84293 100644 --- a/src/main/cli/cli.c +++ b/src/main/cli/cli.c @@ -5025,15 +5025,23 @@ const cliResourceValue_t resourceTable[] = { DEFS( OWNER_LED_STRIP, PG_LED_STRIP_CONFIG, ledStripConfig_t, ioTag ), #endif #ifdef USE_UART - DEFA( OWNER_SERIAL_TX, PG_SERIAL_PIN_CONFIG, serialPinConfig_t, ioTagTx[0], SERIAL_PORT_MAX_INDEX ), - DEFA( OWNER_SERIAL_RX, PG_SERIAL_PIN_CONFIG, serialPinConfig_t, ioTagRx[0], SERIAL_PORT_MAX_INDEX ), + DEFA( OWNER_SERIAL_TX, PG_SERIAL_PIN_CONFIG, serialPinConfig_t, ioTagTx[0], SERIAL_PORT_MAX_INDEX - SERIAL_LPUART_MAX_INDEX ), + DEFA( OWNER_SERIAL_RX, PG_SERIAL_PIN_CONFIG, serialPinConfig_t, ioTagRx[0], SERIAL_PORT_MAX_INDEX - SERIAL_LPUART_MAX_INDEX ), #endif #ifdef USE_INVERTER +#ifdef USE_LPUART1 DEFA( OWNER_INVERTER, PG_SERIAL_PIN_CONFIG, serialPinConfig_t, ioTagInverter[0], SERIAL_PORT_MAX_INDEX ), +#else + DEFA( OWNER_INVERTER, PG_SERIAL_PIN_CONFIG, serialPinConfig_t, ioTagInverter[0], SERIAL_PORT_MAX_INDEX - SERIAL_LPUART_MAX_INDEX ), +#endif #endif #if defined(USE_SOFTSERIAL) - DEFA( OWNER_SOFTSERIAL_TX, PG_SOFTSERIAL_PIN_CONFIG, softSerialPinConfig_t, ioTagTx[0], SOFTSERIAL_COUNT ), - DEFA( OWNER_SOFTSERIAL_RX, PG_SOFTSERIAL_PIN_CONFIG, softSerialPinConfig_t, ioTagRx[0], SOFTSERIAL_COUNT ), + DEFA( OWNER_SOFTSERIAL_TX, PG_SOFTSERIAL_PIN_CONFIG, softSerialPinConfig_t, ioTagTx[0], SOFTSERIAL_COUNT ), + DEFA( OWNER_SOFTSERIAL_RX, PG_SOFTSERIAL_PIN_CONFIG, softSerialPinConfig_t, ioTagRx[0], SOFTSERIAL_COUNT ), +#endif +#ifdef USE_LPUART1 + DEFA( OWNER_LPUART_TX, PG_SERIAL_PIN_CONFIG, serialPinConfig_t, ioTagTx[SERIAL_PORT_MAX_INDEX], SERIAL_LPUART_MAX_INDEX ), + DEFA( OWNER_LPUART_TX, PG_SERIAL_PIN_CONFIG, serialPinConfig_t, ioTagRx[SERIAL_PORT_MAX_INDEX], SERIAL_LPUART_MAX_INDEX ), #endif #ifdef USE_I2C DEFW( OWNER_I2C_SCL, PG_I2C_CONFIG, i2cConfig_t, ioTagScl, I2CDEV_COUNT ), @@ -5049,8 +5057,8 @@ const cliResourceValue_t resourceTable[] = { #endif #ifdef USE_SPI DEFW( OWNER_SPI_SCK, PG_SPI_PIN_CONFIG, spiPinConfig_t, ioTagSck, SPIDEV_COUNT ), - DEFW( OWNER_SPI_SDI, PG_SPI_PIN_CONFIG, spiPinConfig_t, ioTagMiso, SPIDEV_COUNT ), - DEFW( OWNER_SPI_SDO, PG_SPI_PIN_CONFIG, spiPinConfig_t, ioTagMosi, SPIDEV_COUNT ), + DEFW( OWNER_SPI_SDI, PG_SPI_PIN_CONFIG, spiPinConfig_t, ioTagMiso, SPIDEV_COUNT ), + DEFW( OWNER_SPI_SDO, PG_SPI_PIN_CONFIG, spiPinConfig_t, ioTagMosi, SPIDEV_COUNT ), #endif #ifdef USE_ESCSERIAL DEFS( OWNER_ESCSERIAL, PG_ESCSERIAL_CONFIG, escSerialConfig_t, ioTag ), diff --git a/src/main/drivers/resource.c b/src/main/drivers/resource.c index cb1bb6591e..08be1f2bd3 100644 --- a/src/main/drivers/resource.c +++ b/src/main/drivers/resource.c @@ -113,4 +113,6 @@ const char * const ownerNames[OWNER_TOTAL_COUNT] = { "RX_SPI_EXPRESSLRS_BUSY", "SOFTSERIAL_TX", "SOFTSERIAL_RX", + [OWNER_LPUART_TX] = "LPUART_TX", + [OWNER_LPUART_RX] = "LPUART_RX", }; diff --git a/src/main/drivers/resource.h b/src/main/drivers/resource.h index 08cc38e21a..1f583af67c 100644 --- a/src/main/drivers/resource.h +++ b/src/main/drivers/resource.h @@ -111,6 +111,8 @@ typedef enum { OWNER_RX_SPI_EXPRESSLRS_BUSY, OWNER_SOFTSERIAL_TX, OWNER_SOFTSERIAL_RX, + OWNER_LPUART_TX, + OWNER_LPUART_RX, OWNER_TOTAL_COUNT } resourceOwner_e; diff --git a/src/main/drivers/serial.h b/src/main/drivers/serial.h index 4d994bc9f7..d1faf0ca3a 100644 --- a/src/main/drivers/serial.h +++ b/src/main/drivers/serial.h @@ -94,6 +94,7 @@ typedef struct serialPort_s { } serialPort_t; #define SERIAL_PORT_MAX_INDEX 11 +#define SERIAL_LPUART_MAX_INDEX 1 typedef struct serialPinConfig_s { ioTag_t ioTagTx[SERIAL_PORT_MAX_INDEX];