1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* volume tables, taken from TAS3001c data manual */
3 /* volume gain values */
4 /* 0 = -70 dB, 175 = 18.0 dB in 0.5 dB step */
5 static const unsigned int master_volume_table[] = {
6 0x00000015, 0x00000016, 0x00000017,
7 0x00000019, 0x0000001a, 0x0000001c,
8 0x0000001d, 0x0000001f, 0x00000021,
9 0x00000023, 0x00000025, 0x00000027,
10 0x00000029, 0x0000002c, 0x0000002e,
11 0x00000031, 0x00000034, 0x00000037,
12 0x0000003a, 0x0000003e, 0x00000042,
13 0x00000045, 0x0000004a, 0x0000004e,
14 0x00000053, 0x00000057, 0x0000005d,
15 0x00000062, 0x00000068, 0x0000006e,
16 0x00000075, 0x0000007b, 0x00000083,
17 0x0000008b, 0x00000093, 0x0000009b,
18 0x000000a5, 0x000000ae, 0x000000b9,
19 0x000000c4, 0x000000cf, 0x000000dc,
20 0x000000e9, 0x000000f6, 0x00000105,
21 0x00000114, 0x00000125, 0x00000136,
22 0x00000148, 0x0000015c, 0x00000171,
23 0x00000186, 0x0000019e, 0x000001b6,
24 0x000001d0, 0x000001eb, 0x00000209,
25 0x00000227, 0x00000248, 0x0000026b,
26 0x0000028f, 0x000002b6, 0x000002df,
27 0x0000030b, 0x00000339, 0x0000036a,
28 0x0000039e, 0x000003d5, 0x0000040f,
29 0x0000044c, 0x0000048d, 0x000004d2,
30 0x0000051c, 0x00000569, 0x000005bb,
31 0x00000612, 0x0000066e, 0x000006d0,
32 0x00000737, 0x000007a5, 0x00000818,
33 0x00000893, 0x00000915, 0x0000099f,
34 0x00000a31, 0x00000acc, 0x00000b6f,
35 0x00000c1d, 0x00000cd5, 0x00000d97,
36 0x00000e65, 0x00000f40, 0x00001027,
37 0x0000111c, 0x00001220, 0x00001333,
38 0x00001456, 0x0000158a, 0x000016d1,
39 0x0000182b, 0x0000199a, 0x00001b1e,
40 0x00001cb9, 0x00001e6d, 0x0000203a,
41 0x00002223, 0x00002429, 0x0000264e,
42 0x00002893, 0x00002afa, 0x00002d86,
43 0x00003039, 0x00003314, 0x0000361b,
44 0x00003950, 0x00003cb5, 0x0000404e,
45 0x0000441d, 0x00004827, 0x00004c6d,
46 0x000050f4, 0x000055c0, 0x00005ad5,
47 0x00006037, 0x000065ea, 0x00006bf4,
48 0x0000725a, 0x00007920, 0x0000804e,
49 0x000087e8, 0x00008ff6, 0x0000987d,
50 0x0000a186, 0x0000ab19, 0x0000b53c,
51 0x0000bff9, 0x0000cb59, 0x0000d766,
52 0x0000e429, 0x0000f1ae, 0x00010000,
53 0x00010f2b, 0x00011f3d, 0x00013042,
54 0x00014249, 0x00015562, 0x0001699c,
55 0x00017f09, 0x000195bc, 0x0001adc6,
56 0x0001c73d, 0x0001e237, 0x0001feca,
57 0x00021d0e, 0x00023d1d, 0x00025f12,
58 0x0002830b, 0x0002a925, 0x0002d182,
59 0x0002fc42, 0x0003298b, 0x00035983,
60 0x00038c53, 0x0003c225, 0x0003fb28,
61 0x0004378b, 0x00047783, 0x0004bb44,
62 0x0005030a, 0x00054f10, 0x00059f98,
63 0x0005f4e5, 0x00064f40, 0x0006aef6,
64 0x00071457, 0x00077fbb, 0x0007f17b,
67 /* treble table for TAS3001c */
68 /* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
69 static const unsigned int treble_volume_table[] = {
97 /* bass table for TAS3001c */
98 /* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
99 static const unsigned int bass_volume_table[] = {
127 /* mixer (pcm) volume table */
128 /* 0 = -70 dB, 175 = 18.0 dB in 0.5 dB step */
129 static const unsigned int mixer_volume_table[] = {
130 0x00014b, 0x00015f, 0x000174,
131 0x00018a, 0x0001a1, 0x0001ba,
132 0x0001d4, 0x0001f0, 0x00020d,
133 0x00022c, 0x00024d, 0x000270,
134 0x000295, 0x0002bc, 0x0002e6,
135 0x000312, 0x000340, 0x000372,
136 0x0003a6, 0x0003dd, 0x000418,
137 0x000456, 0x000498, 0x0004de,
138 0x000528, 0x000576, 0x0005c9,
139 0x000620, 0x00067d, 0x0006e0,
140 0x000748, 0x0007b7, 0x00082c,
141 0x0008a8, 0x00092b, 0x0009b6,
142 0x000a49, 0x000ae5, 0x000b8b,
143 0x000c3a, 0x000cf3, 0x000db8,
144 0x000e88, 0x000f64, 0x00104e,
145 0x001145, 0x00124b, 0x001361,
146 0x001487, 0x0015be, 0x001708,
147 0x001865, 0x0019d8, 0x001b60,
148 0x001cff, 0x001eb7, 0x002089,
149 0x002276, 0x002481, 0x0026ab,
150 0x0028f5, 0x002b63, 0x002df5,
151 0x0030ae, 0x003390, 0x00369e,
152 0x0039db, 0x003d49, 0x0040ea,
153 0x0044c3, 0x0048d6, 0x004d27,
154 0x0051b9, 0x005691, 0x005bb2,
155 0x006121, 0x0066e3, 0x006cfb,
156 0x007370, 0x007a48, 0x008186,
157 0x008933, 0x009154, 0x0099f1,
158 0x00a310, 0x00acba, 0x00b6f6,
159 0x00c1cd, 0x00cd49, 0x00d973,
160 0x00e655, 0x00f3fb, 0x010270,
161 0x0111c0, 0x0121f9, 0x013328,
162 0x01455b, 0x0158a2, 0x016d0e,
163 0x0182af, 0x019999, 0x01b1de,
164 0x01cb94, 0x01e6cf, 0x0203a7,
165 0x022235, 0x024293, 0x0264db,
166 0x02892c, 0x02afa3, 0x02d862,
167 0x03038a, 0x033142, 0x0361af,
168 0x0394fa, 0x03cb50, 0x0404de,
169 0x0441d5, 0x048268, 0x04c6d0,
170 0x050f44, 0x055c04, 0x05ad50,
171 0x06036e, 0x065ea5, 0x06bf44,
172 0x07259d, 0x079207, 0x0804dc,
173 0x087e80, 0x08ff59, 0x0987d5,
174 0x0a1866, 0x0ab189, 0x0b53be,
175 0x0bff91, 0x0cb591, 0x0d765a,
176 0x0e4290, 0x0f1adf, 0x100000,
177 0x10f2b4, 0x11f3c9, 0x13041a,
178 0x14248e, 0x15561a, 0x1699c0,
179 0x17f094, 0x195bb8, 0x1adc61,
180 0x1c73d5, 0x1e236d, 0x1fec98,
181 0x21d0d9, 0x23d1cd, 0x25f125,
182 0x2830af, 0x2a9254, 0x2d1818,
183 0x2fc420, 0x3298b0, 0x35982f,
184 0x38c528, 0x3c224c, 0x3fb278,
185 0x437880, 0x477828, 0x4bb446,
186 0x5030a1, 0x54f106, 0x59f980,
187 0x5f4e52, 0x64f403, 0x6aef5d,
188 0x714575, 0x77fbaa, 0x7f17af,
192 /* treble table for TAS3004 */
193 /* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
194 static const unsigned int snapper_treble_volume_table[] = {
222 /* bass table for TAS3004 */
223 /* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
224 static const unsigned int snapper_bass_volume_table[] = {