mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
394:83f921546702
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

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

Initial version of drivers for SAMR21

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****/