From fb3ae96e021ca2bd195408e1ee0e88f1057e2119 Mon Sep 17 00:00:00 2001 From: Sihyung Woo <75494566+sihyung-maxim@users.noreply.github.com> Date: Mon, 19 Aug 2024 11:49:17 -0500 Subject: [PATCH] fix(PeriphDrivers): Fix LPUART GetClockSource Settings for MAX32655 and MAX78000 (#1119) Co-authored-by: EricB-ADI Co-authored-by: EricB-ADI <122300463+EricB-ADI@users.noreply.github.com> --- Libraries/PeriphDrivers/Include/MAX32680/uart.h | 9 +++++++++ Libraries/PeriphDrivers/Source/UART/uart_ai85.c | 4 ++-- Libraries/PeriphDrivers/Source/UART/uart_me17.c | 5 ++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Libraries/PeriphDrivers/Include/MAX32680/uart.h b/Libraries/PeriphDrivers/Include/MAX32680/uart.h index fe56cdfd995..74bcb6e1228 100644 --- a/Libraries/PeriphDrivers/Include/MAX32680/uart.h +++ b/Libraries/PeriphDrivers/Include/MAX32680/uart.h @@ -261,6 +261,15 @@ int MXC_UART_SetFlowCtrl(mxc_uart_regs_t *uart, mxc_uart_flow_t flowCtrl, int rt */ int MXC_UART_SetClockSource(mxc_uart_regs_t *uart, mxc_uart_clock_t clock); +/** + * @brief Gets the clock source used for the UART instance + * + * @param uart Pointer to UART registers (selects the UART block used.) + * + * @return The selected clock source for the UART instance + */ +mxc_uart_clock_t MXC_UART_GetClockSource(mxc_uart_regs_t *uart); + /* ************************************************************************* */ /* Low-level functions */ /* ************************************************************************* */ diff --git a/Libraries/PeriphDrivers/Source/UART/uart_ai85.c b/Libraries/PeriphDrivers/Source/UART/uart_ai85.c index d0e07fd8204..a9af930da70 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_ai85.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_ai85.c @@ -301,9 +301,9 @@ mxc_uart_clock_t MXC_UART_GetClockSource(mxc_uart_regs_t *uart) break; case 3: switch (clock_option) { - case 0: + case 2: return MXC_UART_IBRO_CLK; - case 1: + case 3: return MXC_UART_ERTCO_CLK; default: return E_BAD_STATE; diff --git a/Libraries/PeriphDrivers/Source/UART/uart_me17.c b/Libraries/PeriphDrivers/Source/UART/uart_me17.c index 49308eef8af..9c9f38f3e56 100644 --- a/Libraries/PeriphDrivers/Source/UART/uart_me17.c +++ b/Libraries/PeriphDrivers/Source/UART/uart_me17.c @@ -82,7 +82,6 @@ int MXC_UART_Init(mxc_uart_regs_t *uart, unsigned int baud, mxc_uart_clock_t clo if (retval != E_NO_ERROR) { return retval; } - return MXC_UART_RevB_Init((mxc_uart_revb_regs_t *)uart, baud, MXC_UART_GetClockSource(uart)); } @@ -320,9 +319,9 @@ mxc_uart_clock_t MXC_UART_GetClockSource(mxc_uart_regs_t *uart) break; case 3: switch (clock_option) { - case 0: + case 2: return MXC_UART_IBRO_CLK; - case 1: + case 3: return MXC_UART_ERTCO_CLK; default: return E_BAD_STATE;