]> git.sur5r.net Git - freertos/blob
ec9fd3bceaa7353d037290b9772cb7285004ae2b
[freertos] /
1 /*\r
2  * @brief Power Management Controller registers and control functions\r
3  *\r
4  * @note\r
5  * Copyright(C) NXP Semiconductors, 2012\r
6  * All rights reserved.\r
7  *\r
8  * @par\r
9  * Software that is described herein is for illustrative purposes only\r
10  * which provides customers with programming information regarding the\r
11  * LPC products.  This software is supplied "AS IS" without any warranties of\r
12  * any kind, and NXP Semiconductors and its licensor disclaim any and\r
13  * all warranties, express or implied, including all implied warranties of\r
14  * merchantability, fitness for a particular purpose and non-infringement of\r
15  * intellectual property rights.  NXP Semiconductors assumes no responsibility\r
16  * or liability for the use of the software, conveys no license or rights under any\r
17  * patent, copyright, mask work right, or any other intellectual property rights in\r
18  * or to any products. NXP Semiconductors reserves the right to make changes\r
19  * in the software without notification. NXP Semiconductors also makes no\r
20  * representation or warranty that such application will be suitable for the\r
21  * specified use without further testing or modification.\r
22  *\r
23  * @par\r
24  * Permission to use, copy, modify, and distribute this software and its\r
25  * documentation is hereby granted, under NXP Semiconductors' and its\r
26  * licensor's relevant copyrights in the software, without fee, provided that it\r
27  * is used in conjunction with NXP Semiconductors microcontrollers.  This\r
28  * copyright, permission, and disclaimer notice must appear in all copies of\r
29  * this code.\r
30  */\r
31 \r
32 #ifndef __PMC_001_H_\r
33 #define __PMC_001_H_\r
34 \r
35 #include "sys_config.h"\r
36 #include "cmsis.h"\r
37 \r
38 #ifdef __cplusplus\r
39 extern "C" {\r
40 #endif\r
41 \r
42 /** @defgroup IP_PMC_001 IP: PMC register block and driver\r
43  * @ingroup IP_Drivers\r
44  * @{\r
45  */\r
46 \r
47 /**\r
48  * @brief Power Management Controller register block structure\r
49  */\r
50 typedef struct {                                                /*!< PMC Structure          */\r
51         __IO uint32_t  PD0_SLEEP0_HW_ENA;       /*!< Hardware sleep event enable register */\r
52         __I  uint32_t  RESERVED0[6];\r
53         __IO uint32_t  PD0_SLEEP0_MODE;         /*!< Sleep power mode register */\r
54 } IP_PMC_001_T;\r
55 \r
56 /**\r
57  * @brief Power Management Controller power modes\r
58  */\r
59 #define PMC_PWR_DEEP_SLEEP_MODE         0x3F00AA\r
60 #define PMC_PWR_POWER_DOWN_MODE         0x3FFCBA\r
61 #define PMC_PWR_DEEP_POWER_DOWN_MODE    0x3FFF7F\r
62 \r
63 /**\r
64  * @brief       Set power mode in PMC block\r
65  * @param       pPMC    : Pointer to PMC register block\r
66  * @param       PwrMode : Power mode value (PMC_PWR_DEEP_SLEEP_MODE/PMC_PWR_POWER_DOWN_MODE/PMC_PWR_DEEP_POWER_DOWN_MODE)\r
67  * @return      Nothing\r
68  */\r
69 STATIC INLINE void IP_PMC_SetPowerMode(IP_PMC_001_T *pPMC, uint32_t PwrMode)\r
70 {\r
71         pPMC->PD0_SLEEP0_MODE = PwrMode;\r
72 }\r
73 \r
74 /**\r
75  * @}\r
76  */\r
77 \r
78 #ifdef __cplusplus\r
79 }\r
80 #endif\r
81 \r
82 #endif /* __PMC_001_H_ */\r