1 /** @file esm.h
2 *   @brief Error Signaling Module Driver Header File
3 *   @date 29.May.2013
4 *   @version 03.05.02
5 *
6 *   This file contains:
7 *   - Definitions
8 *   - Types
9 *   .
10 *   which are relevant for the Esm driver.
11 */
12 
13 /* (c) Texas Instruments 2009-2013, All rights reserved. */
14 
15 #ifndef __ESM_H__
16 #define __ESM_H__
17 
18 #include "reg_esm.h"
19 
20 
21 
22 /* USER CODE BEGIN (0) */
23 /* USER CODE END */
24 
25 /* ESM General Definitions */
26 
27 /** @def esmGROUP1
28 *   @brief Alias name for ESM group 1
29 *
30 *   This is an alias name for the ESM group 1.
31 *
32 *   @note This value should be used for API argument @a group
33 */
34 #define esmGROUP1 0U
35 
36 /** @def esmGROUP2
37 *   @brief Alias name for ESM group 2
38 *
39 *   This is an alias name for the ESM group 2.
40 *
41 *   @note This value should be used for API argument @a group
42 */
43 #define esmGROUP2 1U
44 
45 /** @def esmGROUP3
46 *   @brief Alias name for ESM group 3
47 *
48 *   This is an alias name for the ESM group 3.
49 *
50 *   @note This value should be used for API argument @a group
51 */
52 #define esmGROUP3 2U
53 
54 /** @def esmCHANNEL0
55 *   @brief Alias name for ESM group x channel 0
56 *
57 *   This is an alias name for the ESM group x channel 0.
58 *
59 *   @note This value should be used for API argument @a channel
60 */
61 #define esmCHANNEL0 0x0000000000000001ULL
62 
63 /** @def esmCHANNEL1
64 *   @brief Alias name for ESM group x channel 1
65 *
66 *   This is an alias name for the ESM group x channel 1.
67 *
68 *   @note This value should be used for API argument @a channel
69 */
70 #define esmCHANNEL1 0x0000000000000002ULL
71 
72 /** @def esmCHANNEL2
73 *   @brief Alias name for ESM group x channel 2
74 *
75 *   This is an alias name for the ESM group x channel 2.
76 *
77 *   @note This value should be used for API argument @a channel
78 */
79 #define esmCHANNEL2 0x0000000000000004ULL
80 
81 /** @def esmCHANNEL3
82 *   @brief Alias name for ESM group x channel 3
83 *
84 *   This is an alias name for the ESM group x channel 3.
85 *
86 *   @note This value should be used for API argument @a channel
87 */
88 #define esmCHANNEL3 0x0000000000000008ULL
89 
90 /** @def esmCHANNEL4
91 *   @brief Alias name for ESM group x channel 4
92 *
93 *   This is an alias name for the ESM group x channel 4.
94 *
95 *   @note This value should be used for API argument @a channel
96 */
97 #define esmCHANNEL4 0x0000000000000010ULL
98 
99 /** @def esmCHANNEL5
100 *   @brief Alias name for ESM group x channel 5
101 *
102 *   This is an alias name for the ESM group x channel 5.
103 *
104 *   @note This value should be used for API argument @a channel
105 */
106 #define esmCHANNEL5 0x0000000000000020ULL
107 
108 /** @def esmCHANNEL6
109 *   @brief Alias name for ESM group x channel 6
110 *
111 *   This is an alias name for the ESM group x channel 6.
112 *
113 *   @note This value should be used for API argument @a channel
114 */
115 #define esmCHANNEL6 0x0000000000000040ULL
116 
117 /** @def esmCHANNEL7
118 *   @brief Alias name for ESM group x channel 7
119 *
120 *   This is an alias name for the ESM group x channel 7.
121 *
122 *   @note This value should be used for API argument @a channel
123 */
124 #define esmCHANNEL7 0x0000000000000080ULL
125 
126 /** @def esmCHANNEL8
127 *   @brief Alias name for ESM group x channel 8
128 *
129 *   This is an alias name for the ESM group x channel 8.
130 *
131 *   @note This value should be used for API argument @a channel
132 */
133 #define esmCHANNEL8 0x0000000000000100ULL
134 
135 /** @def esmCHANNEL9
136 *   @brief Alias name for ESM group x channel 9
137 *
138 *   This is an alias name for the ESM group x channel 9.
139 *
140 *   @note This value should be used for API argument @a channel
141 */
142 #define esmCHANNEL9 0x0000000000000200ULL
143 
144 /** @def esmCHANNEL10
145 *   @brief Alias name for ESM group x channel 10
146 *
147 *   This is an alias name for the ESM group x channel 10.
148 *
149 *   @note This value should be used for API argument @a channel
150 */
151 #define esmCHANNEL10 0x0000000000000400ULL
152 
153 /** @def esmCHANNEL11
154 *   @brief Alias name for ESM group x channel 11
155 *
156 *   This is an alias name for the ESM group x channel 11.
157 *
158 *   @note This value should be used for API argument @a channel
159 */
160 #define esmCHANNEL11 0x0000000000000800ULL
161 
162 /** @def esmCHANNEL12
163 *   @brief Alias name for ESM group x channel 12
164 *
165 *   This is an alias name for the ESM group x channel 12.
166 *
167 *   @note This value should be used for API argument @a channel
168 */
169 #define esmCHANNEL12 0x0000000000001000ULL
170 
171 /** @def esmCHANNEL13
172 *   @brief Alias name for ESM group x channel 13
173 *
174 *   This is an alias name for the ESM group x channel 13.
175 *
176 *   @note This value should be used for API argument @a channel
177 */
178 #define esmCHANNEL13 0x0000000000002000ULL
179 
180 /** @def esmCHANNEL14
181 *   @brief Alias name for ESM group x channel 14
182 *
183 *   This is an alias name for the ESM group x channel 14.
184 *
185 *   @note This value should be used for API argument @a channel
186 */
187 #define esmCHANNEL14 0x0000000000004000ULL
188 
189 /** @def esmCHANNEL15
190 *   @brief Alias name for ESM group x channel 15
191 *
192 *   This is an alias name for the ESM group x channel 15.
193 *
194 *   @note This value should be used for API argument @a channel
195 */
196 #define esmCHANNEL15 0x0000000000008000ULL
197 
198 /** @def esmCHANNEL16
199 *   @brief Alias name for ESM group x channel 16
200 *
201 *   This is an alias name for the ESM group x channel 16.
202 *
203 *   @note This value should be used for API argument @a channel
204 */
205 #define esmCHANNEL16 0x0000000000010000ULL
206 
207 /** @def esmCHANNEL17
208 *   @brief Alias name for ESM group x channel 17
209 *
210 *   This is an alias name for the ESM group x channel 17.
211 *
212 *   @note This value should be used for API argument @a channel
213 */
214 #define esmCHANNEL17 0x0000000000020000ULL
215 
216 /** @def esmCHANNEL18
217 *   @brief Alias name for ESM group x channel 18
218 *
219 *   This is an alias name for the ESM group x channel 18.
220 *
221 *   @note This value should be used for API argument @a channel
222 */
223 #define esmCHANNEL18 0x0000000000040000ULL
224 
225 /** @def esmCHANNEL19
226 *   @brief Alias name for ESM group x channel 19
227 *
228 *   This is an alias name for the ESM group x channel 19.
229 *
230 *   @note This value should be used for API argument @a channel
231 */
232 #define esmCHANNEL19 0x0000000000080000ULL
233 
234 /** @def esmCHANNEL20
235 *   @brief Alias name for ESM group x channel 20
236 *
237 *   This is an alias name for the ESM group x channel 20.
238 *
239 *   @note This value should be used for API argument @a channel
240 */
241 #define esmCHANNEL20 0x0000000000100000ULL
242 
243 /** @def esmCHANNEL21
244 *   @brief Alias name for ESM group x channel 21
245 *
246 *   This is an alias name for the ESM group x channel 21.
247 *
248 *   @note This value should be used for API argument @a channel
249 */
250 #define esmCHANNEL21 0x0000000000200000ULL
251 
252 /** @def esmCHANNEL22
253 *   @brief Alias name for ESM group x channel 22
254 *
255 *   This is an alias name for the ESM group x channel 22.
256 *
257 *   @note This value should be used for API argument @a channel
258 */
259 #define esmCHANNEL22 0x0000000000400000ULL
260 
261 /** @def esmCHANNEL23
262 *   @brief Alias name for ESM group x channel 23
263 *
264 *   This is an alias name for the ESM group x channel 23.
265 *
266 *   @note This value should be used for API argument @a channel
267 */
268 #define esmCHANNEL23 0x0000000000800000ULL
269 
270 /** @def esmCHANNEL24
271 *   @brief Alias name for ESM group x channel 24
272 *
273 *   This is an alias name for the ESM group x channel 24.
274 *
275 *   @note This value should be used for API argument @a channel
276 */
277 #define esmCHANNEL24 0x0000000001000000ULL
278 
279 /** @def esmCHANNEL25
280 *   @brief Alias name for ESM group x channel 25
281 *
282 *   This is an alias name for the ESM group x channel 25.
283 *
284 *   @note This value should be used for API argument @a channel
285 */
286 #define esmCHANNEL25 0x0000000002000000ULL
287 
288 /** @def esmCHANNEL26
289 *   @brief Alias name for ESM group x channel 26
290 *
291 *   This is an alias name for the ESM group x channel 26.
292 *
293 *   @note This value should be used for API argument @a channel
294 */
295 #define esmCHANNEL26 0x0000000004000000ULL
296 
297 /** @def esmCHANNEL27
298 *   @brief Alias name for ESM group x channel 27
299 *
300 *   This is an alias name for the ESM group x channel 27.
301 *
302 *   @note This value should be used for API argument @a channel
303 */
304 #define esmCHANNEL27 0x0000000008000000ULL
305 
306 /** @def esmCHANNEL28
307 *   @brief Alias name for ESM group x channel 28
308 *
309 *   This is an alias name for the ESM group x channel 28.
310 *
311 *   @note This value should be used for API argument @a channel
312 */
313 #define esmCHANNEL28 0x0000000010000000ULL
314 
315 /** @def esmCHANNEL29
316 *   @brief Alias name for ESM group x channel 29
317 *
318 *   This is an alias name for the ESM group x channel 29.
319 *
320 *   @note This value should be used for API argument @a channel
321 */
322 #define esmCHANNEL29 0x0000000020000000ULL
323 
324 /** @def esmCHANNEL30
325 *   @brief Alias name for ESM group x channel 30
326 *
327 *   This is an alias name for the ESM group x channel 30.
328 *
329 *   @note This value should be used for API argument @a channel
330 */
331 #define esmCHANNEL30 0x0000000040000000ULL
332 
333 /** @def esmCHANNEL31
334 *   @brief Alias name for ESM group x channel 31
335 *
336 *   This is an alias name for the ESM group x channel 31.
337 *
338 *   @note This value should be used for API argument @a channel
339 */
340 #define esmCHANNEL31 0x0000000080000000ULL
341 
342 /** @def esmCHANNEL32
343 *   @brief Alias name for ESM group x channel 32
344 *
345 *   This is an alias name for the ESM group x channel 32.
346 *
347 *   @note This value should be used for API argument @a channel
348 */
349 #define esmCHANNEL32 0x0000000100000000ULL
350 
351 /** @def esmCHANNEL33
352 *   @brief Alias name for ESM group x channel 33
353 *
354 *   This is an alias name for the ESM group x channel 33.
355 *
356 *   @note This value should be used for API argument @a channel
357 */
358 #define esmCHANNEL33 0x0000000200000000ULL
359 
360 /** @def esmCHANNEL34
361 *   @brief Alias name for ESM group x channel 34
362 *
363 *   This is an alias name for the ESM group x channel 34.
364 *
365 *   @note This value should be used for API argument @a channel
366 */
367 #define esmCHANNEL34 0x0000000400000000ULL
368 
369 /** @def esmCHANNEL35
370 *   @brief Alias name for ESM group x channel 35
371 *
372 *   This is an alias name for the ESM group x channel 35.
373 *
374 *   @note This value should be used for API argument @a channel
375 */
376 #define esmCHANNEL35 0x0000000800000000ULL
377 
378 /** @def esmCHANNEL36
379 *   @brief Alias name for ESM group x channel 36
380 *
381 *   This is an alias name for the ESM group x channel 36.
382 *
383 *   @note This value should be used for API argument @a channel
384 */
385 #define esmCHANNEL36 0x0000001000000000ULL
386 
387 /** @def esmCHANNEL37
388 *   @brief Alias name for ESM group x channel 37
389 *
390 *   This is an alias name for the ESM group x channel 37.
391 *
392 *   @note This value should be used for API argument @a channel
393 */
394 #define esmCHANNEL37 0x0000002000000000ULL
395 
396 /** @def esmCHANNEL38
397 *   @brief Alias name for ESM group x channel 38
398 *
399 *   This is an alias name for the ESM group x channel 38.
400 *
401 *   @note This value should be used for API argument @a channel
402 */
403 #define esmCHANNEL38 0x0000004000000000ULL
404 
405 /** @def esmCHANNEL39
406 *   @brief Alias name for ESM group x channel 39
407 *
408 *   This is an alias name for the ESM group x channel 39.
409 *
410 *   @note This value should be used for API argument @a channel
411 */
412 #define esmCHANNEL39 0x0000008000000000ULL
413 
414 /** @def esmCHANNEL40
415 *   @brief Alias name for ESM group x channel 40
416 *
417 *   This is an alias name for the ESM group x channel 40.
418 *
419 *   @note This value should be used for API argument @a channel
420 */
421 #define esmCHANNEL40 0x0000010000000000ULL
422 
423 /** @def esmCHANNEL41
424 *   @brief Alias name for ESM group x channel 41
425 *
426 *   This is an alias name for the ESM group x channel 41.
427 *
428 *   @note This value should be used for API argument @a channel
429 */
430 #define esmCHANNEL41 0x0000020000000000ULL
431 
432 /** @def esmCHANNEL42
433 *   @brief Alias name for ESM group x channel 42
434 *
435 *   This is an alias name for the ESM group x channel 42.
436 *
437 *   @note This value should be used for API argument @a channel
438 */
439 #define esmCHANNEL42 0x0000040000000000ULL
440 
441 /** @def esmCHANNEL43
442 *   @brief Alias name for ESM group x channel 43
443 *
444 *   This is an alias name for the ESM group x channel 43.
445 *
446 *   @note This value should be used for API argument @a channel
447 */
448 #define esmCHANNEL43 0x0000080000000000ULL
449 
450 /** @def esmCHANNEL44
451 *   @brief Alias name for ESM group x channel 44
452 *
453 *   This is an alias name for the ESM group x channel 44.
454 *
455 *   @note This value should be used for API argument @a channel
456 */
457 #define esmCHANNEL44 0x0000100000000000ULL
458 
459 /** @def esmCHANNEL45
460 *   @brief Alias name for ESM group x channel 45
461 *
462 *   This is an alias name for the ESM group x channel 45.
463 *
464 *   @note This value should be used for API argument @a channel
465 */
466 #define esmCHANNEL45 0x0000200000000000ULL
467 
468 /** @def esmCHANNEL46
469 *   @brief Alias name for ESM group x channel 46
470 *
471 *   This is an alias name for the ESM group x channel 46.
472 *
473 *   @note This value should be used for API argument @a channel
474 */
475 #define esmCHANNEL46 0x0000400000000000ULL
476 
477 /** @def esmCHANNEL47
478 *   @brief Alias name for ESM group x channel 47
479 *
480 *   This is an alias name for the ESM group x channel 47.
481 *
482 *   @note This value should be used for API argument @a channel
483 */
484 #define esmCHANNEL47 0x0000800000000000ULL
485 
486 /** @def esmCHANNEL48
487 *   @brief Alias name for ESM group x channel 48
488 *
489 *   This is an alias name for the ESM group x channel 48.
490 *
491 *   @note This value should be used for API argument @a channel
492 */
493 #define esmCHANNEL48 0x0001000000000000ULL
494 
495 /** @def esmCHANNEL49
496 *   @brief Alias name for ESM group x channel 49
497 *
498 *   This is an alias name for the ESM group x channel 49.
499 *
500 *   @note This value should be used for API argument @a channel
501 */
502 #define esmCHANNEL49 0x0002000000000000ULL
503 
504 /** @def esmCHANNEL50
505 *   @brief Alias name for ESM group x channel 50
506 *
507 *   This is an alias name for the ESM group x channel 50.
508 *
509 *   @note This value should be used for API argument @a channel
510 */
511 #define esmCHANNEL50 0x0004000000000000ULL
512 
513 /** @def esmCHANNEL51
514 *   @brief Alias name for ESM group x channel 51
515 *
516 *   This is an alias name for the ESM group x channel 51.
517 *
518 *   @note This value should be used for API argument @a channel
519 */
520 #define esmCHANNEL51 0x0008000000000000ULL
521 
522 /** @def esmCHANNEL52
523 *   @brief Alias name for ESM group x channel 52
524 *
525 *   This is an alias name for the ESM group x channel 52.
526 *
527 *   @note This value should be used for API argument @a channel
528 */
529 #define esmCHANNEL52 0x0010000000000000ULL
530 
531 /** @def esmCHANNEL53
532 *   @brief Alias name for ESM group x channel 53
533 *
534 *   This is an alias name for the ESM group x channel 53.
535 *
536 *   @note This value should be used for API argument @a channel
537 */
538 #define esmCHANNEL53 0x0020000000000000ULL
539 
540 /** @def esmCHANNEL54
541 *   @brief Alias name for ESM group x channel 54
542 *
543 *   This is an alias name for the ESM group x channel 54.
544 *
545 *   @note This value should be used for API argument @a channel
546 */
547 #define esmCHANNEL54 0x0040000000000000ULL
548 
549 /** @def esmCHANNEL55
550 *   @brief Alias name for ESM group x channel 55
551 *
552 *   This is an alias name for the ESM group x channel 55.
553 *
554 *   @note This value should be used for API argument @a channel
555 */
556 #define esmCHANNEL55 0x0080000000000000ULL
557 
558 /** @def esmCHANNEL56
559 *   @brief Alias name for ESM group x channel 56
560 *
561 *   This is an alias name for the ESM group x channel 56.
562 *
563 *   @note This value should be used for API argument @a channel
564 */
565 #define esmCHANNEL56 0x0100000000000000ULL
566 
567 /** @def esmCHANNEL57
568 *   @brief Alias name for ESM group x channel 57
569 *
570 *   This is an alias name for the ESM group x channel 57.
571 *
572 *   @note This value should be used for API argument @a channel
573 */
574 #define esmCHANNEL57 0x0200000000000000ULL
575 
576 /** @def esmCHANNEL58
577 *   @brief Alias name for ESM group x channel 58
578 *
579 *   This is an alias name for the ESM group x channel 58.
580 *
581 *   @note This value should be used for API argument @a channel
582 */
583 #define esmCHANNEL58 0x0400000000000000ULL
584 
585 /** @def esmCHANNEL59
586 *   @brief Alias name for ESM group x channel 59
587 *
588 *   This is an alias name for the ESM group x channel 59.
589 *
590 *   @note This value should be used for API argument @a channel
591 */
592 #define esmCHANNEL59 0x0800000000000000ULL
593 
594 /** @def esmCHANNEL60
595 *   @brief Alias name for ESM group x channel 60
596 *
597 *   This is an alias name for the ESM group x channel 60.
598 *
599 *   @note This value should be used for API argument @a channel
600 */
601 #define esmCHANNEL60 0x1000000000000000ULL
602 
603 /** @def esmCHANNEL61
604 *   @brief Alias name for ESM group x channel 61
605 *
606 *   This is an alias name for the ESM group x channel 61.
607 *
608 *   @note This value should be used for API argument @a channel
609 */
610 #define esmCHANNEL61 0x2000000000000000ULL
611 
612 /** @def esmCHANNEL62
613 *   @brief Alias name for ESM group x channel 62
614 *
615 *   This is an alias name for the ESM group x channel 62.
616 *
617 *   @note This value should be used for API argument @a channel
618 */
619 #define esmCHANNEL62 0x4000000000000000ULL
620 
621 /** @def esmCHANNEL63
622 *   @brief Alias name for ESM group x channel 63
623 *
624 *   This is an alias name for the ESM group x channel 63.
625 *
626 *   @note This value should be used for API argument @a channel
627 */
628 #define esmCHANNEL63 0x8000000000000000ULL
629 
630 /** @typedef esmSelfTestFlag_t
631 *   @brief ESM Self-Test Status Type Definition
632 *
633 *   This type is used to represent ESM Self-Test Status.
634 */
635 typedef enum esmSelfTestFlag
636 {
637     esmSelfTest_Passed = 0U,
638 	esmSelfTest_Active = 1U,
639 	esmSelfTest_NotStarted = 2U,
640     esmSelfTest_Failed = 3U
641 }esmSelfTestFlag_t;
642 
643 /* Configuration registers */
644 typedef struct esm_config_reg
645 {
646     uint32 CONFIG_EPENASET1;
647     uint32 CONFIG_INTENASET1;
648     uint32 CONFIG_INTLVLSET1;
649     uint32 CONFIG_LTCPRELOAD;
650 	uint32 CONFIG_KEY;
651     uint32 CONFIG_EPENASET4;
652     uint32 CONFIG_INTENASET4;
653     uint32 CONFIG_INTLVLSET4;
654 } esm_config_reg_t;
655 
656 /* Configuration registers initial value */
657 #define ESM_EPENASET1_CONFIGVALUE	(0U << 31U)\
658                       | (0U << 30U)\
659                       | (0U << 29U)\
660                       | (0U << 28U)\
661                       | (0U << 27U)\
662                       | (0U << 26U)\
663                       | (0U << 25U)\
664                       | (0U << 24U)\
665                       | (0U << 23U)\
666                       | (0U << 22U)\
667                       | (0U << 21U)\
668                       | (0U << 20U)\
669                       | (0U << 19U)\
670                       | (0U << 18U)\
671                       | (0U << 17U)\
672                       | (0U << 16U)\
673                       | (0U << 15U)\
674                       | (0U << 14U)\
675                       | (0U << 13U)\
676                       | (0U << 12U)\
677                       | (0U << 11U)\
678                       | (0U << 10U)\
679                       | (0U <<  9U)\
680                       | (0U <<  8U)\
681                       | (0U <<  7U)\
682                       | (0U <<  6U)\
683                       | (0U <<  5U)\
684                       | (0U <<  4U)\
685                       | (0U <<  3U)\
686                       | (0U <<  2U)\
687                       | (0U <<  1U)\
688                       | (0U)
689 #define ESM_INTENASET1_CONFIGVALUE	(0U << 31U)\
690                        | (0U << 30U)\
691                        | (0U << 29U)\
692                        | (0U << 28U)\
693                        | (0U << 27U)\
694                        | (0U << 26U)\
695                        | (0U << 25U)\
696                        | (0U << 24U)\
697                        | (0U << 23U)\
698                        | (0U << 22U)\
699                        | (0U << 21U)\
700                        | (0U << 20U)\
701                        | (0U << 19U)\
702                        | (0U << 18U)\
703                        | (0U << 17U)\
704                        | (0U << 16U)\
705                        | (0U << 15U)\
706                        | (0U << 14U)\
707                        | (0U << 13U)\
708                        | (0U << 12U)\
709                        | (0U << 11U)\
710                        | (0U << 10U)\
711                        | (0U <<  9U)\
712                        | (0U <<  8U)\
713                        | (0U <<  7U)\
714                        | (0U <<  6U)\
715                        | (0U <<  5U)\
716                        | (0U <<  4U)\
717                        | (0U <<  3U)\
718                        | (0U <<  2U)\
719                        | (0U <<  1U)\
720                        | (0U)
721 #define ESM_INTLVLSET1_CONFIGVALUE (0U << 31U)\
722                        | (0U << 30U)\
723                        | (0U << 29U)\
724                        | (0U << 28U)\
725                        | (0U << 27U)\
726                        | (0U << 26U)\
727                        | (0U << 25U)\
728                        | (0U << 24U)\
729                        | (0U << 23U)\
730                        | (0U << 22U)\
731                        | (0U << 21U)\
732                        | (0U << 20U)\
733                        | (0U << 19U)\
734                        | (0U << 18U)\
735                        | (0U << 17U)\
736                        | (0U << 16U)\
737                        | (0U << 15U)\
738                        | (0U << 14U)\
739                        | (0U << 13U)\
740                        | (0U << 12U)\
741                        | (0U << 11U)\
742                        | (0U << 10U)\
743                        | (0U <<  9U)\
744                        | (0U <<  8U)\
745                        | (0U <<  7U)\
746                        | (0U <<  6U)\
747                        | (0U <<  5U)\
748                        | (0U <<  4U)\
749                        | (0U <<  3U)\
750                        | (0U <<  2U)\
751                        | (0U <<  1U)\
752                        | (0U)
753 #define ESM_LTCPRELOAD_CONFIGVALUE	16384U - 1U
754 #define ESM_KEY_CONFIGVALUE 		0U
755 #define ESM_EPENASET4_CONFIGVALUE (0U << 31U)\
756                       | (0U << 30U)\
757                       | (0U << 29U)\
758                       | (0U << 28U)\
759                       | (0U << 27U)\
760                       | (0U << 26U)\
761                       | (0U << 25U)\
762                       | (0U << 24U)\
763                       | (0U << 23U)\
764                       | (0U << 22U)\
765                       | (0U << 21U)\
766                       | (0U << 20U)\
767                       | (0U << 19U)\
768                       | (0U << 18U)\
769                       | (0U << 17U)\
770                       | (0U << 16U)\
771                       | (0U << 15U)\
772                       | (0U << 14U)\
773                       | (0U << 13U)\
774                       | (0U << 12U)\
775                       | (0U << 11U)\
776                       | (0U << 10U)\
777                       | (0U <<  9U)\
778                       | (0U <<  8U)\
779                       | (0U <<  7U)\
780                       | (0U <<  6U)\
781                       | (0U <<  5U)\
782                       | (0U <<  4U)\
783                       | (0U <<  3U)\
784                       | (0U <<  2U)\
785                       | (0U <<  1U)\
786                       | (0U)
787 #define ESM_INTENASET4_CONFIGVALUE (0U << 31U)\
788                        | (0U << 30U)\
789                        | (0U << 29U)\
790                        | (0U << 28U)\
791                        | (0U << 27U)\
792                        | (0U << 26U)\
793                        | (0U << 25U)\
794                        | (0U << 24U)\
795                        | (0U << 23U)\
796                        | (0U << 22U)\
797                        | (0U << 21U)\
798                        | (0U << 20U)\
799                        | (0U << 19U)\
800                        | (0U << 18U)\
801                        | (0U << 17U)\
802                        | (0U << 16U)\
803                        | (0U << 15U)\
804                        | (0U << 14U)\
805                        | (0U << 13U)\
806                        | (0U << 12U)\
807                        | (0U << 11U)\
808                        | (0U << 10U)\
809                        | (0U <<  9U)\
810                        | (0U <<  8U)\
811                        | (0U <<  7U)\
812                        | (0U <<  6U)\
813                        | (0U <<  5U)\
814                        | (0U <<  4U)\
815                        | (0U <<  3U)\
816                        | (0U <<  2U)\
817                        | (0U <<  1U)\
818                        | (0U)
819 #define ESM_INTLVLSET4_CONFIGVALUE (0U << 31U)\
820                        | (0U << 30U)\
821                        | (0U << 29U)\
822                        | (0U << 28U)\
823                        | (0U << 27U)\
824                        | (0U << 26U)\
825                        | (0U << 25U)\
826                        | (0U << 24U)\
827                        | (0U << 23U)\
828                        | (0U << 22U)\
829                        | (0U << 21U)\
830                        | (0U << 20U)\
831                        | (0U << 19U)\
832                        | (0U << 18U)\
833                        | (0U << 17U)\
834                        | (0U << 16U)\
835                        | (0U << 15U)\
836                        | (0U << 14U)\
837                        | (0U << 13U)\
838                        | (0U << 12U)\
839                        | (0U << 11U)\
840                        | (0U << 10U)\
841                        | (0U <<  9U)\
842                        | (0U <<  8U)\
843                        | (0U <<  7U)\
844                        | (0U <<  6U)\
845                        | (0U <<  5U)\
846                        | (0U <<  4U)\
847                        | (0U <<  3U)\
848                        | (0U <<  2U)\
849                        | (0U <<  1U)\
850                        | (0U)
851 
852 
853 /* USER CODE BEGIN (1) */
854 /* USER CODE END */
855 
856 /**
857  *  @defgroup ESM ESM
858  *  @brief Error Signaling Module.
859  *
860  *  The ESM module aggregates device errors and provides internal and external error response based on error severity.
861  *
862  *	Related Files
863  *   - reg_esm.h
864  *   - esm.h
865  *   - esm.c
866  *  @addtogroup ESM
867  *  @{
868  */
869 
870 /* Esm Interface Functions */
871 void     esmInit(void);
872 uint32 esmError(void);
873 void     esmEnableError(uint64 channels);
874 void     esmDisableError(uint64 channels);
875 void     esmTriggerErrorPinReset(void);
876 void     esmActivateNormalOperation(void);
877 void     esmEnableInterrupt(uint64 channels);
878 void     esmDisableInterrupt(uint64 channels);
879 void     esmSetInterruptLevel(uint64 channels, uint64 flags);
880 void     esmClearStatus(uint32 group, uint64 channels);
881 void     esmClearStatusBuffer(uint64 channels);
882 void     esmSetCounterPreloadValue(uint32 value);
883 
884 uint64 esmGetStatus(uint32 group, uint64 channels);
885 uint64 esmGetStatusBuffer(uint64 channels);
886 
887 esmSelfTestFlag_t esmEnterSelfTest(void);
888 esmSelfTestFlag_t esmSelfTestStatus(void);
889 
890 boolean esmSelfTest(void);
891 
892 void esmGetConfigValue(esm_config_reg_t *config_reg, config_value_type_t type);
893 /** @fn void esmGroup1Notification(uint32 channel)
894 *   @brief Interrupt callback
895 *   @param[in] channel - Group 1 channel
896 *
897 * This is a callback that is provided by the application and is called upon
898 * an interrupt. The parameter passed to the callback is group 1 channel caused the interrupt.
899 */
900 void esmGroup1Notification(uint32 channel);
901 
902 
903 /** @fn void esmGroup2Notification(uint32 channel)
904 *   @brief Interrupt callback
905 *   @param[in] channel - Group 2 channel
906 *
907 * This is a callback that is provided by the application and is called upon
908 * an interrupt. The parameter passed to the callback is group 2 channel caused the interrupt.
909 */
910 void esmGroup2Notification(uint32 channel);
911 
912 /**@}*/
913 /* USER CODE BEGIN (2) */
914 /* USER CODE END */
915 
916 
917 #endif
918