1 /* volume tables, taken from TAS3001c data manual */
2 /* volume gain values */
3 /* 0 = -70 dB, 175 = 18.0 dB in 0.5 dB step */
4 static unsigned int master_volume_table[] = {
5 	0x00000015, 0x00000016,	0x00000017,
6 	0x00000019, 0x0000001a,	0x0000001c,
7 	0x0000001d, 0x0000001f,	0x00000021,
8 	0x00000023, 0x00000025,	0x00000027,
9 	0x00000029, 0x0000002c,	0x0000002e,
10 	0x00000031, 0x00000034,	0x00000037,
11 	0x0000003a, 0x0000003e,	0x00000042,
12 	0x00000045, 0x0000004a,	0x0000004e,
13 	0x00000053, 0x00000057,	0x0000005d,
14 	0x00000062, 0x00000068,	0x0000006e,
15 	0x00000075, 0x0000007b,	0x00000083,
16 	0x0000008b, 0x00000093,	0x0000009b,
17 	0x000000a5, 0x000000ae,	0x000000b9,
18 	0x000000c4, 0x000000cf,	0x000000dc,
19 	0x000000e9, 0x000000f6,	0x00000105,
20 	0x00000114, 0x00000125,	0x00000136,
21 	0x00000148, 0x0000015c,	0x00000171,
22 	0x00000186, 0x0000019e,	0x000001b6,
23 	0x000001d0, 0x000001eb,	0x00000209,
24 	0x00000227, 0x00000248,	0x0000026b,
25 	0x0000028f, 0x000002b6,	0x000002df,
26 	0x0000030b, 0x00000339,	0x0000036a,
27 	0x0000039e, 0x000003d5,	0x0000040f,
28 	0x0000044c, 0x0000048d,	0x000004d2,
29 	0x0000051c, 0x00000569,	0x000005bb,
30 	0x00000612, 0x0000066e,	0x000006d0,
31 	0x00000737, 0x000007a5,	0x00000818,
32 	0x00000893, 0x00000915,	0x0000099f,
33 	0x00000a31, 0x00000acc,	0x00000b6f,
34 	0x00000c1d, 0x00000cd5,	0x00000d97,
35 	0x00000e65, 0x00000f40,	0x00001027,
36 	0x0000111c, 0x00001220,	0x00001333,
37 	0x00001456, 0x0000158a,	0x000016d1,
38 	0x0000182b, 0x0000199a,	0x00001b1e,
39 	0x00001cb9, 0x00001e6d,	0x0000203a,
40 	0x00002223, 0x00002429,	0x0000264e,
41 	0x00002893, 0x00002afa,	0x00002d86,
42 	0x00003039, 0x00003314,	0x0000361b,
43 	0x00003950, 0x00003cb5,	0x0000404e,
44 	0x0000441d, 0x00004827,	0x00004c6d,
45 	0x000050f4, 0x000055c0,	0x00005ad5,
46 	0x00006037, 0x000065ea,	0x00006bf4,
47 	0x0000725a, 0x00007920,	0x0000804e,
48 	0x000087e8, 0x00008ff6,	0x0000987d,
49 	0x0000a186, 0x0000ab19,	0x0000b53c,
50 	0x0000bff9, 0x0000cb59,	0x0000d766,
51 	0x0000e429, 0x0000f1ae,	0x00010000,
52 	0x00010f2b, 0x00011f3d,	0x00013042,
53 	0x00014249, 0x00015562,	0x0001699c,
54 	0x00017f09, 0x000195bc,	0x0001adc6,
55 	0x0001c73d, 0x0001e237,	0x0001feca,
56 	0x00021d0e, 0x00023d1d,	0x00025f12,
57 	0x0002830b, 0x0002a925,	0x0002d182,
58 	0x0002fc42, 0x0003298b,	0x00035983,
59 	0x00038c53, 0x0003c225,	0x0003fb28,
60 	0x0004378b, 0x00047783,	0x0004bb44,
61 	0x0005030a, 0x00054f10,	0x00059f98,
62 	0x0005f4e5, 0x00064f40,	0x0006aef6,
63 	0x00071457, 0x00077fbb,	0x0007f17b,
64 };
65 
66 /* treble table for TAS3001c */
67 /* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
68 static unsigned int treble_volume_table[] = {
69 	0x96, 0x95, 0x94,
70 	0x93, 0x92, 0x91,
71 	0x90, 0x8f, 0x8e,
72 	0x8d, 0x8c, 0x8b,
73 	0x8a, 0x89, 0x88,
74 	0x87, 0x86, 0x85,
75 	0x84, 0x83, 0x82,
76 	0x81, 0x80, 0x7f,
77 	0x7e, 0x7d, 0x7c,
78 	0x7b, 0x7a, 0x79,
79 	0x78, 0x77, 0x76,
80 	0x75, 0x74, 0x73,
81 	0x72, 0x71, 0x70,
82 	0x6e, 0x6d, 0x6c,
83 	0x6b, 0x69, 0x68,
84 	0x66, 0x65, 0x63,
85 	0x62, 0x60, 0x5e,
86 	0x5c, 0x5a, 0x57,
87 	0x55, 0x52, 0x4f,
88 	0x4c, 0x49, 0x45,
89 	0x42, 0x3e, 0x3a,
90 	0x36, 0x32, 0x2d,
91 	0x28, 0x22, 0x1c,
92 	0x16, 0x10, 0x09,
93 	0x01,
94 };
95 
96 /* bass table for TAS3001c */
97 /* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
98 static unsigned int bass_volume_table[] = {
99 	0x86, 0x82, 0x7f,
100 	0x7d, 0x7a, 0x78,
101 	0x76, 0x74, 0x72,
102 	0x70, 0x6e, 0x6d,
103 	0x6b, 0x69, 0x66,
104 	0x64, 0x61, 0x5f,
105 	0x5d, 0x5c, 0x5a,
106 	0x59, 0x58, 0x56,
107 	0x55, 0x54, 0x53,
108 	0x51, 0x4f, 0x4d,
109 	0x4b, 0x49, 0x46,
110 	0x44, 0x42, 0x40,
111 	0x3e, 0x3c, 0x3b,
112 	0x39, 0x38, 0x36,
113 	0x35, 0x33, 0x31,
114 	0x30, 0x2e, 0x2c,
115 	0x2b, 0x29, 0x28,
116 	0x26, 0x25, 0x23,
117 	0x21, 0x1f, 0x1c,
118 	0x19, 0x18, 0x17,
119 	0x16, 0x14, 0x13,
120 	0x12, 0x10, 0x0f,
121 	0x0d, 0x0b, 0x0a,
122 	0x08, 0x06, 0x03,
123 	0x01,
124 };
125 
126 /* mixer (pcm) volume table */
127 /* 0 = -70 dB, 175 = 18.0 dB in 0.5 dB step */
128 static unsigned int mixer_volume_table[] = {
129 	0x00014b, 0x00015f, 0x000174,
130 	0x00018a, 0x0001a1, 0x0001ba,
131 	0x0001d4, 0x0001f0, 0x00020d,
132 	0x00022c, 0x00024d, 0x000270,
133 	0x000295, 0x0002bc, 0x0002e6,
134 	0x000312, 0x000340, 0x000372,
135 	0x0003a6, 0x0003dd, 0x000418,
136 	0x000456, 0x000498, 0x0004de,
137 	0x000528, 0x000576, 0x0005c9,
138 	0x000620, 0x00067d, 0x0006e0,
139 	0x000748, 0x0007b7, 0x00082c,
140 	0x0008a8, 0x00092b, 0x0009b6,
141 	0x000a49, 0x000ae5, 0x000b8b,
142 	0x000c3a, 0x000cf3, 0x000db8,
143 	0x000e88, 0x000f64, 0x00104e,
144 	0x001145, 0x00124b, 0x001361,
145 	0x001487, 0x0015be, 0x001708,
146 	0x001865, 0x0019d8, 0x001b60,
147 	0x001cff, 0x001eb7, 0x002089,
148 	0x002276, 0x002481, 0x0026ab,
149 	0x0028f5, 0x002b63, 0x002df5,
150 	0x0030ae, 0x003390, 0x00369e,
151 	0x0039db, 0x003d49, 0x0040ea,
152 	0x0044c3, 0x0048d6, 0x004d27,
153 	0x0051b9, 0x005691, 0x005bb2,
154 	0x006121, 0x0066e3, 0x006cfb,
155 	0x007370, 0x007a48, 0x008186,
156 	0x008933, 0x009154, 0x0099f1,
157 	0x00a310, 0x00acba, 0x00b6f6,
158 	0x00c1cd, 0x00cd49, 0x00d973,
159 	0x00e655, 0x00f3fb, 0x010270,
160 	0x0111c0, 0x0121f9, 0x013328,
161 	0x01455b, 0x0158a2, 0x016d0e,
162 	0x0182af, 0x019999, 0x01b1de,
163 	0x01cb94, 0x01e6cf, 0x0203a7,
164 	0x022235, 0x024293, 0x0264db,
165 	0x02892c, 0x02afa3, 0x02d862,
166 	0x03038a, 0x033142, 0x0361af,
167 	0x0394fa, 0x03cb50, 0x0404de,
168 	0x0441d5, 0x048268, 0x04c6d0,
169 	0x050f44, 0x055c04, 0x05ad50,
170 	0x06036e, 0x065ea5, 0x06bf44,
171 	0x07259d, 0x079207, 0x0804dc,
172 	0x087e80, 0x08ff59, 0x0987d5,
173 	0x0a1866, 0x0ab189, 0x0b53be,
174 	0x0bff91, 0x0cb591, 0x0d765a,
175 	0x0e4290, 0x0f1adf, 0x100000,
176 	0x10f2b4, 0x11f3c9, 0x13041a,
177 	0x14248e, 0x15561a, 0x1699c0,
178 	0x17f094, 0x195bb8, 0x1adc61,
179 	0x1c73d5, 0x1e236d, 0x1fec98,
180 	0x21d0d9, 0x23d1cd, 0x25f125,
181 	0x2830af, 0x2a9254, 0x2d1818,
182 	0x2fc420, 0x3298b0, 0x35982f,
183 	0x38c528, 0x3c224c, 0x3fb278,
184 	0x437880, 0x477828, 0x4bb446,
185 	0x5030a1, 0x54f106, 0x59f980,
186 	0x5f4e52, 0x64f403, 0x6aef5d,
187 	0x714575, 0x77fbaa, 0x7f17af,
188 };
189 
190 
191 /* treble table for TAS3004 */
192 /* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
193 static unsigned int snapper_treble_volume_table[] = {
194 	0x96, 0x95, 0x94,
195 	0x93, 0x92, 0x91,
196 	0x90, 0x8f, 0x8e,
197 	0x8d, 0x8c, 0x8b,
198 	0x8a, 0x89, 0x88,
199 	0x87, 0x86, 0x85,
200 	0x84, 0x83, 0x82,
201 	0x81, 0x80, 0x7f,
202 	0x7e, 0x7d, 0x7c,
203 	0x7b, 0x7a, 0x79,
204 	0x78, 0x77, 0x76,
205 	0x75, 0x74, 0x73,
206 	0x72, 0x71, 0x70,
207 	0x6f, 0x6d, 0x6c,
208 	0x6b, 0x69, 0x68,
209 	0x67, 0x65, 0x63,
210 	0x62, 0x60, 0x5d,
211 	0x5b, 0x59, 0x56,
212 	0x53, 0x51, 0x4d,
213 	0x4a, 0x47, 0x43,
214 	0x3f, 0x3b, 0x36,
215 	0x31, 0x2c, 0x26,
216 	0x20, 0x1a, 0x13,
217 	0x08, 0x04, 0x01,
218 	0x01,
219 };
220 
221 /* bass table for TAS3004 */
222 /* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
223 static unsigned int snapper_bass_volume_table[] = {
224 	0x96, 0x95, 0x94,
225 	0x93, 0x92, 0x91,
226 	0x90, 0x8f, 0x8e,
227 	0x8d, 0x8c, 0x8b,
228 	0x8a, 0x89, 0x88,
229 	0x87, 0x86, 0x85,
230 	0x84, 0x83, 0x82,
231 	0x81, 0x80, 0x7f,
232 	0x7e, 0x7d, 0x7c,
233 	0x7b, 0x7a, 0x79,
234 	0x78, 0x77, 0x76,
235 	0x75, 0x74, 0x73,
236 	0x72, 0x71, 0x6f,
237 	0x6e, 0x6d, 0x6b,
238 	0x6a, 0x69, 0x67,
239 	0x66, 0x65, 0x63,
240 	0x62, 0x61, 0x5f,
241 	0x5d, 0x5b, 0x58,
242 	0x55, 0x52, 0x4f,
243 	0x4c, 0x49, 0x46,
244 	0x43, 0x3f, 0x3b,
245 	0x37, 0x33, 0x2e,
246 	0x29, 0x24, 0x1e,
247 	0x18, 0x11, 0x0a,
248 	0x01,
249 };
250 
251