1
2
3
4
5
6 #ifndef __AD1889_H__
7 #define __AD1889_H__
8
9 #define AD_DS_WSMC 0x00
10 #define AD_DS_WSMC_SYEN 0x0004
11 #define AD_DS_WSMC_SYRQ 0x0030
12 #define AD_DS_WSMC_WA16 0x0100
13 #define AD_DS_WSMC_WAST 0x0200
14 #define AD_DS_WSMC_WAEN 0x0400
15 #define AD_DS_WSMC_WARQ 0x3000
16
17 #define AD_DS_RAMC 0x02
18 #define AD_DS_RAMC_AD16 0x0001
19 #define AD_DS_RAMC_ADST 0x0002
20 #define AD_DS_RAMC_ADEN 0x0004
21 #define AD_DS_RAMC_ACRQ 0x0030
22 #define AD_DS_RAMC_REEN 0x0400
23 #define AD_DS_RAMC_RERQ 0x3000
24
25 #define AD_DS_WADA 0x04
26 #define AD_DS_WADA_RWAM 0x0080
27 #define AD_DS_WADA_RWAA 0x001f
28 #define AD_DS_WADA_LWAM 0x8000
29 #define AD_DS_WADA_LWAA 0x3e00
30
31 #define AD_DS_SYDA 0x06
32 #define AD_DS_SYDA_RSYM 0x0080
33 #define AD_DS_SYDA_RSYA 0x001f
34 #define AD_DS_SYDA_LSYM 0x8000
35 #define AD_DS_SYDA_LSYA 0x3e00
36
37 #define AD_DS_WAS 0x08
38 #define AD_DS_WAS_WAS 0xffff
39
40 #define AD_DS_RES 0x0a
41 #define AD_DS_RES_RES 0xffff
42
43 #define AD_DS_CCS 0x0c
44 #define AD_DS_CCS_ADO 0x0001
45 #define AD_DS_CCS_REO 0x0002
46 #define AD_DS_CCS_SYU 0x0004
47 #define AD_DS_CCS_WAU 0x0008
48
49 #define AD_DS_CCS_XTD 0x0100
50 #define AD_DS_CCS_PDALL 0x0400
51 #define AD_DS_CCS_CLKEN 0x8000
52
53 #define AD_DMA_RESBA 0x40
54 #define AD_DMA_RESCA 0x44
55 #define AD_DMA_RESBC 0x48
56 #define AD_DMA_RESCC 0x4c
57
58 #define AD_DMA_ADCBA 0x50
59 #define AD_DMA_ADCCA 0x54
60 #define AD_DMA_ADCBC 0x58
61 #define AD_DMA_ADCCC 0x5c
62
63 #define AD_DMA_SYNBA 0x60
64 #define AD_DMA_SYNCA 0x64
65 #define AD_DMA_SYNBC 0x68
66 #define AD_DMA_SYNCC 0x6c
67
68 #define AD_DMA_WAVBA 0x70
69 #define AD_DMA_WAVCA 0x74
70 #define AD_DMA_WAVBC 0x78
71 #define AD_DMA_WAVCC 0x7c
72
73 #define AD_DMA_RESIC 0x80
74 #define AD_DMA_RESIB 0x84
75
76 #define AD_DMA_ADCIC 0x88
77 #define AD_DMA_ADCIB 0x8c
78
79 #define AD_DMA_SYNIC 0x90
80 #define AD_DMA_SYNIB 0x94
81
82 #define AD_DMA_WAVIC 0x98
83 #define AD_DMA_WAVIB 0x9c
84
85 #define AD_DMA_ICC 0xffffff
86 #define AD_DMA_IBC 0xffffff
87
88
89
90 #define AD_DMA_ADC 0xa8
91 #define AD_DMA_SYNTH 0xb0
92 #define AD_DMA_WAV 0xb8
93 #define AD_DMA_RES 0xa0
94
95 #define AD_DMA_SGDE 0x0001
96 #define AD_DMA_LOOP 0x0002
97 #define AD_DMA_IM 0x000c
98 #define AD_DMA_IM_DIS (~AD_DMA_IM)
99 #define AD_DMA_IM_CNT 0x0004
100 #define AD_DMA_IM_SGD 0x0008
101 #define AD_DMA_IM_EOL 0x000c
102 #define AD_DMA_SGDS 0x0030
103 #define AD_DMA_SFLG 0x0040
104 #define AD_DMA_EOL 0x0080
105
106
107 #define AD_DMA_DISR 0xc0
108 #define AD_DMA_DISR_RESI 0x000001
109 #define AD_DMA_DISR_ADCI 0x000002
110 #define AD_DMA_DISR_SYNI 0x000004
111 #define AD_DMA_DISR_WAVI 0x000008
112
113 #define AD_DMA_DISR_SEPS 0x000040
114
115 #define AD_DMA_DISR_PMAI 0x004000
116 #define AD_DMA_DISR_PTAI 0x008000
117 #define AD_DMA_DISR_PTAE 0x010000
118 #define AD_DMA_DISR_PMAE 0x020000
119
120
121
122 #define AD_INTR_MASK (AD_DMA_DISR_RESI|AD_DMA_DISR_ADCI| \
123 AD_DMA_DISR_WAVI|AD_DMA_DISR_SYNI| \
124 AD_DMA_DISR_PMAI|AD_DMA_DISR_PTAI)
125
126 #define AD_DMA_CHSS 0xc4
127 #define AD_DMA_CHSS_RESS 0x000001
128 #define AD_DMA_CHSS_ADCS 0x000002
129 #define AD_DMA_CHSS_SYNS 0x000004
130 #define AD_DMA_CHSS_WAVS 0x000008
131
132 #define AD_GPIO_IPC 0xc8
133 #define AD_GPIO_OP 0xca
134 #define AD_GPIO_IP 0xcc
135
136 #define AD_AC97_BASE 0x100
137
138 #define AD_AC97_RESET 0x100
139
140 #define AD_AC97_PWR_CTL 0x126
141 #define AD_AC97_PWR_ADC 0x0001
142 #define AD_AC97_PWR_DAC 0x0002
143 #define AD_AC97_PWR_PR0 0x0100
144 #define AD_AC97_PWR_PR1 0x0200
145
146 #define AD_MISC_CTL 0x176
147 #define AD_MISC_CTL_DACZ 0x8000
148 #define AD_MISC_CTL_ARSR 0x0001
149 #define AD_MISC_CTL_ALSR 0x0100
150 #define AD_MISC_CTL_DLSR 0x0400
151 #define AD_MISC_CTL_DRSR 0x0004
152
153 #define AD_AC97_SR0 0x178
154 #define AD_AC97_SR0_48K 0xbb80
155 #define AD_AC97_SR1 0x17a
156
157 #define AD_AC97_ACIC 0x180
158 #define AD_AC97_ACIC_ACIE 0x0001
159 #define AD_AC97_ACIC_ACRD 0x0002
160 #define AD_AC97_ACIC_ASOE 0x0004
161 #define AD_AC97_ACIC_VSRM 0x0008
162 #define AD_AC97_ACIC_FSDH 0x0100
163 #define AD_AC97_ACIC_FSYH 0x0200
164 #define AD_AC97_ACIC_ACRDY 0x8000
165
166
167
168 #define AD_DS_MEMSIZE 512
169 #define AD_OPL_MEMSIZE 16
170 #define AD_MIDI_MEMSIZE 16
171
172 #define AD_WAV_STATE 0
173 #define AD_ADC_STATE 1
174 #define AD_MAX_STATES 2
175
176 #define AD_CHAN_WAV 0x0001
177 #define AD_CHAN_ADC 0x0002
178 #define AD_CHAN_RES 0x0004
179 #define AD_CHAN_SYN 0x0008
180
181
182
183
184 #define BUFFER_BYTES_MAX (256 * 1024)
185 #define PERIOD_BYTES_MIN 32
186 #define PERIOD_BYTES_MAX (BUFFER_BYTES_MAX / 2)
187 #define PERIODS_MIN 2
188 #define PERIODS_MAX (BUFFER_BYTES_MAX / PERIOD_BYTES_MIN)
189
190 #endif