rt-thread-official/bsp/imxrt/libraries/MIMXRT1170/MIMXRT1176/drivers/fsl_iee_apc.h

125 lines
3.4 KiB
C

/*
* Copyright 2020-2021, NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef _FSL_IEE_APC_H_
#define _FSL_IEE_APC_H_
#include "fsl_common.h"
/*!
* @addtogroup ieer
* @{
*/
/*******************************************************************************
* Definitions
******************************************************************************/
/*! @name Driver version */
/*@{*/
/*! @brief IEE_APC driver version. Version 2.0.1.
*
* Current version: 2.0.1
*
* Change log:
* - Version 2.0.0
* - Initial version
* - Version 2.0.1
* - Fixed MISRA issues.
*/
#define FSL_IEE_APC_DRIVER_VERSION (MAKE_VERSION(2, 0, 1))
/*@}*/
/*! @brief APC IEE regions. */
typedef enum _iee_apc_region
{
kIEE_APC_Region0 = 0U, /*!< APC IEE region 0 */
kIEE_APC_Region1 = 1U, /*!< APC IEE region 1 */
kIEE_APC_Region2 = 2U, /*!< APC IEE region 2 */
kIEE_APC_Region3 = 3U, /*!< APC IEE region 3 */
kIEE_APC_Region4 = 4U, /*!< APC IEE region 4 */
kIEE_APC_Region5 = 5U, /*!< APC IEE region 5 */
kIEE_APC_Region6 = 6U, /*!< APC IEE region 6 */
kIEE_APC_Region7 = 7U /*!< APC IEE region 7 */
} iee_apc_region_t;
/*! @brief APC IEE domains. */
typedef enum _apc_iee_domain
{
kIEE_APC_Domain0 = 0U, /*!< APC IEE region 0 */
kIEE_APC_Domain1 = 1U /*!< APC IEE region 1 */
} iee_apc_domain_t;
/*******************************************************************************
* API
******************************************************************************/
#if defined(__cplusplus)
extern "C" {
#endif
/*!
* @brief Enable the APC IEE Region setting.
*
* This function enables IOMUXC LPSR GPR and APC IEE for setting the region.
*
* @param base APC IEE peripheral address.
*/
void IEE_APC_GlobalEnable(IEE_APC_Type *base);
/*!
* @brief Disables the APC IEE Region setting.
*
* This function disables IOMUXC LPSR GPR and APC IEE for setting the region.
*
* @param base APC IEE peripheral address.
*/
void IEE_APC_GlobalDisable(IEE_APC_Type *base);
/*!
* @brief Sets the APC IEE Memory Region Descriptors.
*
* This function configures APC IEE Memory Region Descriptor according to region configuration structure.
*
* @param base APC IEE peripheral address.
* @param region Selection of the APC IEE region to be configured.
* @param startAddr Start encryption adress for the selected APC IEE region.
* @param endAddr End encryption adress for the selected APC IEE region.
*/
status_t IEE_APC_SetRegionConfig(IEE_APC_Type *base, iee_apc_region_t region, uint32_t startAddr, uint32_t endAddr);
/*!
* @brief Lock the LPSR GPR and APC IEE configuration.
*
* This function locks writting to IOMUXC LPSR GPR and APC IEE encryption region setting registers.
* Only system reset can clear the LPSR GPR and APC IEE-RDC_D0/1 Lock bit
*
* @param base APC IEE peripheral address.
* @param region Selection of the APC IEE region to be locked.
* @param domain
*/
status_t IEE_APC_LockRegionConfig(IEE_APC_Type *base, iee_apc_region_t region, iee_apc_domain_t domain);
/*!
* @brief Enable the IEE encryption/decryption and can lock this setting.
*
* This function enables encryption/decryption by writting to IOMUXC LPSR GPR.
*
* @param base APC IEE peripheral address.
* @param region Selection of the APC IEE region to be enabled.
*/
void IEE_APC_RegionEnable(IEE_APC_Type *base, iee_apc_region_t region);
#if defined(__cplusplus)
}
#endif
/*!
*@}
*/
#endif /* _FSL_IEE_APC_H_ */