Mbed for VNG board

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Fri Nov 07 15:45:07 2014 +0000
Revision:
394:83f921546702
Parent:
targets/cmsis/TARGET_STM/TARGET_NUCLEO_L152RE/stm32l1xx_hal_rcc_ex.h@354:e67efb2aab0e
Synchronized with git revision aab52cb7ec5a665869e507dd988bbfd55b7e087e

Full URL: https://github.com/mbedmicro/mbed/commit/aab52cb7ec5a665869e507dd988bbfd55b7e087e/

Tests: Fix cpputest testrunner

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 354:e67efb2aab0e 1 /**
mbed_official 354:e67efb2aab0e 2 ******************************************************************************
mbed_official 354:e67efb2aab0e 3 * @file stm32l1xx_hal_rcc_ex.h
mbed_official 354:e67efb2aab0e 4 * @author MCD Application Team
mbed_official 354:e67efb2aab0e 5 * @version V1.0.0
mbed_official 354:e67efb2aab0e 6 * @date 5-September-2014
mbed_official 354:e67efb2aab0e 7 * @brief Header file of RCC HAL Extension module.
mbed_official 354:e67efb2aab0e 8 ******************************************************************************
mbed_official 354:e67efb2aab0e 9 * @attention
mbed_official 354:e67efb2aab0e 10 *
mbed_official 354:e67efb2aab0e 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 354:e67efb2aab0e 12 *
mbed_official 354:e67efb2aab0e 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 354:e67efb2aab0e 14 * are permitted provided that the following conditions are met:
mbed_official 354:e67efb2aab0e 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 354:e67efb2aab0e 16 * this list of conditions and the following disclaimer.
mbed_official 354:e67efb2aab0e 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 354:e67efb2aab0e 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 354:e67efb2aab0e 19 * and/or other materials provided with the distribution.
mbed_official 354:e67efb2aab0e 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 354:e67efb2aab0e 21 * may be used to endorse or promote products derived from this software
mbed_official 354:e67efb2aab0e 22 * without specific prior written permission.
mbed_official 354:e67efb2aab0e 23 *
mbed_official 354:e67efb2aab0e 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 354:e67efb2aab0e 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 354:e67efb2aab0e 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 354:e67efb2aab0e 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 354:e67efb2aab0e 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 354:e67efb2aab0e 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 354:e67efb2aab0e 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 354:e67efb2aab0e 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 354:e67efb2aab0e 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 354:e67efb2aab0e 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 354:e67efb2aab0e 34 *
mbed_official 354:e67efb2aab0e 35 ******************************************************************************
mbed_official 354:e67efb2aab0e 36 */
mbed_official 354:e67efb2aab0e 37
mbed_official 354:e67efb2aab0e 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 354:e67efb2aab0e 39 #ifndef __STM32L1xx_HAL_RCC_EX_H
mbed_official 354:e67efb2aab0e 40 #define __STM32L1xx_HAL_RCC_EX_H
mbed_official 354:e67efb2aab0e 41
mbed_official 354:e67efb2aab0e 42 #ifdef __cplusplus
mbed_official 354:e67efb2aab0e 43 extern "C" {
mbed_official 354:e67efb2aab0e 44 #endif
mbed_official 354:e67efb2aab0e 45
mbed_official 354:e67efb2aab0e 46 /* Includes ------------------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 47 #include "stm32l1xx_hal_def.h"
mbed_official 354:e67efb2aab0e 48
mbed_official 354:e67efb2aab0e 49 /** @addtogroup STM32L1xx_HAL_Driver
mbed_official 354:e67efb2aab0e 50 * @{
mbed_official 354:e67efb2aab0e 51 */
mbed_official 354:e67efb2aab0e 52
mbed_official 354:e67efb2aab0e 53 /** @addtogroup RCCEx
mbed_official 354:e67efb2aab0e 54 * @{
mbed_official 354:e67efb2aab0e 55 */
mbed_official 354:e67efb2aab0e 56
mbed_official 354:e67efb2aab0e 57 /* Exported types ------------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 58
mbed_official 354:e67efb2aab0e 59 /** @defgroup RCCEx_Exported_Types RCCEx Exported Types
mbed_official 354:e67efb2aab0e 60 * @{
mbed_official 354:e67efb2aab0e 61 */
mbed_official 354:e67efb2aab0e 62
mbed_official 354:e67efb2aab0e 63 /**
mbed_official 354:e67efb2aab0e 64 * @brief RCC extended clocks structure definition
mbed_official 354:e67efb2aab0e 65 */
mbed_official 354:e67efb2aab0e 66 typedef struct
mbed_official 354:e67efb2aab0e 67 {
mbed_official 354:e67efb2aab0e 68 uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured.
mbed_official 354:e67efb2aab0e 69 This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */
mbed_official 354:e67efb2aab0e 70
mbed_official 354:e67efb2aab0e 71 uint32_t RTCClockSelection; /*!< specifies the RTC clock source.
mbed_official 354:e67efb2aab0e 72 This parameter can be a value of @ref RCC_RTC_LCD_Clock_Source */
mbed_official 354:e67efb2aab0e 73
mbed_official 354:e67efb2aab0e 74 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
mbed_official 354:e67efb2aab0e 75 defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC) || \
mbed_official 354:e67efb2aab0e 76 defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD) || \
mbed_official 354:e67efb2aab0e 77 defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || \
mbed_official 354:e67efb2aab0e 78 defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 79
mbed_official 354:e67efb2aab0e 80 uint32_t LCDClockSelection; /*!< specifies the LCD clock source.
mbed_official 354:e67efb2aab0e 81 This parameter can be a value of @ref RCC_RTC_LCD_Clock_Source */
mbed_official 354:e67efb2aab0e 82
mbed_official 354:e67efb2aab0e 83 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 84 } RCC_PeriphCLKInitTypeDef;
mbed_official 354:e67efb2aab0e 85
mbed_official 354:e67efb2aab0e 86 /**
mbed_official 354:e67efb2aab0e 87 * @}
mbed_official 354:e67efb2aab0e 88 */
mbed_official 354:e67efb2aab0e 89
mbed_official 354:e67efb2aab0e 90 /* Exported constants --------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 91
mbed_official 354:e67efb2aab0e 92 /** @defgroup RCCEx_Exported_Constants RCCEx Exported Constants
mbed_official 354:e67efb2aab0e 93 * @{
mbed_official 354:e67efb2aab0e 94 */
mbed_official 354:e67efb2aab0e 95
mbed_official 354:e67efb2aab0e 96 /** @defgroup RCCEx_Periph_Clock_Selection RCCEx Periph Clock Selection
mbed_official 354:e67efb2aab0e 97 * @{
mbed_official 354:e67efb2aab0e 98 */
mbed_official 354:e67efb2aab0e 99 #define RCC_PERIPHCLK_RTC ((uint32_t)0x00000001)
mbed_official 354:e67efb2aab0e 100
mbed_official 354:e67efb2aab0e 101 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
mbed_official 354:e67efb2aab0e 102 defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC) || \
mbed_official 354:e67efb2aab0e 103 defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD) || \
mbed_official 354:e67efb2aab0e 104 defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || \
mbed_official 354:e67efb2aab0e 105 defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 106
mbed_official 354:e67efb2aab0e 107 #define RCC_PERIPHCLK_LCD ((uint32_t)0x00000002)
mbed_official 354:e67efb2aab0e 108
mbed_official 354:e67efb2aab0e 109 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 110
mbed_official 354:e67efb2aab0e 111 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
mbed_official 354:e67efb2aab0e 112 defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC) || \
mbed_official 354:e67efb2aab0e 113 defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD) || \
mbed_official 354:e67efb2aab0e 114 defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || \
mbed_official 354:e67efb2aab0e 115 defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 116
mbed_official 354:e67efb2aab0e 117 #define IS_RCC_PERIPHCLOCK(__CLK__) ((RCC_PERIPHCLK_RTC <= (__CLK__)) && ((__CLK__) <= RCC_PERIPHCLK_LCD))
mbed_official 354:e67efb2aab0e 118
mbed_official 354:e67efb2aab0e 119 #else /* Not LCD LINE */
mbed_official 354:e67efb2aab0e 120
mbed_official 354:e67efb2aab0e 121 #define IS_RCC_PERIPHCLOCK(__CLK__) ((__CLK__) == RCC_PERIPHCLK_RTC)
mbed_official 354:e67efb2aab0e 122
mbed_official 354:e67efb2aab0e 123 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 124 /**
mbed_official 354:e67efb2aab0e 125 * @}
mbed_official 354:e67efb2aab0e 126 */
mbed_official 354:e67efb2aab0e 127
mbed_official 354:e67efb2aab0e 128 #if defined(STM32L100xBA) || defined (STM32L151xBA) || defined (STM32L152xBA) || \
mbed_official 354:e67efb2aab0e 129 defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 130 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 131 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 132
mbed_official 354:e67efb2aab0e 133 /* Alias word address of LSECSSON bit */
mbed_official 354:e67efb2aab0e 134 #define LSECSSON_BITNUMBER POSITION_VAL(RCC_CSR_LSECSSON)
mbed_official 354:e67efb2aab0e 135 #define CSR_LSECSSON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32) + (LSECSSON_BITNUMBER * 4)))
mbed_official 354:e67efb2aab0e 136
mbed_official 354:e67efb2aab0e 137 #endif /* STM32L100xBA || STM32L151xBA || STM32L152xBA || STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE*/
mbed_official 354:e67efb2aab0e 138
mbed_official 354:e67efb2aab0e 139 /**
mbed_official 354:e67efb2aab0e 140 * @}
mbed_official 354:e67efb2aab0e 141 */
mbed_official 354:e67efb2aab0e 142
mbed_official 354:e67efb2aab0e 143 /* Exported macro ------------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 144 /** @defgroup RCCEx_Exported_Macros RCCEx Exported Macros
mbed_official 354:e67efb2aab0e 145 * @{
mbed_official 354:e67efb2aab0e 146 */
mbed_official 354:e67efb2aab0e 147
mbed_official 354:e67efb2aab0e 148 /** @defgroup RCCEx_Peripheral_Clock_Enable_Disable RCCEx_Peripheral_Clock_Enable_Disable
mbed_official 354:e67efb2aab0e 149 * @brief Enables or disables the AHB1 peripheral clock.
mbed_official 354:e67efb2aab0e 150 * @note After reset, the peripheral clock (used for registers read/write access)
mbed_official 354:e67efb2aab0e 151 * is disabled and the application software has to enable this clock before
mbed_official 354:e67efb2aab0e 152 * using it.
mbed_official 354:e67efb2aab0e 153 * @{
mbed_official 354:e67efb2aab0e 154 */
mbed_official 354:e67efb2aab0e 155 #if defined (STM32L151xB) || defined (STM32L152xB) || \
mbed_official 354:e67efb2aab0e 156 defined (STM32L151xBA) || defined (STM32L152xBA) || \
mbed_official 354:e67efb2aab0e 157 defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 158 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 159 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 160
mbed_official 354:e67efb2aab0e 161 #define __GPIOE_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_GPIOEEN))
mbed_official 354:e67efb2aab0e 162 #define __GPIOE_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOEEN))
mbed_official 354:e67efb2aab0e 163
mbed_official 354:e67efb2aab0e 164 #endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 165
mbed_official 354:e67efb2aab0e 166 #if defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 167 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 168
mbed_official 354:e67efb2aab0e 169 #define __GPIOF_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_GPIOFEN))
mbed_official 354:e67efb2aab0e 170 #define __GPIOG_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_GPIOGEN))
mbed_official 354:e67efb2aab0e 171
mbed_official 354:e67efb2aab0e 172 #define __GPIOF_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOFEN))
mbed_official 354:e67efb2aab0e 173 #define __GPIOG_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOGEN))
mbed_official 354:e67efb2aab0e 174
mbed_official 354:e67efb2aab0e 175 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 176
mbed_official 354:e67efb2aab0e 177 #if defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 178 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 179 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 180
mbed_official 354:e67efb2aab0e 181 #define __DMA2_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_DMA2EN))
mbed_official 354:e67efb2aab0e 182 #define __DMA2_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_DMA2EN))
mbed_official 354:e67efb2aab0e 183
mbed_official 354:e67efb2aab0e 184 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 185
mbed_official 354:e67efb2aab0e 186 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 187
mbed_official 354:e67efb2aab0e 188 #define __CRYP_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_AESEN))
mbed_official 354:e67efb2aab0e 189 #define __CRYP_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_AESEN))
mbed_official 354:e67efb2aab0e 190
mbed_official 354:e67efb2aab0e 191 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE */
mbed_official 354:e67efb2aab0e 192
mbed_official 354:e67efb2aab0e 193 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
mbed_official 354:e67efb2aab0e 194
mbed_official 354:e67efb2aab0e 195 #define __FSMC_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_FSMCEN))
mbed_official 354:e67efb2aab0e 196 #define __FSMC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_FSMCEN))
mbed_official 354:e67efb2aab0e 197
mbed_official 354:e67efb2aab0e 198 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
mbed_official 354:e67efb2aab0e 199
mbed_official 354:e67efb2aab0e 200 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
mbed_official 354:e67efb2aab0e 201 defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC) || \
mbed_official 354:e67efb2aab0e 202 defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD) || \
mbed_official 354:e67efb2aab0e 203 defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || \
mbed_official 354:e67efb2aab0e 204 defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 205
mbed_official 354:e67efb2aab0e 206 #define __LCD_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_LCDEN))
mbed_official 354:e67efb2aab0e 207 #define __LCD_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_LCDEN))
mbed_official 354:e67efb2aab0e 208
mbed_official 354:e67efb2aab0e 209 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 210
mbed_official 354:e67efb2aab0e 211 /** @brief Enables or disables the Low Speed APB (APB1) peripheral clock.
mbed_official 354:e67efb2aab0e 212 * @note After reset, the peripheral clock (used for registers read/write access)
mbed_official 354:e67efb2aab0e 213 * is disabled and the application software has to enable this clock before
mbed_official 354:e67efb2aab0e 214 * using it.
mbed_official 354:e67efb2aab0e 215 */
mbed_official 354:e67efb2aab0e 216 #if defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 217 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 218 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 219
mbed_official 354:e67efb2aab0e 220 #define __TIM5_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_TIM5EN))
mbed_official 354:e67efb2aab0e 221 #define __TIM5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM5EN))
mbed_official 354:e67efb2aab0e 222
mbed_official 354:e67efb2aab0e 223 #endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 224
mbed_official 354:e67efb2aab0e 225 #if defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 226 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 227 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 228
mbed_official 354:e67efb2aab0e 229 #define __SPI3_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_SPI3EN))
mbed_official 354:e67efb2aab0e 230 #define __SPI3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI3EN))
mbed_official 354:e67efb2aab0e 231
mbed_official 354:e67efb2aab0e 232 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 233
mbed_official 354:e67efb2aab0e 234 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 235 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 236
mbed_official 354:e67efb2aab0e 237 #define __UART4_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_UART4EN))
mbed_official 354:e67efb2aab0e 238 #define __UART5_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_UART5EN))
mbed_official 354:e67efb2aab0e 239
mbed_official 354:e67efb2aab0e 240 #define __UART4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_UART4EN))
mbed_official 354:e67efb2aab0e 241 #define __UART5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_UART5EN))
mbed_official 354:e67efb2aab0e 242
mbed_official 354:e67efb2aab0e 243 #endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 244
mbed_official 354:e67efb2aab0e 245 #if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE) || defined (STM32L162xC) || defined (STM32L152xC) || defined (STM32L151xC)
mbed_official 354:e67efb2aab0e 246
mbed_official 354:e67efb2aab0e 247 #define __OPAMP_CLK_ENABLE() __COMP_CLK_ENABLE() /* Peripherals COMP and OPAMP share the same clock domain */
mbed_official 354:e67efb2aab0e 248 #define __OPAMP_CLK_DISABLE() __COMP_CLK_DISABLE() /* Peripherals COMP and OPAMP share the same clock domain */
mbed_official 354:e67efb2aab0e 249
mbed_official 354:e67efb2aab0e 250 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */
mbed_official 354:e67efb2aab0e 251
mbed_official 354:e67efb2aab0e 252 /** @brief Enables or disables the High Speed APB (APB2) peripheral clock.
mbed_official 354:e67efb2aab0e 253 * @note After reset, the peripheral clock (used for registers read/write access)
mbed_official 354:e67efb2aab0e 254 * is disabled and the application software has to enable this clock before
mbed_official 354:e67efb2aab0e 255 * using it.
mbed_official 354:e67efb2aab0e 256 */
mbed_official 354:e67efb2aab0e 257 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
mbed_official 354:e67efb2aab0e 258
mbed_official 354:e67efb2aab0e 259 #define __SDIO_CLK_ENABLE() (RCC->APB2ENR |= (RCC_APB2ENR_SDIOEN))
mbed_official 354:e67efb2aab0e 260 #define __SDIO_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SDIOEN))
mbed_official 354:e67efb2aab0e 261
mbed_official 354:e67efb2aab0e 262 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
mbed_official 354:e67efb2aab0e 263
mbed_official 354:e67efb2aab0e 264 /**
mbed_official 354:e67efb2aab0e 265 * @}
mbed_official 354:e67efb2aab0e 266 */
mbed_official 354:e67efb2aab0e 267
mbed_official 354:e67efb2aab0e 268
mbed_official 354:e67efb2aab0e 269 /** @defgroup RCCEx_Force_Release_Peripheral_Reset RCCEx Force Release Peripheral Reset
mbed_official 354:e67efb2aab0e 270 * @brief Forces or releases AHB peripheral reset.
mbed_official 354:e67efb2aab0e 271 * @{
mbed_official 354:e67efb2aab0e 272 */
mbed_official 354:e67efb2aab0e 273 #if defined (STM32L151xB) || defined (STM32L152xB) || \
mbed_official 354:e67efb2aab0e 274 defined (STM32L151xBA) || defined (STM32L152xBA) || \
mbed_official 354:e67efb2aab0e 275 defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 276 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 277 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 278
mbed_official 354:e67efb2aab0e 279 #define __GPIOE_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOERST))
mbed_official 354:e67efb2aab0e 280 #define __GPIOE_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOERST))
mbed_official 354:e67efb2aab0e 281
mbed_official 354:e67efb2aab0e 282 #endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 283
mbed_official 354:e67efb2aab0e 284 #if defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 285 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 286
mbed_official 354:e67efb2aab0e 287 #define __GPIOF_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOFRST))
mbed_official 354:e67efb2aab0e 288 #define __GPIOG_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOGRST))
mbed_official 354:e67efb2aab0e 289
mbed_official 354:e67efb2aab0e 290 #define __GPIOF_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOFRST))
mbed_official 354:e67efb2aab0e 291 #define __GPIOG_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOGRST))
mbed_official 354:e67efb2aab0e 292
mbed_official 354:e67efb2aab0e 293 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 294
mbed_official 354:e67efb2aab0e 295 #if defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 296 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 297 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 298
mbed_official 354:e67efb2aab0e 299 #define __DMA2_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_DMA2RST))
mbed_official 354:e67efb2aab0e 300 #define __DMA2_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_DMA2RST))
mbed_official 354:e67efb2aab0e 301
mbed_official 354:e67efb2aab0e 302 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 303
mbed_official 354:e67efb2aab0e 304 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 305
mbed_official 354:e67efb2aab0e 306 #define __CRYP_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_AESRST))
mbed_official 354:e67efb2aab0e 307 #define __CRYP_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_AESRST))
mbed_official 354:e67efb2aab0e 308
mbed_official 354:e67efb2aab0e 309 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE */
mbed_official 354:e67efb2aab0e 310
mbed_official 354:e67efb2aab0e 311 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
mbed_official 354:e67efb2aab0e 312
mbed_official 354:e67efb2aab0e 313 #define __FSMC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_FSMCRST))
mbed_official 354:e67efb2aab0e 314 #define __FSMC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_FSMCRST))
mbed_official 354:e67efb2aab0e 315
mbed_official 354:e67efb2aab0e 316 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
mbed_official 354:e67efb2aab0e 317
mbed_official 354:e67efb2aab0e 318 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
mbed_official 354:e67efb2aab0e 319 defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC) || \
mbed_official 354:e67efb2aab0e 320 defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD) || \
mbed_official 354:e67efb2aab0e 321 defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || \
mbed_official 354:e67efb2aab0e 322 defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 323
mbed_official 354:e67efb2aab0e 324 #define __LCD_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_LCDRST))
mbed_official 354:e67efb2aab0e 325 #define __LCD_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_LCDRST))
mbed_official 354:e67efb2aab0e 326
mbed_official 354:e67efb2aab0e 327 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 328
mbed_official 354:e67efb2aab0e 329 /** @brief Forces or releases APB1 peripheral reset.
mbed_official 354:e67efb2aab0e 330 */
mbed_official 354:e67efb2aab0e 331 #if defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 332 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 333 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 334
mbed_official 354:e67efb2aab0e 335 #define __TIM5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM5RST))
mbed_official 354:e67efb2aab0e 336 #define __TIM5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM5RST))
mbed_official 354:e67efb2aab0e 337
mbed_official 354:e67efb2aab0e 338 #endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 339
mbed_official 354:e67efb2aab0e 340 #if defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 341 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 342 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 343
mbed_official 354:e67efb2aab0e 344 #define __SPI3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI3RST))
mbed_official 354:e67efb2aab0e 345 #define __SPI3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI3RST))
mbed_official 354:e67efb2aab0e 346
mbed_official 354:e67efb2aab0e 347 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 348
mbed_official 354:e67efb2aab0e 349 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 350 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 351
mbed_official 354:e67efb2aab0e 352 #define __UART4_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_UART4RST))
mbed_official 354:e67efb2aab0e 353 #define __UART5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_UART5RST))
mbed_official 354:e67efb2aab0e 354
mbed_official 354:e67efb2aab0e 355 #define __UART4_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_UART4RST))
mbed_official 354:e67efb2aab0e 356 #define __UART5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_UART5RST))
mbed_official 354:e67efb2aab0e 357
mbed_official 354:e67efb2aab0e 358 #endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 359
mbed_official 354:e67efb2aab0e 360 #if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE) || defined (STM32L162xC) || defined (STM32L152xC) || defined (STM32L151xC)
mbed_official 354:e67efb2aab0e 361
mbed_official 354:e67efb2aab0e 362 #define __OPAMP_FORCE_RESET() __COMP_FORCE_RESET() /* Peripherals COMP and OPAMP share the same clock domain */
mbed_official 354:e67efb2aab0e 363 #define __OPAMP_RELEASE_RESET() __COMP_RELEASE_RESET() /* Peripherals COMP and OPAMP share the same clock domain */
mbed_official 354:e67efb2aab0e 364
mbed_official 354:e67efb2aab0e 365 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */
mbed_official 354:e67efb2aab0e 366
mbed_official 354:e67efb2aab0e 367 /** @brief Forces or releases APB2 peripheral reset.
mbed_official 354:e67efb2aab0e 368 */
mbed_official 354:e67efb2aab0e 369 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
mbed_official 354:e67efb2aab0e 370
mbed_official 354:e67efb2aab0e 371 #define __SDIO_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SDIORST))
mbed_official 354:e67efb2aab0e 372 #define __SDIO_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SDIORST))
mbed_official 354:e67efb2aab0e 373
mbed_official 354:e67efb2aab0e 374 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
mbed_official 354:e67efb2aab0e 375
mbed_official 354:e67efb2aab0e 376 /**
mbed_official 354:e67efb2aab0e 377 * @}
mbed_official 354:e67efb2aab0e 378 */
mbed_official 354:e67efb2aab0e 379
mbed_official 354:e67efb2aab0e 380 /** @defgroup RCCEx_Peripheral_Clock_Sleep_Enable_Disable RCCEx Peripheral Clock Sleep Enable Disable
mbed_official 354:e67efb2aab0e 381 * @brief Enables or disables the AHB1 peripheral clock during Low Power (Sleep) mode.
mbed_official 354:e67efb2aab0e 382 * @note Peripheral clock gating in SLEEP mode can be used to further reduce
mbed_official 354:e67efb2aab0e 383 * power consumption.
mbed_official 354:e67efb2aab0e 384 * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
mbed_official 354:e67efb2aab0e 385 * @note By default, all peripheral clocks are enabled during SLEEP mode.
mbed_official 354:e67efb2aab0e 386 * @{
mbed_official 354:e67efb2aab0e 387 */
mbed_official 354:e67efb2aab0e 388 #if defined (STM32L151xB) || defined (STM32L152xB) || \
mbed_official 354:e67efb2aab0e 389 defined (STM32L151xBA) || defined (STM32L152xBA) || \
mbed_official 354:e67efb2aab0e 390 defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 391 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 392 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 393
mbed_official 354:e67efb2aab0e 394 #define __GPIOE_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOELPEN))
mbed_official 354:e67efb2aab0e 395 #define __GPIOE_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOELPEN))
mbed_official 354:e67efb2aab0e 396
mbed_official 354:e67efb2aab0e 397 #endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 398
mbed_official 354:e67efb2aab0e 399 #if defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 400 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 401
mbed_official 354:e67efb2aab0e 402 #define __GPIOF_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOFLPEN))
mbed_official 354:e67efb2aab0e 403 #define __GPIOG_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOGLPEN))
mbed_official 354:e67efb2aab0e 404
mbed_official 354:e67efb2aab0e 405 #define __GPIOF_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOFLPEN))
mbed_official 354:e67efb2aab0e 406 #define __GPIOG_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOGLPEN))
mbed_official 354:e67efb2aab0e 407
mbed_official 354:e67efb2aab0e 408 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 409
mbed_official 354:e67efb2aab0e 410 #if defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 411 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 412 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 413
mbed_official 354:e67efb2aab0e 414 #define __DMA2_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_DMA2LPEN))
mbed_official 354:e67efb2aab0e 415 #define __DMA2_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_DMA2LPEN))
mbed_official 354:e67efb2aab0e 416
mbed_official 354:e67efb2aab0e 417 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 418
mbed_official 354:e67efb2aab0e 419 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 420
mbed_official 354:e67efb2aab0e 421 #define __CRYP_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_AESLPEN))
mbed_official 354:e67efb2aab0e 422 #define __CRYP_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_AESLPEN))
mbed_official 354:e67efb2aab0e 423
mbed_official 354:e67efb2aab0e 424 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE */
mbed_official 354:e67efb2aab0e 425
mbed_official 354:e67efb2aab0e 426 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
mbed_official 354:e67efb2aab0e 427
mbed_official 354:e67efb2aab0e 428 #define __FSMC_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_FSMCLPEN))
mbed_official 354:e67efb2aab0e 429 #define __FSMC_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_FSMCLPEN))
mbed_official 354:e67efb2aab0e 430
mbed_official 354:e67efb2aab0e 431 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
mbed_official 354:e67efb2aab0e 432
mbed_official 354:e67efb2aab0e 433 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
mbed_official 354:e67efb2aab0e 434 defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC) || \
mbed_official 354:e67efb2aab0e 435 defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD) || \
mbed_official 354:e67efb2aab0e 436 defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || \
mbed_official 354:e67efb2aab0e 437 defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 438
mbed_official 354:e67efb2aab0e 439 #define __LCD_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_LCDLPEN))
mbed_official 354:e67efb2aab0e 440 #define __LCD_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_LCDLPEN))
mbed_official 354:e67efb2aab0e 441
mbed_official 354:e67efb2aab0e 442 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 443
mbed_official 354:e67efb2aab0e 444 /** @brief Enables or disables the APB1 peripheral clock during Low Power (Sleep) mode.
mbed_official 354:e67efb2aab0e 445 * @note Peripheral clock gating in SLEEP mode can be used to further reduce
mbed_official 354:e67efb2aab0e 446 * power consumption.
mbed_official 354:e67efb2aab0e 447 * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
mbed_official 354:e67efb2aab0e 448 * @note By default, all peripheral clocks are enabled during SLEEP mode.
mbed_official 354:e67efb2aab0e 449 */
mbed_official 354:e67efb2aab0e 450 #if defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 451 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 452 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 453
mbed_official 354:e67efb2aab0e 454 #define __TIM5_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_TIM5LPEN))
mbed_official 354:e67efb2aab0e 455 #define __TIM5_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_TIM5LPEN))
mbed_official 354:e67efb2aab0e 456
mbed_official 354:e67efb2aab0e 457 #endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 458
mbed_official 354:e67efb2aab0e 459 #if defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 460 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 461 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 462
mbed_official 354:e67efb2aab0e 463 #define __SPI3_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_SPI3LPEN))
mbed_official 354:e67efb2aab0e 464 #define __SPI3_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_SPI3LPEN))
mbed_official 354:e67efb2aab0e 465
mbed_official 354:e67efb2aab0e 466 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 467
mbed_official 354:e67efb2aab0e 468 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 469 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 470
mbed_official 354:e67efb2aab0e 471 #define __UART4_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_UART4LPEN))
mbed_official 354:e67efb2aab0e 472 #define __UART5_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_UART5LPEN))
mbed_official 354:e67efb2aab0e 473
mbed_official 354:e67efb2aab0e 474 #define __UART4_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_UART4LPEN))
mbed_official 354:e67efb2aab0e 475 #define __UART5_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_UART5LPEN))
mbed_official 354:e67efb2aab0e 476
mbed_official 354:e67efb2aab0e 477 #endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 478
mbed_official 354:e67efb2aab0e 479 /** @brief Enables or disables the APB2 peripheral clock during Low Power (Sleep) mode.
mbed_official 354:e67efb2aab0e 480 * @note Peripheral clock gating in SLEEP mode can be used to further reduce
mbed_official 354:e67efb2aab0e 481 * power consumption.
mbed_official 354:e67efb2aab0e 482 * @note After wakeup from SLEEP mode, the peripheral clock is enabled again.
mbed_official 354:e67efb2aab0e 483 * @note By default, all peripheral clocks are enabled during SLEEP mode.
mbed_official 354:e67efb2aab0e 484 */
mbed_official 354:e67efb2aab0e 485 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
mbed_official 354:e67efb2aab0e 486
mbed_official 354:e67efb2aab0e 487 #define __SDIO_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_SDIOLPEN))
mbed_official 354:e67efb2aab0e 488 #define __SDIO_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_SDIOLPEN))
mbed_official 354:e67efb2aab0e 489
mbed_official 354:e67efb2aab0e 490 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
mbed_official 354:e67efb2aab0e 491
mbed_official 354:e67efb2aab0e 492 /**
mbed_official 354:e67efb2aab0e 493 * @}
mbed_official 354:e67efb2aab0e 494 */
mbed_official 354:e67efb2aab0e 495
mbed_official 354:e67efb2aab0e 496 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
mbed_official 354:e67efb2aab0e 497 defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC) || \
mbed_official 354:e67efb2aab0e 498 defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD) || \
mbed_official 354:e67efb2aab0e 499 defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || \
mbed_official 354:e67efb2aab0e 500 defined(STM32L162xE)
mbed_official 354:e67efb2aab0e 501
mbed_official 354:e67efb2aab0e 502
mbed_official 354:e67efb2aab0e 503 /** @brief Macro to configures LCD clock (LCDCLK).
mbed_official 354:e67efb2aab0e 504 * @note LCD and RTC use the same configuration
mbed_official 354:e67efb2aab0e 505 * @note LCD can however be used in the Stop low power mode if the LSE or LSI is used as the
mbed_official 354:e67efb2aab0e 506 * LCD clock source.
mbed_official 354:e67efb2aab0e 507 *
mbed_official 354:e67efb2aab0e 508 * @param __LCD_CLKSOURCE__: specifies the LCD clock source.
mbed_official 354:e67efb2aab0e 509 * This parameter can be one of the following values:
mbed_official 354:e67efb2aab0e 510 * @arg RCC_RTCCLKSOURCE_LSE: LSE selected as RTC clock
mbed_official 354:e67efb2aab0e 511 * @arg RCC_RTCCLKSOURCE_LSI: LSI selected as RTC clock
mbed_official 354:e67efb2aab0e 512 * @arg RCC_RTCCLKSOURCE_HSE_DIV2: HSE divided by 2 selected as RTC clock
mbed_official 354:e67efb2aab0e 513 * @arg RCC_RTCCLKSOURCE_HSE_DIV4: HSE divided by 4 selected as RTC clock
mbed_official 354:e67efb2aab0e 514 * @arg RCC_RTCCLKSOURCE_HSE_DIV8: HSE divided by 8 selected as RTC clock
mbed_official 354:e67efb2aab0e 515 * @arg RCC_RTCCLKSOURCE_HSE_DIV16: HSE divided by 16 selected as RTC clock
mbed_official 354:e67efb2aab0e 516 */
mbed_official 354:e67efb2aab0e 517 #define __HAL_RCC_LCD_CONFIG(__LCD_CLKSOURCE__) __HAL_RCC_RTC_CONFIG(__LCD_CLKSOURCE__)
mbed_official 354:e67efb2aab0e 518
mbed_official 354:e67efb2aab0e 519 /** @brief macros to get the LCD clock source.
mbed_official 354:e67efb2aab0e 520 */
mbed_official 354:e67efb2aab0e 521 #define __HAL_RCC_GET_LCD_SOURCE() __HAL_RCC_GET_RTC_SOURCE()
mbed_official 354:e67efb2aab0e 522
mbed_official 354:e67efb2aab0e 523 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L162xE */
mbed_official 354:e67efb2aab0e 524
mbed_official 354:e67efb2aab0e 525 /**
mbed_official 354:e67efb2aab0e 526 * @}
mbed_official 354:e67efb2aab0e 527 */
mbed_official 354:e67efb2aab0e 528
mbed_official 354:e67efb2aab0e 529 /* Exported functions --------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 530 /** @addtogroup RCCEx_Private_Functions
mbed_official 354:e67efb2aab0e 531 * @{
mbed_official 354:e67efb2aab0e 532 */
mbed_official 354:e67efb2aab0e 533
mbed_official 354:e67efb2aab0e 534 /** @addtogroup RCCEx_Exported_Functions_Group1
mbed_official 354:e67efb2aab0e 535 * @{
mbed_official 354:e67efb2aab0e 536 */
mbed_official 354:e67efb2aab0e 537
mbed_official 354:e67efb2aab0e 538 HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit);
mbed_official 354:e67efb2aab0e 539 void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit);
mbed_official 354:e67efb2aab0e 540
mbed_official 354:e67efb2aab0e 541 #if defined(STM32L100xBA) || defined (STM32L151xBA) || defined (STM32L152xBA) || \
mbed_official 354:e67efb2aab0e 542 defined(STM32L100xC) || defined (STM32L151xC) || defined (STM32L152xC) || defined (STM32L162xC) || \
mbed_official 354:e67efb2aab0e 543 defined(STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || \
mbed_official 354:e67efb2aab0e 544 defined(STM32L151xE) || defined (STM32L152xE) || defined (STM32L162xE)
mbed_official 354:e67efb2aab0e 545
mbed_official 354:e67efb2aab0e 546 void HAL_RCCEx_EnableLSECSS(void);
mbed_official 354:e67efb2aab0e 547 void HAL_RCCEx_DisableLSECSS(void);
mbed_official 354:e67efb2aab0e 548
mbed_official 354:e67efb2aab0e 549 #endif /* STM32L100xBA || STM32L151xBA || STM32L152xBA || STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L152xE || STM32L162xE*/
mbed_official 354:e67efb2aab0e 550
mbed_official 354:e67efb2aab0e 551 /**
mbed_official 354:e67efb2aab0e 552 * @}
mbed_official 354:e67efb2aab0e 553 */
mbed_official 354:e67efb2aab0e 554
mbed_official 354:e67efb2aab0e 555 /**
mbed_official 354:e67efb2aab0e 556 * @}
mbed_official 354:e67efb2aab0e 557 */
mbed_official 354:e67efb2aab0e 558
mbed_official 354:e67efb2aab0e 559 /**
mbed_official 354:e67efb2aab0e 560 * @}
mbed_official 354:e67efb2aab0e 561 */
mbed_official 354:e67efb2aab0e 562
mbed_official 354:e67efb2aab0e 563 /**
mbed_official 354:e67efb2aab0e 564 * @}
mbed_official 354:e67efb2aab0e 565 */
mbed_official 354:e67efb2aab0e 566
mbed_official 354:e67efb2aab0e 567 #ifdef __cplusplus
mbed_official 354:e67efb2aab0e 568 }
mbed_official 354:e67efb2aab0e 569 #endif
mbed_official 354:e67efb2aab0e 570
mbed_official 354:e67efb2aab0e 571 #endif /* __STM32L1xx_HAL_RCC_EX_H */
mbed_official 354:e67efb2aab0e 572
mbed_official 354:e67efb2aab0e 573 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/