From dadd657d89791ba75230b84eaf848b124a51817a Mon Sep 17 00:00:00 2001 From: Aksel Skauge Mellbye Date: Wed, 11 Jun 2025 17:53:21 +0200 Subject: [PATCH] drivers: serial: silabs: Don't fail to init if clock is on It is not an error if the clock source for the UART is already enabled. This may happen if a bootloader has used the UART and not de-initialized it before booting the application. Signed-off-by: Aksel Skauge Mellbye --- drivers/serial/uart_silabs_eusart.c | 2 +- drivers/serial/uart_silabs_usart.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/serial/uart_silabs_eusart.c b/drivers/serial/uart_silabs_eusart.c index e9244dfa3e1..b26549a3074 100644 --- a/drivers/serial/uart_silabs_eusart.c +++ b/drivers/serial/uart_silabs_eusart.c @@ -1017,7 +1017,7 @@ static int eusart_init(const struct device *dev) /* The peripheral and gpio clock are already enabled from soc and gpio driver */ /* Enable EUSART clock */ err = clock_control_on(config->clock_dev, (clock_control_subsys_t)&config->clock_cfg); - if (err < 0) { + if (err < 0 && err != -EALREADY) { return err; } diff --git a/drivers/serial/uart_silabs_usart.c b/drivers/serial/uart_silabs_usart.c index 3937ffbf07b..739628cf788 100644 --- a/drivers/serial/uart_silabs_usart.c +++ b/drivers/serial/uart_silabs_usart.c @@ -1019,7 +1019,7 @@ static int uart_silabs_init(const struct device *dev) /* The peripheral and gpio clock are already enabled from soc and gpio driver */ /* Enable USART clock */ err = clock_control_on(config->clock_dev, (clock_control_subsys_t)&config->clock_cfg); - if (err < 0) { + if (err < 0 && err != -EALREADY) { return err; }