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 };
3334static uart_irq_handler irq_handler ;
3435/* Array of UART peripheral base address. */
3536static 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