added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
144:ef7eb2e8f9f7
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**
<> 144:ef7eb2e8f9f7 2 ******************************************************************************
<> 144:ef7eb2e8f9f7 3 * @file stm32f7xx_hal_mdios.c
<> 144:ef7eb2e8f9f7 4 * @author MCD Application Team
<> 144:ef7eb2e8f9f7 5 * @version V1.1.0
<> 144:ef7eb2e8f9f7 6 * @date 22-April-2016
<> 144:ef7eb2e8f9f7 7 * @brief MDIOS HAL module driver.
<> 144:ef7eb2e8f9f7 8 *
<> 144:ef7eb2e8f9f7 9 * This file provides firmware functions to manage the following
<> 144:ef7eb2e8f9f7 10 * functionalities of the MDIOS Peripheral.
<> 144:ef7eb2e8f9f7 11 * + Initialization and de-initialization functions
<> 144:ef7eb2e8f9f7 12 * + IO operation functions
<> 144:ef7eb2e8f9f7 13 * + Peripheral Control functions
<> 144:ef7eb2e8f9f7 14 *
<> 144:ef7eb2e8f9f7 15 *
<> 144:ef7eb2e8f9f7 16 @verbatim
<> 144:ef7eb2e8f9f7 17 ===============================================================================
<> 144:ef7eb2e8f9f7 18 ##### How to use this driver #####
<> 144:ef7eb2e8f9f7 19 ===============================================================================
<> 144:ef7eb2e8f9f7 20 [..]
<> 144:ef7eb2e8f9f7 21 The MDIOS HAL driver can be used as follow:
<> 144:ef7eb2e8f9f7 22
<> 144:ef7eb2e8f9f7 23 (#) Declare a MDIOS_HandleTypeDef handle structure.
<> 144:ef7eb2e8f9f7 24
<> 144:ef7eb2e8f9f7 25 (#) Initialize the MDIOS low level resources by implementing the HAL_MDIOS_MspInit() API:
<> 144:ef7eb2e8f9f7 26 (##) Enable the MDIOS interface clock.
<> 144:ef7eb2e8f9f7 27 (##) MDIOS pins configuration:
<> 144:ef7eb2e8f9f7 28 (+++) Enable clocks for the MDIOS GPIOs.
<> 144:ef7eb2e8f9f7 29 (+++) Configure the MDIOS pins as alternate function.
<> 144:ef7eb2e8f9f7 30 (##) NVIC configuration if you need to use interrupt process:
<> 144:ef7eb2e8f9f7 31 (+++) Configure the MDIOS interrupt priority.
<> 144:ef7eb2e8f9f7 32 (+++) Enable the NVIC MDIOS IRQ handle.
<> 144:ef7eb2e8f9f7 33
<> 144:ef7eb2e8f9f7 34 (#) Program the Port Address and the Preamble Check in the Init structure.
<> 144:ef7eb2e8f9f7 35
<> 144:ef7eb2e8f9f7 36 (#) Initialize the MDIOS registers by calling the HAL_MDIOS_Init() API.
<> 144:ef7eb2e8f9f7 37
<> 144:ef7eb2e8f9f7 38 (#) Perform direct slave read/write operations using the following APIs:
<> 144:ef7eb2e8f9f7 39 (##) Read the value of a DINn register: HAL_MDIOS_ReadReg()
<> 144:ef7eb2e8f9f7 40 (##) Write a value to a DOUTn register: HAL_MDIOS_WriteReg()
<> 144:ef7eb2e8f9f7 41
<> 144:ef7eb2e8f9f7 42 (#) Get the Master read/write operations flags using the following APIs:
<> 144:ef7eb2e8f9f7 43 (##) Bit map of DOUTn registers read by Master: HAL_MDIOS_GetReadRegAddress()
<> 144:ef7eb2e8f9f7 44 (##) Bit map of DINn registers written by Master : HAL_MDIOS_GetWrittenRegAddress()
<> 144:ef7eb2e8f9f7 45
<> 144:ef7eb2e8f9f7 46 (#) Clear the read/write flags using the following APIs:
<> 144:ef7eb2e8f9f7 47 (##) Clear read flags of a set of registers: HAL_MDIOS_ClearReadRegAddress()
<> 144:ef7eb2e8f9f7 48 (##) Clear write flags of a set of registers: HAL_MDIOS_ClearWriteRegAddress()
<> 144:ef7eb2e8f9f7 49
<> 144:ef7eb2e8f9f7 50 (#) Enable interrupts on events using HAL_MDIOS_EnableEvents(), when called
<> 144:ef7eb2e8f9f7 51 the MDIOS will generate an interrupt in the following cases:
<> 144:ef7eb2e8f9f7 52 (##) a DINn register written by the Master
<> 144:ef7eb2e8f9f7 53 (##) a DOUTn register read by the Master
<> 144:ef7eb2e8f9f7 54 (##) an error occur
<> 144:ef7eb2e8f9f7 55
<> 144:ef7eb2e8f9f7 56 (@) A callback is executed for each genereted interrupt, so the driver provide the following
<> 144:ef7eb2e8f9f7 57 HAL_MDIOS_WriteCpltCallback(), HAL_MDIOS_ReadCpltCallback() and HAL_MDIOS_ErrorCallback()
<> 144:ef7eb2e8f9f7 58 (@) HAL_MDIOS_IRQHandler() must be called from the MDIOS IRQ Handler, to handle the interrupt
<> 144:ef7eb2e8f9f7 59 and execute the previous callbacks
<> 144:ef7eb2e8f9f7 60
<> 144:ef7eb2e8f9f7 61 (#) Reset the MDIOS peripheral and all related ressources by calling the HAL_MDIOS_DeInit() API.
<> 144:ef7eb2e8f9f7 62 (##) HAL_MDIOS_MspDeInit() must be implemented to reset low level ressources
<> 144:ef7eb2e8f9f7 63 (GPIO, Clocks, NVIC configuration ...)
<> 144:ef7eb2e8f9f7 64
<> 144:ef7eb2e8f9f7 65
<> 144:ef7eb2e8f9f7 66 @endverbatim
<> 144:ef7eb2e8f9f7 67 ******************************************************************************
<> 144:ef7eb2e8f9f7 68 * @attention
<> 144:ef7eb2e8f9f7 69 *
<> 144:ef7eb2e8f9f7 70 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
<> 144:ef7eb2e8f9f7 71 *
<> 144:ef7eb2e8f9f7 72 * Redistribution and use in source and binary forms, with or without modification,
<> 144:ef7eb2e8f9f7 73 * are permitted provided that the following conditions are met:
<> 144:ef7eb2e8f9f7 74 * 1. Redistributions of source code must retain the above copyright notice,
<> 144:ef7eb2e8f9f7 75 * this list of conditions and the following disclaimer.
<> 144:ef7eb2e8f9f7 76 * 2. Redistributions in binary form must reproduce the above copyright notice,
<> 144:ef7eb2e8f9f7 77 * this list of conditions and the following disclaimer in the documentation
<> 144:ef7eb2e8f9f7 78 * and/or other materials provided with the distribution.
<> 144:ef7eb2e8f9f7 79 * 3. Neither the name of STMicroelectronics nor the names of its contributors
<> 144:ef7eb2e8f9f7 80 * may be used to endorse or promote products derived from this software
<> 144:ef7eb2e8f9f7 81 * without specific prior written permission.
<> 144:ef7eb2e8f9f7 82 *
<> 144:ef7eb2e8f9f7 83 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 144:ef7eb2e8f9f7 84 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 144:ef7eb2e8f9f7 85 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 144:ef7eb2e8f9f7 86 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
<> 144:ef7eb2e8f9f7 87 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
<> 144:ef7eb2e8f9f7 88 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
<> 144:ef7eb2e8f9f7 89 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
<> 144:ef7eb2e8f9f7 90 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
<> 144:ef7eb2e8f9f7 91 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
<> 144:ef7eb2e8f9f7 92 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 144:ef7eb2e8f9f7 93 *
<> 144:ef7eb2e8f9f7 94 ******************************************************************************
<> 144:ef7eb2e8f9f7 95 */
<> 144:ef7eb2e8f9f7 96
<> 144:ef7eb2e8f9f7 97 /* Includes ------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 98 #include "stm32f7xx_hal.h"
<> 144:ef7eb2e8f9f7 99
<> 144:ef7eb2e8f9f7 100 /** @addtogroup STM32F7xx_HAL_Driver
<> 144:ef7eb2e8f9f7 101 * @{
<> 144:ef7eb2e8f9f7 102 */
<> 144:ef7eb2e8f9f7 103
<> 144:ef7eb2e8f9f7 104 /** @defgroup MDIOS MDIOS
<> 144:ef7eb2e8f9f7 105 * @brief HAL MDIOS module driver
<> 144:ef7eb2e8f9f7 106 * @{
<> 144:ef7eb2e8f9f7 107 */
<> 144:ef7eb2e8f9f7 108 #ifdef HAL_MDIOS_MODULE_ENABLED
<> 144:ef7eb2e8f9f7 109
<> 144:ef7eb2e8f9f7 110 #if defined (MDIOS)
<> 144:ef7eb2e8f9f7 111
<> 144:ef7eb2e8f9f7 112 /* Private typedef -----------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 113 /* Private define ------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 114 #define MDIOS_PORT_ADDRESS_SHIFT ((uint32_t)8)
<> 144:ef7eb2e8f9f7 115 #define MDIOS_ALL_REG_FLAG ((uint32_t)0xFFFFFFFFU)
<> 144:ef7eb2e8f9f7 116 #define MDIOS_ALL_ERRORS_FLAG ((uint32_t)(MDIOS_SR_PERF | MDIOS_SR_SERF | MDIOS_SR_TERF))
<> 144:ef7eb2e8f9f7 117
<> 144:ef7eb2e8f9f7 118 #define MDIOS_DIN_BASE_ADDR (MDIOS_BASE + 0x100)
<> 144:ef7eb2e8f9f7 119 #define MDIOS_DOUT_BASE_ADDR (MDIOS_BASE + 0x180)
<> 144:ef7eb2e8f9f7 120
<> 144:ef7eb2e8f9f7 121 /* Private macro -------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 122 /* Private variables ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 123 /* Private function prototypes -----------------------------------------------*/
<> 144:ef7eb2e8f9f7 124 /* Private functions ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 125 /* Exported functions --------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 126 /** @defgroup MDIOS_Exported_Functions MDIOS Exported Functions
<> 144:ef7eb2e8f9f7 127 * @{
<> 144:ef7eb2e8f9f7 128 */
<> 144:ef7eb2e8f9f7 129
<> 144:ef7eb2e8f9f7 130 /** @defgroup MDIOS_Exported_Functions_Group1 Initialization/de-initialization functions
<> 144:ef7eb2e8f9f7 131 * @brief Initialization and Configuration functions
<> 144:ef7eb2e8f9f7 132 *
<> 144:ef7eb2e8f9f7 133 @verbatim
<> 144:ef7eb2e8f9f7 134 ===============================================================================
<> 144:ef7eb2e8f9f7 135 ##### Initialization and Configuration functions #####
<> 144:ef7eb2e8f9f7 136 ===============================================================================
<> 144:ef7eb2e8f9f7 137 [..]
<> 144:ef7eb2e8f9f7 138 This subsection provides a set of functions allowing to initialize the MDIOS
<> 144:ef7eb2e8f9f7 139 (+) The following parameters can be configured:
<> 144:ef7eb2e8f9f7 140 (++) Port Address
<> 144:ef7eb2e8f9f7 141 (++) Preamble Check
<> 144:ef7eb2e8f9f7 142
<> 144:ef7eb2e8f9f7 143 @endverbatim
<> 144:ef7eb2e8f9f7 144 * @{
<> 144:ef7eb2e8f9f7 145 */
<> 144:ef7eb2e8f9f7 146
<> 144:ef7eb2e8f9f7 147 /**
<> 144:ef7eb2e8f9f7 148 * @brief Initializes the MDIOS according to the specified parameters in
<> 144:ef7eb2e8f9f7 149 * the MDIOS_InitTypeDef and creates the associated handle .
<> 144:ef7eb2e8f9f7 150 * @param hmdios: pointer to a MDIOS_HandleTypeDef structure that contains
<> 144:ef7eb2e8f9f7 151 * the configuration information for MDIOS module
<> 144:ef7eb2e8f9f7 152 * @retval HAL status
<> 144:ef7eb2e8f9f7 153 */
<> 144:ef7eb2e8f9f7 154 HAL_StatusTypeDef HAL_MDIOS_Init(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 155 {
<> 144:ef7eb2e8f9f7 156 uint32_t tmpcr = 0;
<> 144:ef7eb2e8f9f7 157
<> 144:ef7eb2e8f9f7 158 /* Check the MDIOS handle allocation */
<> 144:ef7eb2e8f9f7 159 if(hmdios == NULL)
<> 144:ef7eb2e8f9f7 160 {
<> 144:ef7eb2e8f9f7 161 return HAL_ERROR;
<> 144:ef7eb2e8f9f7 162 }
<> 144:ef7eb2e8f9f7 163
<> 144:ef7eb2e8f9f7 164 /* Check the parameters */
<> 144:ef7eb2e8f9f7 165 assert_param(IS_MDIOS_ALL_INSTANCE(hmdios->Instance));
<> 144:ef7eb2e8f9f7 166 assert_param(IS_MDIOS_PORTADDRESS(hmdios->Init.PortAddress));
<> 144:ef7eb2e8f9f7 167 assert_param(IS_MDIOS_PREAMBLECHECK(hmdios->Init.PreambleCheck));
<> 144:ef7eb2e8f9f7 168
<> 144:ef7eb2e8f9f7 169 /* Process Locked */
<> 144:ef7eb2e8f9f7 170 __HAL_LOCK(hmdios);
<> 144:ef7eb2e8f9f7 171
<> 144:ef7eb2e8f9f7 172 if(hmdios->State == HAL_MDIOS_STATE_RESET)
<> 144:ef7eb2e8f9f7 173 {
<> 144:ef7eb2e8f9f7 174 /* Init the low level hardware */
<> 144:ef7eb2e8f9f7 175 HAL_MDIOS_MspInit(hmdios);
<> 144:ef7eb2e8f9f7 176 }
<> 144:ef7eb2e8f9f7 177
<> 144:ef7eb2e8f9f7 178 /* Change the MDIOS state */
<> 144:ef7eb2e8f9f7 179 hmdios->State = HAL_MDIOS_STATE_BUSY;
<> 144:ef7eb2e8f9f7 180
<> 144:ef7eb2e8f9f7 181 /* Get the MDIOS CR value */
<> 144:ef7eb2e8f9f7 182 tmpcr = hmdios->Instance->CR;
<> 144:ef7eb2e8f9f7 183
<> 144:ef7eb2e8f9f7 184 /* Clear PORT_ADDRESS, DPC and EN bits */
<> 144:ef7eb2e8f9f7 185 tmpcr &= ((uint32_t)~(MDIOS_CR_EN | MDIOS_CR_DPC | MDIOS_CR_PORT_ADDRESS));
<> 144:ef7eb2e8f9f7 186
<> 144:ef7eb2e8f9f7 187 /* Set MDIOS control parametrs and enable the peripheral */
<> 144:ef7eb2e8f9f7 188 tmpcr |= (uint32_t)(((hmdios->Init.PortAddress) << MDIOS_PORT_ADDRESS_SHIFT) |\
<> 144:ef7eb2e8f9f7 189 (hmdios->Init.PreambleCheck) | \
<> 144:ef7eb2e8f9f7 190 (MDIOS_CR_EN));
<> 144:ef7eb2e8f9f7 191
<> 144:ef7eb2e8f9f7 192 /* Write the MDIOS CR */
<> 144:ef7eb2e8f9f7 193 hmdios->Instance->CR = tmpcr;
<> 144:ef7eb2e8f9f7 194
<> 144:ef7eb2e8f9f7 195 /* Change the MDIOS state */
<> 144:ef7eb2e8f9f7 196 hmdios->State = HAL_MDIOS_STATE_READY;
<> 144:ef7eb2e8f9f7 197
<> 144:ef7eb2e8f9f7 198 /* Release Lock */
<> 144:ef7eb2e8f9f7 199 __HAL_UNLOCK(hmdios);
<> 144:ef7eb2e8f9f7 200
<> 144:ef7eb2e8f9f7 201 /* Return function status */
<> 144:ef7eb2e8f9f7 202 return HAL_OK;
<> 144:ef7eb2e8f9f7 203
<> 144:ef7eb2e8f9f7 204 }
<> 144:ef7eb2e8f9f7 205
<> 144:ef7eb2e8f9f7 206 /**
<> 144:ef7eb2e8f9f7 207 * @brief DeInitializes the MDIOS peripheral.
<> 144:ef7eb2e8f9f7 208 * @param hmdios: MDIOS handle
<> 144:ef7eb2e8f9f7 209 * @retval HAL status
<> 144:ef7eb2e8f9f7 210 */
<> 144:ef7eb2e8f9f7 211 HAL_StatusTypeDef HAL_MDIOS_DeInit(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 212 {
<> 144:ef7eb2e8f9f7 213 /* Check the MDIOS handle allocation */
<> 144:ef7eb2e8f9f7 214 if(hmdios == NULL)
<> 144:ef7eb2e8f9f7 215 {
<> 144:ef7eb2e8f9f7 216 return HAL_ERROR;
<> 144:ef7eb2e8f9f7 217 }
<> 144:ef7eb2e8f9f7 218
<> 144:ef7eb2e8f9f7 219 /* Check the parameters */
<> 144:ef7eb2e8f9f7 220 assert_param(IS_MDIOS_ALL_INSTANCE(hmdios->Instance));
<> 144:ef7eb2e8f9f7 221
<> 144:ef7eb2e8f9f7 222 /* Change the MDIOS state */
<> 144:ef7eb2e8f9f7 223 hmdios->State = HAL_MDIOS_STATE_BUSY;
<> 144:ef7eb2e8f9f7 224
<> 144:ef7eb2e8f9f7 225 /* Disable the Peripheral */
<> 144:ef7eb2e8f9f7 226 __HAL_MDIOS_DISABLE(hmdios);
<> 144:ef7eb2e8f9f7 227
<> 144:ef7eb2e8f9f7 228 /* DeInit the low level hardware */
<> 144:ef7eb2e8f9f7 229 HAL_MDIOS_MspDeInit(hmdios);
<> 144:ef7eb2e8f9f7 230
<> 144:ef7eb2e8f9f7 231 /* Change the MDIOS state */
<> 144:ef7eb2e8f9f7 232 hmdios->State = HAL_MDIOS_STATE_RESET;
<> 144:ef7eb2e8f9f7 233
<> 144:ef7eb2e8f9f7 234 /* Release Lock */
<> 144:ef7eb2e8f9f7 235 __HAL_UNLOCK(hmdios);
<> 144:ef7eb2e8f9f7 236
<> 144:ef7eb2e8f9f7 237 /* Return function status */
<> 144:ef7eb2e8f9f7 238 return HAL_OK;
<> 144:ef7eb2e8f9f7 239 }
<> 144:ef7eb2e8f9f7 240
<> 144:ef7eb2e8f9f7 241 /**
<> 144:ef7eb2e8f9f7 242 * @brief MDIOS MSP Init
<> 144:ef7eb2e8f9f7 243 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 244 * @retval None
<> 144:ef7eb2e8f9f7 245 */
<> 144:ef7eb2e8f9f7 246 __weak void HAL_MDIOS_MspInit(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 247 {
<> 144:ef7eb2e8f9f7 248 /* Prevent unused argument(s) compilation warning */
<> 144:ef7eb2e8f9f7 249 UNUSED(hmdios);
<> 144:ef7eb2e8f9f7 250
<> 144:ef7eb2e8f9f7 251 /* NOTE : This function should not be modified, when the callback is needed,
<> 144:ef7eb2e8f9f7 252 the HAL_MDIOS_MspInit can be implemented in the user file
<> 144:ef7eb2e8f9f7 253 */
<> 144:ef7eb2e8f9f7 254 }
<> 144:ef7eb2e8f9f7 255
<> 144:ef7eb2e8f9f7 256 /**
<> 144:ef7eb2e8f9f7 257 * @brief MDIOS MSP DeInit
<> 144:ef7eb2e8f9f7 258 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 259 * @retval None
<> 144:ef7eb2e8f9f7 260 */
<> 144:ef7eb2e8f9f7 261 __weak void HAL_MDIOS_MspDeInit(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 262 {
<> 144:ef7eb2e8f9f7 263 /* Prevent unused argument(s) compilation warning */
<> 144:ef7eb2e8f9f7 264 UNUSED(hmdios);
<> 144:ef7eb2e8f9f7 265
<> 144:ef7eb2e8f9f7 266 /* NOTE : This function should not be modified, when the callback is needed,
<> 144:ef7eb2e8f9f7 267 the HAL_MDIOS_MspDeInit can be implemented in the user file
<> 144:ef7eb2e8f9f7 268 */
<> 144:ef7eb2e8f9f7 269 }
<> 144:ef7eb2e8f9f7 270 /**
<> 144:ef7eb2e8f9f7 271 * @}
<> 144:ef7eb2e8f9f7 272 */
<> 144:ef7eb2e8f9f7 273
<> 144:ef7eb2e8f9f7 274 /** @defgroup MDIOS_Exported_Functions_Group2 IO operation functions
<> 144:ef7eb2e8f9f7 275 * @brief MDIOS Read/Write functions
<> 144:ef7eb2e8f9f7 276 *
<> 144:ef7eb2e8f9f7 277 @verbatim
<> 144:ef7eb2e8f9f7 278 ===============================================================================
<> 144:ef7eb2e8f9f7 279 ##### IO operation functions #####
<> 144:ef7eb2e8f9f7 280 ===============================================================================
<> 144:ef7eb2e8f9f7 281 This subsection provides a set of functions allowing to manage the MDIOS
<> 144:ef7eb2e8f9f7 282 read and write operations.
<> 144:ef7eb2e8f9f7 283
<> 144:ef7eb2e8f9f7 284 (#) APIs that allow to the MDIOS to read/write from/to the
<> 144:ef7eb2e8f9f7 285 values of one of the DINn/DOUTn registers:
<> 144:ef7eb2e8f9f7 286 (+) Read the value of a DINn register: HAL_MDIOS_ReadReg()
<> 144:ef7eb2e8f9f7 287 (+) Write a value to a DOUTn register: HAL_MDIOS_WriteReg()
<> 144:ef7eb2e8f9f7 288
<> 144:ef7eb2e8f9f7 289 (#) APIs that provide if there are some Slave registres have been
<> 144:ef7eb2e8f9f7 290 read or written by the Master:
<> 144:ef7eb2e8f9f7 291 (+) DOUTn registers read by Master: HAL_MDIOS_GetReadRegAddress()
<> 144:ef7eb2e8f9f7 292 (+) DINn registers written by Master : HAL_MDIOS_GetWrittenRegAddress()
<> 144:ef7eb2e8f9f7 293
<> 144:ef7eb2e8f9f7 294 (#) APIs that Clear the read/write flags:
<> 144:ef7eb2e8f9f7 295 (+) Clear read registers flags: HAL_MDIOS_ClearReadRegAddress()
<> 144:ef7eb2e8f9f7 296 (+) Clear write registers flags: HAL_MDIOS_ClearWriteRegAddress()
<> 144:ef7eb2e8f9f7 297
<> 144:ef7eb2e8f9f7 298 (#) A set of Callbacks are provided:
<> 144:ef7eb2e8f9f7 299 (+) HAL_MDIOS_WriteCpltCallback()
<> 144:ef7eb2e8f9f7 300 (+) HAL_MDIOS_ReadCpltCallback()
<> 144:ef7eb2e8f9f7 301 (+) HAL_MDIOS_ErrorCallback()
<> 144:ef7eb2e8f9f7 302
<> 144:ef7eb2e8f9f7 303 @endverbatim
<> 144:ef7eb2e8f9f7 304 * @{
<> 144:ef7eb2e8f9f7 305 */
<> 144:ef7eb2e8f9f7 306
<> 144:ef7eb2e8f9f7 307 /**
<> 144:ef7eb2e8f9f7 308 * @brief Writes to an MDIOS output register
<> 144:ef7eb2e8f9f7 309 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 310 * @param RegNum: MDIOS input register number
<> 144:ef7eb2e8f9f7 311 * @param Data: Data to write
<> 144:ef7eb2e8f9f7 312 * @retval HAL status
<> 144:ef7eb2e8f9f7 313 */
<> 144:ef7eb2e8f9f7 314 HAL_StatusTypeDef HAL_MDIOS_WriteReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t Data)
<> 144:ef7eb2e8f9f7 315 {
<> 144:ef7eb2e8f9f7 316 uint32_t tmpreg;
<> 144:ef7eb2e8f9f7 317
<> 144:ef7eb2e8f9f7 318 /* Check the parameters */
<> 144:ef7eb2e8f9f7 319 assert_param(IS_MDIOS_REGISTER(RegNum));
<> 144:ef7eb2e8f9f7 320
<> 144:ef7eb2e8f9f7 321 /* Process Locked */
<> 144:ef7eb2e8f9f7 322 __HAL_LOCK(hmdios);
<> 144:ef7eb2e8f9f7 323
<> 144:ef7eb2e8f9f7 324 /* Get the addr of output register to be written by the MDIOS */
<> 144:ef7eb2e8f9f7 325 tmpreg = MDIOS_DOUT_BASE_ADDR + (4 * RegNum);
<> 144:ef7eb2e8f9f7 326
<> 144:ef7eb2e8f9f7 327 /* Write to DOUTn register */
<> 144:ef7eb2e8f9f7 328 *((uint32_t *)tmpreg) = Data;
<> 144:ef7eb2e8f9f7 329
<> 144:ef7eb2e8f9f7 330 /* Process Unlocked */
<> 144:ef7eb2e8f9f7 331 __HAL_UNLOCK(hmdios);
<> 144:ef7eb2e8f9f7 332
<> 144:ef7eb2e8f9f7 333 return HAL_OK;
<> 144:ef7eb2e8f9f7 334 }
<> 144:ef7eb2e8f9f7 335
<> 144:ef7eb2e8f9f7 336 /**
<> 144:ef7eb2e8f9f7 337 * @brief Reads an MDIOS input register
<> 144:ef7eb2e8f9f7 338 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 339 * @param RegNum: MDIOS input register number
<> 144:ef7eb2e8f9f7 340 * @param pData: pointer to Data
<> 144:ef7eb2e8f9f7 341 * @retval HAL status
<> 144:ef7eb2e8f9f7 342 */
<> 144:ef7eb2e8f9f7 343 HAL_StatusTypeDef HAL_MDIOS_ReadReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t *pData)
<> 144:ef7eb2e8f9f7 344 {
<> 144:ef7eb2e8f9f7 345 uint32_t tmpreg;
<> 144:ef7eb2e8f9f7 346
<> 144:ef7eb2e8f9f7 347 /* Check the parameters */
<> 144:ef7eb2e8f9f7 348 assert_param(IS_MDIOS_REGISTER(RegNum));
<> 144:ef7eb2e8f9f7 349
<> 144:ef7eb2e8f9f7 350 /* Process Locked */
<> 144:ef7eb2e8f9f7 351 __HAL_LOCK(hmdios);
<> 144:ef7eb2e8f9f7 352
<> 144:ef7eb2e8f9f7 353 /* Get the addr of input register to be read by the MDIOS */
<> 144:ef7eb2e8f9f7 354 tmpreg = MDIOS_DIN_BASE_ADDR + (4 * RegNum);
<> 144:ef7eb2e8f9f7 355
<> 144:ef7eb2e8f9f7 356 /* Read DINn register */
<> 144:ef7eb2e8f9f7 357 *pData = (uint16_t)(*((uint32_t *)tmpreg));
<> 144:ef7eb2e8f9f7 358
<> 144:ef7eb2e8f9f7 359 /* Process Unlocked */
<> 144:ef7eb2e8f9f7 360 __HAL_UNLOCK(hmdios);
<> 144:ef7eb2e8f9f7 361
<> 144:ef7eb2e8f9f7 362 return HAL_OK;
<> 144:ef7eb2e8f9f7 363 }
<> 144:ef7eb2e8f9f7 364
<> 144:ef7eb2e8f9f7 365 /**
<> 144:ef7eb2e8f9f7 366 * @brief Gets Written registers by MDIO master
<> 144:ef7eb2e8f9f7 367 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 368 * @retval bit map of written registers addresses
<> 144:ef7eb2e8f9f7 369 */
<> 144:ef7eb2e8f9f7 370 uint32_t HAL_MDIOS_GetWrittenRegAddress(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 371 {
<> 144:ef7eb2e8f9f7 372 return hmdios->Instance->WRFR;
<> 144:ef7eb2e8f9f7 373 }
<> 144:ef7eb2e8f9f7 374
<> 144:ef7eb2e8f9f7 375 /**
<> 144:ef7eb2e8f9f7 376 * @brief Gets Read registers by MDIO master
<> 144:ef7eb2e8f9f7 377 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 378 * @retval bit map of read registers addresses
<> 144:ef7eb2e8f9f7 379 */
<> 144:ef7eb2e8f9f7 380 uint32_t HAL_MDIOS_GetReadRegAddress(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 381 {
<> 144:ef7eb2e8f9f7 382 return hmdios->Instance->RDFR;
<> 144:ef7eb2e8f9f7 383 }
<> 144:ef7eb2e8f9f7 384
<> 144:ef7eb2e8f9f7 385 /**
<> 144:ef7eb2e8f9f7 386 * @brief Clears Write registers flag
<> 144:ef7eb2e8f9f7 387 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 388 * @param RegNum: registers addresses to be cleared
<> 144:ef7eb2e8f9f7 389 * @retval HAL status
<> 144:ef7eb2e8f9f7 390 */
<> 144:ef7eb2e8f9f7 391 HAL_StatusTypeDef HAL_MDIOS_ClearWriteRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum)
<> 144:ef7eb2e8f9f7 392 {
<> 144:ef7eb2e8f9f7 393 /* Check the parameters */
<> 144:ef7eb2e8f9f7 394 assert_param(IS_MDIOS_REGISTER(RegNum));
<> 144:ef7eb2e8f9f7 395
<> 144:ef7eb2e8f9f7 396 /* Process Locked */
<> 144:ef7eb2e8f9f7 397 __HAL_LOCK(hmdios);
<> 144:ef7eb2e8f9f7 398
<> 144:ef7eb2e8f9f7 399 /* Clear write registers flags */
<> 144:ef7eb2e8f9f7 400 hmdios->Instance->CWRFR |= (RegNum);
<> 144:ef7eb2e8f9f7 401
<> 144:ef7eb2e8f9f7 402 /* Release Lock */
<> 144:ef7eb2e8f9f7 403 __HAL_UNLOCK(hmdios);
<> 144:ef7eb2e8f9f7 404
<> 144:ef7eb2e8f9f7 405 return HAL_OK;
<> 144:ef7eb2e8f9f7 406 }
<> 144:ef7eb2e8f9f7 407
<> 144:ef7eb2e8f9f7 408 /**
<> 144:ef7eb2e8f9f7 409 * @brief Clears Read register flag
<> 144:ef7eb2e8f9f7 410 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 411 * @param RegNum: registers addresses to be cleared
<> 144:ef7eb2e8f9f7 412 * @retval HAL status
<> 144:ef7eb2e8f9f7 413 */
<> 144:ef7eb2e8f9f7 414 HAL_StatusTypeDef HAL_MDIOS_ClearReadRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum)
<> 144:ef7eb2e8f9f7 415 {
<> 144:ef7eb2e8f9f7 416 /* Check the parameters */
<> 144:ef7eb2e8f9f7 417 assert_param(IS_MDIOS_REGISTER(RegNum));
<> 144:ef7eb2e8f9f7 418
<> 144:ef7eb2e8f9f7 419 /* Process Locked */
<> 144:ef7eb2e8f9f7 420 __HAL_LOCK(hmdios);
<> 144:ef7eb2e8f9f7 421
<> 144:ef7eb2e8f9f7 422 /* Clear read registers flags */
<> 144:ef7eb2e8f9f7 423 hmdios->Instance->CRDFR |= (RegNum);
<> 144:ef7eb2e8f9f7 424
<> 144:ef7eb2e8f9f7 425 /* Release Lock */
<> 144:ef7eb2e8f9f7 426 __HAL_UNLOCK(hmdios);
<> 144:ef7eb2e8f9f7 427
<> 144:ef7eb2e8f9f7 428 return HAL_OK;
<> 144:ef7eb2e8f9f7 429 }
<> 144:ef7eb2e8f9f7 430
<> 144:ef7eb2e8f9f7 431 /**
<> 144:ef7eb2e8f9f7 432 * @brief Enables Events for MDIOS peripheral
<> 144:ef7eb2e8f9f7 433 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 434 * @retval HAL status
<> 144:ef7eb2e8f9f7 435 */
<> 144:ef7eb2e8f9f7 436 HAL_StatusTypeDef HAL_MDIOS_EnableEvents(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 437 {
<> 144:ef7eb2e8f9f7 438 /* Process Locked */
<> 144:ef7eb2e8f9f7 439 __HAL_LOCK(hmdios);
<> 144:ef7eb2e8f9f7 440
<> 144:ef7eb2e8f9f7 441 /* Enable MDIOS interrupts: Register Write, Register Read and Error ITs */
<> 144:ef7eb2e8f9f7 442 __HAL_MDIOS_ENABLE_IT(hmdios, (MDIOS_IT_WRITE | MDIOS_IT_READ | MDIOS_IT_ERROR));
<> 144:ef7eb2e8f9f7 443
<> 144:ef7eb2e8f9f7 444 /* Process Unlocked */
<> 144:ef7eb2e8f9f7 445 __HAL_UNLOCK(hmdios);
<> 144:ef7eb2e8f9f7 446
<> 144:ef7eb2e8f9f7 447 return HAL_OK;
<> 144:ef7eb2e8f9f7 448 }
<> 144:ef7eb2e8f9f7 449
<> 144:ef7eb2e8f9f7 450 /**
<> 144:ef7eb2e8f9f7 451 * @brief This function handles MDIOS interrupt request.
<> 144:ef7eb2e8f9f7 452 * @param hmdios: MDIOS handle
<> 144:ef7eb2e8f9f7 453 * @retval None
<> 144:ef7eb2e8f9f7 454 */
<> 144:ef7eb2e8f9f7 455 void HAL_MDIOS_IRQHandler(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 456 {
<> 144:ef7eb2e8f9f7 457 /* Write Register Interrupt enabled ? */
<> 144:ef7eb2e8f9f7 458 if(__HAL_MDIOS_GET_IT_SOURCE(hmdios, MDIOS_IT_WRITE) != RESET)
<> 144:ef7eb2e8f9f7 459 {
<> 144:ef7eb2e8f9f7 460 /* Write register flag */
<> 144:ef7eb2e8f9f7 461 if(HAL_MDIOS_GetWrittenRegAddress(hmdios) != RESET)
<> 144:ef7eb2e8f9f7 462 {
<> 144:ef7eb2e8f9f7 463 /* Write callback function */
<> 144:ef7eb2e8f9f7 464 HAL_MDIOS_WriteCpltCallback(hmdios);
<> 144:ef7eb2e8f9f7 465
<> 144:ef7eb2e8f9f7 466 /* Clear write register flag */
<> 144:ef7eb2e8f9f7 467 HAL_MDIOS_ClearWriteRegAddress(hmdios, MDIOS_ALL_REG_FLAG);
<> 144:ef7eb2e8f9f7 468 }
<> 144:ef7eb2e8f9f7 469 }
<> 144:ef7eb2e8f9f7 470
<> 144:ef7eb2e8f9f7 471 /* Read Register Interrupt enabled ? */
<> 144:ef7eb2e8f9f7 472 if(__HAL_MDIOS_GET_IT_SOURCE(hmdios, MDIOS_IT_READ) != RESET)
<> 144:ef7eb2e8f9f7 473 {
<> 144:ef7eb2e8f9f7 474 /* Read register flag */
<> 144:ef7eb2e8f9f7 475 if(HAL_MDIOS_GetReadRegAddress(hmdios) != RESET)
<> 144:ef7eb2e8f9f7 476 {
<> 144:ef7eb2e8f9f7 477 /* Read callback function */
<> 144:ef7eb2e8f9f7 478 HAL_MDIOS_ReadCpltCallback(hmdios);
<> 144:ef7eb2e8f9f7 479
<> 144:ef7eb2e8f9f7 480 /* Clear read register flag */
<> 144:ef7eb2e8f9f7 481 HAL_MDIOS_ClearReadRegAddress(hmdios, MDIOS_ALL_REG_FLAG);
<> 144:ef7eb2e8f9f7 482 }
<> 144:ef7eb2e8f9f7 483 }
<> 144:ef7eb2e8f9f7 484
<> 144:ef7eb2e8f9f7 485 /* Error Interrupt enabled ? */
<> 144:ef7eb2e8f9f7 486 if(__HAL_MDIOS_GET_IT_SOURCE(hmdios, MDIOS_IT_ERROR) != RESET)
<> 144:ef7eb2e8f9f7 487 {
<> 144:ef7eb2e8f9f7 488 /* All Errors Flag */
<> 144:ef7eb2e8f9f7 489 if(__HAL_MDIOS_GET_ERROR_FLAG(hmdios, MDIOS_ALL_ERRORS_FLAG) !=RESET)
<> 144:ef7eb2e8f9f7 490 {
<> 144:ef7eb2e8f9f7 491 /* Error Callback */
<> 144:ef7eb2e8f9f7 492 HAL_MDIOS_ErrorCallback(hmdios);
<> 144:ef7eb2e8f9f7 493
<> 144:ef7eb2e8f9f7 494 /* Clear errors flag */
<> 144:ef7eb2e8f9f7 495 __HAL_MDIOS_CLEAR_ERROR_FLAG(hmdios, MDIOS_ALL_ERRORS_FLAG);
<> 144:ef7eb2e8f9f7 496 }
<> 144:ef7eb2e8f9f7 497 }
<> 144:ef7eb2e8f9f7 498
<> 144:ef7eb2e8f9f7 499 /* check MDIOS WAKEUP exti flag */
<> 144:ef7eb2e8f9f7 500 if(__HAL_MDIOS_WAKEUP_EXTI_GET_FLAG() != RESET)
<> 144:ef7eb2e8f9f7 501 {
<> 144:ef7eb2e8f9f7 502 /* MDIOS WAKEUP interrupt user callback */
<> 144:ef7eb2e8f9f7 503 HAL_MDIOS_WakeUpCallback(hmdios);
<> 144:ef7eb2e8f9f7 504
<> 144:ef7eb2e8f9f7 505 /* Clear MDIOS WAKEUP Exti pending bit */
<> 144:ef7eb2e8f9f7 506 __HAL_MDIOS_WAKEUP_EXTI_CLEAR_FLAG();
<> 144:ef7eb2e8f9f7 507 }
<> 144:ef7eb2e8f9f7 508 }
<> 144:ef7eb2e8f9f7 509
<> 144:ef7eb2e8f9f7 510 /**
<> 144:ef7eb2e8f9f7 511 * @brief Write Complete Callback
<> 144:ef7eb2e8f9f7 512 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 513 * @retval None
<> 144:ef7eb2e8f9f7 514 */
<> 144:ef7eb2e8f9f7 515 __weak void HAL_MDIOS_WriteCpltCallback(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 516 {
<> 144:ef7eb2e8f9f7 517 /* Prevent unused argument(s) compilation warning */
<> 144:ef7eb2e8f9f7 518 UNUSED(hmdios);
<> 144:ef7eb2e8f9f7 519
<> 144:ef7eb2e8f9f7 520 /* NOTE : This function should not be modified, when the callback is needed,
<> 144:ef7eb2e8f9f7 521 the HAL_MDIOS_WriteCpltCallback can be implemented in the user file
<> 144:ef7eb2e8f9f7 522 */
<> 144:ef7eb2e8f9f7 523 }
<> 144:ef7eb2e8f9f7 524
<> 144:ef7eb2e8f9f7 525 /**
<> 144:ef7eb2e8f9f7 526 * @brief Read Complete Callback
<> 144:ef7eb2e8f9f7 527 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 528 * @retval None
<> 144:ef7eb2e8f9f7 529 */
<> 144:ef7eb2e8f9f7 530 __weak void HAL_MDIOS_ReadCpltCallback(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 531 {
<> 144:ef7eb2e8f9f7 532 /* Prevent unused argument(s) compilation warning */
<> 144:ef7eb2e8f9f7 533 UNUSED(hmdios);
<> 144:ef7eb2e8f9f7 534
<> 144:ef7eb2e8f9f7 535 /* NOTE : This function should not be modified, when the callback is needed,
<> 144:ef7eb2e8f9f7 536 the HAL_MDIOS_ReadCpltCallback can be implemented in the user file
<> 144:ef7eb2e8f9f7 537 */
<> 144:ef7eb2e8f9f7 538 }
<> 144:ef7eb2e8f9f7 539
<> 144:ef7eb2e8f9f7 540 /**
<> 144:ef7eb2e8f9f7 541 * @brief Error Callback
<> 144:ef7eb2e8f9f7 542 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 543 * @retval None
<> 144:ef7eb2e8f9f7 544 */
<> 144:ef7eb2e8f9f7 545 __weak void HAL_MDIOS_ErrorCallback(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 546 {
<> 144:ef7eb2e8f9f7 547 /* Prevent unused argument(s) compilation warning */
<> 144:ef7eb2e8f9f7 548 UNUSED(hmdios);
<> 144:ef7eb2e8f9f7 549
<> 144:ef7eb2e8f9f7 550 /* NOTE : This function should not be modified, when the callback is needed,
<> 144:ef7eb2e8f9f7 551 the HAL_MDIOS_ErrorCallback can be implemented in the user file
<> 144:ef7eb2e8f9f7 552 */
<> 144:ef7eb2e8f9f7 553 }
<> 144:ef7eb2e8f9f7 554
<> 144:ef7eb2e8f9f7 555 /**
<> 144:ef7eb2e8f9f7 556 * @brief MDIOS WAKEUP interrupt callback
<> 144:ef7eb2e8f9f7 557 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 558 * @retval None
<> 144:ef7eb2e8f9f7 559 */
<> 144:ef7eb2e8f9f7 560 __weak void HAL_MDIOS_WakeUpCallback(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 561 {
<> 144:ef7eb2e8f9f7 562 /* Prevent unused argument(s) compilation warning */
<> 144:ef7eb2e8f9f7 563 UNUSED(hmdios);
<> 144:ef7eb2e8f9f7 564
<> 144:ef7eb2e8f9f7 565 /* NOTE : This function Should not be modified, when the callback is needed,
<> 144:ef7eb2e8f9f7 566 the HAL_MDIOS_WakeUpCallback could be implemented in the user file
<> 144:ef7eb2e8f9f7 567 */
<> 144:ef7eb2e8f9f7 568 }
<> 144:ef7eb2e8f9f7 569
<> 144:ef7eb2e8f9f7 570 /**
<> 144:ef7eb2e8f9f7 571 * @}
<> 144:ef7eb2e8f9f7 572 */
<> 144:ef7eb2e8f9f7 573
<> 144:ef7eb2e8f9f7 574 /** @defgroup MDIOS_Exported_Functions_Group3 Peripheral Control functions
<> 144:ef7eb2e8f9f7 575 * @brief MDIOS control functions
<> 144:ef7eb2e8f9f7 576 *
<> 144:ef7eb2e8f9f7 577 @verbatim
<> 144:ef7eb2e8f9f7 578 ===============================================================================
<> 144:ef7eb2e8f9f7 579 ##### Peripheral Control functions #####
<> 144:ef7eb2e8f9f7 580 ===============================================================================
<> 144:ef7eb2e8f9f7 581 [..]
<> 144:ef7eb2e8f9f7 582 This subsection provides a set of functions allowing to control the MDIOS.
<> 144:ef7eb2e8f9f7 583 (+) HAL_MDIOS_GetState() API, helpful to check in run-time the state.
<> 144:ef7eb2e8f9f7 584 (+) HAL_MDIOS_GetError() API, returns the errors occured during data transfer.
<> 144:ef7eb2e8f9f7 585
<> 144:ef7eb2e8f9f7 586 @endverbatim
<> 144:ef7eb2e8f9f7 587 * @{
<> 144:ef7eb2e8f9f7 588 */
<> 144:ef7eb2e8f9f7 589
<> 144:ef7eb2e8f9f7 590 /**
<> 144:ef7eb2e8f9f7 591 * @brief Gets MDIOS error flags
<> 144:ef7eb2e8f9f7 592 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 593 * @retval bit map of occured errors
<> 144:ef7eb2e8f9f7 594 */
<> 144:ef7eb2e8f9f7 595 uint32_t HAL_MDIOS_GetError(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 596 {
<> 144:ef7eb2e8f9f7 597 /* return errors flags on status register */
<> 144:ef7eb2e8f9f7 598 return hmdios->Instance->SR;
<> 144:ef7eb2e8f9f7 599 }
<> 144:ef7eb2e8f9f7 600
<> 144:ef7eb2e8f9f7 601 /**
<> 144:ef7eb2e8f9f7 602 * @brief Return the MDIOS HAL state
<> 144:ef7eb2e8f9f7 603 * @param hmdios: mdios handle
<> 144:ef7eb2e8f9f7 604 * @retval MDIOS state
<> 144:ef7eb2e8f9f7 605 */
<> 144:ef7eb2e8f9f7 606 HAL_MDIOS_StateTypeDef HAL_MDIOS_GetState(MDIOS_HandleTypeDef *hmdios)
<> 144:ef7eb2e8f9f7 607 {
<> 144:ef7eb2e8f9f7 608 /* Return MDIOS state */
<> 144:ef7eb2e8f9f7 609 return hmdios->State;
<> 144:ef7eb2e8f9f7 610 }
<> 144:ef7eb2e8f9f7 611
<> 144:ef7eb2e8f9f7 612 /**
<> 144:ef7eb2e8f9f7 613 * @}
<> 144:ef7eb2e8f9f7 614 */
<> 144:ef7eb2e8f9f7 615
<> 144:ef7eb2e8f9f7 616 /**
<> 144:ef7eb2e8f9f7 617 * @}
<> 144:ef7eb2e8f9f7 618 */
<> 144:ef7eb2e8f9f7 619 #endif /* MDIOS */
<> 144:ef7eb2e8f9f7 620 #endif /* HAL_MDIOS_MODULE_ENABLED */
<> 144:ef7eb2e8f9f7 621 /**
<> 144:ef7eb2e8f9f7 622 * @}
<> 144:ef7eb2e8f9f7 623 */
<> 144:ef7eb2e8f9f7 624
<> 144:ef7eb2e8f9f7 625 /**
<> 144:ef7eb2e8f9f7 626 * @}
<> 144:ef7eb2e8f9f7 627 */
<> 144:ef7eb2e8f9f7 628
<> 144:ef7eb2e8f9f7 629 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/