summaryrefslogtreecommitdiff
path: root/include/userial_vendor.h (plain)
blob: 8e8b84ff7031f92eee82af278bc519c3b79091ec
1/******************************************************************************
2 *
3 * Copyright (C) 2009-2012 Broadcom Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at:
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 ******************************************************************************/
18
19/******************************************************************************
20 *
21 * Filename: userial_vendor.h
22 *
23 * Description: Contains vendor-specific definitions used in serial port
24 * controls
25 *
26 ******************************************************************************/
27
28#ifndef USERIAL_VENDOR_H
29#define USERIAL_VENDOR_H
30
31#include "bt_vendor_brcm.h"
32#include "userial.h"
33
34/******************************************************************************
35** Constants & Macros
36******************************************************************************/
37
38/**** baud rates ****/
39#define USERIAL_BAUD_300 0
40#define USERIAL_BAUD_600 1
41#define USERIAL_BAUD_1200 2
42#define USERIAL_BAUD_2400 3
43#define USERIAL_BAUD_9600 4
44#define USERIAL_BAUD_19200 5
45#define USERIAL_BAUD_57600 6
46#define USERIAL_BAUD_115200 7
47#define USERIAL_BAUD_230400 8
48#define USERIAL_BAUD_460800 9
49#define USERIAL_BAUD_921600 10
50#define USERIAL_BAUD_1M 11
51#define USERIAL_BAUD_1_5M 12
52#define USERIAL_BAUD_2M 13
53#define USERIAL_BAUD_3M 14
54#define USERIAL_BAUD_4M 15
55#define USERIAL_BAUD_AUTO 16
56
57/**** Data Format ****/
58/* Stop Bits */
59#define USERIAL_STOPBITS_1 1
60#define USERIAL_STOPBITS_1_5 (1<<1)
61#define USERIAL_STOPBITS_2 (1<<2)
62
63/* Parity Bits */
64#define USERIAL_PARITY_NONE (1<<3)
65#define USERIAL_PARITY_EVEN (1<<4)
66#define USERIAL_PARITY_ODD (1<<5)
67
68/* Data Bits */
69#define USERIAL_DATABITS_5 (1<<6)
70#define USERIAL_DATABITS_6 (1<<7)
71#define USERIAL_DATABITS_7 (1<<8)
72#define USERIAL_DATABITS_8 (1<<9)
73
74
75#if (BT_WAKE_VIA_USERIAL_IOCTL==TRUE)
76/* These are the ioctl values used for bt_wake ioctl via UART driver. you may
77 * need to redefine them on you platform!
78 * Logically they need to be unique and not colide with existing uart ioctl's.
79 */
80#ifndef USERIAL_IOCTL_BT_WAKE_ASSERT
81#define USERIAL_IOCTL_BT_WAKE_ASSERT 0x8003
82#endif
83#ifndef USERIAL_IOCTL_BT_WAKE_DEASSERT
84#define USERIAL_IOCTL_BT_WAKE_DEASSERT 0x8004
85#endif
86#ifndef USERIAL_IOCTL_BT_WAKE_GET_ST
87#define USERIAL_IOCTL_BT_WAKE_GET_ST 0x8005
88#endif
89#endif // (BT_WAKE_VIA_USERIAL_IOCTL==TRUE)
90
91/******************************************************************************
92** Type definitions
93******************************************************************************/
94
95/* Structure used to configure serial port during open */
96typedef struct
97{
98 uint16_t fmt; /* Data format */
99 uint8_t baud; /* Baud rate */
100} tUSERIAL_CFG;
101
102typedef enum {
103#if (BT_WAKE_VIA_USERIAL_IOCTL==TRUE)
104 USERIAL_OP_ASSERT_BT_WAKE,
105 USERIAL_OP_DEASSERT_BT_WAKE,
106 USERIAL_OP_GET_BT_WAKE_STATE,
107#endif
108 USERIAL_OP_NOP,
109} userial_vendor_ioctl_op_t;
110
111/******************************************************************************
112** Extern variables and functions
113******************************************************************************/
114
115/******************************************************************************
116** Functions
117******************************************************************************/
118
119/*******************************************************************************
120**
121** Function userial_vendor_init
122**
123** Description Initialize userial vendor-specific control block
124**
125** Returns None
126**
127*******************************************************************************/
128void userial_vendor_init(void);
129
130/*******************************************************************************
131**
132** Function userial_vendor_open
133**
134** Description Open the serial port with the given configuration
135**
136** Returns device fd
137**
138*******************************************************************************/
139int userial_vendor_open(tUSERIAL_CFG *p_cfg);
140
141/*******************************************************************************
142**
143** Function userial_vendor_close
144**
145** Description Conduct vendor-specific close work
146**
147** Returns None
148**
149*******************************************************************************/
150void userial_vendor_close(void);
151
152/*******************************************************************************
153**
154** Function userial_vendor_set_baud
155**
156** Description Set new baud rate
157**
158** Returns None
159**
160*******************************************************************************/
161void userial_vendor_set_baud(uint8_t userial_baud);
162
163/*******************************************************************************
164**
165** Function userial_vendor_ioctl
166**
167** Description ioctl inteface
168**
169** Returns None
170**
171*******************************************************************************/
172void userial_vendor_ioctl(userial_vendor_ioctl_op_t op, void *p_data);
173
174#endif /* USERIAL_VENDOR_H */
175
176