diff options
-rw-r--r-- | tools/hciattach.c | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/tools/hciattach.c b/tools/hciattach.c index 9668460c..b24f33ab 100644 --- a/tools/hciattach.c +++ b/tools/hciattach.c @@ -228,6 +228,26 @@ static int digi(int fd, struct uart_t *u, struct termios *ti) return 0; } +/* + * BCSP specific initialization + */ +static int bcsp(int fd, struct uart_t *u, struct termios *ti) +{ + ti->c_cflag &= ~CBAUD; + ti->c_cflag |= B115200 | CS8 | CLOCAL | PARENB; + ti->c_cflag &= ~(PARODD|CRTSCTS); + + ti->c_oflag = 0; /* turn off output processing */ + ti->c_lflag = 0; /* no local modes */ + + if (tcsetattr(fd, TCSANOW, ti) < 0) { + perror("Can't set port settings"); + return -1; + } + + return 0; +} + /* * CSR specific initialization * Inspired strongly by code in OpenBT and experimentations with Brainboxes @@ -525,30 +545,32 @@ static int swave(int fd, struct uart_t *u, struct termios *ti) } struct uart_t uart[] = { - { "any", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, NULL }, - { "ericsson", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, ericsson }, - { "digi", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, digi }, + { "any", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, NULL }, + { "ericsson", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, ericsson }, + { "digi", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, digi }, + + { "bcsp", 0x0000, 0x0000, HCI_UART_BCSP, 115200, 0, bcsp }, /* Xircom PCMCIA cards: Credit Card Adapter and Real Port Adapter */ - { "xircom", 0x0105, 0x080a, HCI_UART_H4, 115200, FLOW_CTL, NULL }, + { "xircom", 0x0105, 0x080a, HCI_UART_H4, 115200, FLOW_CTL, NULL }, /* CSR Casira serial adapter or BrainBoxes serial dongle (BL642) */ - { "csr", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, csr }, + { "csr", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, csr }, /* BrainBoxes PCMCIA card (BL620) */ - { "bboxes", 0x0160, 0x0002, HCI_UART_H4, 460800, FLOW_CTL, csr }, + { "bboxes", 0x0160, 0x0002, HCI_UART_H4, 460800, FLOW_CTL, csr }, /* Silicon Wave kits */ - { "swave", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, swave }, + { "swave", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, swave }, /* Sphinx Electronics PICO Card */ - { "picocard", 0x025e, 0x1000, HCI_UART_H4, 115200, FLOW_CTL, NULL }, + { "picocard", 0x025e, 0x1000, HCI_UART_H4, 115200, FLOW_CTL, NULL }, /* Inventel BlueBird Module */ - { "inventel", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, NULL }, + { "inventel", 0x0000, 0x0000, HCI_UART_H4, 115200, FLOW_CTL, NULL }, /* COM One Platinium Bluetooth PC Card */ - { "comone", 0xffff, 0x0101, HCI_UART_H4, 115200, FLOW_CTL, NULL }, + { "comone", 0xffff, 0x0101, HCI_UART_BCSP, 115200, 0, bcsp }, { NULL, 0 } }; |