/*!
* @file     Icu_EintIrq.c
*
* @version  1.0.0
*
* @brief    The source file of the Eint interrupt handler driver
*
* @attention
*
* Project Name      : AUTOSAR MCAL
*
* Platform          : Arm
*
* Autosar Standard  : Classic Platform 4.4.0
*
* Compiled Version  : G32A10xx_MCAL_1_0_0_01-Otc-25
*
* Copyright (C) 2026 Geehy Semiconductor
*
* You may not use this file except in compliance with the
* GEEHY COPYRIGHT NOTICE (Geehy Semiconductor Software License Agreement).
*
* The program is only for reference, which is distributed in the hope
* that it will be usefull and instructional for customers to develop
* their software. Unless required by applicable law or agreed to in
* writing, the program is distributed on an "AS IS" BASIS, WITHOUT
* ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
* See the Geehy Semiconductor Software License Agreement for the governing permissions
* and limitations under the License.
*/

#ifdef __cplusplus
extern "C"{
#endif

#include "StdRegMacros.h"
#include "Mcal.h"
#include "Icu_Eint.h"
#include "Icu_Cfg.h"
#include "Icu_PortCi.h"

/** @addtogroup G32A10xx_StdPeriphDriver
  @{
*/

/** @defgroup ICU_Driver
  * @brief ICU driver modules
  @{
*/

/** @defgroup ICU_Macros
  @{
*/
/***********************************************************************************************************************
                                    VENDOR ID & AUTOSAR VERSION INFO
***********************************************************************************************************************/
/** Vendor ID (vendorId) of the dedicated implementation of this module according to the AUTOSAR vendor list. */
#define ICU_EINT_IRQ_VENDOR_ID                         0x00C1U
/** Module ID of this module, as defined in the BSW Module List. */
#define ICU_EINT_IRQ_MODULE_ID                         0x00FFU
/** Major version number of AUTOSAR release on which the appropriate implementation is based on. */
#define ICU_EINT_IRQ_AR_RELEASE_MAJOR_VERSION          0x04U
/** Minor version number of AUTOSAR release on which the appropriate implementation is based on. */
#define ICU_EINT_IRQ_AR_RELEASE_MINOR_VERSION          0x04U
/** Revision version number of AUTOSAR release on which the appropriate implementation is based on. */
#define ICU_EINT_IRQ_AR_RELEASE_REVISION_VERSION       0x00U
/** Major version number of the vendor specific implementation of the module. The numbering is vendor specific. */   
#define ICU_EINT_IRQ_SW_MAJOR_VERSION                  0x01U
/** Minor version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define ICU_EINT_IRQ_SW_MINOR_VERSION                  0x00U
/** Patch level version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define ICU_EINT_IRQ_SW_PATCH_VERSION                  0x00U

/**@} end of group ICU_Macros */

/**********************************************************************************************************************
                                        VERSION INFOMATION VERIFICATION
***********************************************************************************************************************/
/* Make sure the vendor id is the same between Icu_EintIrq.c and Icu_Eint.h */
#if (ICU_EINT_IRQ_VENDOR_ID != ICU_EINT_H_VENDOR_ID)
    #error "Vendor ids mismatch between Icu_EintIrq.c and Icu_Eint.h"
#endif
/* Make sure the AUTOSAR major version number is the same between Icu_EintIrq.c and Icu_Eint.h */
#if (ICU_EINT_IRQ_AR_RELEASE_MAJOR_VERSION != ICU_EINT_H_AR_RELEASE_MAJOR_VERSION)
    #error "AUTOSAR Major Version Numbers mismatch between Icu_EintIrq.c and Icu_Eint.h"
#endif
/* Make sure the AUTOSAR minor version number is the same between Icu_EintIrq.c and Icu_Eint.h */
#if (ICU_EINT_IRQ_AR_RELEASE_MINOR_VERSION != ICU_EINT_H_AR_RELEASE_MINOR_VERSION)
    #error "AUTOSAR Minor Version Numbers mismatch between Icu_EintIrq.c and Icu_Eint.h"
#endif
/* Make sure the AUTOSAR revision version number is the same between Icu_EintIrq.c and Icu_Eint.h */
#if (ICU_EINT_IRQ_AR_RELEASE_REVISION_VERSION != ICU_EINT_H_AR_RELEASE_REVISION_VERSION)
    #error "AUTOSAR Revision Version Numbers mismatch Icu_EintIrq.c and Icu_Eint.h"
#endif
/* Make sure the software major version number is the same between Icu_EintIrq.c and Icu_Eint.h */
#if (ICU_EINT_IRQ_SW_MAJOR_VERSION != ICU_EINT_H_SW_MAJOR_VERSION)
    #error "Software Major Version Numbers mismatch between Icu_EintIrq.c and Icu_Eint.h"
#endif
/* Make sure the software minor version number is the same between Icu_EintIrq.c and Icu_Eint.h */
#if (ICU_EINT_IRQ_SW_MINOR_VERSION != ICU_EINT_H_SW_MINOR_VERSION)
    #error "Software Minor Version Numbers mismatch between Icu_EintIrq.c and Icu_Eint.h"
#endif
/* Make sure the software patch version number is the same between Icu_EintIrq.c and Icu_Eint.h */
#if (ICU_EINT_IRQ_SW_PATCH_VERSION != ICU_EINT_H_SW_PATCH_VERSION)
    #error "Software Patch Version Numbers mismatch between Icu_EintIrq.c and Icu_Eint.h"
#endif

#ifdef ENABLE_INTERMODULE_MCAL_CHECK
    /* Make sure the AUTOSAR major version number is the same between  Icu_EintIrq.c and Mcal.h */
    #if (ICU_EINT_IRQ_AR_RELEASE_MAJOR_VERSION != MCAL_H_AR_RELEASE_MAJOR_VERSION) 
        #error "AUTOSAR Major Version Numbers mismatch between between Icu_EintIrq.c and Mcal.h"
    #endif
    /* Make sure the AUTOSAR minor version number is the same between  Icu_EintIrq.c and Mcal.h */
    #if (ICU_EINT_IRQ_AR_RELEASE_MINOR_VERSION != MCAL_H_AR_RELEASE_MINOR_VERSION) 
        #error "AUTOSAR Minor Version Numbers mismatch between Icu_EintIrq.c and Mcal.h"
    #endif

    /* Make sure the AUTOSAR major version number is the same between  ICU_EINT_Irq.cand StdRegMacros.h */
    #if (ICU_EINT_IRQ_AR_RELEASE_MAJOR_VERSION != STD_REG_MACROS_H_AR_RELEASE_MAJOR_VERSION)
        #error "AUTOSAR Major Version Numbers mismatch between ICU_EINT_Irq.cand StdRegMacros.h"
    #endif
    /* Make sure the AUTOSAR minor version number is the same between  ICU_EINT_Irq.cand StdRegMacros.h */
    #if (ICU_EINT_IRQ_AR_RELEASE_MINOR_VERSION != STD_REG_MACROS_H_AR_RELEASE_MINOR_VERSION)
        #error "AUTOSAR Minor Version Numbers mismatch between ICU_EINT_Irq.cand StdRegMacros.h"
    #endif
#endif

/* Make sure the vendor id is the same between Icu_EintIrq.c and Icu_Cfg.h */
#if (ICU_EINT_IRQ_VENDOR_ID != ICU_CFG_H_VENDOR_ID)
    #error "Vendor ids mismatch between Icu_EintIrq.c and Icu_Cfg.h"
#endif
/* Make sure the AUTOSAR major version number is the same between Icu_EintIrq.c and Icu_Cfg.h */
#if (ICU_EINT_IRQ_AR_RELEASE_MAJOR_VERSION    != ICU_CFG_H_AR_RELEASE_MAJOR_VERSION)
    #error "AUTOSAR Major Version Numbers mismatch between Icu_EintIrq.c and Icu_Cfg.h"
#endif
/* Make sure the AUTOSAR minor version number is the same between Icu_EintIrq.c and Icu_Cfg.h */
#if (ICU_EINT_IRQ_AR_RELEASE_MINOR_VERSION    != ICU_CFG_H_AR_RELEASE_MINOR_VERSION)
    #error "AUTOSAR Minor Version Numbers mismatch between Icu_EintIrq.c and Icu_Cfg.h"
#endif
/* Make sure the AUTOSAR revision version number is the same between Icu_EintIrq.c and Icu_Cfg.h */
#if (ICU_EINT_IRQ_AR_RELEASE_REVISION_VERSION != ICU_CFG_H_AR_RELEASE_REVISION_VERSION)
    #error "AUTOSAR Revision Version Numbers mismatch between Icu_EintIrq.c and Icu_Cfg.h"
#endif
/* Make sure the software major version number is the same between Icu_EintIrq.c and Icu_Cfg.h */
#if (ICU_EINT_IRQ_SW_MAJOR_VERSION != ICU_CFG_H_SW_MAJOR_VERSION)
    #error "Software Major Version Numbers mismatch between Icu_EintIrq.c and Icu_Cfg.h"
#endif
/* Make sure the software minor version number is the same between Icu_EintIrq.c and Icu_Cfg.h */
#if (ICU_EINT_IRQ_SW_MINOR_VERSION != ICU_CFG_H_SW_MINOR_VERSION)
    #error "Software Minor Version Numbers mismatch between Icu_EintIrq.c and Icu_Cfg.h"
#endif
/* Make sure the software patch version number is the same between Icu_EintIrq.c and Icu_Cfg.h */
#if (ICU_EINT_IRQ_SW_PATCH_VERSION != ICU_CFG_H_SW_PATCH_VERSION)
    #error "Software Patch Version Numbers mismatch between Icu_EintIrq.c and Icu_Cfg.h"
#endif

/**********************************************************************************************************************
                                                FUNCTION DECLARATION
***********************************************************************************************************************/
/** @defgroup ICU_Fuctions
  @{
*/

#if (STD_ON == ICU_EINT_SUPPORT)
#if (STD_ON == ICU_EINT_NOTIFICATION_SUPPORT)

    #ifdef ICU_EINT_CH0_ISR_EN
    static ISR(Icu_EintIrq_Ch0Isr);
    #endif

    #ifdef ICU_EINT_CH1_ISR_EN
    static ISR(Icu_EintIrq_Ch1Isr);
    #endif
    
    #ifdef ICU_EINT_CH2_ISR_EN
    static ISR(Icu_EintIrq_Ch2Isr);
    #endif
    
    #ifdef ICU_EINT_CH3_ISR_EN
    static ISR(Icu_EintIrq_Ch3Isr);
    #endif
    
    #ifdef ICU_EINT_CH4_ISR_EN
    static ISR(Icu_EintIrq_Ch4Isr);
    #endif
    
    #ifdef ICU_EINT_CH5_ISR_EN
    static ISR(Icu_EintIrq_Ch5Isr);
    #endif

    #ifdef ICU_EINT_CH6_ISR_EN
    static ISR(Icu_EintIrq_Ch6Isr);
    #endif
    
    #ifdef ICU_EINT_CH7_ISR_EN
    static ISR(Icu_EintIrq_Ch7Isr);
    #endif
    
    #ifdef ICU_EINT_CH8_ISR_EN
    static ISR(Icu_EintIrq_Ch8Isr);
    #endif
    
    #ifdef ICU_EINT_CH9_ISR_EN
    static ISR(Icu_EintIrq_Ch9Isr);
    #endif
    
    #ifdef ICU_EINT_CH10_ISR_EN
    static ISR(Icu_EintIrq_Ch10Isr);
    #endif

    #ifdef ICU_EINT_CH11_ISR_EN
    static ISR(Icu_EintIrq_Ch11Isr);
    #endif
    
    #ifdef ICU_EINT_CH12_ISR_EN
    static ISR(Icu_EintIrq_Ch12Isr);
    #endif
    
    #ifdef ICU_EINT_CH13_ISR_EN
    static ISR(Icu_EintIrq_Ch13Isr);
    #endif
    
    #ifdef ICU_EINT_CH14_ISR_EN
    static ISR(Icu_EintIrq_Ch14Isr);
    #endif
    
    #ifdef ICU_EINT_CH15_ISR_EN
    static ISR(Icu_EintIrq_Ch15Isr);
    #endif

#endif

/**@} end of group ICU_Fuctions */

/**********************************************************************************************************************
                                                    GLOBAL FUNCTION
***********************************************************************************************************************/
#define ICU_START_SEC_CODE
#include "Icu_MemMap.h"

/** @defgroup ICU_Fuctions
  @{
*/

#if (STD_ON == ICU_EINT_NOTIFICATION_SUPPORT)

    #ifdef ICU_EINT_CH15_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel15.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch15Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE15);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH14_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel14.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */ 
    static ISR(Icu_EintIrq_Ch14Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE14);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH13_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel13.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch13Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE13);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH12_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel12.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch12Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE12);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH11_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel11.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch11Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE11);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH10_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel10.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch10Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE10);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH9_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel9.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch9Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE9);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH8_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel8.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch8Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE8);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH7_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel7.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch7Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE7);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH6_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel6.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch6Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE6);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH5_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel5.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch5Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE5);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH4_ISR_EN    
    /*!
    * @brief         The interrupt handler of the Eint channel4.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch4Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE4);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH3_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel3.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch3Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE3);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH2_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel2.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch2Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE2);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH1_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel1.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch1Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE1);
        EXIT_INTERRUPT();
    }
    #endif

    #ifdef ICU_EINT_CH0_ISR_EN
    /*!
    * @brief         The interrupt handler of the Eint channel0.
    *
    * @param[in]     None
    * @param[out]    None
    * @param[in,out] None
    */
    static ISR(Icu_EintIrq_Ch0Isr)
    {
        Icu_PortCi_ProcessInterrupt((Icu_EintChType)EINT_LINE0);
        EXIT_INTERRUPT();
    }
    #endif

