/*!
* @file             modules.h
*
* @version          1.0.0
*
* @brief            Header file of describing all AUTOSAR MCAL modules used status.
*
* @details          This file contains the modules used configuration parameters generated by EB tresos studio 
*
*/
/*******************************************************************************
* Project Name      : AUTOSAR MCAL
* Platform          : Arm
* Peripheral        : G32A1XXX
* Autosar Standard  : Classic Platform 4.4.0
* Revision Number   :
* Compiled Version  : G32A1085_MCAL_1_0_0_01-Otc-15
*
* 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 useful 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.
*
*******************************************************************************/

#ifndef MODULES_H
#define MODULES_H


#ifdef __cplusplus
extern "C" {
#endif

#include "Std_Types.h"

/**************************************************************************
                  VENDOR ID & AUTOSAR VERSION INFO
**************************************************************************/
/** Vendor ID (vendorId) of the dedicated implementation of this module according to the AUTOSAR vendor list. */
#define MODULE_H_VENDOR_ID                       0x00C1U
/** Module ID of this module, as defined in the BSW Module List [1]. */
#define MODULE_H_MODULE_ID                       0x00U
/** Major version number of AUTOSAR release on which the appropriate implementation is based on. */
#define MODULE_H_AR_RELEASE_MAJOR_VERSION        0x04U
/** Minor version number of AUTOSAR release on which the appropriate implementation is based on. */
#define MODULE_H_AR_RELEASE_MINOR_VERSION        0x04U
/** Revision version number of AUTOSAR release on which the appropriate implementation is based on. */
#define MODULE_H_AR_RELEASE_REVISION_VERSION     0x00U
/** Major version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define MODULE_H_SW_MAJOR_VERSION                0x01U
/** Minor version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define MODULE_H_SW_MINOR_VERSION                0x00U
/** Patch level version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define MODULE_H_SW_PATCH_VERSION                0x00U

/**************************************************************************
                    VERSION INFOMATION VERIFICATION
**************************************************************************/
#ifdef ENABLE_INTERMODULE_MCAL_CHECK
    /* Make sure the AUTOSAR major version numbers are same between the current file and Std_Types.h */
    #if (STD_TYPES_H_AR_RELEASE_MAJOR_VERSION != MODULE_H_AR_RELEASE_MAJOR_VERSION) 
        #error "AUTOSAR Major Version Numbers mismatch between modules.h and Std_Types.h ."
    #endif
    /* Make sure the AUTOSAR minor version numbers are same between the current file and Std_Types.h */
    #if (STD_TYPES_H_AR_RELEASE_MINOR_VERSION != MODULE_H_AR_RELEASE_MINOR_VERSION)
        #error "AUTOSAR Minor Version Numbers mismatch between modules.h and Std_Types.h ."
    #endif
#endif

/**************************************************************************
                           MACRO DEFINITION
**************************************************************************/
/** Indicate: ADC module is present or not in current project */
#define ADC_MODULE_ENABLE              (STD_OFF)
/** Indicate: CAN module is present or not in current project */
#define CAN_MODULE_ENABLE              (STD_OFF)
/** Indicate: CRC unit module is present or not in current project */
#define CRCU_MODULE_ENABLE             (STD_OFF)
/** Indicate: DIO module is present or not in current project */
#define DIO_MODULE_ENABLE              (STD_ON)
/** Indicate: EEP module is present or not in current project */
#define EEP_MODULE_ENABLE              (STD_OFF)
/** Indicate: FEE module is present or not in current project */
#define FEE_MODULE_ENABLE              (STD_OFF)
/** Indicate: FLS module is present or not in current project */
#define FLS_MODULE_ENABLE              (STD_OFF)
/** Indicate: GPT module is present or not in current project */
#define GPT_MODULE_ENABLE              (STD_ON)
/** Indicate: I2C module is present or not in current project */
#define I2C_MODULE_ENABLE              (STD_OFF)
/** Indicate: ICU module is present or not in current project */
#define ICU_MODULE_ENABLE              (STD_OFF)
/** Indicate: IRME module is present or not in current project */
#define IRME_MODULE_ENABLE             (STD_OFF)
/** Indicate: LIN module is present or not in current project */
#define LIN_MODULE_ENABLE              (STD_OFF)
/** Indicate: MCU module is present or not in current project */
#define MCU_MODULE_ENABLE              (STD_ON)
/** Indicate: OCU module is present or not in current project */
#define OCU_MODULE_ENABLE              (STD_OFF)
/** Indicate: PDL module is present or not in current project */
#define PDL_MODULE_ENABLE              (STD_OFF)
/** Indicate: PORT module is present or not in current project */
#define PORT_MODULE_ENABLE             (STD_ON)
/** Indicate: PWM module is present or not in current project */
#define PWM_MODULE_ENABLE              (STD_OFF)
/** Indicate: SPI module is present or not in current project */
#define SPI_MODULE_ENABLE              (STD_OFF)
/** Indicate: WDG module is present or not in current project */
#define WDG_MODULE_ENABLE              (STD_OFF)


#ifdef __cplusplus
}
#endif

#endif /* MODULES_H */

