/**********************************************************************************************************************
 *  COPYRIGHT
 *  -------------------------------------------------------------------------------------------------------------------
 *  \verbatim
 *
 *                 TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
 *
 *                 Property of Texas Instruments, Unauthorized reproduction and/or distribution
 *                 is strictly prohibited.  This product  is  protected  under  copyright  law
 *                 and  trade  secret law as an  unpublished work.
 *                 (C) Copyright Texas Instruments - 2014.  All rights reserved.
 *
 *  \endverbatim
 *  -------------------------------------------------------------------------------------------------------------------
 * 
 *  -------------------------------------------------------------------------------------------------------------------
 *  FILE DESCRIPTION
 *  -------------------------------------------------------------------------------------------------------------------
 *         File:  Adc_Irq.h
 *    Component:  Tms570_AutosarAdcDriver
 *       Module:  AdcDriver
 *    Generator:  None
 *
 *  Description:  The ADC driver is responsible for controlling the analog-digital converter and for accessing the 
 *                results of a conversion. In detail it initializes the converter, provides services for starting
 *                and ending a conversion, and for selecting the trigger source and trigger condition.
 * ---------------------------------------------------------------------------------------------------------------------
 * Author:  Vishwanath Reddy
 *---------------------------------------------------------------------------------------------------------------------
 * Revision History
 *---------------------------------------------------------------------------------------------------------------------
 * Version        Date         Author               Change ID        Description
 *---------------------------------------------------------------------------------------------------------------------
 * 02.21.00       30Sep2014    Vishwanath Reddy     SDOCM00113127    Initial Version 
 * 02.21.01       23Aug2016    Vishwanath Reddy     SDOCM00121248    ADC_IRQ_PATCH_VERSION updated. 
 * 02.30.00       01Dec2016    Sudhakar Singh           None         Update version info
 * 05.30.00       15Mar2017    Sudhakar Singh       SDOCM00122834    Version supports TMS570LSxx Family of Devices.
 *********************************************************************************************************************/

#ifndef _ADC_IRQ_H_
#define _ADC_IRQ_H_

/**********************************************************************************************************************
 *  GLOBAL CONSTANT MACROS
 *********************************************************************************************************************/
#define ADC_IRQ_MAJOR_VERSION               (5U)
#define ADC_IRQ_MINOR_VERSION               (30U)
#define ADC_IRQ_PATCH_VERSION               (0U)

/**********************************************************************************************************************
 *  GLOBAL FUNCTION PROTOTYPES
 *********************************************************************************************************************/
/* Interrupt service routine declarations for hw unit 0 */
/* Declaration of ISR of hw unit 0 event group */
#if ((ADC_CFG_ISR_TYPE == ADC_ISR_CAT1) || (ADC_CFG_ISR_TYPE == ADC_ISR_VOID))
/*SAFETYMCUSW 69 S MR:3.4 <APPROVED> "Reason - Pragma usage is required here."*/
#pragma INTERRUPT(Adc_IsrUnit0Ev, IRQ)
FUNC(void, ADC_CODE_ISR)Adc_IsrUnit0Ev(void);
#elif (ADC_CFG_ISR_TYPE == ADC_ISR_CAT2)
    /* Function prototype is declared by OS */
#endif

/* Declaration of ISR of hw unit 0 group 1 */
#if ((ADC_CFG_ISR_TYPE == ADC_ISR_CAT1) || (ADC_CFG_ISR_TYPE == ADC_ISR_VOID))
/*SAFETYMCUSW 69 S MR:3.4 <APPROVED> "Reason - Pragma usage is required here."*/
#pragma INTERRUPT(Adc_IsrUnit0G1, IRQ)
FUNC(void, ADC_CODE_ISR)Adc_IsrUnit0G1(void);
#elif (ADC_CFG_ISR_TYPE == ADC_ISR_CAT2)
    /* Function prototype is declared by OS */
#endif

/* Declaration of ISR of hw unit 0 group 2 */    
#if ((ADC_CFG_ISR_TYPE == ADC_ISR_CAT1) || (ADC_CFG_ISR_TYPE == ADC_ISR_VOID))
/*SAFETYMCUSW 69 S MR:3.4 <APPROVED> "Reason - Pragma usage is required here."*/
#pragma INTERRUPT(Adc_IsrUnit0G2, IRQ)
FUNC(void, ADC_CODE_ISR)Adc_IsrUnit0G2(void);
#elif (ADC_CFG_ISR_TYPE == ADC_ISR_CAT2)
    /* Function prototype is declared by OS */
#endif

/* Interrupt service routine declarations for hw unit 1 */
/* Declaration of ISR of hw unit 1 event group */
#if ((ADC_CFG_ISR_TYPE == ADC_ISR_CAT1) || (ADC_CFG_ISR_TYPE == ADC_ISR_VOID))
/*SAFETYMCUSW 69 S MR:3.4 <APPROVED> "Reason - Pragma usage is required here."*/
#pragma INTERRUPT(Adc_IsrUnit1Ev, IRQ)
FUNC(void, ADC_CODE_ISR)Adc_IsrUnit1Ev(void);
#elif (ADC_CFG_ISR_TYPE == ADC_ISR_CAT2)
    /* Function prototype is declared by OS */
#endif
 
/* Declaration of ISR of hw unit 1 group 1 */
#if ((ADC_CFG_ISR_TYPE == ADC_ISR_CAT1) || (ADC_CFG_ISR_TYPE == ADC_ISR_VOID))
/*SAFETYMCUSW 69 S MR:3.4 <APPROVED> "Reason - Pragma usage is required here."*/
#pragma INTERRUPT(Adc_IsrUnit1G1, IRQ)
FUNC(void, ADC_CODE_ISR)Adc_IsrUnit1G1(void);
#elif (ADC_CFG_ISR_TYPE == ADC_ISR_CAT2)
    /* Function prototype is declared by OS */
#endif

/* Declaration of ISR of hw unit 1 group 2 */
#if ((ADC_CFG_ISR_TYPE == ADC_ISR_CAT1) || (ADC_CFG_ISR_TYPE == ADC_ISR_VOID))
/*SAFETYMCUSW 69 S MR:3.4 <APPROVED> "Reason - Pragma usage is required here."*/
#pragma INTERRUPT(Adc_IsrUnit1G2, IRQ)
FUNC(void, ADC_CODE_ISR)Adc_IsrUnit1G2(void);
#elif (ADC_CFG_ISR_TYPE == ADC_ISR_CAT2)
    /* Function prototype is declared by OS */
#endif

FUNC(void, ADC_CODE) Adc_IrqFunction (uint8 Adc_HwUnitId, uint8 Adc_HwGroupId);

#endif /* _ADC_IRQ_H_ */

/**********************************************************************************************************************
 *  END OF FILE: Adc_Irq.h
 *********************************************************************************************************************/
