1/* 2 * The Linux soundcard driver for 1200 baud and 9600 baud packet radio 3 * (C) 1996-1998 by Thomas Sailer, HB9JNX/AE4WA 4 */ 5 6#ifndef _SOUNDMODEM_H 7#define _SOUNDMODEM_H 8 9/* -------------------------------------------------------------------- */ 10/* 11 * structs for the IOCTL commands 12 */ 13 14struct sm_debug_data { 15 unsigned int int_rate; 16 unsigned int mod_cycles; 17 unsigned int demod_cycles; 18 unsigned int dma_residue; 19}; 20 21struct sm_diag_data { 22 unsigned int mode; 23 unsigned int flags; 24 unsigned int samplesperbit; 25 unsigned int datalen; 26 short *data; 27}; 28 29struct sm_mixer_data { 30 unsigned int mixer_type; 31 unsigned int sample_rate; 32 unsigned int bit_rate; 33 unsigned int reg; 34 unsigned int data; 35}; 36 37struct sm_config { 38 int hardware; 39 int mode; 40}; 41 42struct sm_ioctl { 43 int cmd; 44 union { 45 struct sm_config cfg; 46 struct sm_diag_data diag; 47 struct sm_mixer_data mix; 48 struct sm_debug_data dbg; 49 } data; 50}; 51 52/* -------------------------------------------------------------------- */ 53 54/* 55 * diagnose modes 56 */ 57#define SM_DIAGMODE_OFF 0 58#define SM_DIAGMODE_INPUT 1 59#define SM_DIAGMODE_DEMOD 2 60#define SM_DIAGMODE_CONSTELLATION 3 61 62/* 63 * diagnose flags 64 */ 65#define SM_DIAGFLAG_DCDGATE (1<<0) 66#define SM_DIAGFLAG_VALID (1<<1) 67 68/* 69 * mixer types 70 */ 71#define SM_MIXER_INVALID 0 72#define SM_MIXER_AD1848 0x10 73#define SM_MIXER_CRYSTAL 0x11 74#define SM_MIXER_CT1335 0x20 75#define SM_MIXER_CT1345 0x21 76#define SM_MIXER_CT1745 0x22 77 78/* 79 * ioctl values 80 */ 81#define SMCTL_DIAGNOSE 0x82 82#define SMCTL_GETMIXER 0x83 83#define SMCTL_SETMIXER 0x84 84#define SMCTL_GETDEBUG 0x85 85 86/* -------------------------------------------------------------------- */ 87 88#endif /* _SOUNDMODEM_H */ 89 90/* --------------------------------------------------------------------- */ 91