summaryrefslogtreecommitdiff
path: root/firmware/rf test/Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_ipcc.h
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2026-02-17 11:37:50 -0800
committerAnson Bridges <bridges.anson@gmail.com>2026-02-17 11:37:50 -0800
commitfb1611c0ca99d9e609057c46507be2af8389bb7b (patch)
tree646ac568fdad1e6cf9e1f5767295b183bc5c5441 /firmware/rf test/Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_ipcc.h
parent6e952fe110c2a48204c8cb0a836309ab97e5979a (diff)
firmware coadHEADmaster
Diffstat (limited to 'firmware/rf test/Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_ipcc.h')
-rw-r--r--firmware/rf test/Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_ipcc.h267
1 files changed, 267 insertions, 0 deletions
diff --git a/firmware/rf test/Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_ipcc.h b/firmware/rf test/Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_ipcc.h
new file mode 100644
index 0000000..ea9606a
--- /dev/null
+++ b/firmware/rf test/Drivers/STM32WBxx_HAL_Driver/Inc/stm32wbxx_hal_ipcc.h
@@ -0,0 +1,267 @@
+/**
+ ******************************************************************************
+ * @file stm32wbxx_hal_ipcc.h
+ * @author MCD Application Team
+ * @brief Header file of Mailbox HAL module.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef STM32WBxx_HAL_IPCC_H
+#define STM32WBxx_HAL_IPCC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32wbxx_hal_def.h"
+
+#if defined(IPCC)
+
+/** @addtogroup STM32WBxx_HAL_Driver
+ * @{
+ */
+
+/** @defgroup IPCC IPCC
+ * @brief IPCC HAL module driver
+ * @{
+ */
+
+/* Exported constants --------------------------------------------------------*/
+
+/** @defgroup IPCC_Exported_Constants IPCC Exported Constants
+ * @{
+ */
+
+/** @defgroup IPCC_Channel IPCC Channel
+ * @{
+ */
+#define IPCC_CHANNEL_1 0x00000000U
+#define IPCC_CHANNEL_2 0x00000001U
+#define IPCC_CHANNEL_3 0x00000002U
+#define IPCC_CHANNEL_4 0x00000003U
+#define IPCC_CHANNEL_5 0x00000004U
+#define IPCC_CHANNEL_6 0x00000005U
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/* Exported types ------------------------------------------------------------*/
+/** @defgroup IPCC_Exported_Types IPCC Exported Types
+ * @{
+ */
+
+/**
+ * @brief HAL IPCC State structures definition
+ */
+typedef enum
+{
+ HAL_IPCC_STATE_RESET = 0x00U, /*!< IPCC not yet initialized or disabled */
+ HAL_IPCC_STATE_READY = 0x01U, /*!< IPCC initialized and ready for use */
+ HAL_IPCC_STATE_BUSY = 0x02U /*!< IPCC internal processing is ongoing */
+} HAL_IPCC_StateTypeDef;
+
+/**
+ * @brief IPCC channel direction structure definition
+ */
+typedef enum
+{
+ IPCC_CHANNEL_DIR_TX = 0x00U, /*!< Channel direction Tx is used by an MCU to transmit */
+ IPCC_CHANNEL_DIR_RX = 0x01U /*!< Channel direction Rx is used by an MCU to receive */
+} IPCC_CHANNELDirTypeDef;
+
+/**
+ * @brief IPCC channel status structure definition
+ */
+typedef enum
+{
+ IPCC_CHANNEL_STATUS_FREE = 0x00U, /*!< Means that a new msg can be posted on that channel */
+ IPCC_CHANNEL_STATUS_OCCUPIED = 0x01U /*!< An MCU has posted a msg the other MCU hasn't retrieved */
+} IPCC_CHANNELStatusTypeDef;
+
+/**
+ * @brief IPCC handle structure definition
+ */
+typedef struct __IPCC_HandleTypeDef
+{
+ IPCC_TypeDef *Instance; /*!< IPCC registers base address */
+ void (* ChannelCallbackRx[IPCC_CHANNEL_NUMBER])(struct __IPCC_HandleTypeDef *hipcc, uint32_t ChannelIndex, IPCC_CHANNELDirTypeDef ChannelDir); /*!< Rx Callback registration table */
+ void (* ChannelCallbackTx[IPCC_CHANNEL_NUMBER])(struct __IPCC_HandleTypeDef *hipcc, uint32_t ChannelIndex, IPCC_CHANNELDirTypeDef ChannelDir); /*!< Tx Callback registration table */
+ uint32_t callbackRequest; /*!< Store information about callback notification by channel */
+ __IO HAL_IPCC_StateTypeDef State; /*!< IPCC State: initialized or not */
+} IPCC_HandleTypeDef;
+
+/**
+ * @brief IPCC callback typedef
+ */
+typedef void ChannelCb(IPCC_HandleTypeDef *hipcc, uint32_t ChannelIndex, IPCC_CHANNELDirTypeDef ChannelDir);
+
+/**
+ * @}
+ */
+
+/* Exported macros -----------------------------------------------------------*/
+/** @defgroup IPCC_Exported_Macros IPCC Exported Macros
+ * @{
+ */
+
+/**
+ * @brief Enable the specified interrupt.
+ * @param __HANDLE__ specifies the IPCC Handle
+ * @param __CHDIRECTION__ specifies the channels Direction
+ * This parameter can be one of the following values:
+ * @arg @ref IPCC_CHANNEL_DIR_TX Transmit channel free interrupt enable
+ * @arg @ref IPCC_CHANNEL_DIR_RX Receive channel occupied interrupt enable
+ */
+#define __HAL_IPCC_ENABLE_IT(__HANDLE__, __CHDIRECTION__) \
+ (((__CHDIRECTION__) == IPCC_CHANNEL_DIR_RX) ? \
+ ((__HANDLE__)->Instance->C1CR |= IPCC_C1CR_RXOIE) : \
+ ((__HANDLE__)->Instance->C1CR |= IPCC_C1CR_TXFIE))
+
+/**
+ * @brief Disable the specified interrupt.
+ * @param __HANDLE__ specifies the IPCC Handle
+ * @param __CHDIRECTION__ specifies the channels Direction
+ * This parameter can be one of the following values:
+ * @arg @ref IPCC_CHANNEL_DIR_TX Transmit channel free interrupt enable
+ * @arg @ref IPCC_CHANNEL_DIR_RX Receive channel occupied interrupt enable
+ */
+#define __HAL_IPCC_DISABLE_IT(__HANDLE__, __CHDIRECTION__) \
+ (((__CHDIRECTION__) == IPCC_CHANNEL_DIR_RX) ? \
+ ((__HANDLE__)->Instance->C1CR &= ~IPCC_C1CR_RXOIE) : \
+ ((__HANDLE__)->Instance->C1CR &= ~IPCC_C1CR_TXFIE))
+
+/**
+ * @brief Mask the specified interrupt.
+ * @param __HANDLE__ specifies the IPCC Handle
+ * @param __CHDIRECTION__ specifies the channels Direction
+ * This parameter can be one of the following values:
+ * @arg @ref IPCC_CHANNEL_DIR_TX Transmit channel free interrupt enable
+ * @arg @ref IPCC_CHANNEL_DIR_RX Receive channel occupied interrupt enable
+ * @param __CHINDEX__ specifies the channels number:
+ * This parameter can be one of the following values:
+ * @arg IPCC_CHANNEL_1: IPCC Channel 1
+ * @arg IPCC_CHANNEL_2: IPCC Channel 2
+ * @arg IPCC_CHANNEL_3: IPCC Channel 3
+ * @arg IPCC_CHANNEL_4: IPCC Channel 4
+ * @arg IPCC_CHANNEL_5: IPCC Channel 5
+ * @arg IPCC_CHANNEL_6: IPCC Channel 6
+ */
+#define __HAL_IPCC_MASK_CHANNEL_IT(__HANDLE__, __CHDIRECTION__, __CHINDEX__) \
+ (((__CHDIRECTION__) == IPCC_CHANNEL_DIR_RX) ? \
+ ((__HANDLE__)->Instance->C1MR |= (IPCC_C1MR_CH1OM_Msk << (__CHINDEX__))) : \
+ ((__HANDLE__)->Instance->C1MR |= (IPCC_C1MR_CH1FM_Msk << (__CHINDEX__))))
+
+/**
+ * @brief Unmask the specified interrupt.
+ * @param __HANDLE__ specifies the IPCC Handle
+ * @param __CHDIRECTION__ specifies the channels Direction
+ * This parameter can be one of the following values:
+ * @arg @ref IPCC_CHANNEL_DIR_TX Transmit channel free interrupt enable
+ * @arg @ref IPCC_CHANNEL_DIR_RX Receive channel occupied interrupt enable
+ * @param __CHINDEX__ specifies the channels number:
+ * This parameter can be one of the following values:
+ * @arg IPCC_CHANNEL_1: IPCC Channel 1
+ * @arg IPCC_CHANNEL_2: IPCC Channel 2
+ * @arg IPCC_CHANNEL_3: IPCC Channel 3
+ * @arg IPCC_CHANNEL_4: IPCC Channel 4
+ * @arg IPCC_CHANNEL_5: IPCC Channel 5
+ * @arg IPCC_CHANNEL_6: IPCC Channel 6
+ */
+#define __HAL_IPCC_UNMASK_CHANNEL_IT(__HANDLE__, __CHDIRECTION__, __CHINDEX__) \
+ (((__CHDIRECTION__) == IPCC_CHANNEL_DIR_RX) ? \
+ ((__HANDLE__)->Instance->C1MR &= ~(IPCC_C1MR_CH1OM_Msk << (__CHINDEX__))) : \
+ ((__HANDLE__)->Instance->C1MR &= ~(IPCC_C1MR_CH1FM_Msk << (__CHINDEX__))))
+
+/**
+ * @}
+ */
+
+/* Exported functions --------------------------------------------------------*/
+/** @defgroup IPCC_Exported_Functions IPCC Exported Functions
+ * @{
+ */
+
+/* Initialization and de-initialization functions *******************************/
+/** @defgroup IPCC_Exported_Functions_Group1 Initialization and deinitialization functions
+ * @{
+ */
+HAL_StatusTypeDef HAL_IPCC_Init(IPCC_HandleTypeDef *hipcc);
+HAL_StatusTypeDef HAL_IPCC_DeInit(IPCC_HandleTypeDef *hipcc);
+void HAL_IPCC_MspInit(IPCC_HandleTypeDef *hipcc);
+void HAL_IPCC_MspDeInit(IPCC_HandleTypeDef *hipcc);
+/**
+ * @}
+ */
+
+/** @defgroup IPCC_Exported_Functions_Group2 Communication functions
+ * @{
+ */
+/* IO operation functions *****************************************************/
+HAL_StatusTypeDef HAL_IPCC_ActivateNotification(IPCC_HandleTypeDef *hipcc, uint32_t ChannelIndex,
+ IPCC_CHANNELDirTypeDef ChannelDir, ChannelCb cb);
+HAL_StatusTypeDef HAL_IPCC_DeActivateNotification(IPCC_HandleTypeDef *hipcc, uint32_t ChannelIndex,
+ IPCC_CHANNELDirTypeDef ChannelDir);
+IPCC_CHANNELStatusTypeDef HAL_IPCC_GetChannelStatus(IPCC_HandleTypeDef const *const hipcc,
+ uint32_t ChannelIndex, IPCC_CHANNELDirTypeDef ChannelDir);
+HAL_StatusTypeDef HAL_IPCC_NotifyCPU(IPCC_HandleTypeDef const *const hipcc, uint32_t ChannelIndex,
+ IPCC_CHANNELDirTypeDef ChannelDir);
+/**
+ * @}
+ */
+
+/** @defgroup IPCC_Exported_Functions_Group3 Peripheral State and Error functions
+ * @{
+ */
+/* Peripheral State and Error functions ****************************************/
+HAL_IPCC_StateTypeDef HAL_IPCC_GetState(IPCC_HandleTypeDef const *const hipcc);
+/**
+ * @}
+ */
+
+/** @defgroup IPCC_IRQ_Handler_and_Callbacks Peripheral IRQ Handler and Callbacks
+ * @{
+ */
+/* IRQHandler and Callbacks used in non blocking modes ************************/
+void HAL_IPCC_TX_IRQHandler(IPCC_HandleTypeDef *const hipcc);
+void HAL_IPCC_RX_IRQHandler(IPCC_HandleTypeDef *const hipcc);
+void HAL_IPCC_TxCallback(IPCC_HandleTypeDef *hipcc, uint32_t ChannelIndex, IPCC_CHANNELDirTypeDef ChannelDir);
+void HAL_IPCC_RxCallback(IPCC_HandleTypeDef *hipcc, uint32_t ChannelIndex, IPCC_CHANNELDirTypeDef ChannelDir);
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+#endif /* IPCC */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* STM32WBxx_HAL_IPCC_H */
+