userial.h revision e9df6ba5a8fcccf306a80b1670b423be8fe7746a
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/****************************************************************************** 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (C) 2001-2012 Broadcom Corporation 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License"); 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * you may not use this file except in compliance with the License. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * You may obtain a copy of the License at: 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.apache.org/licenses/LICENSE-2.0 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Unless required by applicable law or agreed to in writing, software 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS, 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch * See the License for the specific language governing permissions and 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * limitations under the License. 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ******************************************************************************/ 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)/****************************************************************************** 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) * This file contains serial definitions from WIDCOMM's Universal Embedded 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Drivers API. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ******************************************************************************/ 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef USERIAL_H 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_H 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/******************************************************************************* 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Serial APIs 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*******************************************************************************/ 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/**** port IDs ****/ 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_PORT_1 0 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define USERIAL_PORT_2 1 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define USERIAL_PORT_3 2 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_PORT_4 3 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_PORT_5 4 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_PORT_6 5 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_PORT_7 6 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_PORT_8 7 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define USERIAL_PORT_9 8 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define USERIAL_PORT_10 9 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_PORT_11 10 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_PORT_12 11 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_PORT_13 12 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_PORT_14 13 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_PORT_15 14 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_PORT_16 15 50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define USERIAL_PORT_17 16 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_PORT_18 17 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef UINT8 tUSERIAL_PORT; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**** baud rates ****/ 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_300 0 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_600 1 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_1200 2 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_2400 3 605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define USERIAL_BAUD_9600 4 615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define USERIAL_BAUD_19200 5 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_57600 6 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_115200 7 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_230400 8 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_BAUD_460800 9 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_BAUD_921600 10 67424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#define USERIAL_BAUD_1M 11 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_BAUD_1_5M 12 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_2M 13 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_3M 14 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_4M 15 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BAUD_AUTO 16 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 74a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)/**** Data Format ****/ 75a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Stop Bits */ 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_STOPBITS_1 1 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_STOPBITS_1_5 (1<<1) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_STOPBITS_2 (1<<2) 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Parity Bits */ 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_PARITY_NONE (1<<3) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_PARITY_EVEN (1<<4) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_PARITY_ODD (1<<5) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Data Bits */ 87a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define USERIAL_DATABITS_5 (1<<6) 88a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define USERIAL_DATABITS_6 (1<<7) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_DATABITS_7 (1<<8) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_DATABITS_8 (1<<9) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**** Flow Control ****/ 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FC_NONE 0 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FC_HW 1 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FC_SW 2 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**** Data Buffering Mechanism ****/ 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BUF_BYTE 0 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_BUF_GKI 1 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**** Signals ****/ 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_SIG_RTSCTS 1 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_SIG_DSRDTR (1<<1) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_SIG_RI (1<<2) 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_SIG_CD (1<<3) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_SIG_DTE_DEVICE (1<<4) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**** Errors *****/ 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_ERR_OVERRUN 1 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_ERR_PARITY (1<<1) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_ERR_FRAMING (1<<2) 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_ERR_BREAK (1<<3) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**** Serial Operations ****/ 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_FLUSH 0 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_FLUSH_RX 1 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_FLUSH_TX 2 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_BREAK_OFF 3 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_BREAK_ON 4 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_BAUD_RD 5 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_BAUD_WR 6 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_FMT_RD 7 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_FMT_WR 8 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_SIG_RD 9 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_SIG_WR 10 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_FC_RD 11 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_FC_WR 12 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_CTS_AS_WAKEUP 13 /* H4IBSS */ 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_CTS_AS_FC 14 /* H4IBSS */ 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined LINUX_OS) && (LINUX_OS == TRUE) 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_OP_SCO_UP 20 /* LINUX SCO */ 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_OP_SCO_DOWN 21 /* LINUX SCO */ 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef UINT8 tUSERIAL_OP; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**** Serial feature types ****/ 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_PORT_1 0 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_PORT_2 1 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_PORT_3 2 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_PORT_4 3 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_AUTO 4 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_300 5 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_600 6 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_1200 7 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_2400 8 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_9600 9 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_19200 10 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_57600 11 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_115200 12 1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_FEAT_BAUD_230400 13 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_460800 14 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BAUD_921600 15 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_STOPBITS_1 16 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_STOPBITS_1_5 17 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_STOPBITS_2 18 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_PARITY_NONE 19 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_PARITY_EVEN 20 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_PARITY_ODD 21 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_DATABITS_5 22 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_DATABITS_6 23 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_DATABITS_7 24 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_DATABITS_8 25 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_FC_NONE 26 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_FC_HW 27 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_FC_SW 28 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BUF_BYTE 29 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_BUF_GKI 30 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_SIG_RTS 31 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_SIG_CTS 32 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_SIG_DSR 33 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_SIG_DTR 34 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_SIG_RI 35 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_SIG_CD 36 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_FLUSH 37 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_FLUSH_RX 38 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_FLUSH_TX 39 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_BREAK 40 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_BAUD_RD 41 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_BAUD_WR 42 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_FMT_RD 43 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_FMT_WR 44 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_SIG_RD 45 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_SIG_WR 46 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_FC_RD 47 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_FEAT_OP_FC_WR 48 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef UINT8 tUSERIAL_FEATURE; 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/**** Event types ****/ 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define USERIAL_RX_READY_EVT 0 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_TX_DONE_EVT 1 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_SIG_EVT 2 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_ERR_EVT 3 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define USERIAL_WAKEUP_EVT 4 /* H4IBSS */ 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef UINT8 tUSERIAL_EVT; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Structure used to configure serial port during open */ 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct 2065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){ 2075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) UINT16 fmt; /* Data format */ 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT8 baud; /* Baud rate */ 2095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) UINT8 fc; /* Flow control */ 2105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) UINT8 buf; /* Data buffering mechanism */ 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT8 pool; /* GKI buffer pool for received data */ 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT16 size; /* Size of GKI buffer pool */ 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT16 offset; /* Offset in GKI buffer pool */ 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} tUSERIAL_OPEN_CFG; 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Union used to pass ioctl arguments */ 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef union 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT16 fmt; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT8 baud; 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT8 fc; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT8 sigs; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined LINUX_OS) && (LINUX_OS == TRUE) 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT16 sco_handle; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} tUSERIAL_IOCTL_DATA; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Union to pass event data */ 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef union 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT8 sigs; 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UINT8 error; 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} tUSERIAL_EVT_DATA; 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* callback for events */ 2372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef void (tUSERIAL_CBACK)(tUSERIAL_PORT, tUSERIAL_EVT, tUSERIAL_EVT_DATA *); 2382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/******************************************************************************* 2402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)** Function Prototypes 2412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)*******************************************************************************/ 2422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef __cplusplus 2442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern "C" { 2452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)UDRV_API extern void USERIAL_Init(void *); 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern void USERIAL_Open(tUSERIAL_PORT, tUSERIAL_OPEN_CFG *, tUSERIAL_CBACK *); 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern void USERIAL_ReadBuf(tUSERIAL_PORT, BT_HDR **); 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern UINT16 USERIAL_Read(tUSERIAL_PORT, UINT8 *, UINT16); 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern BOOLEAN USERIAL_WriteBuf(tUSERIAL_PORT, BT_HDR *); 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern UINT16 USERIAL_Write(tUSERIAL_PORT, UINT8 *, UINT16); 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern void USERIAL_Ioctl(tUSERIAL_PORT, tUSERIAL_OP, tUSERIAL_IOCTL_DATA *); 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern void USERIAL_Close(tUSERIAL_PORT); 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern BOOLEAN USERIAL_Feature(tUSERIAL_FEATURE); 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern BOOLEAN USERIAL_IsClosed(); 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern void USERIAL_PowerupDevice(tUSERIAL_PORT port); 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/******************************************************************************* 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ** 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ** Function USERIAL_GetLineSpeed 262868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ** 263868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ** Description This function convert USERIAL baud to line speed. 264d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) ** 265d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) ** Output Parameter None 266d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) ** 267868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ** Returns line speed 268868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ** 2694e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) *******************************************************************************/ 2704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)UDRV_API extern UINT32 USERIAL_GetLineSpeed(UINT8 baud); 2714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)/******************************************************************************* 2722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ** 2737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ** Function USERIAL_GetBaud 2747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ** 2757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ** Description This function convert line speed to USERIAL baud. 2767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ** 2774e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ** Output Parameter None 2782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ** 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ** Returns line speed 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ** 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *******************************************************************************/ 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)UDRV_API extern UINT8 USERIAL_GetBaud(UINT32 line_speed); 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* USERIAL_H */ 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)