summaryrefslogtreecommitdiffstats
path: root/bsps/arm/stm32f4/include/bsp/stm32f4xxxx_pwr.h
blob: 85af10738f492b8b5757d0060b5ff1d69d26b408 (plain) (blame)
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
/*
 * Copyright (c) 2013 Chris Nott.  All rights reserved.
 *
 *  Virtual Logic
 *  21-25 King St.
 *  Rockdale NSW 2216
 *  Australia
 *  <rtems@vl.com.au>
 *
 * The license and distribution terms for this file may be
 * found in the file LICENSE in this distribution or at
 * http://www.rtems.org/license/LICENSE.
 */

#ifndef LIBBSP_ARM_STM32F4_STM32F4XXXX_PWR_H
#define LIBBSP_ARM_STM32F4_STM32F4XXXX_PWR_H

#include <bsp/utility.h>

struct stm32f4_pwr_s {

  uint32_t cr;    // Control register
#define STM32F4_PWR_CR_VOS        BSP_BIT32(14) // Regulator scaling output selection
#define STM32F4_PWR_CR_FPDS       BSP_BIT32(9)  // Flash power-down in stop mode
#define STM32F4_PWR_CR_DBP        BSP_BIT32(8)  // Disable backup domain write protection
#define STM32F4_PWR_CR_PLS  BSP_FLD32(val, 5, 7)  // PVD level selection
#define STM32F4_PWR_CR_PLS_GET(reg) BSP_FLD32GET(reg, 5, 7)
#define STM32F4_PWR_CR_PLS_SET(reg, val)  BSP_FLD32SET(reg, val, 5, 7)
#define STM32F4_PWR_CR_PVDE       BSP_BIT32(4)  // Power voltage detector enable
#define STM32F4_PWR_CR_CSBF       BSP_BIT32(3)  // Clear standby flag
#define STM32F4_PWR_CR_CWUF       BSP_BIT32(2)  // Clear wakeup flag
#define STM32F4_PWR_CR_PDDS       BSP_BIT32(1)  // Power-down deepsleep
#define STM32F4_PWR_CR_LPDS       BSP_BIT32(0)  // Low-power deepsleep

  uint32_t csr;   // Control / status register
#define STM32F4_PWR_CSR_VOSRDY    BSP_BIT32(14) // Regulator voltage scaling output selection ready bit
#define STM32F4_PWR_CSR_BRE       BSP_BIT32(9)  // Backup domain regulator enable
#define STM32F4_PWR_CSR_EWUP      BSP_BIT32(8)  // Enable WKUP pin
#define STM32F4_PWR_CSR_BRR       BSP_BIT32(3)  // Backup regulator ready
#define STM32F4_PWR_CSR_PVDO      BSP_BIT32(2)  // PVD output
#define STM32F4_PWR_CSR_SBF       BSP_BIT32(1)  // Standby flag
#define STM32F4_PWR_CSR_WUF       BSP_BIT32(0)  // Wakeup flag

} __attribute__ ((packed));
typedef struct stm32f4_pwr_s stm32f4_pwr;

#endif /* LIBBSP_ARM_STM32F4_STM32F4XXXX_PWR_H */