summaryrefslogtreecommitdiff
path: root/include/arch/rm46l8lp/halcogen/esm.h
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2022-07-18 11:25:27 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2022-07-18 11:25:27 +0200
commite6cef3c547e8f73cbf2d3c7ba639cb7d9934c475 (patch)
treeb38bf797c9cd5c226de250e8f569031ebc6131d0 /include/arch/rm46l8lp/halcogen/esm.h
parent4da20a683273f252940ff2752d2f497040800b3d (diff)
Add Hercules RM46L8 Launchpad support (Cortex R4F)
Diffstat (limited to 'include/arch/rm46l8lp/halcogen/esm.h')
-rw-r--r--include/arch/rm46l8lp/halcogen/esm.h956
1 files changed, 956 insertions, 0 deletions
diff --git a/include/arch/rm46l8lp/halcogen/esm.h b/include/arch/rm46l8lp/halcogen/esm.h
new file mode 100644
index 0000000..8c29e8a
--- /dev/null
+++ b/include/arch/rm46l8lp/halcogen/esm.h
@@ -0,0 +1,956 @@
+/** @file esm.h
+* @brief Error Signaling Module Driver Header File
+* @date 11-Dec-2018
+* @version 04.07.01
+*
+* This file contains:
+* - Definitions
+* - Types
+* .
+* which are relevant for the Esm driver.
+*/
+
+/*
+* Copyright (C) 2009-2018 Texas Instruments Incorporated - www.ti.com
+*
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*
+* Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of Texas Instruments Incorporated nor the names of
+* its contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+
+
+#ifndef __ESM_H__
+#define __ESM_H__
+
+#include "reg_esm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* ESM General Definitions */
+
+/** @def esmGROUP1
+* @brief Alias name for ESM group 1
+*
+* This is an alias name for the ESM group 1.
+*
+* @note This value should be used for API argument @a group
+*/
+#define esmGROUP1 0U
+
+/** @def esmGROUP2
+* @brief Alias name for ESM group 2
+*
+* This is an alias name for the ESM group 2.
+*
+* @note This value should be used for API argument @a group
+*/
+#define esmGROUP2 1U
+
+/** @def esmGROUP3
+* @brief Alias name for ESM group 3
+*
+* This is an alias name for the ESM group 3.
+*
+* @note This value should be used for API argument @a group
+*/
+#define esmGROUP3 2U
+
+/** @def esmCHANNEL0
+* @brief Alias name for ESM group x channel 0
+*
+* This is an alias name for the ESM group x channel 0.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL0 0x0000000000000001ULL
+
+/** @def esmCHANNEL1
+* @brief Alias name for ESM group x channel 1
+*
+* This is an alias name for the ESM group x channel 1.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL1 0x0000000000000002ULL
+
+/** @def esmCHANNEL2
+* @brief Alias name for ESM group x channel 2
+*
+* This is an alias name for the ESM group x channel 2.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL2 0x0000000000000004ULL
+
+/** @def esmCHANNEL3
+* @brief Alias name for ESM group x channel 3
+*
+* This is an alias name for the ESM group x channel 3.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL3 0x0000000000000008ULL
+
+/** @def esmCHANNEL4
+* @brief Alias name for ESM group x channel 4
+*
+* This is an alias name for the ESM group x channel 4.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL4 0x0000000000000010ULL
+
+/** @def esmCHANNEL5
+* @brief Alias name for ESM group x channel 5
+*
+* This is an alias name for the ESM group x channel 5.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL5 0x0000000000000020ULL
+
+/** @def esmCHANNEL6
+* @brief Alias name for ESM group x channel 6
+*
+* This is an alias name for the ESM group x channel 6.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL6 0x0000000000000040ULL
+
+/** @def esmCHANNEL7
+* @brief Alias name for ESM group x channel 7
+*
+* This is an alias name for the ESM group x channel 7.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL7 0x0000000000000080ULL
+
+/** @def esmCHANNEL8
+* @brief Alias name for ESM group x channel 8
+*
+* This is an alias name for the ESM group x channel 8.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL8 0x0000000000000100ULL
+
+/** @def esmCHANNEL9
+* @brief Alias name for ESM group x channel 9
+*
+* This is an alias name for the ESM group x channel 9.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL9 0x0000000000000200ULL
+
+/** @def esmCHANNEL10
+* @brief Alias name for ESM group x channel 10
+*
+* This is an alias name for the ESM group x channel 10.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL10 0x0000000000000400ULL
+
+/** @def esmCHANNEL11
+* @brief Alias name for ESM group x channel 11
+*
+* This is an alias name for the ESM group x channel 11.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL11 0x0000000000000800ULL
+
+/** @def esmCHANNEL12
+* @brief Alias name for ESM group x channel 12
+*
+* This is an alias name for the ESM group x channel 12.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL12 0x0000000000001000ULL
+
+/** @def esmCHANNEL13
+* @brief Alias name for ESM group x channel 13
+*
+* This is an alias name for the ESM group x channel 13.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL13 0x0000000000002000ULL
+
+/** @def esmCHANNEL14
+* @brief Alias name for ESM group x channel 14
+*
+* This is an alias name for the ESM group x channel 14.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL14 0x0000000000004000ULL
+
+/** @def esmCHANNEL15
+* @brief Alias name for ESM group x channel 15
+*
+* This is an alias name for the ESM group x channel 15.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL15 0x0000000000008000ULL
+
+/** @def esmCHANNEL16
+* @brief Alias name for ESM group x channel 16
+*
+* This is an alias name for the ESM group x channel 16.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL16 0x0000000000010000ULL
+
+/** @def esmCHANNEL17
+* @brief Alias name for ESM group x channel 17
+*
+* This is an alias name for the ESM group x channel 17.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL17 0x0000000000020000ULL
+
+/** @def esmCHANNEL18
+* @brief Alias name for ESM group x channel 18
+*
+* This is an alias name for the ESM group x channel 18.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL18 0x0000000000040000ULL
+
+/** @def esmCHANNEL19
+* @brief Alias name for ESM group x channel 19
+*
+* This is an alias name for the ESM group x channel 19.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL19 0x0000000000080000ULL
+
+/** @def esmCHANNEL20
+* @brief Alias name for ESM group x channel 20
+*
+* This is an alias name for the ESM group x channel 20.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL20 0x0000000000100000ULL
+
+/** @def esmCHANNEL21
+* @brief Alias name for ESM group x channel 21
+*
+* This is an alias name for the ESM group x channel 21.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL21 0x0000000000200000ULL
+
+/** @def esmCHANNEL22
+* @brief Alias name for ESM group x channel 22
+*
+* This is an alias name for the ESM group x channel 22.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL22 0x0000000000400000ULL
+
+/** @def esmCHANNEL23
+* @brief Alias name for ESM group x channel 23
+*
+* This is an alias name for the ESM group x channel 23.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL23 0x0000000000800000ULL
+
+/** @def esmCHANNEL24
+* @brief Alias name for ESM group x channel 24
+*
+* This is an alias name for the ESM group x channel 24.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL24 0x0000000001000000ULL
+
+/** @def esmCHANNEL25
+* @brief Alias name for ESM group x channel 25
+*
+* This is an alias name for the ESM group x channel 25.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL25 0x0000000002000000ULL
+
+/** @def esmCHANNEL26
+* @brief Alias name for ESM group x channel 26
+*
+* This is an alias name for the ESM group x channel 26.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL26 0x0000000004000000ULL
+
+/** @def esmCHANNEL27
+* @brief Alias name for ESM group x channel 27
+*
+* This is an alias name for the ESM group x channel 27.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL27 0x0000000008000000ULL
+
+/** @def esmCHANNEL28
+* @brief Alias name for ESM group x channel 28
+*
+* This is an alias name for the ESM group x channel 28.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL28 0x0000000010000000ULL
+
+/** @def esmCHANNEL29
+* @brief Alias name for ESM group x channel 29
+*
+* This is an alias name for the ESM group x channel 29.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL29 0x0000000020000000ULL
+
+/** @def esmCHANNEL30
+* @brief Alias name for ESM group x channel 30
+*
+* This is an alias name for the ESM group x channel 30.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL30 0x0000000040000000ULL
+
+/** @def esmCHANNEL31
+* @brief Alias name for ESM group x channel 31
+*
+* This is an alias name for the ESM group x channel 31.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL31 0x0000000080000000ULL
+
+/** @def esmCHANNEL32
+* @brief Alias name for ESM group x channel 32
+*
+* This is an alias name for the ESM group x channel 32.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL32 0x0000000100000000ULL
+
+/** @def esmCHANNEL33
+* @brief Alias name for ESM group x channel 33
+*
+* This is an alias name for the ESM group x channel 33.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL33 0x0000000200000000ULL
+
+/** @def esmCHANNEL34
+* @brief Alias name for ESM group x channel 34
+*
+* This is an alias name for the ESM group x channel 34.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL34 0x0000000400000000ULL
+
+/** @def esmCHANNEL35
+* @brief Alias name for ESM group x channel 35
+*
+* This is an alias name for the ESM group x channel 35.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL35 0x0000000800000000ULL
+
+/** @def esmCHANNEL36
+* @brief Alias name for ESM group x channel 36
+*
+* This is an alias name for the ESM group x channel 36.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL36 0x0000001000000000ULL
+
+/** @def esmCHANNEL37
+* @brief Alias name for ESM group x channel 37
+*
+* This is an alias name for the ESM group x channel 37.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL37 0x0000002000000000ULL
+
+/** @def esmCHANNEL38
+* @brief Alias name for ESM group x channel 38
+*
+* This is an alias name for the ESM group x channel 38.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL38 0x0000004000000000ULL
+
+/** @def esmCHANNEL39
+* @brief Alias name for ESM group x channel 39
+*
+* This is an alias name for the ESM group x channel 39.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL39 0x0000008000000000ULL
+
+/** @def esmCHANNEL40
+* @brief Alias name for ESM group x channel 40
+*
+* This is an alias name for the ESM group x channel 40.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL40 0x0000010000000000ULL
+
+/** @def esmCHANNEL41
+* @brief Alias name for ESM group x channel 41
+*
+* This is an alias name for the ESM group x channel 41.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL41 0x0000020000000000ULL
+
+/** @def esmCHANNEL42
+* @brief Alias name for ESM group x channel 42
+*
+* This is an alias name for the ESM group x channel 42.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL42 0x0000040000000000ULL
+
+/** @def esmCHANNEL43
+* @brief Alias name for ESM group x channel 43
+*
+* This is an alias name for the ESM group x channel 43.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL43 0x0000080000000000ULL
+
+/** @def esmCHANNEL44
+* @brief Alias name for ESM group x channel 44
+*
+* This is an alias name for the ESM group x channel 44.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL44 0x0000100000000000ULL
+
+/** @def esmCHANNEL45
+* @brief Alias name for ESM group x channel 45
+*
+* This is an alias name for the ESM group x channel 45.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL45 0x0000200000000000ULL
+
+/** @def esmCHANNEL46
+* @brief Alias name for ESM group x channel 46
+*
+* This is an alias name for the ESM group x channel 46.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL46 0x0000400000000000ULL
+
+/** @def esmCHANNEL47
+* @brief Alias name for ESM group x channel 47
+*
+* This is an alias name for the ESM group x channel 47.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL47 0x0000800000000000ULL
+
+/** @def esmCHANNEL48
+* @brief Alias name for ESM group x channel 48
+*
+* This is an alias name for the ESM group x channel 48.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL48 0x0001000000000000ULL
+
+/** @def esmCHANNEL49
+* @brief Alias name for ESM group x channel 49
+*
+* This is an alias name for the ESM group x channel 49.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL49 0x0002000000000000ULL
+
+/** @def esmCHANNEL50
+* @brief Alias name for ESM group x channel 50
+*
+* This is an alias name for the ESM group x channel 50.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL50 0x0004000000000000ULL
+
+/** @def esmCHANNEL51
+* @brief Alias name for ESM group x channel 51
+*
+* This is an alias name for the ESM group x channel 51.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL51 0x0008000000000000ULL
+
+/** @def esmCHANNEL52
+* @brief Alias name for ESM group x channel 52
+*
+* This is an alias name for the ESM group x channel 52.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL52 0x0010000000000000ULL
+
+/** @def esmCHANNEL53
+* @brief Alias name for ESM group x channel 53
+*
+* This is an alias name for the ESM group x channel 53.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL53 0x0020000000000000ULL
+
+/** @def esmCHANNEL54
+* @brief Alias name for ESM group x channel 54
+*
+* This is an alias name for the ESM group x channel 54.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL54 0x0040000000000000ULL
+
+/** @def esmCHANNEL55
+* @brief Alias name for ESM group x channel 55
+*
+* This is an alias name for the ESM group x channel 55.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL55 0x0080000000000000ULL
+
+/** @def esmCHANNEL56
+* @brief Alias name for ESM group x channel 56
+*
+* This is an alias name for the ESM group x channel 56.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL56 0x0100000000000000ULL
+
+/** @def esmCHANNEL57
+* @brief Alias name for ESM group x channel 57
+*
+* This is an alias name for the ESM group x channel 57.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL57 0x0200000000000000ULL
+
+/** @def esmCHANNEL58
+* @brief Alias name for ESM group x channel 58
+*
+* This is an alias name for the ESM group x channel 58.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL58 0x0400000000000000ULL
+
+/** @def esmCHANNEL59
+* @brief Alias name for ESM group x channel 59
+*
+* This is an alias name for the ESM group x channel 59.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL59 0x0800000000000000ULL
+
+/** @def esmCHANNEL60
+* @brief Alias name for ESM group x channel 60
+*
+* This is an alias name for the ESM group x channel 60.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL60 0x1000000000000000ULL
+
+/** @def esmCHANNEL61
+* @brief Alias name for ESM group x channel 61
+*
+* This is an alias name for the ESM group x channel 61.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL61 0x2000000000000000ULL
+
+/** @def esmCHANNEL62
+* @brief Alias name for ESM group x channel 62
+*
+* This is an alias name for the ESM group x channel 62.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL62 0x4000000000000000ULL
+
+/** @def esmCHANNEL63
+* @brief Alias name for ESM group x channel 63
+*
+* This is an alias name for the ESM group x channel 63.
+*
+* @note This value should be used for API argument @a channel
+*/
+#define esmCHANNEL63 0x8000000000000000ULL
+
+/** @typedef esmSelfTestFlag_t
+* @brief ESM Self-Test Status Type Definition
+*
+* This type is used to represent ESM Self-Test Status.
+*/
+typedef enum esmSelfTestFlag
+{
+ esmSelfTest_Passed = 0U,
+ esmSelfTest_Active = 1U,
+ esmSelfTest_NotStarted = 2U,
+ esmSelfTest_Failed = 3U
+}esmSelfTestFlag_t;
+
+/* Configuration registers */
+typedef struct esm_config_reg
+{
+ uint32 CONFIG_EEPAPR1;
+ uint32 CONFIG_IESR1;
+ uint32 CONFIG_ILSR1;
+ uint32 CONFIG_LTCPR;
+ uint32 CONFIG_EKR;
+ uint32 CONFIG_IEPSR4;
+ uint32 CONFIG_IESR4;
+ uint32 CONFIG_ILSR4;
+} esm_config_reg_t;
+
+/* Configuration registers initial value */
+#define ESM_EEPAPR1_CONFIGVALUE ((uint32)((uint32)1U << 31U)\
+ | (uint32)((uint32)0U << 30U)\
+ | (uint32)((uint32)0U << 29U)\
+ | (uint32)((uint32)0U << 28U)\
+ | (uint32)((uint32)0U << 27U)\
+ | (uint32)((uint32)0U << 26U)\
+ | (uint32)((uint32)0U << 25U)\
+ | (uint32)((uint32)0U << 24U)\
+ | (uint32)((uint32)0U << 23U)\
+ | (uint32)((uint32)0U << 22U)\
+ | (uint32)((uint32)0U << 21U)\
+ | (uint32)((uint32)0U << 20U)\
+ | (uint32)((uint32)0U << 19U)\
+ | (uint32)((uint32)0U << 18U)\
+ | (uint32)((uint32)0U << 17U)\
+ | (uint32)((uint32)0U << 16U)\
+ | (uint32)((uint32)0U << 15U)\
+ | (uint32)((uint32)0U << 14U)\
+ | (uint32)((uint32)0U << 13U)\
+ | (uint32)((uint32)0U << 12U)\
+ | (uint32)((uint32)1U << 11U)\
+ | (uint32)((uint32)1U << 10U)\
+ | (uint32)((uint32)0U << 9U)\
+ | (uint32)((uint32)0U << 8U)\
+ | (uint32)((uint32)0U << 7U)\
+ | (uint32)((uint32)0U << 6U)\
+ | (uint32)((uint32)0U << 5U)\
+ | (uint32)((uint32)0U << 4U)\
+ | (uint32)((uint32)0U << 3U)\
+ | (uint32)((uint32)0U << 2U)\
+ | (uint32)((uint32)0U << 1U)\
+ | (uint32)((uint32)0U << 0U))
+#define ESM_IESR1_CONFIGVALUE ((uint32)((uint32)1U << 31U)\
+ | (uint32)((uint32)0U << 30U)\
+ | (uint32)((uint32)0U << 29U)\
+ | (uint32)((uint32)1U << 28U)\
+ | (uint32)((uint32)1U << 27U)\
+ | (uint32)((uint32)1U << 26U)\
+ | (uint32)((uint32)0U << 25U)\
+ | (uint32)((uint32)0U << 24U)\
+ | (uint32)((uint32)0U << 23U)\
+ | (uint32)((uint32)0U << 22U)\
+ | (uint32)((uint32)0U << 21U)\
+ | (uint32)((uint32)0U << 20U)\
+ | (uint32)((uint32)0U << 19U)\
+ | (uint32)((uint32)0U << 18U)\
+ | (uint32)((uint32)0U << 17U)\
+ | (uint32)((uint32)0U << 16U)\
+ | (uint32)((uint32)0U << 15U)\
+ | (uint32)((uint32)0U << 14U)\
+ | (uint32)((uint32)0U << 13U)\
+ | (uint32)((uint32)0U << 12U)\
+ | (uint32)((uint32)1U << 11U)\
+ | (uint32)((uint32)1U << 10U)\
+ | (uint32)((uint32)0U << 9U)\
+ | (uint32)((uint32)0U << 8U)\
+ | (uint32)((uint32)0U << 7U)\
+ | (uint32)((uint32)1U << 6U)\
+ | (uint32)((uint32)0U << 5U)\
+ | (uint32)((uint32)0U << 4U)\
+ | (uint32)((uint32)0U << 3U)\
+ | (uint32)((uint32)0U << 2U)\
+ | (uint32)((uint32)0U << 1U)\
+ | (uint32)((uint32)0U << 0U))
+#define ESM_ILSR1_CONFIGVALUE ((uint32)((uint32)0U << 31U)\
+ | (uint32)((uint32)0U << 30U)\
+ | (uint32)((uint32)0U << 29U)\
+ | (uint32)((uint32)0U << 28U)\
+ | (uint32)((uint32)0U << 27U)\
+ | (uint32)((uint32)0U << 26U)\
+ | (uint32)((uint32)0U << 25U)\
+ | (uint32)((uint32)0U << 24U)\
+ | (uint32)((uint32)0U << 23U)\
+ | (uint32)((uint32)0U << 22U)\
+ | (uint32)((uint32)0U << 21U)\
+ | (uint32)((uint32)0U << 20U)\
+ | (uint32)((uint32)0U << 19U)\
+ | (uint32)((uint32)0U << 18U)\
+ | (uint32)((uint32)0U << 17U)\
+ | (uint32)((uint32)0U << 16U)\
+ | (uint32)((uint32)0U << 15U)\
+ | (uint32)((uint32)0U << 14U)\
+ | (uint32)((uint32)0U << 13U)\
+ | (uint32)((uint32)0U << 12U)\
+ | (uint32)((uint32)0U << 11U)\
+ | (uint32)((uint32)0U << 10U)\
+ | (uint32)((uint32)0U << 9U)\
+ | (uint32)((uint32)0U << 8U)\
+ | (uint32)((uint32)0U << 7U)\
+ | (uint32)((uint32)0U << 6U)\
+ | (uint32)((uint32)0U << 5U)\
+ | (uint32)((uint32)0U << 4U)\
+ | (uint32)((uint32)0U << 3U)\
+ | (uint32)((uint32)0U << 2U)\
+ | (uint32)((uint32)0U << 1U)\
+ | (uint32)((uint32)0U << 0U))
+#define ESM_LTCPR_CONFIGVALUE (16384U - 1U)
+#define ESM_EKR_CONFIGVALUE 0U
+#define ESM_IEPSR4_CONFIGVALUE ((uint32)((uint32)0U << 31U)\
+ | (uint32)((uint32)0U << 30U)\
+ | (uint32)((uint32)0U << 29U)\
+ | (uint32)((uint32)0U << 28U)\
+ | (uint32)((uint32)0U << 27U)\
+ | (uint32)((uint32)0U << 26U)\
+ | (uint32)((uint32)0U << 25U)\
+ | (uint32)((uint32)0U << 24U)\
+ | (uint32)((uint32)0U << 23U)\
+ | (uint32)((uint32)0U << 22U)\
+ | (uint32)((uint32)0U << 21U)\
+ | (uint32)((uint32)0U << 20U)\
+ | (uint32)((uint32)0U << 19U)\
+ | (uint32)((uint32)0U << 18U)\
+ | (uint32)((uint32)0U << 17U)\
+ | (uint32)((uint32)0U << 16U)\
+ | (uint32)((uint32)0U << 15U)\
+ | (uint32)((uint32)0U << 14U)\
+ | (uint32)((uint32)0U << 13U)\
+ | (uint32)((uint32)0U << 12U)\
+ | (uint32)((uint32)0U << 11U)\
+ | (uint32)((uint32)0U << 10U)\
+ | (uint32)((uint32)0U << 9U)\
+ | (uint32)((uint32)0U << 8U)\
+ | (uint32)((uint32)0U << 7U)\
+ | (uint32)((uint32)0U << 6U)\
+ | (uint32)((uint32)0U << 5U)\
+ | (uint32)((uint32)0U << 4U)\
+ | (uint32)((uint32)0U << 3U)\
+ | (uint32)((uint32)0U << 2U)\
+ | (uint32)((uint32)0U << 1U)\
+ | (uint32)((uint32)0U << 0U))
+#define ESM_IESR4_CONFIGVALUE ((uint32)((uint32)0U << 31U)\
+ | (uint32)((uint32)0U << 30U)\
+ | (uint32)((uint32)0U << 29U)\
+ | (uint32)((uint32)0U << 28U)\
+ | (uint32)((uint32)0U << 27U)\
+ | (uint32)((uint32)0U << 26U)\
+ | (uint32)((uint32)0U << 25U)\
+ | (uint32)((uint32)0U << 24U)\
+ | (uint32)((uint32)0U << 23U)\
+ | (uint32)((uint32)0U << 22U)\
+ | (uint32)((uint32)0U << 21U)\
+ | (uint32)((uint32)0U << 20U)\
+ | (uint32)((uint32)0U << 19U)\
+ | (uint32)((uint32)0U << 18U)\
+ | (uint32)((uint32)0U << 17U)\
+ | (uint32)((uint32)0U << 16U)\
+ | (uint32)((uint32)0U << 15U)\
+ | (uint32)((uint32)0U << 14U)\
+ | (uint32)((uint32)0U << 13U)\
+ | (uint32)((uint32)0U << 12U)\
+ | (uint32)((uint32)0U << 11U)\
+ | (uint32)((uint32)1U << 10U)\
+ | (uint32)((uint32)1U << 9U)\
+ | (uint32)((uint32)1U << 8U)\
+ | (uint32)((uint32)0U << 7U)\
+ | (uint32)((uint32)0U << 6U)\
+ | (uint32)((uint32)0U << 5U)\
+ | (uint32)((uint32)0U << 4U)\
+ | (uint32)((uint32)0U << 3U)\
+ | (uint32)((uint32)0U << 2U)\
+ | (uint32)((uint32)0U << 1U)\
+ | (uint32)((uint32)0U << 0U))
+#define ESM_ILSR4_CONFIGVALUE ((uint32)((uint32)0U << 31U)\
+ | (uint32)((uint32)0U << 30U)\
+ | (uint32)((uint32)0U << 29U)\
+ | (uint32)((uint32)0U << 28U)\
+ | (uint32)((uint32)0U << 27U)\
+ | (uint32)((uint32)0U << 26U)\
+ | (uint32)((uint32)0U << 25U)\
+ | (uint32)((uint32)0U << 24U)\
+ | (uint32)((uint32)0U << 23U)\
+ | (uint32)((uint32)0U << 22U)\
+ | (uint32)((uint32)0U << 21U)\
+ | (uint32)((uint32)0U << 20U)\
+ | (uint32)((uint32)0U << 19U)\
+ | (uint32)((uint32)0U << 18U)\
+ | (uint32)((uint32)0U << 17U)\
+ | (uint32)((uint32)0U << 16U)\
+ | (uint32)((uint32)0U << 15U)\
+ | (uint32)((uint32)0U << 14U)\
+ | (uint32)((uint32)0U << 13U)\
+ | (uint32)((uint32)0U << 12U)\
+ | (uint32)((uint32)0U << 11U)\
+ | (uint32)((uint32)0U << 10U)\
+ | (uint32)((uint32)0U << 9U)\
+ | (uint32)((uint32)0U << 8U)\
+ | (uint32)((uint32)0U << 7U)\
+ | (uint32)((uint32)0U << 6U)\
+ | (uint32)((uint32)0U << 5U)\
+ | (uint32)((uint32)0U << 4U)\
+ | (uint32)((uint32)0U << 3U)\
+ | (uint32)((uint32)0U << 2U)\
+ | (uint32)((uint32)0U << 1U)\
+ | (uint32)((uint32)0U << 0U))
+
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/**
+ * @defgroup ESM ESM
+ * @brief Error Signaling Module.
+ *
+ * The ESM module aggregates device errors and provides internal and external error response based on error severity.
+ *
+ * Related Files
+ * - reg_esm.h
+ * - esm.h
+ * - esm.c
+ * @addtogroup ESM
+ * @{
+ */
+
+/* Esm Interface Functions */
+void esmInit(void);
+uint32 esmError(void);
+void esmEnableError(uint64 channels);
+void esmDisableError(uint64 channels);
+void esmTriggerErrorPinReset(void);
+void esmActivateNormalOperation(void);
+void esmEnableInterrupt(uint64 channels);
+void esmDisableInterrupt(uint64 channels);
+void esmSetInterruptLevel(uint64 channels, uint64 flags);
+void esmClearStatus(uint32 group, uint64 channels);
+void esmClearStatusBuffer(uint64 channels);
+void esmSetCounterPreloadValue(uint32 value);
+
+uint64 esmGetStatus(uint32 group, uint64 channels);
+uint64 esmGetStatusBuffer(uint64 channels);
+
+esmSelfTestFlag_t esmEnterSelfTest(void);
+esmSelfTestFlag_t esmSelfTestStatus(void);
+
+
+void esmGetConfigValue(esm_config_reg_t *config_reg, config_value_type_t type);
+/** @fn void esmGroup1Notification(uint32 channel)
+* @brief Interrupt callback
+* @param[in] channel - Group 1 channel
+*
+* This is a callback that is provided by the application and is called upon
+* an interrupt. The parameter passed to the callback is group 1 channel caused the interrupt.
+* @note Callback parameter channel is not a masked value. Do not use the macros esmCHANNELx for comparison.
+*/
+void esmGroup1Notification(uint32 channel);
+
+
+/** @fn void esmGroup2Notification(uint32 channel)
+* @brief Interrupt callback
+* @param[in] channel - Group 2 channel
+*
+* This is a callback that is provided by the application and is called upon
+* an interrupt. The parameter passed to the callback is group 2 channel caused the interrupt.
+* @note Callback parameter channel is not a masked value. Do not use the macros esmCHANNELx for comparison.
+*/
+void esmGroup2Notification(uint32 channel);
+
+/**@}*/
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif