summaryrefslogtreecommitdiff
path: root/firmware/memory_chip_gone/Utilities/lpm/tiny_lpm/stm32_lpm.h
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2026-02-17 11:37:50 -0800
committerAnson Bridges <bridges.anson@gmail.com>2026-02-17 11:37:50 -0800
commitfb1611c0ca99d9e609057c46507be2af8389bb7b (patch)
tree646ac568fdad1e6cf9e1f5767295b183bc5c5441 /firmware/memory_chip_gone/Utilities/lpm/tiny_lpm/stm32_lpm.h
parent6e952fe110c2a48204c8cb0a836309ab97e5979a (diff)
firmware coadHEADmaster
Diffstat (limited to 'firmware/memory_chip_gone/Utilities/lpm/tiny_lpm/stm32_lpm.h')
-rw-r--r--firmware/memory_chip_gone/Utilities/lpm/tiny_lpm/stm32_lpm.h167
1 files changed, 167 insertions, 0 deletions
diff --git a/firmware/memory_chip_gone/Utilities/lpm/tiny_lpm/stm32_lpm.h b/firmware/memory_chip_gone/Utilities/lpm/tiny_lpm/stm32_lpm.h
new file mode 100644
index 0000000..a262f9c
--- /dev/null
+++ b/firmware/memory_chip_gone/Utilities/lpm/tiny_lpm/stm32_lpm.h
@@ -0,0 +1,167 @@
+/**
+ ******************************************************************************
+ * @file stm32_lpm.h
+ * @author MCD Application Team
+ * @brief Header for stm32_lpm.c module
+ ******************************************************************************
+ * @attention
+ *
+ * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.</center></h2>
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+*/
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef STM32_TINY_LPM_H
+#define STM32_TINY_LPM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stdint.h"
+
+/** @defgroup TINY_LPM TINY LPM
+ * @{
+ */
+
+/* Exported typedef ---------------------------------------------------------*/
+/** @defgroup TINY_LPM_Exported_typedef TINY LPM exported typedef
+ * @{
+ */
+
+/**
+ * @brief type definition to represent the bit mask of an LPM mode
+ */
+typedef uint32_t UTIL_LPM_bm_t;
+
+/**
+ * @brief type definition to represent value of an LPM mode
+ */
+typedef enum
+{
+ UTIL_LPM_ENABLE=0,
+ UTIL_LPM_DISABLE,
+} UTIL_LPM_State_t;
+
+/**
+ * @brief type definition to represent the different type of LPM mode
+ */
+
+typedef enum
+{
+ UTIL_LPM_SLEEPMODE,
+ UTIL_LPM_STOPMODE,
+ UTIL_LPM_OFFMODE,
+} UTIL_LPM_Mode_t;
+
+/**
+ * @}
+ */
+
+/** @defgroup TINY_LPM_Exported_struct TINY LPM exported struct
+ * @{
+ */
+
+/**
+ * @brief LPM driver definition
+ */
+struct UTIL_LPM_Driver_s
+{
+ void (*EnterSleepMode) ( void ); /*!<function to enter the sleep mode */
+ void (*ExitSleepMode) ( void ); /*!<function to exit the sleep mode */
+ void (*EnterStopMode) ( void ); /*!<function to enter the stop mode */
+ void (*ExitStopMode) ( void ); /*!<function to exit the stop mode */
+ void (*EnterOffMode) ( void ); /*!<function to enter the off mode */
+ void (*ExitOffMode) ( void ); /*!<function to exit the off mode */
+};
+
+/**
+ * @}
+ */
+
+/* External variables --------------------------------------------------------*/
+
+/** @defgroup TINY_LPM_Exported_struct TINY LPM exported struct
+ * @{
+ */
+
+/**
+ * @brief LPM driver
+ *
+ * @note This structure is defined and initialized in the specific platform
+ * power implementation
+ */
+extern const struct UTIL_LPM_Driver_s UTIL_PowerDriver;
+
+/**
+ * @}
+ */
+
+/* Exported macros -----------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+
+/** @defgroup TINY_LPM_Exported_function TINY LPM exported functions
+ * @{
+ */
+
+/**
+ * @brief This API Initializes the LPM resources.
+ */
+void UTIL_LPM_Init( void );
+
+/**
+ * @brief This API Un-Initializes the LPM resources.
+ */
+void UTIL_LPM_DeInit( void );
+
+/**
+ * @brief This API returns the Low Power Mode selected that will be applied when the system will enter low power mode
+ * if there is no update between the time the mode is read with this API and the time the system enters
+ * low power mode.
+ * @retval the LPM mode based on @ref UTIL_LPM_Mode_t
+ */
+UTIL_LPM_Mode_t UTIL_LPM_GetMode( void );
+
+/**
+ * @brief This API notifies the low power manager if the specified user allows the Stop mode or not.
+ * The default mode selection for all users is Stop Mode enabled
+ * @param lpm_id_bm: identifier of the user ( 1 bit per user )
+ * @param state: Specify whether StopMode is allowed or not by this user
+ */
+void UTIL_LPM_SetStopMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state );
+
+/**
+ * @brief This API notifies the low power manager if the specified user allows the Off mode or not.
+ * The default mode selection for all users is Off mode enabled
+ * @param lpm_id_bm: identifier of the user ( 1 bit per user )
+ * @param state: Specify whether OffMode is allowed or not by this user
+ */
+void UTIL_LPM_SetOffMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state );
+
+/**
+ * @brief This API is called by the low power manager in a critical section (PRIMASK bit set) to allow the
+ * application to implement dedicated code before entering Low Power Mode
+ */
+void UTIL_LPM_EnterLowPower( void );
+
+/**
+ *@}
+ */
+
+/**
+ *@}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STM32_TINY_LPM_H */
+