xref: /minix3/minix/drivers/audio/cmi8738/mixer.h (revision 37e23b1cc7a8bf4f9734839628f9e4ce93b7b5d8)
1*37e23b1cSJia-Ju Bai #ifndef _MIXER_H
2*37e23b1cSJia-Ju Bai #define _MIXER_H
3*37e23b1cSJia-Ju Bai 
4*37e23b1cSJia-Ju Bai #include "cmi8738.h"
5*37e23b1cSJia-Ju Bai 
6*37e23b1cSJia-Ju Bai #ifdef MIXER_AK4531
7*37e23b1cSJia-Ju Bai #define MASTER_VOLUME_LCH	0x00
8*37e23b1cSJia-Ju Bai #define MASTER_VOLUME_RCH	0x01
9*37e23b1cSJia-Ju Bai #define FM_VOLUME_LCH		0x04
10*37e23b1cSJia-Ju Bai #define FM_VOLUME_RCH		0x05
11*37e23b1cSJia-Ju Bai #define CD_AUDIO_VOLUME_LCH	0x06
12*37e23b1cSJia-Ju Bai #define CD_AUDIO_VOLUME_RCH	0x07
13*37e23b1cSJia-Ju Bai #define LINE_VOLUME_LCH		0x08
14*37e23b1cSJia-Ju Bai #define LINE_VOLUME_RCH		0x09
15*37e23b1cSJia-Ju Bai #define MIC_VOLUME			0x0e
16*37e23b1cSJia-Ju Bai #define MONO_OUT_VOLUME		0x0f
17*37e23b1cSJia-Ju Bai #endif
18*37e23b1cSJia-Ju Bai 
19*37e23b1cSJia-Ju Bai #ifdef MIXER_SB16
20*37e23b1cSJia-Ju Bai #define SB16_MASTER_LEFT	0x30
21*37e23b1cSJia-Ju Bai #define SB16_MASTER_RIGHT	0x31
22*37e23b1cSJia-Ju Bai #define SB16_DAC_LEFT		0x32
23*37e23b1cSJia-Ju Bai #define SB16_DAC_RIGHT		0x33
24*37e23b1cSJia-Ju Bai #define SB16_FM_LEFT		0x34
25*37e23b1cSJia-Ju Bai #define SB16_FM_RIGHT		0x35
26*37e23b1cSJia-Ju Bai #define SB16_CD_LEFT		0x36
27*37e23b1cSJia-Ju Bai #define SB16_CD_RIGHT		0x37
28*37e23b1cSJia-Ju Bai #define SB16_LINE_LEFT		0x38
29*37e23b1cSJia-Ju Bai #define SB16_LINE_RIGHT		0x39
30*37e23b1cSJia-Ju Bai #define SB16_MIC_LEVEL		0x3a
31*37e23b1cSJia-Ju Bai #define SB16_PC_LEVEL		0x3b
32*37e23b1cSJia-Ju Bai #define SB16_TREBLE_LEFT	0x44
33*37e23b1cSJia-Ju Bai #define SB16_TREBLE_RIGHT	0x45
34*37e23b1cSJia-Ju Bai #define SB16_BASS_LEFT		0x46
35*37e23b1cSJia-Ju Bai #define SB16_BASS_RIGHT		0x47
36*37e23b1cSJia-Ju Bai #endif
37*37e23b1cSJia-Ju Bai 
38*37e23b1cSJia-Ju Bai #ifdef MIXER_AC97
39*37e23b1cSJia-Ju Bai #define AC97_MASTER_VOLUME			0x02
40*37e23b1cSJia-Ju Bai #define AC97_AUX_OUT_VOLUME			0x04
41*37e23b1cSJia-Ju Bai #define AC97_MONO_VOLUME			0x06
42*37e23b1cSJia-Ju Bai #define AC97_MASTER_TONE			0x08
43*37e23b1cSJia-Ju Bai #define AC97_PC_BEEP_VOLUME			0x0a
44*37e23b1cSJia-Ju Bai #define AC97_PHONE_VOLUME			0x0c
45*37e23b1cSJia-Ju Bai #define AC97_MIC_VOLUME				0x0e
46*37e23b1cSJia-Ju Bai #define AC97_LINE_IN_VOLUME			0x10
47*37e23b1cSJia-Ju Bai #define AC97_CD_VOLUME				0x12
48*37e23b1cSJia-Ju Bai #define AC97_VIDEO_VOLUME			0x14
49*37e23b1cSJia-Ju Bai #define AC97_AUX_IN_VOLUME			0x16
50*37e23b1cSJia-Ju Bai #define AC97_PCM_OUT_VOLUME			0x18
51*37e23b1cSJia-Ju Bai #define AC97_RECORD_GAIN_VOLUME		0x1c
52*37e23b1cSJia-Ju Bai #define AC97_RECORD_GAIN_MIC_VOL	0x1e
53*37e23b1cSJia-Ju Bai #define AC97_GENERAL_PURPOSE	0x20
54*37e23b1cSJia-Ju Bai #define AC97_POWERDOWN			0x26
55*37e23b1cSJia-Ju Bai #define AC97_RECORD_SELECT		0x1a
56*37e23b1cSJia-Ju Bai #define AC97_RESET				0x00
57*37e23b1cSJia-Ju Bai #endif
58*37e23b1cSJia-Ju Bai 
59*37e23b1cSJia-Ju Bai int get_set_volume(u32_t *pbase, struct volume_level *level, int flag);
60*37e23b1cSJia-Ju Bai void dev_set_default_volume(u32_t *pbase);
61*37e23b1cSJia-Ju Bai 
62*37e23b1cSJia-Ju Bai #endif
63