xref: /openbmc/linux/sound/ppc/tumbler_volume.h (revision 0e17c50f)
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,
65 };
66 
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[] = {
70 	0x96, 0x95, 0x94,
71 	0x93, 0x92, 0x91,
72 	0x90, 0x8f, 0x8e,
73 	0x8d, 0x8c, 0x8b,
74 	0x8a, 0x89, 0x88,
75 	0x87, 0x86, 0x85,
76 	0x84, 0x83, 0x82,
77 	0x81, 0x80, 0x7f,
78 	0x7e, 0x7d, 0x7c,
79 	0x7b, 0x7a, 0x79,
80 	0x78, 0x77, 0x76,
81 	0x75, 0x74, 0x73,
82 	0x72, 0x71, 0x70,
83 	0x6e, 0x6d, 0x6c,
84 	0x6b, 0x69, 0x68,
85 	0x66, 0x65, 0x63,
86 	0x62, 0x60, 0x5e,
87 	0x5c, 0x5a, 0x57,
88 	0x55, 0x52, 0x4f,
89 	0x4c, 0x49, 0x45,
90 	0x42, 0x3e, 0x3a,
91 	0x36, 0x32, 0x2d,
92 	0x28, 0x22, 0x1c,
93 	0x16, 0x10, 0x09,
94 	0x01,
95 };
96 
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[] = {
100 	0x86, 0x82, 0x7f,
101 	0x7d, 0x7a, 0x78,
102 	0x76, 0x74, 0x72,
103 	0x70, 0x6e, 0x6d,
104 	0x6b, 0x69, 0x66,
105 	0x64, 0x61, 0x5f,
106 	0x5d, 0x5c, 0x5a,
107 	0x59, 0x58, 0x56,
108 	0x55, 0x54, 0x53,
109 	0x51, 0x4f, 0x4d,
110 	0x4b, 0x49, 0x46,
111 	0x44, 0x42, 0x40,
112 	0x3e, 0x3c, 0x3b,
113 	0x39, 0x38, 0x36,
114 	0x35, 0x33, 0x31,
115 	0x30, 0x2e, 0x2c,
116 	0x2b, 0x29, 0x28,
117 	0x26, 0x25, 0x23,
118 	0x21, 0x1f, 0x1c,
119 	0x19, 0x18, 0x17,
120 	0x16, 0x14, 0x13,
121 	0x12, 0x10, 0x0f,
122 	0x0d, 0x0b, 0x0a,
123 	0x08, 0x06, 0x03,
124 	0x01,
125 };
126 
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,
189 };
190 
191 
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[] = {
195 	0x96, 0x95, 0x94,
196 	0x93, 0x92, 0x91,
197 	0x90, 0x8f, 0x8e,
198 	0x8d, 0x8c, 0x8b,
199 	0x8a, 0x89, 0x88,
200 	0x87, 0x86, 0x85,
201 	0x84, 0x83, 0x82,
202 	0x81, 0x80, 0x7f,
203 	0x7e, 0x7d, 0x7c,
204 	0x7b, 0x7a, 0x79,
205 	0x78, 0x77, 0x76,
206 	0x75, 0x74, 0x73,
207 	0x72, 0x71, 0x70,
208 	0x6f, 0x6d, 0x6c,
209 	0x6b, 0x69, 0x68,
210 	0x67, 0x65, 0x63,
211 	0x62, 0x60, 0x5d,
212 	0x5b, 0x59, 0x56,
213 	0x53, 0x51, 0x4d,
214 	0x4a, 0x47, 0x43,
215 	0x3f, 0x3b, 0x36,
216 	0x31, 0x2c, 0x26,
217 	0x20, 0x1a, 0x13,
218 	0x08, 0x04, 0x01,
219 	0x01,
220 };
221 
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[] = {
225 	0x96, 0x95, 0x94,
226 	0x93, 0x92, 0x91,
227 	0x90, 0x8f, 0x8e,
228 	0x8d, 0x8c, 0x8b,
229 	0x8a, 0x89, 0x88,
230 	0x87, 0x86, 0x85,
231 	0x84, 0x83, 0x82,
232 	0x81, 0x80, 0x7f,
233 	0x7e, 0x7d, 0x7c,
234 	0x7b, 0x7a, 0x79,
235 	0x78, 0x77, 0x76,
236 	0x75, 0x74, 0x73,
237 	0x72, 0x71, 0x6f,
238 	0x6e, 0x6d, 0x6b,
239 	0x6a, 0x69, 0x67,
240 	0x66, 0x65, 0x63,
241 	0x62, 0x61, 0x5f,
242 	0x5d, 0x5b, 0x58,
243 	0x55, 0x52, 0x4f,
244 	0x4c, 0x49, 0x46,
245 	0x43, 0x3f, 0x3b,
246 	0x37, 0x33, 0x2e,
247 	0x29, 0x24, 0x1e,
248 	0x18, 0x11, 0x0a,
249 	0x01,
250 };
251 
252