5 A Linux/Unix toolset and driver for Nokia mobile phones.
7 Copyright (C) 1999 Hugh Blemings & Pavel JanÃk ml.
9 Released under the terms of the GNU GPL, see file COPYING for more details.
11 Last modification: Wed Dec 15 00:17:17 MET 1999
12 Modified by Marcel Holtmann <marcel@rvs.uni-bielefeld.de>
16 #include "unixserial.h"
19 #define TEKRAM_B115200 0x00
20 #define TEKRAM_B57600 0x01
21 #define TEKRAM_B38400 0x02
22 #define TEKRAM_B19200 0x03
23 #define TEKRAM_B9600 0x04
25 #define TEKRAM_PW 0x10 /* Pulse select bit */
29 * Structure to store the filedescriptor we use.
33 int device_portfd = -1;
35 int device_getfd(void) {
40 int device_open(__const char *__file) {
42 device_portfd = serial_opendevice(__file);
44 return (device_portfd >= 0);
47 void device_close(void) {
49 serial_setdtrrts(device_portfd, 0, 0);
51 serial_close(device_portfd);
54 void device_reset(void) {
56 serial_setdtrrts(device_portfd, 0, 0);
60 serial_setdtrrts(device_portfd, 1, 0);
64 serial_setdtrrts(device_portfd, 1, 1);
69 serial_changespeed(device_portfd, 9600);
72 void device_setdtrrts(int __dtr, int __rts) {
74 serial_setdtrrts(device_portfd, __dtr, __rts);
77 void device_changespeed(int __speed) {
79 unsigned char speedbyte;
85 case 9600: speedbyte = TEKRAM_PW | TEKRAM_B9600; break;
86 case 19200: speedbyte = TEKRAM_PW | TEKRAM_B19200; break;
87 case 38400: speedbyte = TEKRAM_PW | TEKRAM_B38400; break;
88 case 57600: speedbyte = TEKRAM_PW | TEKRAM_B57600; break;
89 case 115200: speedbyte = TEKRAM_PW | TEKRAM_B115200; break;
96 serial_setdtrrts(device_portfd, 1, 0);
100 serial_write(device_portfd, &speedbyte, 1);
104 serial_setdtrrts(device_portfd, 1, 1);
107 serial_changespeed(device_portfd, __speed);
110 size_t device_read(__ptr_t __buf, size_t __nbytes) {
112 return (serial_read(device_portfd, __buf, __nbytes));
115 size_t device_write(__const __ptr_t __buf, size_t __n) {
117 return (serial_write(device_portfd, __buf, __n));