2
/*********************************************************/
3
/* This file was written by someone, somewhere, sometime */
4
/* And is released into the Public Domain */
5
/*********************************************************/
10
/**********************/
11
/* AWACs DMA Channels */
12
/**********************/
14
#define AUD_DMA_IN ((unsigned *) 0x09)
15
#define AUD_DMA_OUT ((unsigned *) 0x08)
17
/********************************/
18
/* AWACs DMA Register Addresses */
19
/********************************/
21
#define AUD_OUT_DMAREG ((unsigned *) 0xf3008800)
22
#define AUD_OUT_CHCONT ((unsigned *) 0xf3008800)
23
#define AUD_OUT_CHSTAT ((unsigned *) 0xf3008804)
24
#define AUD_OUT_CMDPTR ((unsigned *) 0xf300880c)
25
#define AUD_OUT_INTRSEL ((unsigned *) 0xf3008810)
26
#define AUD_OUT_BRSEL ((unsigned *) 0xf3008814)
27
#define AUD_OUT_WAITSEL ((unsigned *) 0xf3008818)
29
#define AUD_IN_DMAREG ((unsigned *) 0xf3008900)
30
#define AUD_IN_CHCONT ((unsigned *) 0xf3008900)
31
#define AUD_IN_CHSTAT ((unsigned *) 0xf3008904)
32
#define AUD_IN_CMDPTR ((unsigned *) 0xf300890c)
33
#define AUD_IN_INTRSEL ((unsigned *) 0xf3008910)
34
#define AUD_IN_BRSEL ((unsigned *) 0xf3008914)
35
#define AUD_IN_WAITSEL ((unsigned *) 0xf3008918)
37
/**********************************/
38
/* AWACs Audio Register Addresses */
39
/**********************************/
41
#define AUD_CONT ((unsigned *) 0xf3014000)
42
#define AUD_COD_CONT ((unsigned *) 0xf3014010)
43
#define AUD_COD_STAT ((unsigned *) 0xf3014020)
44
#define AUD_CLIP_CNT ((unsigned *) 0xf3014030)
45
#define AUD_BYTESWAP ((unsigned *) 0xf3014040)
51
/* Audio Control Reg Bit Masks */
52
/* ----- ------- --- --- ----- */
53
#define MASK_ISFSEL (0xf) /* Input SubFrame Select */
54
#define MASK_OSFSEL (0xf << 4) /* Output SubFrame Select */
55
#define MASK_RATE (0x7 << 8) /* Sound Rate */
56
#define MASK_CNTLERR (0x1 << 11) /* Error */
57
#define MASK_PORTCHG (0x1 << 12) /* Port Change */
58
#define MASK_IEE (0x1 << 13) /* Enable Interrupt on Error */
59
#define MASK_IEPC (0x1 << 14) /* Enable Interrupt on Port Change */
60
#define MASK_SSFSEL (0x3 << 15) /* Status SubFrame Select */
62
/* Audio Codec Control Reg Bit Masks */
63
/* ----- ----- ------- --- --- ----- */
64
#define MASK_NEWECMD (0x1 << 24) /* Lock: don't write to reg when high */
65
#define MASK_EMODESEL (0x3 << 22) /* Send info out on which frame? */
66
#define MASK_EXMODEADDR (0x3ff << 12) /* Extended Mode Address -- 10 bits (12-21) */
67
#define MASK_EXMODEDATA (0xfff) /* Extended Mode Data -- 12 bits (0-11) */
69
/* Audio Codec Control Address Values / Masks */
70
/* ----- ----- ------- ------- ------ - ----- */
71
#define MASK_ADDR0 (0x0 << 12) /* Expanded Data Mode Address 0 */
72
#define MASK_ADDR_MUX MASK_ADDR0 /* Mux Control */
73
#define MASK_ADDR_GAIN MASK_ADDR0
74
#define MASK_ADDR1 (0x1 << 12) /* Expanded Data Mode Address 1 */
75
#define MASK_ADDR_MUTE MASK_ADDR1
76
#define MASK_ADDR_RATE MASK_ADDR1
77
#define MASK_ADDR2 (0x2 << 12) /* Expanded Data Mode Address 2 */
78
#define MASK_ADDR_VOLA MASK_ADDR2 /* Volume Control A -- Speaker */
79
#define MASK_ADDR_VOLSPK MASK_ADDR2
80
#define MASK_ADDR4 (0x4 << 12) /* Expanded Data Mode Address 4 */
81
#define MASK_ADDR_VOLC MASK_ADDR4 /* Volume Control C -- Headphones */
82
#define MASK_ADDR_VOLHD MASK_ADDR4
84
/* Address 0 Bit Masks & Macros */
85
/* ------- - --- ----- - ------ */
86
#define MASK_GAINRIGHT (0xf) /* Gain Right Mask */
87
#define MASK_GAINLEFT (0xf << 4) /* Gain Left Mask */
88
#define MASK_GAINLINE (0x1 << 8) /* Change Gain for Line??? */
89
#define MASK_GAINMIC (0x0 << 8) /* Change Gain for Mic??? */
90
#define MASK_MUX_CD (0x1 << 9) /* Select CD in MUX */
91
#define MASK_MUX_MIC (0x1 << 10) /* Select Mic in MUX */
92
#define MASK_MUX_AUDIN (0x1 << 11) /* Select Audio In in MUX */
93
#define MASK_MUX_LINE MASK_MUX_AUDIN
95
#define GAINRIGHT(x) ((x) & MASK_GAINRIGHT)
96
#define GAINLEFT(x) (((x) << 4) & MASK_GAINLEFT)
98
/* Address 1 Bit Masks */
99
/* ------- - --- ----- */
100
#define MASK_ADDR1RES1 (0x3) /* Reserved */
101
#define MASK_RECALIBRATE (0x1 << 2) /* Recalibrate */
102
#define MASK_SAMPLERATE (0x7 << 3) /* Sample Rate: */
103
#define MASK_LOOPTHRU (0x1 << 6) /* Loopthrough Enable */
104
#define MASK_CMUTE (0x1 << 7) /* Output C (Headphone) Mute */
105
#define MASK_HDMUTE MASK_CMUTE
106
#define MASK_ADDR1RES2 (0x1 << 8) /* Reserved */
107
#define MASK_AMUTE (0x1 << 9) /* Output A (Speaker) Mute */
108
#define MASK_SPKMUTE MASK_AMUTE
109
#define MASK_PAROUT (0x3 << 10) /* Parallel Out (???) */
111
#define SAMPLERATE_48000 (0x0 << 3) /* 48 kHz */
112
#define SAMPLERATE_32000 (0x1 << 3) /* 32 kHz */
113
#define SAMPLERATE_24000 (0x2 << 3) /* 24 kHz */
114
#define SAMPLERATE_19200 (0x3 << 3) /* 19.2 kHz */
115
#define SAMPLERATE_16000 (0x4 << 3) /* 16 kHz */
116
#define SAMPLERATE_12000 (0x5 << 3) /* 12 kHz */
117
#define SAMPLERATE_9600 (0x6 << 3) /* 9.6 kHz */
118
#define SAMPLERATE_8000 (0x7 << 3) /* 8 kHz */
120
/* Address 2 & 4 Bit Masks & Macros */
121
/* ------- - - - --- ----- - ------ */
122
#define MASK_OUTVOLRIGHT (0xf) /* Output Right Volume */
123
#define MASK_ADDR2RES1 (0x2 << 4) /* Reserved */
124
#define MASK_ADDR4RES1 MASK_ADDR2RES1
125
#define MASK_OUTVOLLEFT (0xf << 6) /* Output Left Volume */
126
#define MASK_ADDR2RES2 (0x2 << 10) /* Reserved */
127
#define MASK_ADDR4RES2 MASK_ADDR2RES2
129
#define VOLRIGHT(x) (((~(x)) & MASK_OUTVOLRIGHT))
130
#define VOLLEFT(x) (((~(x)) << 6) & MASK_OUTVOLLEFT)
132
/* Audio Codec Status Reg Bit Masks */
133
/* ----- ----- ------ --- --- ----- */
134
#define MASK_EXTEND (0x1 << 23) /* Extend */
135
#define MASK_VALID (0x1 << 22) /* Valid Data? */
136
#define MASK_OFLEFT (0x1 << 21) /* Overflow Left */
137
#define MASK_OFRIGHT (0x1 << 20) /* Overflow Right */
138
#define MASK_ERRCODE (0xf << 16) /* Error Code */
139
#define MASK_REVISION (0xf << 12) /* Revision Number */
140
#define MASK_MFGID (0xf << 8) /* Mfg. ID */
141
#define MASK_CODSTATRES (0xf << 4) /* bits 4 - 7 reserved */
142
#define MASK_INPPORT (0xf) /* Input Port */
144
/* Clipping Count Reg Bit Masks */
145
/* -------- ----- --- --- ----- */
146
#define MASK_CLIPLEFT (0xff << 7) /* Clipping Count, Left Channel */
147
#define MASK_CLIPRIGHT (0xff) /* Clipping Count, Right Channel */
149
/* ChannelStatus Bit Masks */
150
/* ------------- --- ----- */
151
#define MASK_CSERR (0x1 << 7) /* Error */
152
#define MASK_EOI (0x1 << 6) /* End of Input -- only for Input Channel */
153
#define MASK_CSUNUSED (0x1f << 1) /* bits 1-5 not used */
154
#define MASK_WAIT (0x1) /* Wait */
158
#define RATE_48000 (0x0 << 8) /* 48 kHz */
159
#define RATE_44100 (0x0 << 8) /* 44.1 kHz */
160
#define RATE_32000 (0x1 << 8) /* 32 kHz */
161
#define RATE_29400 (0x1 << 8) /* 29.4 kHz */
162
#define RATE_24000 (0x2 << 8) /* 24 kHz */
163
#define RATE_22050 (0x2 << 8) /* 22.05 kHz */
164
#define RATE_19200 (0x3 << 8) /* 19.2 kHz */
165
#define RATE_17640 (0x3 << 8) /* 17.64 kHz */
166
#define RATE_16000 (0x4 << 8) /* 16 kHz */
167
#define RATE_14700 (0x4 << 8) /* 14.7 kHz */
168
#define RATE_12000 (0x5 << 8) /* 12 kHz */
169
#define RATE_11025 (0x5 << 8) /* 11.025 kHz */
170
#define RATE_9600 (0x6 << 8) /* 9.6 kHz */
171
#define RATE_8820 (0x6 << 8) /* 8.82 kHz */
172
#define RATE_8000 (0x7 << 8) /* 8 kHz */
173
#define RATE_7350 (0x7 << 8) /* 7.35 kHz */
175
#define RATE_LOW 1 /* HIGH = 48kHz, etc; LOW = 44.1kHz, etc. */
177
#endif /* _AWACS_DEFS_H_ */