• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 */
96 typedef struct
97 {
98     uint16_t fmt;       /* Data format */
99     uint8_t  baud;      /* Baud rate */
100 } tUSERIAL_CFG;
101 
102 typedef 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 *******************************************************************************/
128 void 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 *******************************************************************************/
139 int 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 *******************************************************************************/
150 void 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 *******************************************************************************/
161 void 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 *******************************************************************************/
172 void userial_vendor_ioctl(userial_vendor_ioctl_op_t op, void *p_data);
173 
174 #endif /* USERIAL_VENDOR_H */
175 
176