STM32H735xx HAL User Manual
stm32h7xx_hal_smbus_ex.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32h7xx_hal_smbus_ex.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of SMBUS HAL Extended module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* Define to prevent recursive inclusion -------------------------------------*/
00020 #ifndef STM32H7xx_HAL_SMBUS_EX_H
00021 #define STM32H7xx_HAL_SMBUS_EX_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32h7xx_hal_def.h"
00029 
00030 /** @addtogroup STM32H7xx_HAL_Driver
00031   * @{
00032   */
00033 
00034 /** @addtogroup SMBUSEx
00035   * @{
00036   */
00037 
00038 /* Exported types ------------------------------------------------------------*/
00039 /* Exported constants --------------------------------------------------------*/
00040 /** @defgroup SMBUSEx_Exported_Constants SMBUS Extended Exported Constants
00041   * @{
00042   */
00043 
00044 /** @defgroup SMBUSEx_FastModePlus SMBUS Extended Fast Mode Plus
00045   * @{
00046   */
00047 #define SMBUS_FMP_NOT_SUPPORTED           0xAAAA0000U                                     /*!< Fast Mode Plus not supported       */
00048 #define SMBUS_FASTMODEPLUS_PB6            SYSCFG_PMCR_I2C_PB6_FMP                        /*!< Enable Fast Mode Plus on PB6       */
00049 #define SMBUS_FASTMODEPLUS_PB7            SYSCFG_PMCR_I2C_PB7_FMP                        /*!< Enable Fast Mode Plus on PB7       */
00050 #define SMBUS_FASTMODEPLUS_PB8            SYSCFG_PMCR_I2C_PB8_FMP                        /*!< Enable Fast Mode Plus on PB8       */
00051 #define SMBUS_FASTMODEPLUS_PB9            SYSCFG_PMCR_I2C_PB9_FMP                        /*!< Enable Fast Mode Plus on PB9       */
00052 #define SMBUS_FASTMODEPLUS_I2C1           SYSCFG_PMCR_I2C1_FMP                           /*!< Enable Fast Mode Plus on I2C1 pins */
00053 #define SMBUS_FASTMODEPLUS_I2C2           SYSCFG_PMCR_I2C2_FMP                           /*!< Enable Fast Mode Plus on I2C2 pins */
00054 #define SMBUS_FASTMODEPLUS_I2C3           SYSCFG_PMCR_I2C3_FMP                           /*!< Enable Fast Mode Plus on I2C3 pins */
00055 #define SMBUS_FASTMODEPLUS_I2C4           SYSCFG_PMCR_I2C4_FMP                           /*!< Enable Fast Mode Plus on I2C4 pins */
00056 #if defined(SYSCFG_PMCR_I2C5_FMP)
00057 #define SMBUS_FASTMODEPLUS_I2C5           SYSCFG_PMCR_I2C5_FMP                           /*!< Enable Fast Mode Plus on I2C5 pins */
00058 #else
00059 #define SMBUS_FASTMODEPLUS_I2C5           (uint32_t)(0x00001000U | SMBUS_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C5 not supported  */
00060 #endif /* SYSCFG_PMCR_I2C5_FMP */
00061 /**
00062   * @}
00063   */
00064 
00065 /**
00066   * @}
00067   */
00068 
00069 /* Exported macro ------------------------------------------------------------*/
00070 /** @defgroup SMBUSEx_Exported_Macros SMBUS Extended Exported Macros
00071   * @{
00072   */
00073 
00074 /**
00075   * @}
00076   */
00077 
00078 /* Exported functions --------------------------------------------------------*/
00079 /** @addtogroup SMBUSEx_Exported_Functions SMBUS Extended Exported Functions
00080   * @{
00081   */
00082 
00083 /** @addtogroup SMBUSEx_Exported_Functions_Group2 WakeUp Mode Functions
00084   * @{
00085   */
00086 /* Peripheral Control functions  ************************************************/
00087 HAL_StatusTypeDef HAL_SMBUSEx_EnableWakeUp(SMBUS_HandleTypeDef *hsmbus);
00088 HAL_StatusTypeDef HAL_SMBUSEx_DisableWakeUp(SMBUS_HandleTypeDef *hsmbus);
00089 /**
00090   * @}
00091   */
00092 
00093 /** @addtogroup SMBUSEx_Exported_Functions_Group3 Fast Mode Plus Functions
00094   * @{
00095   */
00096 void HAL_SMBUSEx_EnableFastModePlus(uint32_t ConfigFastModePlus);
00097 void HAL_SMBUSEx_DisableFastModePlus(uint32_t ConfigFastModePlus);
00098 /**
00099   * @}
00100   */
00101 
00102 /**
00103   * @}
00104   */
00105 
00106 /* Private constants ---------------------------------------------------------*/
00107 /** @defgroup SMBUSEx_Private_Constants SMBUS Extended Private Constants
00108   * @{
00109   */
00110 
00111 /**
00112   * @}
00113   */
00114 
00115 /* Private macros ------------------------------------------------------------*/
00116 /** @defgroup SMBUSEx_Private_Macro SMBUS Extended Private Macros
00117   * @{
00118   */
00119 #define IS_SMBUS_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & SMBUS_FASTMODEPLUS_PB6)  == SMBUS_FASTMODEPLUS_PB6)    || \
00120                                            (((__CONFIG__) & SMBUS_FASTMODEPLUS_PB7)  == SMBUS_FASTMODEPLUS_PB7)    || \
00121                                            (((__CONFIG__) & SMBUS_FASTMODEPLUS_PB8)  == SMBUS_FASTMODEPLUS_PB8)    || \
00122                                            (((__CONFIG__) & SMBUS_FASTMODEPLUS_PB9)  == SMBUS_FASTMODEPLUS_PB9)    || \
00123                                            (((__CONFIG__) & SMBUS_FASTMODEPLUS_I2C1) == SMBUS_FASTMODEPLUS_I2C1)   || \
00124                                            (((__CONFIG__) & SMBUS_FASTMODEPLUS_I2C2) == SMBUS_FASTMODEPLUS_I2C2)   || \
00125                                            (((__CONFIG__) & SMBUS_FASTMODEPLUS_I2C3) == SMBUS_FASTMODEPLUS_I2C3)   || \
00126                                            (((__CONFIG__) & SMBUS_FASTMODEPLUS_I2C4) == SMBUS_FASTMODEPLUS_I2C4))
00127 /**
00128   * @}
00129   */
00130 
00131 /* Private Functions ---------------------------------------------------------*/
00132 /** @defgroup SMBUSEx_Private_Functions SMBUS Extended Private Functions
00133   * @{
00134   */
00135 /* Private functions are defined in stm32h7xx_hal_smbus_ex.c file */
00136 /**
00137   * @}
00138   */
00139 
00140 /**
00141   * @}
00142   */
00143 
00144 /**
00145   * @}
00146   */
00147 
00148 #ifdef __cplusplus
00149 }
00150 #endif
00151 
00152 #endif /* STM32H7xx_HAL_SMBUS_EX_H */