29
29
#include "PeripheralPins.h"
30
30
#include "fsl_clock_config.h"
31
31
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 };
33
34
static uart_irq_handler irq_handler ;
34
35
/* Array of UART peripheral base address. */
35
36
static LPUART_Type * const uart_addrs [] = LPUART_BASE_PTRS ;
@@ -320,28 +321,28 @@ static int serial_is_enabled(uint32_t uart_index)
320
321
{
321
322
int clock_enabled = 0 ;
322
323
switch (uart_index ) {
323
- case 0 :
324
+ case 1 :
324
325
clock_enabled = (CCM -> CCGR5 & CCM_CCGR5_CG12_MASK ) >> CCM_CCGR5_CG12_SHIFT ;
325
326
break ;
326
- case 1 :
327
+ case 2 :
327
328
clock_enabled = (CCM -> CCGR0 & CCM_CCGR0_CG14_MASK ) >> CCM_CCGR0_CG14_SHIFT ;
328
329
break ;
329
- case 2 :
330
+ case 3 :
330
331
clock_enabled = (CCM -> CCGR0 & CCM_CCGR0_CG6_MASK ) >> CCM_CCGR0_CG6_SHIFT ;
331
332
break ;
332
- case 3 :
333
+ case 4 :
333
334
clock_enabled = (CCM -> CCGR1 & CCM_CCGR1_CG12_MASK ) >> CCM_CCGR1_CG12_SHIFT ;
334
335
break ;
335
- case 4 :
336
+ case 5 :
336
337
clock_enabled = (CCM -> CCGR3 & CCM_CCGR3_CG1_MASK ) >> CCM_CCGR3_CG1_SHIFT ;
337
338
break ;
338
- case 5 :
339
+ case 6 :
339
340
clock_enabled = (CCM -> CCGR3 & CCM_CCGR3_CG3_MASK ) >> CCM_CCGR3_CG3_SHIFT ;
340
341
break ;
341
- case 6 :
342
+ case 7 :
342
343
clock_enabled = (CCM -> CCGR5 & CCM_CCGR5_CG13_MASK ) >> CCM_CCGR5_CG13_SHIFT ;
343
344
break ;
344
- case 7 :
345
+ case 8 :
345
346
clock_enabled = (CCM -> CCGR6 & CCM_CCGR6_CG7_MASK ) >> CCM_CCGR6_CG7_SHIFT ;
346
347
break ;
347
348
default :
@@ -357,7 +358,8 @@ bool serial_check_tx_ongoing()
357
358
int i ;
358
359
bool uart_tx_ongoing = false;
359
360
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 ++ ) {
361
363
/* First check if UART is enabled */
362
364
if (!serial_is_enabled (i )) {
363
365
/* UART is not enabled, check the next instance */
0 commit comments