Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * sound/sb_mixer.h |
| 3 | * |
| 4 | * Definitions for the SB Pro and SB16 mixers |
| 5 | */ |
| 6 | /* |
| 7 | * Copyright (C) by Hannu Savolainen 1993-1997 |
| 8 | * |
| 9 | * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL) |
| 10 | * Version 2 (June 1991). See the "COPYING" file distributed with this software |
| 11 | * for more info. |
| 12 | */ |
| 13 | |
| 14 | /* |
| 15 | * Modified: |
| 16 | * Hunyue Yau Jan 6 1994 |
| 17 | * Added defines for the Sound Galaxy NX Pro mixer. |
| 18 | * |
| 19 | * Rolf Fokkens Dec 20 1998 |
| 20 | * Added defines for some ES188x chips. |
| 21 | * |
| 22 | * Rolf Fokkens Dec 27 1998 |
| 23 | * Moved static stuff to sb_mixer.c |
| 24 | * |
| 25 | */ |
| 26 | /* |
| 27 | * Mixer registers |
| 28 | * |
| 29 | * NOTE! RECORD_SRC == IN_FILTER |
| 30 | */ |
| 31 | |
| 32 | /* |
| 33 | * Mixer registers of SB Pro |
| 34 | */ |
| 35 | #define VOC_VOL 0x04 |
| 36 | #define MIC_VOL 0x0A |
| 37 | #define MIC_MIX 0x0A |
| 38 | #define RECORD_SRC 0x0C |
| 39 | #define IN_FILTER 0x0C |
| 40 | #define OUT_FILTER 0x0E |
| 41 | #define MASTER_VOL 0x22 |
| 42 | #define FM_VOL 0x26 |
| 43 | #define CD_VOL 0x28 |
| 44 | #define LINE_VOL 0x2E |
| 45 | #define IRQ_NR 0x80 |
| 46 | #define DMA_NR 0x81 |
| 47 | #define IRQ_STAT 0x82 |
| 48 | #define OPSW 0x3c |
| 49 | |
| 50 | /* |
| 51 | * Additional registers on the SG NX Pro |
| 52 | */ |
| 53 | #define COVOX_VOL 0x42 |
| 54 | #define TREBLE_LVL 0x44 |
| 55 | #define BASS_LVL 0x46 |
| 56 | |
| 57 | #define FREQ_HI (1 << 3)/* Use High-frequency ANFI filters */ |
| 58 | #define FREQ_LOW 0 /* Use Low-frequency ANFI filters */ |
| 59 | #define FILT_ON 0 /* Yes, 0 to turn it on, 1 for off */ |
| 60 | #define FILT_OFF (1 << 5) |
| 61 | |
| 62 | #define MONO_DAC 0x00 |
| 63 | #define STEREO_DAC 0x02 |
| 64 | |
| 65 | /* |
| 66 | * Mixer registers of SB16 |
| 67 | */ |
| 68 | #define SB16_OMASK 0x3c |
| 69 | #define SB16_IMASK_L 0x3d |
| 70 | #define SB16_IMASK_R 0x3e |
| 71 | |
| 72 | #define LEFT_CHN 0 |
| 73 | #define RIGHT_CHN 1 |
| 74 | |
| 75 | /* |
| 76 | * 3DSE register of AWE32/64 |
| 77 | */ |
| 78 | #define AWE_3DSE 0x90 |
| 79 | |
| 80 | /* |
| 81 | * Mixer registers of ALS007 |
| 82 | */ |
| 83 | #define ALS007_RECORD_SRC 0x6c |
| 84 | #define ALS007_OUTPUT_CTRL1 0x3c |
| 85 | #define ALS007_OUTPUT_CTRL2 0x4c |
| 86 | |
| 87 | #define MIX_ENT(name, reg_l, bit_l, len_l, reg_r, bit_r, len_r) \ |
| 88 | {{reg_l, bit_l, len_l}, {reg_r, bit_r, len_r}} |
| 89 | |
| 90 | /* |
| 91 | * Recording sources (SB Pro) |
| 92 | */ |
| 93 | |
| 94 | #define SRC__MIC 1 /* Select Microphone recording source */ |
| 95 | #define SRC__CD 3 /* Select CD recording source */ |
| 96 | #define SRC__LINE 7 /* Use Line-in for recording source */ |
| 97 | |
| 98 | /* |
| 99 | * Recording sources for ALS-007 |
| 100 | */ |
| 101 | |
| 102 | #define ALS007_MIC 4 |
| 103 | #define ALS007_LINE 6 |
| 104 | #define ALS007_CD 2 |
| 105 | #define ALS007_SYNTH 7 |