Merge pull request #99 from olerem/pre_debian-2016.10.02
[open-ath9k-htc-firmware.git] / target_firmware / magpie_fw_dev / target / inc / magpie / hif_usb.h
1 /*
2  * Copyright (c) 2013 Qualcomm Atheros, Inc.
3  *
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted (subject to the limitations in the
8  * disclaimer below) provided that the following conditions are met:
9  *
10  *  * Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  *  * Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the
16  *    distribution.
17  *
18  *  * Neither the name of Qualcomm Atheros nor the names of its
19  *    contributors may be used to endorse or promote products derived
20  *    from this software without specific prior written permission.
21  *
22  * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
23  * GRANTED BY THIS LICENSE.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
24  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
25  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
26  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
31  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
32  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
33  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
34  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35  */
36
37 #ifndef __HIF_USB_H__
38 #define __HIF_USB_H__
39
40 #include <hif_api.h>
41
42 #include <sys_cfg.h>
43 #include <vdesc_api.h>
44 #include <vbuf_api.h>
45 //#include <desc.h>
46 //#include <dma_engine_api.h>
47
48 #define HIF_USB_PIPE_TX             1
49 #define HIF_USB_PIPE_RX             2
50 #define HIF_USB_PIPE_INTERRUPT      3
51 #define HIF_USB_PIPE_COMMAND        4
52 #define HIF_USB_PIPE_HP_TX          5
53 #define HIF_USB_PIPE_MP_TX          6
54
55 struct VBUF_QUEUE
56 {
57     VBUF *head;
58     VBUF *tail;
59 };
60
61     /* the mailbox hardware layer context */
62 typedef struct _HIF_USB_CONTEXT {
63     HIF_CALLBACK                hifCb; 
64     struct zsDmaQueue           dnQ;
65     struct zsTxDmaQueue         upQ;
66 #if SYSTEM_MODULE_HP_EP5
67     struct zsDmaQueue           hpdnQ;  // high priority
68 #endif
69 #if SYSTEM_MODULE_HP_EP6
70     struct zsDmaQueue           mpdnQ;  // medium priority
71 #endif
72     //struct VBUF_QUEUE           upVbufQ;
73     VBUF                                *cmdQueue;
74     struct VBUF_QUEUE           eventBufQ;
75     
76     // Left a door for extension the structure
77     void *pReserved;      
78 } HIF_USB_CONTEXT;
79
80 void hif_usb_module_install(struct hif_api *apis);
81              
82 #endif