#endif

/*!
* @brief         This function handles EINT0_1_IRQHandler exception.
*
* @param[in]     None
* @param[out]    None
* @param[in,out] None
*/
void EINT0_1_IRQHandler(void)
{
#if (STD_ON == ICU_EINT_NOTIFICATION_SUPPORT)
    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE0))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE0);
#ifdef ICU_EINT_CH0_ISR_EN
        Icu_EintIrq_Ch0Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE1))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE1);
#ifdef ICU_EINT_CH1_ISR_EN
        Icu_EintIrq_Ch1Isr();
#endif
    }
    else
    {
        /* do nothing */
    }
#endif
}

/*!
* @brief         This function handles EINT2_3_IRQHandler exception.
*
* @param[in]     None
* @param[out]    None
* @param[in,out] None
*/
void EINT2_3_IRQHandler(void)
{
#if (STD_ON == ICU_EINT_NOTIFICATION_SUPPORT)
    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE2))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE2);
#ifdef ICU_EINT_CH2_ISR_EN
        Icu_EintIrq_Ch2Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE3))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE3);
#ifdef ICU_EINT_CH3_ISR_EN
        Icu_EintIrq_Ch3Isr();
#endif
    }
    else
    {
        /* do nothing */
    }
#endif
}

/*!
* @brief         This function handles EINT4_15_IRQHandler exception.
*
* @param[in]     None
* @param[out]    None
* @param[in,out] None
*/
void EINT4_15_IRQHandler(void)
{
#if (STD_ON == ICU_EINT_NOTIFICATION_SUPPORT)
if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE4))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE4);
#ifdef ICU_EINT_CH4_ISR_EN
        Icu_EintIrq_Ch4Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE5))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE5);
