Skip to content

Commit

Permalink
drivers: serial: gecko: Fix build error on Series 0
Browse files Browse the repository at this point in the history
Series 0 does not have the TXIDLE status flag. The closest equivalent is
TXC, but it isn't set until the first transmission completes, and is
therefore not safe to use in PM suspend without also separately keeping
track of whether the driver has ever initiated a transmission. For now,
disable the TXIDLE check on devices that don't support it as a minimal
fix for the observed build error. This is effectively equivalent to
reverting the addition of PM support for these devices only. Since these
devices don't have a low-power system timer implementation anyway, the
lack of PM handling does not hurt anything.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
  • Loading branch information
asmellby authored and mmahadevan108 committed Nov 14, 2024
1 parent 876b44d commit 7f8b531
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/serial/uart_gecko.c
Original file line number Diff line number Diff line change
Expand Up @@ -492,13 +492,15 @@ static int uart_gecko_init(const struct device *dev)
#ifdef CONFIG_PM_DEVICE
static int uart_gecko_pm_action(const struct device *dev, enum pm_device_action action)
{
const struct uart_gecko_config *config = dev->config;
__maybe_unused const struct uart_gecko_config *config = dev->config;

switch (action) {
case PM_DEVICE_ACTION_SUSPEND:
#ifdef USART_STATUS_TXIDLE
/* Wait for TX FIFO to flush before suspending */
while (!(USART_StatusGet(config->base) & USART_STATUS_TXIDLE)) {
}
#endif
break;

case PM_DEVICE_ACTION_RESUME:
Expand Down

0 comments on commit 7f8b531

Please sign in to comment.