Merge pull request #93 from zyp/master
[fw/stlink] / example / stm32f4 / STM32_USB_OTG_Driver / inc / usb_dcd_int.h
1 /**
2   ******************************************************************************
3   * @file    usb_dcd_int.h
4   * @author  MCD Application Team
5   * @version V2.0.0
6   * @date    22-July-2011
7   * @brief   Peripheral Device Interface Layer
8   ******************************************************************************
9   * @attention 
10   *
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.
17   *
18   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
19   ******************************************************************************
20   */
21
22 /* Define to prevent recursive inclusion -------------------------------------*/
23 #ifndef USB_DCD_INT_H__
24 #define USB_DCD_INT_H__
25
26 /* Includes ------------------------------------------------------------------*/
27 #include "usb_dcd.h"
28
29
30
31 /** @addtogroup USB_OTG_DRIVER
32   * @{
33   */
34   
35 /** @defgroup USB_DCD_INT
36   * @brief This file is the 
37   * @{
38   */ 
39
40
41 /** @defgroup USB_DCD_INT_Exported_Defines
42   * @{
43   */ 
44
45 typedef struct _USBD_DCD_INT
46 {
47   uint8_t (* DataOutStage) (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum);
48   uint8_t (* DataInStage)  (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum);
49   uint8_t (* SetupStage) (USB_OTG_CORE_HANDLE *pdev);
50   uint8_t (* SOF) (USB_OTG_CORE_HANDLE *pdev);
51   uint8_t (* Reset) (USB_OTG_CORE_HANDLE *pdev);
52   uint8_t (* Suspend) (USB_OTG_CORE_HANDLE *pdev);
53   uint8_t (* Resume) (USB_OTG_CORE_HANDLE *pdev);
54   uint8_t (* IsoINIncomplete) (USB_OTG_CORE_HANDLE *pdev);
55   uint8_t (* IsoOUTIncomplete) (USB_OTG_CORE_HANDLE *pdev);  
56   
57   uint8_t (* DevConnected) (USB_OTG_CORE_HANDLE *pdev);
58   uint8_t (* DevDisconnected) (USB_OTG_CORE_HANDLE *pdev);   
59   
60 }USBD_DCD_INT_cb_TypeDef;
61
62 extern USBD_DCD_INT_cb_TypeDef *USBD_DCD_INT_fops;
63 /**
64   * @}
65   */ 
66
67
68 /** @defgroup USB_DCD_INT_Exported_Types
69   * @{
70   */ 
71 /**
72   * @}
73   */ 
74
75 /** @defgroup USB_DCD_INT_Exported_Macros
76   * @{
77   */ 
78
79 #define CLEAR_IN_EP_INTR(epnum,intr) \
80   diepint.d32=0; \
81   diepint.b.intr = 1; \
82   USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[epnum]->DIEPINT,diepint.d32);
83
84 #define CLEAR_OUT_EP_INTR(epnum,intr) \
85   doepint.d32=0; \
86   doepint.b.intr = 1; \
87   USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[epnum]->DOEPINT,doepint.d32);
88
89 /**
90   * @}
91   */ 
92
93 /** @defgroup USB_DCD_INT_Exported_Variables
94   * @{
95   */ 
96 /**
97   * @}
98   */ 
99
100 /** @defgroup USB_DCD_INT_Exported_FunctionsPrototype
101   * @{
102   */ 
103
104 uint32_t USBD_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev);
105
106 /**
107   * @}
108   */ 
109
110
111 #endif // USB_DCD_INT_H__
112
113 /**
114   * @}
115   */ 
116
117 /**
118   * @}
119   */ 
120 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
121