#ifdef ICU_EINT_CH5_ISR_EN
        Icu_EintIrq_Ch5Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE6))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE6);
#ifdef ICU_EINT_CH6_ISR_EN
        Icu_EintIrq_Ch6Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE7))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE7);
#ifdef ICU_EINT_CH7_ISR_EN
        Icu_EintIrq_Ch7Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE8))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE8);
#ifdef ICU_EINT_CH8_ISR_EN
        Icu_EintIrq_Ch8Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE9))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE9);
#ifdef ICU_EINT_CH9_ISR_EN
        Icu_EintIrq_Ch9Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE10))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE10);
#ifdef ICU_EINT_CH10_ISR_EN
        Icu_EintIrq_Ch10Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE11))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE11);
#ifdef ICU_EINT_CH11_ISR_EN
        Icu_EintIrq_Ch11Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE12))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE12);
#ifdef ICU_EINT_CH12_ISR_EN
        Icu_EintIrq_Ch12Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE13))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE13);
#ifdef ICU_EINT_CH13_ISR_EN
        Icu_EintIrq_Ch13Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE14))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE14);
#ifdef ICU_EINT_CH14_ISR_EN
        Icu_EintIrq_Ch14Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

    if(SET_STS == Icu_Eint_ReadIntFlag((uint32)EINT_LINE15))
    {
        Icu_Eint_ClearIntFlag((uint32)EINT_LINE15);
#ifdef ICU_EINT_CH15_ISR_EN
        Icu_EintIrq_Ch15Isr();
#endif
    }
    else
    {
        /* do nothing */
    }

#endif
}

/**@} end of group ICU_Fuctions */

#define ICU_STOP_SEC_CODE
#include "Icu_MemMap.h"

#endif

#ifdef __cplusplus
}
#endif

/**@} end of group ICU_Driver */
/**@} end of group G32A10xx_StdPeriphDriver */
