/*!
* @file     Adc_Cfg.h
*
* @version  1.0.0
*
* @brief    This file includes the configuration parameters of the Adc module.
*
*/

/*******************************************************************************
 * Project Name      : AUTOSAR MCAL
 * Platform          : Arm
 * Autosar Standard  : Classic Platform 4.4.0
 * Revision Number   :
 * Compiled Version  : G32A10xx_MCAL_1_0_0_30-April-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 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 ADC_CFG_H
#define ADC_CFG_H

#ifdef __cplusplus
extern "C" {
#endif

#include "Mcal.h"
#include "StdRegMacros.h"
/*******************************************************************************
                        VENDOR ID & AUTOSAR VERSION INFO
*******************************************************************************/
/** Vendor ID (vendorId) of the dedicated implementation of this module according to the AUTOSAR vendor list. */
#define ADC_CFG_H_VENDOR_ID                        0x00C1U
/** Module ID of this module, as defined in the BSW Module List. */
#define ADC_CFG_H_MODULE_ID                        0x0065
/** Major version number of AUTOSAR release on which the appropriate implementation is based on. */
#define ADC_CFG_H_AR_RELEASE_MAJOR_VERSION         0x04U
/** Minor version number of AUTOSAR release on which the appropriate implementation is based on. */
#define ADC_CFG_H_AR_RELEASE_MINOR_VERSION         0x04U
/** Revision version number of AUTOSAR release on which the appropriate implementation is based on. */
#define ADC_CFG_H_AR_RELEASE_REVISION_VERSION      0x00U
/** Major version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define ADC_CFG_H_SW_MAJOR_VERSION                 0x01U
/** Minor version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define ADC_CFG_H_SW_MINOR_VERSION                 0x00U
/** Patch level version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define ADC_CFG_H_SW_PATCH_VERSION                 0x00U

/*******************************************************************************
                             MACRO DEFINITION
*******************************************************************************/
#define ADC_INSTANCE_ID                     ((uint8_t)0x0U)

#define ADC_MAX_CHANNELS                    16
/* Calibration time out */
#define ADC_CALIBRATION_TIMEOUT             ((uint32_t)0x0000FFFF)

#define ADC_GROUP_0     0
#define ADC_CONFIG_GROUP0_CHANNEL_NUM       3
#define ADC_GROUP0_NUMBER_OF_SAMPLES        3

/** The maximum groups' number */
#define ADC_MAXIMUN_GROUPS_SET              1U

/** The maximum queue depth */
#define ADC_MAXIMUM_QUEUE_DEPTH_SET         10U

#define ADC_ENABLE_INTERRUPT              (STD_ON)

#define ADC_DMA_TRANSFER_MODE             (STD_OFF)

#define ADC_LIMIT_VALUE_DETECTION_ENABLE  (STD_OFF)

#define ADC_PREEMPTABLE_ENABLE            (STD_ON)

#if (STD_ON == ADC_ENABLE_INTERRUPT)
#define ADC_QUEUE_IMPLEMENTATION          (STD_OFF)
#endif

#if (STD_ON == ADC_QUEUE_IMPLEMENTATION)
#define ADC_PRIORITY_IMPLEMENTATION       (STD_OFF)
#endif

#define ADC_DEV_ERR_DETECT_ENABLE         (STD_OFF)

#define ADC_DEINIT_API                    (STD_ON)

#define ADC_HARDWARE_TRIG_API             (STD_ON)

#define ADC_START_STOP_GROUP_API          (STD_OFF)

#define ADC_GROUP_NOTIFICATION_API        (STD_ON)

#define ADC_VERSINFO_API                  (STD_ON)

#ifdef __cplusplus
}
#endif  /* __cplusplus */

#endif
