c95c59f8256352761eae071e10da1e1fa2735683
[fw/stlink] / example / stm32f4 / STM32_USB_OTG_Driver / inc / usb_hcd_int.h
1 /**
2   ******************************************************************************
3   * @file    usb_hcd_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 __HCD_INT_H__
24 #define __HCD_INT_H__
25
26
27 /* Includes ------------------------------------------------------------------*/
28 #include "usb_hcd.h"
29
30
31 /** @addtogroup USB_OTG_DRIVER
32   * @{
33   */
34   
35 /** @defgroup USB_HCD_INT
36   * @brief This file is the 
37   * @{
38   */ 
39
40
41 /** @defgroup USB_HCD_INT_Exported_Defines
42   * @{
43   */ 
44 /**
45   * @}
46   */ 
47
48
49 /** @defgroup USB_HCD_INT_Exported_Types
50   * @{
51   */ 
52 /**
53   * @}
54   */ 
55
56
57 /** @defgroup USB_HCD_INT_Exported_Macros
58   * @{
59   */ 
60
61 #define CLEAR_HC_INT(HC_REGS, intr) \
62   {\
63   USB_OTG_HCINTn_TypeDef  hcint_clear; \
64   hcint_clear.d32 = 0; \
65   hcint_clear.b.intr = 1; \
66   USB_OTG_WRITE_REG32(&((HC_REGS)->HCINT), hcint_clear.d32);\
67   }\
68
69 #define MASK_HOST_INT_CHH(hc_num) { USB_OTG_HCGINTMSK_TypeDef  GINTMSK; \
70     GINTMSK.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK); \
71     GINTMSK.b.chhltd = 0; \
72     USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, GINTMSK.d32);}
73
74 #define UNMASK_HOST_INT_CHH(hc_num) { USB_OTG_HCGINTMSK_TypeDef  GINTMSK; \
75     GINTMSK.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK); \
76     GINTMSK.b.chhltd = 1; \
77     USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, GINTMSK.d32);}
78
79 #define MASK_HOST_INT_ACK(hc_num) { USB_OTG_HCGINTMSK_TypeDef  GINTMSK; \
80     GINTMSK.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK); \
81     GINTMSK.b.ack = 0; \
82     USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, GINTMSK.d32);}
83
84 #define UNMASK_HOST_INT_ACK(hc_num) { USB_OTG_HCGINTMSK_TypeDef  GINTMSK; \
85     GINTMSK.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK); \
86     GINTMSK.b.ack = 1; \
87     USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, GINTMSK.d32);}
88
89 /**
90   * @}
91   */ 
92
93 /** @defgroup USB_HCD_INT_Exported_Variables
94   * @{
95   */ 
96 /**
97   * @}
98   */ 
99
100 /** @defgroup USB_HCD_INT_Exported_FunctionsPrototype
101   * @{
102   */ 
103 /* Callbacks handler */
104 void ConnectCallback_Handler(USB_OTG_CORE_HANDLE *pdev);
105 void Disconnect_Callback_Handler(USB_OTG_CORE_HANDLE *pdev);
106 void Overcurrent_Callback_Handler(USB_OTG_CORE_HANDLE *pdev);
107 uint32_t USBH_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev);
108
109 /**
110   * @}
111   */ 
112
113
114
115 #endif //__HCD_INT_H__
116
117
118 /**
119   * @}
120   */ 
121
122 /**
123   * @}
124   */ 
125 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
126