0001
0002
0003
0004
0005
0006 #ifndef __AD1889_H__
0007 #define __AD1889_H__
0008
0009 #define AD_DS_WSMC 0x00
0010 #define AD_DS_WSMC_SYEN 0x0004
0011 #define AD_DS_WSMC_SYRQ 0x0030
0012 #define AD_DS_WSMC_WA16 0x0100
0013 #define AD_DS_WSMC_WAST 0x0200
0014 #define AD_DS_WSMC_WAEN 0x0400
0015 #define AD_DS_WSMC_WARQ 0x3000
0016
0017 #define AD_DS_RAMC 0x02
0018 #define AD_DS_RAMC_AD16 0x0001
0019 #define AD_DS_RAMC_ADST 0x0002
0020 #define AD_DS_RAMC_ADEN 0x0004
0021 #define AD_DS_RAMC_ACRQ 0x0030
0022 #define AD_DS_RAMC_REEN 0x0400
0023 #define AD_DS_RAMC_RERQ 0x3000
0024
0025 #define AD_DS_WADA 0x04
0026 #define AD_DS_WADA_RWAM 0x0080
0027 #define AD_DS_WADA_RWAA 0x001f
0028 #define AD_DS_WADA_LWAM 0x8000
0029 #define AD_DS_WADA_LWAA 0x3e00
0030
0031 #define AD_DS_SYDA 0x06
0032 #define AD_DS_SYDA_RSYM 0x0080
0033 #define AD_DS_SYDA_RSYA 0x001f
0034 #define AD_DS_SYDA_LSYM 0x8000
0035 #define AD_DS_SYDA_LSYA 0x3e00
0036
0037 #define AD_DS_WAS 0x08
0038 #define AD_DS_WAS_WAS 0xffff
0039
0040 #define AD_DS_RES 0x0a
0041 #define AD_DS_RES_RES 0xffff
0042
0043 #define AD_DS_CCS 0x0c
0044 #define AD_DS_CCS_ADO 0x0001
0045 #define AD_DS_CCS_REO 0x0002
0046 #define AD_DS_CCS_SYU 0x0004
0047 #define AD_DS_CCS_WAU 0x0008
0048
0049 #define AD_DS_CCS_XTD 0x0100
0050 #define AD_DS_CCS_PDALL 0x0400
0051 #define AD_DS_CCS_CLKEN 0x8000
0052
0053 #define AD_DMA_RESBA 0x40
0054 #define AD_DMA_RESCA 0x44
0055 #define AD_DMA_RESBC 0x48
0056 #define AD_DMA_RESCC 0x4c
0057
0058 #define AD_DMA_ADCBA 0x50
0059 #define AD_DMA_ADCCA 0x54
0060 #define AD_DMA_ADCBC 0x58
0061 #define AD_DMA_ADCCC 0x5c
0062
0063 #define AD_DMA_SYNBA 0x60
0064 #define AD_DMA_SYNCA 0x64
0065 #define AD_DMA_SYNBC 0x68
0066 #define AD_DMA_SYNCC 0x6c
0067
0068 #define AD_DMA_WAVBA 0x70
0069 #define AD_DMA_WAVCA 0x74
0070 #define AD_DMA_WAVBC 0x78
0071 #define AD_DMA_WAVCC 0x7c
0072
0073 #define AD_DMA_RESIC 0x80
0074 #define AD_DMA_RESIB 0x84
0075
0076 #define AD_DMA_ADCIC 0x88
0077 #define AD_DMA_ADCIB 0x8c
0078
0079 #define AD_DMA_SYNIC 0x90
0080 #define AD_DMA_SYNIB 0x94
0081
0082 #define AD_DMA_WAVIC 0x98
0083 #define AD_DMA_WAVIB 0x9c
0084
0085 #define AD_DMA_ICC 0xffffff
0086 #define AD_DMA_IBC 0xffffff
0087
0088
0089
0090 #define AD_DMA_ADC 0xa8
0091 #define AD_DMA_SYNTH 0xb0
0092 #define AD_DMA_WAV 0xb8
0093 #define AD_DMA_RES 0xa0
0094
0095 #define AD_DMA_SGDE 0x0001
0096 #define AD_DMA_LOOP 0x0002
0097 #define AD_DMA_IM 0x000c
0098 #define AD_DMA_IM_DIS (~AD_DMA_IM)
0099 #define AD_DMA_IM_CNT 0x0004
0100 #define AD_DMA_IM_SGD 0x0008
0101 #define AD_DMA_IM_EOL 0x000c
0102 #define AD_DMA_SGDS 0x0030
0103 #define AD_DMA_SFLG 0x0040
0104 #define AD_DMA_EOL 0x0080
0105
0106
0107 #define AD_DMA_DISR 0xc0
0108 #define AD_DMA_DISR_RESI 0x000001
0109 #define AD_DMA_DISR_ADCI 0x000002
0110 #define AD_DMA_DISR_SYNI 0x000004
0111 #define AD_DMA_DISR_WAVI 0x000008
0112
0113 #define AD_DMA_DISR_SEPS 0x000040
0114
0115 #define AD_DMA_DISR_PMAI 0x004000
0116 #define AD_DMA_DISR_PTAI 0x008000
0117 #define AD_DMA_DISR_PTAE 0x010000
0118 #define AD_DMA_DISR_PMAE 0x020000
0119
0120
0121
0122 #define AD_INTR_MASK (AD_DMA_DISR_RESI|AD_DMA_DISR_ADCI| \
0123 AD_DMA_DISR_WAVI|AD_DMA_DISR_SYNI| \
0124 AD_DMA_DISR_PMAI|AD_DMA_DISR_PTAI)
0125
0126 #define AD_DMA_CHSS 0xc4
0127 #define AD_DMA_CHSS_RESS 0x000001
0128 #define AD_DMA_CHSS_ADCS 0x000002
0129 #define AD_DMA_CHSS_SYNS 0x000004
0130 #define AD_DMA_CHSS_WAVS 0x000008
0131
0132 #define AD_GPIO_IPC 0xc8
0133 #define AD_GPIO_OP 0xca
0134 #define AD_GPIO_IP 0xcc
0135
0136 #define AD_AC97_BASE 0x100
0137
0138 #define AD_AC97_RESET 0x100
0139
0140 #define AD_AC97_PWR_CTL 0x126
0141 #define AD_AC97_PWR_ADC 0x0001
0142 #define AD_AC97_PWR_DAC 0x0002
0143 #define AD_AC97_PWR_PR0 0x0100
0144 #define AD_AC97_PWR_PR1 0x0200
0145
0146 #define AD_MISC_CTL 0x176
0147 #define AD_MISC_CTL_DACZ 0x8000
0148 #define AD_MISC_CTL_ARSR 0x0001
0149 #define AD_MISC_CTL_ALSR 0x0100
0150 #define AD_MISC_CTL_DLSR 0x0400
0151 #define AD_MISC_CTL_DRSR 0x0004
0152
0153 #define AD_AC97_SR0 0x178
0154 #define AD_AC97_SR0_48K 0xbb80
0155 #define AD_AC97_SR1 0x17a
0156
0157 #define AD_AC97_ACIC 0x180
0158 #define AD_AC97_ACIC_ACIE 0x0001
0159 #define AD_AC97_ACIC_ACRD 0x0002
0160 #define AD_AC97_ACIC_ASOE 0x0004
0161 #define AD_AC97_ACIC_VSRM 0x0008
0162 #define AD_AC97_ACIC_FSDH 0x0100
0163 #define AD_AC97_ACIC_FSYH 0x0200
0164 #define AD_AC97_ACIC_ACRDY 0x8000
0165
0166
0167
0168 #define AD_DS_MEMSIZE 512
0169 #define AD_OPL_MEMSIZE 16
0170 #define AD_MIDI_MEMSIZE 16
0171
0172 #define AD_WAV_STATE 0
0173 #define AD_ADC_STATE 1
0174 #define AD_MAX_STATES 2
0175
0176 #define AD_CHAN_WAV 0x0001
0177 #define AD_CHAN_ADC 0x0002
0178 #define AD_CHAN_RES 0x0004
0179 #define AD_CHAN_SYN 0x0008
0180
0181
0182
0183
0184 #define BUFFER_BYTES_MAX (256 * 1024)
0185 #define PERIOD_BYTES_MIN 32
0186 #define PERIOD_BYTES_MAX (BUFFER_BYTES_MAX / 2)
0187 #define PERIODS_MIN 2
0188 #define PERIODS_MAX (BUFFER_BYTES_MAX / PERIOD_BYTES_MIN)
0189
0190 #endif