diff options
author | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2020-10-12 13:40:30 +0200 |
---|---|---|
committer | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2020-11-20 08:53:18 +0100 |
commit | 48f6a6c302a3e1a3f8915e2503d0fe618d1af285 (patch) | |
tree | b5d570ddd5e432519c5a9d42b4cf6725d8161551 /bsps/arm/imxrt/include/fsl_tempmon.h | |
parent | cpu/armv7m: Add table based init for ARMV7M_MPU (diff) | |
download | rtems-48f6a6c302a3e1a3f8915e2503d0fe618d1af285.tar.bz2 |
bsp/imxrt: Import files from MCUXpresso SDK V2.8.5
The following files have been imported:
cp ${SDK}/boards/evkbimxrt1050/project_template/clock_config.c nxp/boards/evkbimxrt1050
cp ${SDK}/boards/evkbimxrt1050/project_template/clock_config.h include/fsl_clock_config.h
cp ${SDK}/boards/evkbimxrt1050/project_template/dcd.c start/flash-dcd.c
cp ${SDK}/boards/evkbimxrt1050/project_template/pin_mux.c nxp/boards/evkbimxrt1050
cp ${SDK}/boards/evkbimxrt1050/project_template/pin_mux.h include/fsl_pin_mux.h
cp ${SDK}/boards/evkbimxrt1050/xip/evkbimxrt1050_flexspi_nor_config.h include/fsl_flexspi_nor_config.h
cp ${SDK}/devices/MIMXRT1052/MIMXRT1052.h include
cp ${SDK}/devices/MIMXRT1052/MIMXRT1052_features.h include
cp ${SDK}/devices/MIMXRT1052/drivers/fsl_*.c nxp/devices/MIMXRT1052/drivers
cp ${SDK}/devices/MIMXRT1052/drivers/fsl_*.h include
cp ${SDK}/devices/MIMXRT1052/fsl_device_registers.h include
cp ${SDK}/devices/MIMXRT1052/system_MIMXRT1052.h include/
cp ${SDK}/devices/MIMXRT1052/xip/fsl_flexspi_nor_boot.c nxp/devices/MIMXRT1052/xip/fsl_flexspi_nor_boot.c
cp ${SDK}/devices/MIMXRT1052/xip/fsl_flexspi_nor_boot.h include
Update #4180
Diffstat (limited to 'bsps/arm/imxrt/include/fsl_tempmon.h')
-rw-r--r-- | bsps/arm/imxrt/include/fsl_tempmon.h | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/bsps/arm/imxrt/include/fsl_tempmon.h b/bsps/arm/imxrt/include/fsl_tempmon.h new file mode 100644 index 0000000000..9d0a3e3271 --- /dev/null +++ b/bsps/arm/imxrt/include/fsl_tempmon.h @@ -0,0 +1,126 @@ +/* + * Copyright 2018-2019 NXP + * All rights reserved. + * + * + * SPDX-License-Identifier: BSD-3-Clause + */ +#ifndef _FSL_TEMPMON_H_ +#define _FSL_TEMPMON_H_ + +#include "fsl_common.h" + +/*! + * @addtogroup tempmon + * @{ + */ + +/*! @file */ + +/******************************************************************************* + * Definitions + ******************************************************************************/ + +/*! @name Driver version */ +/*@{*/ +#define FSL_TEMPMON_DRIVER_VERSION (MAKE_VERSION(2, 0, 2)) /*!< Version 2.0.2 */ +/*@}*/ + +/*! @brief TEMPMON temperature structure. */ +typedef struct _tempmon_config +{ + uint16_t frequency; /*!< The temperature measure frequency.*/ + uint32_t highAlarmTemp; /*!< The high alarm temperature.*/ + uint32_t panicAlarmTemp; /*!< The panic alarm temperature.*/ + uint32_t lowAlarmTemp; /*!< The low alarm temperature.*/ +} tempmon_config_t; + +/*! @brief TEMPMON alarm mode. */ +typedef enum _tempmon_alarm_mode +{ + kTEMPMON_HighAlarmMode = 0U, /*!< The high alarm temperature interrupt mode.*/ + kTEMPMON_PanicAlarmMode = 1U, /*!< The panic alarm temperature interrupt mode.*/ + kTEMPMON_LowAlarmMode = 2U, /*!< The low alarm temperature interrupt mode.*/ +} tempmon_alarm_mode; + +/******************************************************************************* + * API + ******************************************************************************/ + +#if defined(__cplusplus) +extern "C" { +#endif + +/*! + * @brief Initializes the TEMPMON module. + * + * @param base TEMPMON base pointer + * @param config Pointer to configuration structure. + */ +void TEMPMON_Init(TEMPMON_Type *base, const tempmon_config_t *config); + +/*! + * @brief Deinitializes the TEMPMON module. + * + * @param base TEMPMON base pointer + */ +void TEMPMON_Deinit(TEMPMON_Type *base); + +/*! + * @brief Gets the default configuration structure. + * + * This function initializes the TEMPMON configuration structure to a default value. The default + * values are: + * tempmonConfig->frequency = 0x02U; + * tempmonConfig->highAlarmTemp = 44U; + * tempmonConfig->panicAlarmTemp = 90U; + * tempmonConfig->lowAlarmTemp = 39U; + * + * @param config Pointer to a configuration structure. + */ +void TEMPMON_GetDefaultConfig(tempmon_config_t *config); + +/*! + * @brief start the temperature measurement process. + * + * @param base TEMPMON base pointer. + */ +static inline void TEMPMON_StartMeasure(TEMPMON_Type *base) +{ + base->TEMPSENSE0 |= TEMPMON_TEMPSENSE0_MEASURE_TEMP_MASK; +} + +/*! + * @brief stop the measurement process. + * + * @param base TEMPMON base pointer + */ +static inline void TEMPMON_StopMeasure(TEMPMON_Type *base) +{ + base->TEMPSENSE0 &= ~TEMPMON_TEMPSENSE0_MEASURE_TEMP_MASK; +} + +/*! + * @brief Get current temperature with the fused temperature calibration data. + * + * @param base TEMPMON base pointer + * @return current temperature with degrees Celsius. + */ +float TEMPMON_GetCurrentTemperature(TEMPMON_Type *base); + +/*! + * @brief Set the temperature count (raw sensor output) that will generate an alarm interrupt. + * + * @param base TEMPMON base pointer + * @param tempVal The alarm temperature with degrees Celsius + * @param alarmMode The alarm mode. + */ +void TEMPMON_SetTempAlarm(TEMPMON_Type *base, uint32_t tempVal, tempmon_alarm_mode alarmMode); + +#if defined(__cplusplus) +} +#endif + +/*! @}*/ + +#endif /* _FSL_TEMPMON_H_ */ |