| /* |
| * The Linux soundcard driver for 1200 baud and 9600 baud packet radio |
| * (C) 1996-1998 by Thomas Sailer, HB9JNX/AE4WA |
| */ |
| |
| #ifndef _SOUNDMODEM_H |
| #define _SOUNDMODEM_H |
| |
| /* -------------------------------------------------------------------- */ |
| /* |
| * structs for the IOCTL commands |
| */ |
| |
| struct sm_debug_data { |
| unsigned int int_rate; |
| unsigned int mod_cycles; |
| unsigned int demod_cycles; |
| unsigned int dma_residue; |
| }; |
| |
| struct sm_diag_data { |
| unsigned int mode; |
| unsigned int flags; |
| unsigned int samplesperbit; |
| unsigned int datalen; |
| short *data; |
| }; |
| |
| struct sm_mixer_data { |
| unsigned int mixer_type; |
| unsigned int sample_rate; |
| unsigned int bit_rate; |
| unsigned int reg; |
| unsigned int data; |
| }; |
| |
| struct sm_config { |
| int hardware; |
| int mode; |
| }; |
| |
| struct sm_ioctl { |
| int cmd; |
| union { |
| struct sm_config cfg; |
| struct sm_diag_data diag; |
| struct sm_mixer_data mix; |
| struct sm_debug_data dbg; |
| } data; |
| }; |
| |
| /* -------------------------------------------------------------------- */ |
| |
| /* |
| * diagnose modes |
| */ |
| #define SM_DIAGMODE_OFF 0 |
| #define SM_DIAGMODE_INPUT 1 |
| #define SM_DIAGMODE_DEMOD 2 |
| #define SM_DIAGMODE_CONSTELLATION 3 |
| |
| /* |
| * diagnose flags |
| */ |
| #define SM_DIAGFLAG_DCDGATE (1<<0) |
| #define SM_DIAGFLAG_VALID (1<<1) |
| |
| /* |
| * mixer types |
| */ |
| #define SM_MIXER_INVALID 0 |
| #define SM_MIXER_AD1848 0x10 |
| #define SM_MIXER_CRYSTAL 0x11 |
| #define SM_MIXER_CT1335 0x20 |
| #define SM_MIXER_CT1345 0x21 |
| #define SM_MIXER_CT1745 0x22 |
| |
| /* |
| * ioctl values |
| */ |
| #define SMCTL_DIAGNOSE 0x82 |
| #define SMCTL_GETMIXER 0x83 |
| #define SMCTL_SETMIXER 0x84 |
| #define SMCTL_GETDEBUG 0x85 |
| |
| /* -------------------------------------------------------------------- */ |
| |
| #endif /* _SOUNDMODEM_H */ |
| |
| /* --------------------------------------------------------------------- */ |