Skip to content

Commit 70fa577

Browse files
committed
MIMXRT1050: Update UART driver
The UART first instance is 1 and not 0. Update the code logic to account for this. Signed-off-by: Mahesh Mahadevan <[email protected]>
1 parent bcc8fff commit 70fa577

File tree

1 file changed

+12
-10
lines changed
  • targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/TARGET_IMX

1 file changed

+12
-10
lines changed

targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/TARGET_IMX/serial_api.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
#include "PeripheralPins.h"
3030
#include "fsl_clock_config.h"
3131

32-
static uint32_t serial_irq_ids[FSL_FEATURE_SOC_LPUART_COUNT] = {0};
32+
/* LPUART starts from index 1 */
33+
static uint32_t serial_irq_ids[FSL_FEATURE_SOC_LPUART_COUNT + 1] = {0};
3334
static uart_irq_handler irq_handler;
3435
/* Array of UART peripheral base address. */
3536
static LPUART_Type *const uart_addrs[] = LPUART_BASE_PTRS;
@@ -320,28 +321,28 @@ static int serial_is_enabled(uint32_t uart_index)
320321
{
321322
int clock_enabled = 0;
322323
switch (uart_index) {
323-
case 0:
324+
case 1:
324325
clock_enabled = (CCM->CCGR5 & CCM_CCGR5_CG12_MASK) >> CCM_CCGR5_CG12_SHIFT;
325326
break;
326-
case 1:
327+
case 2:
327328
clock_enabled = (CCM->CCGR0 & CCM_CCGR0_CG14_MASK) >> CCM_CCGR0_CG14_SHIFT;
328329
break;
329-
case 2:
330+
case 3:
330331
clock_enabled = (CCM->CCGR0 & CCM_CCGR0_CG6_MASK) >> CCM_CCGR0_CG6_SHIFT;
331332
break;
332-
case 3:
333+
case 4:
333334
clock_enabled = (CCM->CCGR1 & CCM_CCGR1_CG12_MASK) >> CCM_CCGR1_CG12_SHIFT;
334335
break;
335-
case 4:
336+
case 5:
336337
clock_enabled = (CCM->CCGR3 & CCM_CCGR3_CG1_MASK) >> CCM_CCGR3_CG1_SHIFT;
337338
break;
338-
case 5:
339+
case 6:
339340
clock_enabled = (CCM->CCGR3 & CCM_CCGR3_CG3_MASK) >> CCM_CCGR3_CG3_SHIFT;
340341
break;
341-
case 6:
342+
case 7:
342343
clock_enabled = (CCM->CCGR5 & CCM_CCGR5_CG13_MASK) >> CCM_CCGR5_CG13_SHIFT;
343344
break;
344-
case 7:
345+
case 8:
345346
clock_enabled = (CCM->CCGR6 & CCM_CCGR6_CG7_MASK) >> CCM_CCGR6_CG7_SHIFT;
346347
break;
347348
default:
@@ -357,7 +358,8 @@ bool serial_check_tx_ongoing()
357358
int i;
358359
bool uart_tx_ongoing = false;
359360

360-
for (i = 0; i < FSL_FEATURE_SOC_LPUART_COUNT; i++) {
361+
/* The first LPUART instance number is 1 */
362+
for (i = 1; i <= FSL_FEATURE_SOC_LPUART_COUNT; i++) {
361363
/* First check if UART is enabled */
362364
if (!serial_is_enabled(i)) {
363365
/* UART is not enabled, check the next instance */

0 commit comments

Comments
 (0)