blob: 1e0b791e32ff95c30ac4374f041b70294fce1dc4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
/** @file sys_pmm.h
* @brief PMM Driver Header File
* @date 29.May.2013
* @version 03.05.02
*
* This file contains:
* - Definitions
* - Types
* .
* which are relevant for the System driver.
*/
/* (c) Texas Instruments 2009-2013, All rights reserved. */
#ifndef __SYS_PMM_H__
#define __SYS_PMM_H__
#include "reg_pmm.h"
/* USER CODE BEGIN (0) */
/* USER CODE END */
/* Bit Masks */
#define PMM_LOGICPDPWRCTRL0_LOGICPDON0 (0xFU << 24U) /*PD2*/
#define PMM_LOGICPDPWRCTRL0_LOGICPDON1 (0xFU << 16U) /*PD3*/
#define PMM_LOGICPDPWRCTRL0_LOGICPDON2 (0xFU << 8U) /*PD4*/
#define PMM_LOGICPDPWRCTRL0_LOGICPDON3 (0xFU << 0U) /*PD5*/
#define PMM_MEMPDPWRCTRL0_MEMPDON0 (0xFU << 24U) /*RAM_PD1*/
#define PMM_MEMPDPWRCTRL0_MEMPDON1 (0xFU << 16U) /*RAM_PD2*/
#define PMM_MEMPDPWRCTRL0_MEMPDON2 (0xFU << 8U) /*RAM_PD3*/
#define PMM_LOGICPDPWRSTAT_DOMAINON (1U << 8U)
#define PMM_LOGICPDPWRSTAT_LOGICPDPWRSTAT (0x3U << 0U)
#define PMM_MEMPDPWRSTAT_DOMAINON (1U << 8U)
#define PMM_MEMPDPWRSTAT_MEMPDPWRSTAT (0x3U << 0U)
#define PMM_GLOBALCTRL1_AUTOCLKWAKEENA (1U << 0U)
/* Configuration registers initial value */
#define PMM_LOGICPDPWRCTRL0_CONFIGVALUE (((1U)?0x5U:0xAU) << 24U) \
| (((1U)?0x5U:0xAU) << 16U) \
| (((0U)?0x5U:0xAU) << 8U) \
| (((1U)?0x5U:0xAU) << 0U)
#define PMM_MEMPDPWRCTRL0_CONFIGVALUE (((1U)?0x5U:0xAU) << 24U) \
| (((1U)?0x5U:0xAU) << 16U) \
| (((1U)?0x5U:0xAU) << 8U)
#define PMM_PDCLKDISREG_CONFIGVALUE ((!1U) << 0U)\
| ((!1U) << 1U)\
| ((!0U) << 2U)\
| ((!1U) << 3U)
#define PMM_GLOBALCTRL1_CONFIGVALUE (0U << 8U) | (0U << 0U)
/** @enum pmmLogicPDTag
* @brief PMM Logic Power Domain
*
* Used to define PMM Logic Power Domain
*/
typedef enum pmmLogicPDTag
{
PMM_LOGICPD1 = 4U, /*-- NOT USED*/
PMM_LOGICPD2 = 0U,
PMM_LOGICPD3 = 1U,
PMM_LOGICPD4 = 2U,
PMM_LOGICPD5 = 3U
}pmm_LogicPD_t;
/** @enum pmmMemPDTag
* @brief PMM Memory-Only Power Domain
*
* Used to define PMM Memory-Only Power Domain
*/
typedef enum pmmMemPDTag
{
PMM_MEMPD1 = 0U,
PMM_MEMPD2 = 1U,
PMM_MEMPD3 = 2U
}pmm_MemPD_t;
/** @enum pmmModeTag
* @brief PSCON operating mode
*
* Used to define the operating mode of PSCON Compare Block
*/
typedef enum pmmModeTag
{
LockStep = 0x0U,
SelfTest = 0x6U,
ErrorForcing = 0x9U,
SelfTestErrorForcing = 0xFU
}pmm_Mode_t;
/*Pmm Configuration Registers*/
typedef struct pmm_config_reg
{
uint32 CONFIG_LOGICPDPWRCTRL0;
uint32 CONFIG_MEMPDPWRCTRL0;
uint32 CONFIG_PDCLKDISREG;
uint32 CONFIG_GLOBALCTRL1;
}pmm_config_reg_t;
/**
* @defgroup PMM PMM
* @brief Power Management Module
*
* The PMM provides memory-mapped registers that control the states of the supported power domains.
* The PMM includes interfaces to the Power Mode Controller (PMC) and the Power State Controller (PSCON).
* The PMC and PSCON control the power up/down sequence of each power domain.
*
* Related files:
* - reg_pmm.h
* - sys_pmm.h
* - sys_pmm.c
*
* @addtogroup PMM
* @{
*/
/* Pmm Interface Functions */
void pmmInit(void);
void pmmTurnONLogicPowerDomain(pmm_LogicPD_t logicPD);
void pmmTurnONMemPowerDomain(pmm_MemPD_t memPD);
void pmmTurnOFFLogicPowerDomain(pmm_LogicPD_t logicPD);
void pmmTurnOFFMemPowerDomain(pmm_MemPD_t memPD);
boolean pmmIsLogicPowerDomainActive(pmm_LogicPD_t logicPD);
boolean pmmIsMemPowerDomainActive(pmm_MemPD_t memPD);
void pmmGetConfigValue(pmm_config_reg_t *config_reg, config_value_type_t type);
void pmmSetMode(pmm_Mode_t mode);
boolean pmmPerformSelfTest(void);
/**@}*/
/* USER CODE BEGIN (1) */
/* USER CODE END */
#endif
|