Subversion Repositories Kolibri OS

Rev

Rev 981 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
981 serge 1
 
2
 
3
//
4
#define CYRIX_VENDOR_ID     0x1078
5
#define NATIONAL_VENDOR_ID  0x100B
6
7
//
8
 
9
//
10
#define CX5530_DEV_ID    0x0103
11
#define SC1200_DEV_ID    0x0503
12
#define CS5535_DEV_ID    0x002E
13
14
//
15
 
16
//
17
#define  PCI_FUNC3_AUDIO     0x300
18
#define  PCI_AUDIO_CMD_REG   0x04
19
20
typedef unsigned char AUDIO_STATE;
21
 
22
#define AUDIO_STATE_IGNORE          0
23
 
24
#define AUDIO_STATE_IN_OVERFLOW     0x02
25
#define AUDIO_STATE_IN_STOPPED      0x03
26
#define AUDIO_STATE_IN_MASK         0x0F
27
#define AUDIO_STATE_OUT_PLAYING     0x10
28
#define AUDIO_STATE_OUT_UNDERFLOW   0x20
29
#define AUDIO_STATE_OUT_STOPPED     0x30
30
#define AUDIO_STATE_OUT_MASK        0xF0
31
32
#define RECORD_RUNNING		0x01
33
 
34
#define RECORD_STOPPED		0x03
35
36
#define PLAYBACK_RUNNING    0x10
37
 
38
#define PLAYBACK_STOPPED    0x30
39
40
//
41
 
42
// the codec "target" register, identified by a byte. The 5530 Codec
43
// controller writes a command unsigned short of 32-bits, that includes the codec
44
// command unsigned short.
45
//
46
#define CODEC_COMMAND_MASK       0xFF00FFFF
47
48
//
49
 
50
//  because of the serial interface.
51
//
52
#define CODEC_STATUS_REG    0x08        // In Audio mem-map.
53
#define CODEC_CMD_REG       0x0c        // In audio mem-map.
54
#define CODEC_CMD_VALID     0x00010000
55
#define CODEC_STATUS_VALID  0x00020000
56
#define CODEC_STATUS_NEW    0x00010000
57
#define BIT_CODEC_READY     0x00800000
58
59
//
60
 
61
//
62
#define CODEC_STATUS_REG_5535		0x08
63
#define CODEC_CONTROL_REG_5535      0x0c
64
65
//
66
 
67
//
68
#define BIT_5535_CODEC_COMMAND_NEW   0x00010000
69
#define BIT_5535_CODEC_STATUS_NEW	 0x00020000
70
#define BIT_5535_ACLINK_SHUTDOWN	 0x00040000
71
#define BIT_5535_ACLINK_WARM_RESET	 0x00020000
72
#define BIT_5535_CODEC_READY_PRIM	 0x00800000
73
74
//
75
 
76
//
77
#define RESET                0x00
78
#define MASTER_VOLUME        0x02
79
#define LINE_LEV_OUT_VOL     0x04
80
#define MASTER_VOLUME_MONO   0x06
81
#define MASTER_TONE_RL       0x08
82
#define PC_BEEP_VOLUME       0x0a
83
#define PHONE_VOLUME         0x0c
84
#define MIC_VOLUME           0x0e
85
#define LINE_IN_VOLUME       0x10
86
#define CD_VOLUME            0x12
87
#define VIDEO_VOLUME         0x14
88
#define TV_VOLUME            0x16
89
#define PCM_OUT_VOL          0x18
90
#define RECORD_SELECT        0x1a
91
#define RECORD_GAIN          0x1c
92
#define RECORD_MIC_GAIN      0x1e
93
#define GENERAL_PURPOSE      0x20
94
#define CONTROL_3D           0x22
95
#define MODEM_RATE           0x24
96
#define POWERDOWN_CTRL_STAT  0x26
97
#define EXTENDED_AUDIO_ID	 0x28
98
#define EXT_AUDIO_CTRL_STAT  0x2A
99
#define PCM_FRONT_DAC_RATE   0x2C
100
#define PCM_LR_ADC_RATE      0x32
101
#define VENDOR_ID1           0x7c
102
#define VENDOR_ID2           0x7e
103
104
#define MUTE_MASK			 0x8000
105
 
106
#define LINE_LEV_RESET_VOL	 0x0000 // the reset without the mask
107
108
#ifdef AC97_2DOT1_6BIT_COMPLIANT
109
 
110
#else
111
#	define MASTER_ATTEN_CTL_BITS		 5
112
#endif
113
114
#define MASTER_VOLUME_MAX    ( ( 1 << MASTER_ATTEN_CTL_BITS ) - 1 )
115
 
116
117
//
118
 
119
//
120
#define AD1819A_SER_CONF			0x74
121
#define AD1819A_SER_CONF_DRQEN		0x08
122
#define AD1819A_MISC				0x76
123
#define AD1819A_PCM_SR0				0x78
124
#define AD1819A_PCM_SR1				0x7A
125
#define AD1819A_VENDORID1			0x7C
126
#define AD1819A_VENDORID2			0x7E
127
128
//
129
 
