35#ifdef HAL_PCD_MODULE_ENABLED
37#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
62#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
89 hpcd->
Instance->DIEPTXF0_HNPTXFSIZ = ((uint32_t)size << 16) | Tx_Offset;
93 Tx_Offset += (hpcd->
Instance->DIEPTXF0_HNPTXFSIZ) >> 16;
94 for (i = 0U; i < (fifo - 1U); i++)
96 Tx_Offset += (hpcd->
Instance->DIEPTXF[i] >> 16);
100 hpcd->
Instance->DIEPTXF[fifo - 1U] = ((uint32_t)size << 16) | Tx_Offset;
118#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) \
119 || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) \
120 || defined(STM32F423xx)
128 USB_OTG_GlobalTypeDef *USBx = hpcd->
Instance;
132 USBx->GINTMSK |= USB_OTG_GINTMSK_LPMINTM;
133 USBx->GLPMCFG |= (USB_OTG_GLPMCFG_LPMEN | USB_OTG_GLPMCFG_LPMACK | USB_OTG_GLPMCFG_ENBESL);
145 USB_OTG_GlobalTypeDef *USBx = hpcd->
Instance;
148 USBx->GINTMSK &= ~USB_OTG_GINTMSK_LPMINTM;
149 USBx->GLPMCFG &= ~(USB_OTG_GLPMCFG_LPMEN | USB_OTG_GLPMCFG_LPMACK | USB_OTG_GLPMCFG_ENBESL);
156#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) \
157 || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
165 USB_OTG_GlobalTypeDef *USBx = hpcd->
Instance;
169 USBx->GCCFG |= USB_OTG_GCCFG_DCDEN;
175 if ((USBx->GCCFG & USB_OTG_GCCFG_DCDET) == USB_OTG_GCCFG_DCDET)
177#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
186 USBx->GCCFG &= ~USB_OTG_GCCFG_DCDEN;
188 USBx->GCCFG |= USB_OTG_GCCFG_PDEN;
191 if ((USBx->GCCFG & USB_OTG_GCCFG_PDET) == 0U)
194#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
204 USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN);
206 USBx->GCCFG |= USB_OTG_GCCFG_SDEN;
209 if ((USBx->GCCFG & USB_OTG_GCCFG_SDET) == USB_OTG_GCCFG_SDET)
212#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
221#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
230 (void)HAL_PCDEx_DeActivateBCD(hpcd);
235#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
243#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
258 USB_OTG_GlobalTypeDef *USBx = hpcd->
Instance;
260 USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN);
261 USBx->GCCFG &= ~(USB_OTG_GCCFG_SDEN);
264 USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN);
267 USBx->GCCFG |= USB_OTG_GCCFG_BCDEN;
281 USB_OTG_GlobalTypeDef *USBx = hpcd->
Instance;
283 USBx->GCCFG &= ~(USB_OTG_GCCFG_SDEN);
284 USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN);
287 USBx->GCCFG &= ~(USB_OTG_GCCFG_BCDEN);
void HAL_Delay(uint32_t Delay)
This function provides minimum delay (in milliseconds) based on variable incremented.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
HAL_StatusTypeDef HAL_PCDEx_SetRxFiFo(PCD_HandleTypeDef *hpcd, uint16_t size)
Set Rx FIFO.
HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd)
Deactivate LPM feature.
void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
Send LPM message to user layer callback.
void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg)
Send BatteryCharging message to user layer callback.
HAL_StatusTypeDef HAL_PCDEx_SetTxFiFo(PCD_HandleTypeDef *hpcd, uint8_t fifo, uint16_t size)
Set Tx FIFO.
HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd)
Activate LPM feature.
@ PCD_BCD_CONTACT_DETECTION
@ PCD_BCD_STD_DOWNSTREAM_PORT
@ PCD_BCD_DEDICATED_CHARGING_PORT
@ PCD_BCD_DISCOVERY_COMPLETED
@ PCD_BCD_CHARGING_DOWNSTREAM_PORT
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef
HAL Status structures definition
PCD Handle Structure definition.
uint32_t battery_charging_active
PCD_LPM_StateTypeDef LPM_State