aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/bcmdhd/uamp_api.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/bcmdhd/uamp_api.h')
-rw-r--r--drivers/net/wireless/bcmdhd/uamp_api.h176
1 files changed, 176 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcmdhd/uamp_api.h b/drivers/net/wireless/bcmdhd/uamp_api.h
new file mode 100644
index 00000000000..c51c68cd0ee
--- /dev/null
+++ b/drivers/net/wireless/bcmdhd/uamp_api.h
@@ -0,0 +1,176 @@
1/*
2 * Name: uamp_api.h
3 *
4 * Description: Universal AMP API
5 *
6 * Copyright (C) 1999-2011, Broadcom Corporation
7 *
8 * Unless you and Broadcom execute a separate written software license
9 * agreement governing use of this software, this software is licensed to you
10 * under the terms of the GNU General Public License version 2 (the "GPL"),
11 * available at http://www.broadcom.com/licenses/GPLv2.php, with the
12 * following added to such license:
13 *
14 * As a special exception, the copyright holders of this software give you
15 * permission to link this software with independent modules, and to copy and
16 * distribute the resulting executable under terms of your choice, provided that
17 * you also meet, for each linked independent module, the terms and conditions of
18 * the license of that module. An independent module is a module which is not
19 * derived from this software. The special exception does not apply to any
20 * modifications of the software.
21 *
22 * Notwithstanding the above, under no circumstances may you combine this
23 * software in any way with any other Broadcom software provided under a license
24 * other than the GPL, without Broadcom's express prior written consent.
25 *
26 * $Id: uamp_api.h,v 1.2.8.1 2011-02-05 00:16:14 Exp $
27 *
28 */
29#ifndef UAMP_API_H
30#define UAMP_API_H
31
32
33#include "typedefs.h"
34
35
36/*****************************************************************************
37** Constant and Type Definitions
38******************************************************************************
39*/
40
41#define BT_API
42
43/* Types. */
44typedef bool BOOLEAN;
45typedef uint8 UINT8;
46typedef uint16 UINT16;
47
48
49/* UAMP identifiers */
50#define UAMP_ID_1 1
51#define UAMP_ID_2 2
52typedef UINT8 tUAMP_ID;
53
54/* UAMP event ids (used by UAMP_CBACK) */
55#define UAMP_EVT_RX_READY 0 /* Data from AMP controller is ready to be read */
56#define UAMP_EVT_CTLR_REMOVED 1 /* Controller removed */
57#define UAMP_EVT_CTLR_READY 2 /* Controller added/ready */
58typedef UINT8 tUAMP_EVT;
59
60
61/* UAMP Channels */
62#define UAMP_CH_HCI_CMD 0 /* HCI Command channel */
63#define UAMP_CH_HCI_EVT 1 /* HCI Event channel */
64#define UAMP_CH_HCI_DATA 2 /* HCI ACL Data channel */
65typedef UINT8 tUAMP_CH;
66
67/* tUAMP_EVT_DATA: union for event-specific data, used by UAMP_CBACK */
68typedef union {
69 tUAMP_CH channel; /* UAMP_EVT_RX_READY: channel for which rx occured */
70} tUAMP_EVT_DATA;
71
72
73/*****************************************************************************
74**
75** Function: UAMP_CBACK
76**
77** Description: Callback for events. Register callback using UAMP_Init.
78**
79** Parameters amp_id: AMP device identifier that generated the event
80** amp_evt: event id
81** p_amp_evt_data: pointer to event-specific data
82**
83******************************************************************************
84*/
85typedef void (*tUAMP_CBACK)(tUAMP_ID amp_id, tUAMP_EVT amp_evt, tUAMP_EVT_DATA *p_amp_evt_data);
86
87/*****************************************************************************
88** external function declarations
89******************************************************************************
90*/
91#ifdef __cplusplus
92extern "C"
93{
94#endif
95
96/*****************************************************************************
97**
98** Function: UAMP_Init
99**
100** Description: Initialize UAMP driver
101**
102** Parameters p_cback: Callback function for UAMP event notification
103**
104******************************************************************************
105*/
106BT_API BOOLEAN UAMP_Init(tUAMP_CBACK p_cback);
107
108
109/*****************************************************************************
110**
111** Function: UAMP_Open
112**
113** Description: Open connection to local AMP device.
114**
115** Parameters app_id: Application specific AMP identifer. This value
116** will be included in AMP messages sent to the
117** BTU task, to identify source of the message
118**
119******************************************************************************
120*/
121BT_API BOOLEAN UAMP_Open(tUAMP_ID amp_id);
122
123/*****************************************************************************
124**
125** Function: UAMP_Close
126**
127** Description: Close connection to local AMP device.
128**
129** Parameters app_id: Application specific AMP identifer.
130**
131******************************************************************************
132*/
133BT_API void UAMP_Close(tUAMP_ID amp_id);
134
135
136/*****************************************************************************
137**
138** Function: UAMP_Write
139**
140** Description: Send buffer to AMP device. Frees GKI buffer when done.
141**
142**
143** Parameters: app_id: AMP identifer.
144** p_buf: pointer to buffer to write
145** num_bytes: number of bytes to write
146** channel: UAMP_CH_HCI_ACL, or UAMP_CH_HCI_CMD
147**
148** Returns: number of bytes written
149**
150******************************************************************************
151*/
152BT_API UINT16 UAMP_Write(tUAMP_ID amp_id, UINT8 *p_buf, UINT16 num_bytes, tUAMP_CH channel);
153
154/*****************************************************************************
155**
156** Function: UAMP_Read
157**
158** Description: Read incoming data from AMP. Call after receiving a
159** UAMP_EVT_RX_READY callback event.
160**
161** Parameters: app_id: AMP identifer.
162** p_buf: pointer to buffer for holding incoming AMP data
163** buf_size: size of p_buf
164** channel: UAMP_CH_HCI_ACL, or UAMP_CH_HCI_EVT
165**
166** Returns: number of bytes read
167**
168******************************************************************************
169*/
170BT_API UINT16 UAMP_Read(tUAMP_ID amp_id, UINT8 *p_buf, UINT16 buf_size, tUAMP_CH channel);
171
172#ifdef __cplusplus
173}
174#endif
175
176#endif /* UAMP_API_H */