130
//
131
#define GEODEAUDIO_PWR_PR0	0x0100      // PCM in ADC's & input Mux Powerdown
132
#define GEODEAUDIO_PWR_PR1    0x0200      // PCM out DACs Powerdown
133
#define GEODEAUDIO_PWR_PR2    0x0400      // Analog Mixer powerdown (Vref still on)
134
#define GEODEAUDIO_PWR_PR3    0x0800      // Analog Mxer powerdown (Vref off)
135
#define GEODEAUDIO_PWR_PR4    0x1000      // Digital interface (AC-link) powerdown (external clk off)
136
#define GEODEAUDIO_PWR_PR5    0x2000      // Internal Clk disable
137
#define GEODEAUDIO_PWR_PR6    0x4000      // HP amp powerdown
138
#define GEODEAUDIO_PWR_PR7    0x8000      // External Amplifier Power Down
139
140
#define GEODEAUDIO_PWR_D0              0x0000
141
 
142
#define GEODEAUDIO_PWR_D2              GEODEAUDIO_PWR_PR0|GEODEAUDIO_PWR_PR1|GEODEAUDIO_PWR_PR2|GEODEAUDIO_PWR_PR6|GEODEAUDIO_PWR_PR7
143
#define GEODEAUDIO_PWR_D3              GEODEAUDIO_PWR_PR0|GEODEAUDIO_PWR_PR1|GEODEAUDIO_PWR_PR2|GEODEAUDIO_PWR_PR6|GEODEAUDIO_PWR_PR7
144
#define GEODEAUDIO_PWR_D4              GEODEAUDIO_PWR_PR0|GEODEAUDIO_PWR_PR1|GEODEAUDIO_PWR_PR2|GEODEAUDIO_PWR_PR3|GEODEAUDIO_PWR_PR4|GEODEAUDIO_PWR_PR5|GEODEAUDIO_PWR_PR6|GEODEAUDIO_PWR_PR7
145
#define GEODEAUDIO_PWR_ANLOFF          GEODEAUDIO_PWR_PR2|GEODEAUDIO_PWR_PR3  // Analog section OFF
146
#define GEODEAUDIO_PWR_EXTOFF          GEODEAUDIO_PWR_PR6|GEODEAUDIO_PWR_PR7  // HP amp and External Amplifier OFF
147
#define GEODEAUDIO_PWR_D1_HAWK         GEODEAUDIO_PWR_PR0|GEODEAUDIO_PWR_PR1|GEODEAUDIO_PWR_PR2|GEODEAUDIO_PWR_PR3|GEODEAUDIO_PWR_PR4
148
#define GEODEAUDIO_PWR_DIGOFF			 GEODEAUDIO_PWR_PR0|GEODEAUDIO_PWR_PR1	// Digital section OFF
149
150
#define GEODEAUDIO_PWRUP_STEP1		 0x0F00 // Clear EAPD,PR6 and AC-link to power up external and HP amp and Digital interface
151
 
152
#define GEODEAUDIO_PWRUP_STEP3		 0x0300 // Clear PR2 to power up Analog (Vref on)
153
#define GEODEAUDIO_PWRUP_STEP4		 0x0100 // Clear PR1 to power up DAC
154
#define GEODEAUDIO_PWRUP_STEP5		 0x0000 // Clear PR0 to power up ADC
155
156
#define GEODEAUDIO_CODEC_POWER_ADC	 0x0001
157
 
158
#define GEODEAUDIO_CODEC_POWER_ANL	 0x0004
159
#define GEODEAUDIO_CODEC_POWER_REF   0x0008
160
161
//
162
 
163
//
164
typedef enum _GEODEAUDIO_POWER_STATE
165
{
166
    GEODEAUDIO_D0 = 0, // Full On: full power,  full functionality
167
    GEODEAUDIO_D1,     // Low Power On: fully functional at low power/performance
168
    GEODEAUDIO_D2,     // Standby: partially powered with automatic wake
169
    GEODEAUDIO_D3,     // Sleep: partially powered with device initiated wake
170
    GEODEAUDIO_D4,     // Off: unpowered
171
} GEODEAUDIO_POWER_STATE, *PGEODEAUDIO_POWER_STATE;
172
173
// PRD table flags
174
 
175
#define PRD_EOP_BIT                     0x40000000
176
#define PRD_EOT_BIT                     0x80000000
177
178
typedef struct tagPRDEntry
179
 
180
    unsigned long  ulPhysAddr;
181
    unsigned long  SizeFlags;
182
} PRD_ENTRY, *PPRD_ENTRY;
183
184
185
 
186
 
187
//
188
#define	 PCI_READS			0x00
189
#define	 PCI_WRITES			0x08
190
191
#define  ENABLE_BUSMASTER	0x01
192
 
193
#define  STOP_BUSMASTER		0x00
194
195
#define CHANNEL0_PLAYBACK   0
196
 
197
#define MAX_CHANNELS		2
198