/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file usbpd_dpm_user.h * @author MCD Application Team * @brief Header file for usbpd_dpm_user.c file ****************************************************************************** * @attention * * Copyright (c) 2026 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. * ****************************************************************************** */ /* USER CODE END Header */ #ifndef __USBPD_DPM_USER_H_ #define __USBPD_DPM_USER_H_ #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ /* USER CODE BEGIN Include */ /* USER CODE END Include */ /** @addtogroup STM32_USBPD_APPLICATION * @{ */ /** @addtogroup STM32_USBPD_APPLICATION_DPM_USER * @{ */ /* Exported typedef ----------------------------------------------------------*/ typedef struct { uint32_t PE_DataSwap : 1U; /*!< support data swap */ uint32_t PE_VconnSwap : 1U; /*!< support VCONN swap */ uint32_t PE_DR_Swap_To_DFP : 1U; /*!< If supported, DR Swap to DFP can be accepted or not by the user else directly rejected */ uint32_t PE_DR_Swap_To_UFP : 1U; /*!< If supported, DR Swap to UFP can be accepted or not by the user else directly rejected */ uint32_t Reserved1 :28U; /*!< Reserved bits */ uint32_t Reserved_ReqPower[6]; /*!< Reserved bits to match with Resquested power information */ USBPD_MIDB_TypeDef DPM_ManuInfoPort; /*!< Manufacturer information used for the port */ uint32_t ReservedSnkCapa[6]; /*!< Reserved bits to match with SnkCapaExt information */ uint16_t ReservedManu; /*!< Reserved bits to match with Manufacturer information */ } USBPD_USER_SettingsTypeDef; typedef struct { uint32_t XID; /*!< Value provided by the USB-IF assigned to the product */ uint16_t VID; /*!< Vendor ID (assigned by the USB-IF) */ uint16_t PID; /*!< Product ID (assigned by the manufacturer) */ } USBPD_IdSettingsTypeDef; /* USER CODE BEGIN Typedef */ /* USER CODE END Typedef */ /* Exported define -----------------------------------------------------------*/ /* USER CODE BEGIN Define */ /* USER CODE END Define */ /* Exported constants --------------------------------------------------------*/ /* USER CODE BEGIN Constant */ /* USER CODE END Constant */ /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN Macro */ /* USER CODE END Macro */ /* Exported variables --------------------------------------------------------*/ /* USER CODE BEGIN Private_Variables */ /* USER CODE END Private_Variables */ /* Exported functions --------------------------------------------------------*/ /** @addtogroup USBPD_USER_EXPORTED_FUNCTIONS * @{ */ /** @addtogroup USBPD_USER_EXPORTED_FUNCTIONS_GROUP1 * @{ */ USBPD_StatusTypeDef USBPD_DPM_UserInit(void); void USBPD_DPM_WaitForTime(uint32_t Time); void USBPD_DPM_UserExecute(void const *argument); void USBPD_DPM_UserCableDetection(uint8_t PortNum, USBPD_CAD_EVENT State); void USBPD_DPM_UserTimerCounter(uint8_t PortNum); /** * @} */ /** @addtogroup USBPD_USER_EXPORTED_FUNCTIONS_GROUP2 * @{ */ void USBPD_DPM_Notification(uint8_t PortNum, USBPD_NotifyEventValue_TypeDef EventVal); USBPD_StatusTypeDef USBPD_DPM_SetupNewPower(uint8_t PortNum); void USBPD_DPM_HardReset(uint8_t PortNum, USBPD_PortPowerRole_TypeDef CurrentRole, USBPD_HR_Status_TypeDef Status); void USBPD_DPM_ExtendedMessageReceived(uint8_t PortNum, USBPD_ExtendedMsg_TypeDef MsgType, uint8_t *ptrData, uint16_t DataSize); void USBPD_DPM_GetDataInfo(uint8_t PortNum, USBPD_CORE_DataInfoType_TypeDef DataId , uint8_t *Ptr, uint32_t *Size); void USBPD_DPM_SetDataInfo(uint8_t PortNum, USBPD_CORE_DataInfoType_TypeDef DataId , uint8_t *Ptr, uint32_t Size); USBPD_StatusTypeDef USBPD_DPM_EvaluateRequest(uint8_t PortNum, USBPD_CORE_PDO_Type_TypeDef *PtrPowerObject); USBPD_StatusTypeDef USBPD_DPM_EvaluateVconnSwap(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_PE_VconnPwr(uint8_t PortNum, USBPD_FunctionalState State); void USBPD_DPM_EnterErrorRecovery(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_EvaluateDataRoleSwap(uint8_t PortNum); USBPD_FunctionalState USBPD_DPM_IsPowerReady(uint8_t PortNum, USBPD_VSAFE_StatusTypeDef Vsafe); /** * @} */ /** @addtogroup USBPD_USER_EXPORTED_FUNCTIONS_GROUP3 * @{ */ USBPD_StatusTypeDef USBPD_DPM_RequestHardReset(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestCableReset(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestGotoMin(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestPing(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestMessageRequest(uint8_t PortNum, uint8_t IndexSrcPDO, uint16_t RequestedVoltage); USBPD_StatusTypeDef USBPD_DPM_RequestGetSourceCapability(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestGetSinkCapability(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestDataRoleSwap(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestPowerRoleSwap(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestVconnSwap(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestSoftReset(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType); USBPD_StatusTypeDef USBPD_DPM_RequestSourceCapability(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestVDM_DiscoveryIdentify(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType); USBPD_StatusTypeDef USBPD_DPM_RequestVDM_DiscoverySVID(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType); USBPD_StatusTypeDef USBPD_DPM_RequestVDM_DiscoveryMode(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType, uint16_t SVID); USBPD_StatusTypeDef USBPD_DPM_RequestVDM_EnterMode(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType, uint16_t SVID, uint8_t ModeIndex); USBPD_StatusTypeDef USBPD_DPM_RequestVDM_ExitMode(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType, uint16_t SVID, uint8_t ModeIndex); USBPD_StatusTypeDef USBPD_DPM_RequestDisplayPortStatus(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType, uint16_t SVID, uint32_t *pDPStatus); USBPD_StatusTypeDef USBPD_DPM_RequestDisplayPortConfig(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType, uint16_t SVID, uint32_t *pDPConfig); USBPD_StatusTypeDef USBPD_DPM_RequestAttention(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType, uint16_t SVID); USBPD_StatusTypeDef USBPD_DPM_RequestAlert(uint8_t PortNum, USBPD_ADO_TypeDef Alert); USBPD_StatusTypeDef USBPD_DPM_RequestGetSourceCapabilityExt(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestGetSinkCapabilityExt(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestGetManufacturerInfo(uint8_t PortNum, USBPD_SOPType_TypeDef SOPType, uint8_t* pManuInfoData); USBPD_StatusTypeDef USBPD_DPM_RequestGetStatus(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestFastRoleSwap(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestGetPPS_Status(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestGetCountryCodes(uint8_t PortNum); USBPD_StatusTypeDef USBPD_DPM_RequestGetCountryInfo(uint8_t PortNum, uint16_t CountryCode); USBPD_StatusTypeDef USBPD_DPM_RequestGetBatteryCapability(uint8_t PortNum, uint8_t *pBatteryCapRef); USBPD_StatusTypeDef USBPD_DPM_RequestGetBatteryStatus(uint8_t PortNum, uint8_t *pBatteryStatusRef); USBPD_StatusTypeDef USBPD_DPM_RequestSecurityRequest(uint8_t PortNum); /* USER CODE BEGIN Function */ /* USER CODE END Function */ /** * @} */ /** * @} */ /** * @} */ /** * @} */ #ifdef __cplusplus } #endif #endif /* __USBPD_DPM_USER_H_ */