13d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/******************************************************************************
23d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *
33d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *  Copyright (C) 2009-2012 Broadcom Corporation
43d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *
56ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  Licensed under the Apache License, Version 2.0 (the "License");
66ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  you may not use this file except in compliance with the License.
76ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  You may obtain a copy of the License at:
83d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *
96ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  http://www.apache.org/licenses/LICENSE-2.0
103d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *
116ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  Unless required by applicable law or agreed to in writing, software
126ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  distributed under the License is distributed on an "AS IS" BASIS,
136ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
146ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  See the License for the specific language governing permissions and
156ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  limitations under the License.
163d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *
173d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy ******************************************************************************/
183d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
193d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/******************************************************************************
203d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *
213d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *  Filename:      userial.h
223d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *
233d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *  Description:   Contains definitions used for serial port controls
243d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy *
253d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy ******************************************************************************/
263d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
273d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#ifndef USERIAL_H
283d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_H
293d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
303d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/******************************************************************************
313d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**  Constants & Macros
323d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy******************************************************************************/
333d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
343d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/**** port IDs ****/
353d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_1          0
363d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_2          1
373d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_3          2
383d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_4          3
393d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_5          4
403d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_6          5
413d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_7          6
423d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_8          7
433d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_9          8
443d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_10         9
453d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_11         10
463d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_12         11
473d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_13         12
483d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_14         13
493d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_15         14
503d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_16         15
513d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_17         16
523d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#define USERIAL_PORT_18         17
533d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
543d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamytypedef enum {
553d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy    USERIAL_OP_INIT,
563d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy    USERIAL_OP_RXFLOW_ON,
573d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy    USERIAL_OP_RXFLOW_OFF,
583d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy} userial_ioctl_op_t;
593d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
603d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/******************************************************************************
613d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**  Type definitions
623d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy******************************************************************************/
633d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
643d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/******************************************************************************
653d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**  Extern variables and functions
663d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy******************************************************************************/
673d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
683d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/******************************************************************************
693d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**  Functions
703d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy******************************************************************************/
713d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
723d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/*******************************************************************************
733d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
743d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Function        userial_init
753d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
763d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Description     Initializes the userial driver
773d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
783d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Returns         TRUE/FALSE
793d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
803d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy*******************************************************************************/
813d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamyuint8_t userial_init(void);
823d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
833d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/*******************************************************************************
843d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
853d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Function        userial_open
863d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
87b7049f8573901ca12738fc47508a31ccb1de1c1cYK Jeffrey Chao** Description     Open Bluetooth device with the port ID
883d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
893d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Returns         TRUE/FALSE
903d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
913d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy*******************************************************************************/
92b7049f8573901ca12738fc47508a31ccb1de1c1cYK Jeffrey Chaouint8_t userial_open(uint8_t port);
933d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
943d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/*******************************************************************************
953d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
963d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Function        userial_read
973d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
983d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Description     Read data from the userial port
993d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1006ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Returns         Number of bytes actually read from the userial port and
1013d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**                 copied into p_data.  This may be less than len.
1023d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1033d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy*******************************************************************************/
1048673be81aa6bb05bb9a7747c150d63514625c03bYK Jeffrey Chaouint16_t  userial_read(uint16_t msg_id, uint8_t *p_buffer, uint16_t len);
1053d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
1063d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/*******************************************************************************
1073d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1083d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Function        userial_write
1093d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1103d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Description     Write data to the userial port
1113d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1126ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Returns         Number of bytes actually written to the userial port. This
1133d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**                 may be less than len.
1143d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1153d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy*******************************************************************************/
1168673be81aa6bb05bb9a7747c150d63514625c03bYK Jeffrey Chaouint16_t userial_write(uint16_t msg_id, uint8_t *p_data, uint16_t len);
1173d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
1183d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/*******************************************************************************
1193d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1203d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Function        userial_close
1213d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1223d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Description     Close the userial port
1233d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1243d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Returns         None
1253d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1263d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy*******************************************************************************/
1273d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamyvoid userial_close(void);
1283d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
1293d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy/*******************************************************************************
1303d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1313d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Function        userial_ioctl
1323d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1336ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach** Description     ioctl inteface
1343d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1353d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy** Returns         None
1363d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy**
1373d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy*******************************************************************************/
1383d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamyvoid userial_ioctl(userial_ioctl_op_t op, void *p_data);
1393d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
1403d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy#endif /* USERIAL_H */
1413d576de19430085695937c04dffb2f0c8daf38e5Kausik Sinnaswamy
142