1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /*****************************************************************************/ 3 4 /* 5 * yam.h -- YAM radio modem driver. 6 * 7 * Copyright (C) 1998 Frederic Rible F1OAT (frible@teaser.fr) 8 * Adapted from baycom.c driver written by Thomas Sailer (sailer@ife.ee.ethz.ch) 9 * 10 * Please note that the GPL allows you to use the driver, NOT the radio. 11 * In order to use the radio, you need a license from the communications 12 * authority of your country. 13 */ 14 15 /*****************************************************************************/ 16 17 #define SIOCYAMRESERVED (0) 18 #define SIOCYAMSCFG (1) /* Set configuration */ 19 #define SIOCYAMGCFG (2) /* Get configuration */ 20 #define SIOCYAMSMCS (3) /* Set mcs data */ 21 22 #define YAM_IOBASE (1 << 0) 23 #define YAM_IRQ (1 << 1) 24 #define YAM_BITRATE (1 << 2) /* Bit rate of radio port ->57600 */ 25 #define YAM_MODE (1 << 3) /* 0=simplex 1=duplex 2=duplex+tempo */ 26 #define YAM_HOLDDLY (1 << 4) /* duplex tempo (sec) */ 27 #define YAM_TXDELAY (1 << 5) /* Tx Delay (ms) */ 28 #define YAM_TXTAIL (1 << 6) /* Tx Tail (ms) */ 29 #define YAM_PERSIST (1 << 7) /* Persist (ms) */ 30 #define YAM_SLOTTIME (1 << 8) /* Slottime (ms) */ 31 #define YAM_BAUDRATE (1 << 9) /* Baud rate of rs232 port ->115200 */ 32 33 #define YAM_MAXBITRATE 57600 34 #define YAM_MAXBAUDRATE 115200 35 #define YAM_MAXMODE 2 36 #define YAM_MAXHOLDDLY 99 37 #define YAM_MAXTXDELAY 999 38 #define YAM_MAXTXTAIL 999 39 #define YAM_MAXPERSIST 255 40 #define YAM_MAXSLOTTIME 999 41 42 #define YAM_FPGA_SIZE 5302 43 44 struct yamcfg { 45 unsigned int mask; /* Mask of commands */ 46 unsigned int iobase; /* IO Base of COM port */ 47 unsigned int irq; /* IRQ of COM port */ 48 unsigned int bitrate; /* Bit rate of radio port */ 49 unsigned int baudrate; /* Baud rate of the RS232 port */ 50 unsigned int txdelay; /* TxDelay */ 51 unsigned int txtail; /* TxTail */ 52 unsigned int persist; /* Persistence */ 53 unsigned int slottime; /* Slottime */ 54 unsigned int mode; /* mode 0 (simp), 1(Dupl), 2(Dupl+delay) */ 55 unsigned int holddly; /* PTT delay in FullDuplex 2 mode */ 56 }; 57 58 struct yamdrv_ioctl_cfg { 59 int cmd; 60 struct yamcfg cfg; 61 }; 62 63 struct yamdrv_ioctl_mcs { 64 int cmd; 65 unsigned int bitrate; 66 unsigned char bits[YAM_FPGA_SIZE]; 67 }; 68