1 /*
2  * Copyright (c) 2023 ENE Technology Inc.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ENE_KB1200_PMU_H
8 #define ENE_KB1200_PMU_H
9 
10 /**
11  *  Structure type to access Power Management Unit (PMU).
12  */
13 struct pmu_regs {
14 	volatile uint8_t PMUIDLE;      /*IDLE wakeup by Interrupt Register */
15 	volatile uint8_t Reserved0[3]; /*Reserved */
16 	volatile uint32_t PMUSTOP;     /*STOP Wakeup Source Register */
17 	volatile uint8_t PMUSTOPC;     /*STOP Control Register */
18 	volatile uint8_t Reserved1[3]; /*Reserved */
19 	volatile uint8_t PMUCTRL;      /*Control Register */
20 	volatile uint8_t Reserved2[3]; /*Reserved */
21 	volatile uint8_t PMUSTAF;      /*Status Flag */
22 	volatile uint8_t Reserved3[3]; /*Reserved */
23 };
24 
25 /* STOP Wakeup Source */
26 #define PMU_STOP_WU_GPTD   0x00000001
27 #define PMU_STOP_WU_VC0    0x00000002
28 #define PMU_STOP_WU_VC1    0x00000004
29 #define PMU_STOP_WU_IKB    0x00000010
30 #define PMU_STOP_WU_WDT    0x00000100
31 #define PMU_STOP_WU_HIBTMR 0x00000400
32 #define PMU_STOP_WU_eSPI   0x00010000
33 #define PMU_STOP_WU_SPIS   0x00010000
34 #define PMU_STOP_WU_I2CD32 0x00020000
35 #define PMU_STOP_WU_EDI32  0x00040000
36 #define PMU_STOP_WU_SWD    0x00080000
37 #define PMU_STOP_WU_ITIM   0x00100000
38 #define PMU_STOP_WU_I2CS0  0x01000000
39 #define PMU_STOP_WU_I2CS1  0x02000000
40 #define PMU_STOP_WU_I2CS2  0x04000000
41 #define PMU_STOP_WU_I2CS3  0x08000000
42 
43 #define PMU_IDLE_WU_ENABLE 0x00000001
44 
45 #endif /* ENE_KB1200_PMU_H */
46