2 ******************************************************************************
4 * @author MCD Application Team
7 * @brief OTG Core Layer
8 ******************************************************************************
11 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
12 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
13 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
14 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
15 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
16 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
18 * <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2>
19 ******************************************************************************
22 /* Includes ------------------------------------------------------------------*/
23 #include "usb_defines.h"
28 /** @addtogroup USB_OTG_DRIVER
33 * @brief This file is the interface between EFSL ans Host mass-storage class
38 /** @defgroup USB_OTG_Private_Defines
46 /** @defgroup USB_OTG_Private_TypesDefinitions
55 /** @defgroup USB_OTG_Private_Macros
63 /** @defgroup USB_OTG_Private_Variables
71 /** @defgroup USB_OTG_Private_FunctionPrototypes
75 static uint32_t USB_OTG_Read_itr(USB_OTG_CORE_HANDLE *pdev);
82 /** @defgroup USB_OTG_Private_Functions
87 /* OTG Interrupt Handler */
91 * @brief STM32_USBO_OTG_ISR_Handler
96 uint32_t STM32_USBO_OTG_ISR_Handler(USB_OTG_CORE_HANDLE *pdev)
99 USB_OTG_GINTSTS_TypeDef gintsts ;
102 gintsts.d32 = USB_OTG_Read_itr(pdev);
103 if (gintsts.d32 == 0)
107 if (gintsts.b.otgintr)
109 retval |= 1;//USB_OTG_HandleOTG_ISR(pdev);
111 if (gintsts.b.conidstschng)
113 retval |= 2;//USB_OTG_HandleConnectorIDStatusChange_ISR(pdev);
115 if (gintsts.b.sessreqintr)
117 retval |= 3;//USB_OTG_HandleSessionRequest_ISR(pdev);
124 * @brief USB_OTG_Read_itr
125 * returns the Core Interrupt register
129 static uint32_t USB_OTG_Read_itr(USB_OTG_CORE_HANDLE *pdev)
131 USB_OTG_GINTSTS_TypeDef gintsts;
132 USB_OTG_GINTMSK_TypeDef gintmsk;
133 USB_OTG_GINTMSK_TypeDef gintmsk_common;
138 gintmsk_common.d32 = 0;
141 gintmsk_common.b.sessreqintr = 1;
142 gintmsk_common.b.conidstschng = 1;
143 gintmsk_common.b.otgintr = 1;
145 gintsts.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTSTS);
146 gintmsk.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTMSK);
147 return ((gintsts.d32 & gintmsk.d32 ) & gintmsk_common.d32);
152 * @brief USB_OTG_GetCurrentState
153 * Return current OTG State
157 uint32_t USB_OTG_GetCurrentState (USB_OTG_CORE_HANDLE *pdev)
159 return pdev->otg.OTG_State;
175 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/