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