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

/*******************************************************************************
 * Project Name      : AUTOSAR MCAL
 * Platform          : Arm
 * Autosar Standard  : Classic Platform 4.4.0
 * Revision Number   :
 * Compiled Version  : G32A10xx_MCAL_1_0_0_15-Nov-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 MCU_CFG_H
#define MCU_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 MCU_CFG_H_VENDOR_ID                        0x00C1U
/** Module ID of this module, as defined in the BSW Module List. */
#define MCU_CFG_H_MODULE_ID                        0x0065
/** Major version number of AUTOSAR release on which the appropriate implementation is based on. */
#define MCU_CFG_H_AR_RELEASE_MAJOR_VERSION         0x04U
/** Minor version number of AUTOSAR release on which the appropriate implementation is based on. */
#define MCU_CFG_H_AR_RELEASE_MINOR_VERSION         0x04U
/** Revision version number of AUTOSAR release on which the appropriate implementation is based on. */
#define MCU_CFG_H_AR_RELEASE_REVISION_VERSION      0x00U
/** Major version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define MCU_CFG_H_SW_MAJOR_VERSION                 0x01U
/** Minor version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define MCU_CFG_H_SW_MINOR_VERSION                 0x00U
/** Patch level version number of the vendor specific implementation of the module. The numbering is vendor specific. */
#define MCU_CFG_H_SW_PATCH_VERSION                 0x00U

/*******************************************************************************
                             VERSION CHECK
*******************************************************************************/


/*******************************************************************************
                            ERSION INFOMATION VERIFICATION
*******************************************************************************/
#define MCU_RCM_RESET_LOC           ((uint32_t)0x400000)
#define MCU_RCM_RESET_PWR           ((uint32_t)0x800000)
#define MCU_RCM_RESET_OBR           ((uint32_t)0x2000000)
#define MCU_RCM_RESET_PIN           ((uint32_t)0x4000000)
#define MCU_RCM_RESET_POD           ((uint32_t)0x8000000)
#define MCU_RCM_RESET_SW            ((uint32_t)0x10000000)
#define MCU_RCM_RESET_IWDT          ((uint32_t)0x20000000)
#define MCU_RCM_RESET_LPWR          ((uint32_t)0x80000000)

/** The instance id of current Mcu module. */
#define MCU_INSTANCE_ID             ((uint8_t)0x0U)

#define MCU_E_PARAM_CONFIG          ((uint8_t)0x0AU)
#define MCU_E_PARAM_CLOCK           ((uint8_t)0x0BU)
#define MCU_E_PARAM_MODE            ((uint8_t)0x0CU)
#define MCU_E_PARAM_RAMSECTION      ((uint8_t)0x0DU)
#define MCU_E_PLL_NOT_LOCKED        ((uint8_t)0x0EU)
#define MCU_E_UNINIT                ((uint8_t)0x0FU)
#define MCU_E_PARAM_POINTER         ((uint8_t)0x10U)
#define MCU_E_INIT_FAILED           ((uint8_t)0x11U)
#define MCU_E_ALL_READY_INITIALIZED ((uint8_t)0x13U)


#define MCU_DEV_ERR_DETECT_ENABLE   (STD_OFF)

#define MCU_VERSINFO_API            (STD_OFF)

#define MCU_INITCLK_ENABLED         (STD_ON)

#define MCU_PLL_NONE                (STD_OFF)

#define MCU_PERRST_API              (STD_ON)

#define MCU_GET_RAM_STATE_API       (STD_OFF)

#define MCU_RCM_REGISTERS_CONUT     0x1C

#define MCU_SYSC_DMARMP_CONUT       0x05

#define MCU_SYSC_ENIT_CONUT         0x10

#define MCU_DBGMCU_MODE_CONUT       0x09

/* Time out for HSE start up */
#define MCU_HSE_STARTUP_TIMEOUT     ((uint32_t)0x10000)
   
/**The maximum count of the Mcu clock configurations. */
#define MCU_MAX_CLK_CONFIGS_COUNT   ((uint32)1U)

/**
 * @brief   The ids of the Mcu clock configurations.
 */
#define McuClockSettingConfig_0                         ((Mcu_ClockType)0U)
#define McuClockSettingConfig_McuClockSettingConfig_0   ((Mcu_ClockType)0U)

/** The maximum count of the Mcu ram configurations. */
#define MCU_MAXRAMCONFIGS_COUNT     ((uint32)1U)
#define MCU_CONFIG_RAM_NONE
/*******************************************************************************
                            FUNCTION DECLARATION
*******************************************************************************/
#define MCU_START_SEC_VAR_INIT_UNSPECIFIED
#include "Mcu_MemMap.h"

#ifdef MCU_ERR_ISR_NOTIFICATION
extern FUNC(void, MCU_CODE) MCU_ERR_ISR_NOTIFICATION(Mcu_Rcm_IrqType errCode);
#endif

#ifdef MCU_RCM_ISR_NOTIFICATION
extern FUNC(void, MCU_CODE) MCU_RCM_ISR_NOTIFICATION(Mcu_Rcm_IrqType code);
#endif

#define MCU_STOP_SEC_VAR_INIT_UNSPECIFIED
#include "Mcu_MemMap.h"

#ifdef __cplusplus
}
#endif  /* __cplusplus */

#endif
