coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
tas5825m.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
4 
5 int tas5825m_setup(struct device *dev, int id)
6 {
7  int res;
8 
9  res = tas5825m_set_book(dev, 0x00);
10  if (res < 0)
11  return res;
12 
13  res = tas5825m_write_at(dev, 0x03, 0x02);
14  if (res < 0)
15  return res;
16 
17  res = tas5825m_write_at(dev, 0x01, 0x11);
18  if (res < 0)
19  return res;
20 
21  res = tas5825m_set_page(dev, 0x00);
22  if (res < 0)
23  return res;
24 
25  res = tas5825m_set_page(dev, 0x00);
26  if (res < 0)
27  return res;
28 
29  res = tas5825m_set_page(dev, 0x00);
30  if (res < 0)
31  return res;
32 
33  res = tas5825m_set_page(dev, 0x00);
34  if (res < 0)
35  return res;
36 
37  res = tas5825m_set_book(dev, 0x00);
38  if (res < 0)
39  return res;
40 
41  res = tas5825m_write_at(dev, 0x03, 0x02);
42  if (res < 0)
43  return res;
44 
45  res = tas5825m_set_page(dev, 0x00);
46  if (res < 0)
47  return res;
48 
49  res = tas5825m_set_page(dev, 0x00);
50  if (res < 0)
51  return res;
52 
53  res = tas5825m_set_page(dev, 0x00);
54  if (res < 0)
55  return res;
56 
57  res = tas5825m_set_page(dev, 0x00);
58  if (res < 0)
59  return res;
60 
61  res = tas5825m_set_book(dev, 0x00);
62  if (res < 0)
63  return res;
64 
65  res = tas5825m_write_at(dev, 0x03, 0x12);
66  if (res < 0)
67  return res;
68 
69  res = tas5825m_set_book(dev, 0x00);
70  if (res < 0)
71  return res;
72 
73  res = tas5825m_write_at(dev, 0x48, 0x0C);
74  if (res < 0)
75  return res;
76 
77  res = tas5825m_set_book(dev, 0x64);
78  if (res < 0)
79  return res;
80 
81  res = tas5825m_set_page(dev, 0x01);
82  if (res < 0)
83  return res;
84 
85  {
86  const uint8_t values[] = {
87  0x00, 0xFE, 0x00, 0x40, 0x00, 0xFC, 0x00, 0x00,
88  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
89  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
90  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
91  0x00, 0xFC, 0x50, 0x00, 0x00, 0xFC, 0x00, 0x00,
92  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
93  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
94  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
95  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
96  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
97  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
98  0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
99  0x00, 0x82, 0x00, 0x93, 0x00, 0xFC, 0x00, 0x00,
100  0x84, 0xC1, 0x02, 0x9F, 0x08, 0x18, 0x10, 0x00,
101  0x02, 0x28, 0x00, 0x03, 0x8F, 0x00, 0xFF, 0xF8,
102  };
103  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
104  if (res < 0)
105  return res;
106  }
107 
108  res = tas5825m_set_page(dev, 0x02);
109  if (res < 0)
110  return res;
111 
112  {
113  const uint8_t values[] = {
114  0x02, 0x60, 0x00, 0x01, 0x84, 0xA0, 0x02, 0x00,
115  0x84, 0x02, 0x04, 0x03, 0x00, 0x26, 0x20, 0x96,
116  0x84, 0xA2, 0x04, 0x02, 0x84, 0xC1, 0x02, 0xBC,
117  0x84, 0x49, 0x03, 0x64, 0x08, 0xFC, 0x0C, 0x99,
118  0x02, 0x70, 0x00, 0x04, 0x84, 0xC1, 0x02, 0xBD,
119  0xE0, 0x10, 0x31, 0xAD, 0x84, 0xCA, 0x20, 0xE0,
120  0xF0, 0x1C, 0x31, 0xAE, 0xF0, 0x1C, 0x31, 0xAF,
121  0x02, 0x68, 0x00, 0x03, 0xF0, 0x1C, 0x31, 0xB0,
122  0xF0, 0x1D, 0x31, 0xB1, 0x02, 0x78, 0x00, 0x02,
123  0x84, 0x41, 0x03, 0x78, 0x80, 0x27, 0x80, 0xF9,
124  0x08, 0xFC, 0x0C, 0x98, 0x84, 0x83, 0x03, 0x6A,
125  0xE0, 0x10, 0x11, 0xAD, 0x84, 0xC2, 0x00, 0xE0,
126  0xF0, 0x1C, 0x11, 0xAE, 0xF0, 0x1C, 0x11, 0xAF,
127  0xF0, 0x1C, 0x11, 0xB0, 0xF0, 0x1D, 0x11, 0xB1,
128  0x84, 0x59, 0x03, 0x65, 0x80, 0x27, 0x80, 0xF8,
129  };
130  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
131  if (res < 0)
132  return res;
133  }
134 
135  res = tas5825m_set_page(dev, 0x03);
136  if (res < 0)
137  return res;
138 
139  {
140  const uint8_t values[] = {
141  0x84, 0x83, 0x03, 0x6B, 0xE2, 0x57, 0x91, 0xB2,
142  0x84, 0xC1, 0x02, 0xBD, 0x84, 0x82, 0x60, 0xE0,
143  0xF0, 0x1C, 0x71, 0xB3, 0xF0, 0x1C, 0x71, 0xB4,
144  0xF0, 0x1C, 0x71, 0xB5, 0xF0, 0x1D, 0x71, 0xB6,
145  0x84, 0x51, 0x03, 0x79, 0x80, 0x27, 0x80, 0xFB,
146  0x84, 0x83, 0x03, 0x6C, 0xE0, 0x10, 0x11, 0xB2,
147  0x84, 0xC2, 0x40, 0xE0, 0xF0, 0x1C, 0x51, 0xB3,
148  0xF0, 0x1C, 0x51, 0xB4, 0xF0, 0x1C, 0x51, 0xB5,
149  0xF0, 0x1D, 0x51, 0xB6, 0x84, 0x4B, 0x03, 0x64,
150  0x84, 0x49, 0x03, 0x77, 0x86, 0xA1, 0x01, 0xB7,
151  0x84, 0x43, 0x03, 0x78, 0x02, 0x11, 0xFF, 0xFC,
152  0x84, 0x41, 0x03, 0x7E, 0x80, 0x27, 0x80, 0xFA,
153  0x84, 0x83, 0x03, 0x6D, 0xE2, 0x57, 0x80, 0x00,
154  0x84, 0xC1, 0x02, 0xBD, 0x84, 0x82, 0x20, 0xE0,
155  0xF0, 0x1C, 0x31, 0xB8, 0xF0, 0x1C, 0x31, 0xB9,
156  };
157  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
158  if (res < 0)
159  return res;
160  }
161 
162  res = tas5825m_set_page(dev, 0x04);
163  if (res < 0)
164  return res;
165 
166  {
167  const uint8_t values[] = {
168  0xF0, 0x1C, 0x31, 0xBA, 0xF0, 0x1D, 0x31, 0xBB,
169  0x86, 0xA1, 0x01, 0xB7, 0x80, 0x27, 0x80, 0xF9,
170  0x84, 0x83, 0x03, 0x6E, 0xE0, 0x10, 0x00, 0x00,
171  0x84, 0xC2, 0x00, 0xE0, 0xF0, 0x1C, 0x11, 0xB8,
172  0xF0, 0x1C, 0x11, 0xB9, 0xF0, 0x1C, 0x11, 0xBA,
173  0xF0, 0x1D, 0x11, 0xBB, 0x86, 0xA1, 0x01, 0x9D,
174  0x80, 0x27, 0x80, 0xF8, 0x84, 0x83, 0x03, 0x6F,
175  0x84, 0x5B, 0x03, 0x65, 0x66, 0x6D, 0x60, 0x00,
176  0xEE, 0x64, 0x80, 0x00, 0x02, 0xC3, 0x00, 0x10,
177  0x62, 0x6D, 0x40, 0x00, 0xEA, 0x64, 0x60, 0x00,
178  0x02, 0xD3, 0x00, 0x10, 0x88, 0x47, 0x00, 0x81,
179  0x09, 0x07, 0x08, 0x88, 0x08, 0xFC, 0x28, 0x53,
180  0x0D, 0x00, 0x10, 0x18, 0x84, 0xC3, 0x03, 0x24,
181  0x08, 0x60, 0x28, 0x50, 0x84, 0x80, 0x04, 0x02,
182  0xE4, 0x00, 0x00, 0x80, 0x86, 0xC1, 0x01, 0x9F,
183  };
184  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
185  if (res < 0)
186  return res;
187  }
188 
189  res = tas5825m_set_page(dev, 0x05);
190  if (res < 0)
191  return res;
192 
193  {
194  const uint8_t values[] = {
195  0x88, 0x47, 0x20, 0x81, 0x0D, 0x00, 0x10, 0x20,
196  0x84, 0x53, 0x03, 0x79, 0x84, 0x4B, 0x03, 0x77,
197  0x84, 0x43, 0x03, 0x7E, 0x00, 0x42, 0x20, 0x85,
198  0x84, 0xDB, 0x03, 0x23, 0x08, 0xFC, 0x38, 0x10,
199  0x02, 0x48, 0x02, 0xBC, 0x02, 0x40, 0x02, 0xBD,
200  0xE4, 0x10, 0x11, 0x9E, 0x00, 0xFE, 0x20, 0x88,
201  0x88, 0x6C, 0x00, 0x00, 0x02, 0x48, 0x02, 0xBC,
202  0x02, 0x40, 0x02, 0xBD, 0x02, 0x80, 0x00, 0x00,
203  0x84, 0xA1, 0x03, 0x6F, 0xE4, 0x00, 0x00, 0x00,
204  0x84, 0xA1, 0x03, 0x6E, 0x84, 0xD1, 0x03, 0x6C,
205  0xE0, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x82,
206  0x84, 0xC9, 0x03, 0x6D, 0x88, 0x07, 0x00, 0x80,
207  0xEC, 0x00, 0x00, 0x81, 0x10, 0x00, 0x18, 0x01,
208  0x88, 0x47, 0x00, 0x80, 0x02, 0x50, 0x02, 0xBC,
209  0x00, 0xFE, 0x20, 0x99, 0x0C, 0x20, 0x08, 0x20,
210  };
211  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
212  if (res < 0)
213  return res;
214  }
215 
216  res = tas5825m_set_page(dev, 0x06);
217  if (res < 0)
218  return res;
219 
220  {
221  const uint8_t values[] = {
222  0x02, 0x78, 0x00, 0x02, 0x02, 0x50, 0x02, 0xBC,
223  0x02, 0x40, 0x02, 0xBD, 0x02, 0x70, 0x00, 0x06,
224  0x84, 0x59, 0x03, 0x4F, 0xE2, 0x57, 0x91, 0xBC,
225  0x02, 0xC3, 0x00, 0x10, 0x84, 0xC9, 0x02, 0xBD,
226  0x84, 0xC2, 0x60, 0xE0, 0xF0, 0x1C, 0x71, 0xBD,
227  0xF0, 0x1C, 0x71, 0xBE, 0x02, 0x68, 0x00, 0x05,
228  0xF0, 0x1C, 0x71, 0xBF, 0xF0, 0x1D, 0x71, 0xC0,
229  0xE4, 0x00, 0x11, 0xC3, 0x80, 0x27, 0x80, 0xE3,
230  0xF4, 0x00, 0x11, 0xC1, 0xF4, 0x1F, 0x71, 0xC2,
231  0xF4, 0x1C, 0x71, 0xC4, 0xF4, 0x1D, 0x71, 0xC5,
232  0x84, 0x49, 0x03, 0x57, 0x80, 0x67, 0x80, 0xFB,
233  0x02, 0xD3, 0x00, 0x10, 0xE0, 0x10, 0x31, 0xBC,
234  0x84, 0xCA, 0x20, 0xE0, 0xF0, 0x1C, 0x31, 0xBD,
235  0xF0, 0x1C, 0x31, 0xBE, 0xF0, 0x1C, 0x31, 0xBF,
236  0xF0, 0x1D, 0x31, 0xC0, 0xE4, 0x00, 0x11, 0xC3,
237  };
238  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
239  if (res < 0)
240  return res;
241  }
242 
243  res = tas5825m_set_page(dev, 0x07);
244  if (res < 0)
245  return res;
246 
247  {
248  const uint8_t values[] = {
249  0x80, 0x27, 0x80, 0xE1, 0xF4, 0x00, 0x11, 0xC1,
250  0xF4, 0x1F, 0x31, 0xC2, 0xF4, 0x1C, 0x31, 0xC4,
251  0xF4, 0x1D, 0x31, 0xC5, 0x84, 0xC2, 0x04, 0x05,
252  0x08, 0xFC, 0x58, 0x10, 0x80, 0x67, 0x80, 0xF9,
253  0x02, 0xD3, 0x00, 0x10, 0x84, 0xCA, 0x04, 0x04,
254  0x08, 0xFC, 0x58, 0x31, 0x84, 0xCA, 0x04, 0x06,
255  0x08, 0x00, 0x0A, 0x21, 0x84, 0xC2, 0x04, 0x07,
256  0x08, 0x00, 0x0A, 0x00, 0xE4, 0x10, 0x31, 0xA3,
257  0xE0, 0x10, 0x00, 0x00, 0xEA, 0x65, 0x60, 0x00,
258  0x02, 0xC3, 0x00, 0x10, 0xEE, 0x65, 0x80, 0x00,
259  0x02, 0xCB, 0x00, 0x10, 0x88, 0x47, 0x00, 0x82,
260  0x09, 0x07, 0x09, 0x31, 0x08, 0xFC, 0x48, 0x13,
261  0x0D, 0x00, 0x10, 0x38, 0x84, 0xCB, 0x03, 0x2C,
262  0x08, 0x60, 0x48, 0x11, 0x84, 0x80, 0x04, 0x02,
263  0xE4, 0x00, 0x00, 0x81, 0x02, 0x28, 0x00, 0x02,
264  };
265  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
266  if (res < 0)
267  return res;
268  }
269 
270  res = tas5825m_set_page(dev, 0x08);
271  if (res < 0)
272  return res;
273 
274  {
275  const uint8_t values[] = {
276  0x88, 0x67, 0x20, 0x00, 0xE4, 0x00, 0x02, 0x00,
277  0x84, 0xDB, 0x03, 0x2B, 0x80, 0x48, 0x00, 0x81,
278  0x86, 0xD9, 0x01, 0xA9, 0x86, 0xC1, 0x01, 0xAA,
279  0x0D, 0x00, 0x10, 0x38, 0x08, 0xFC, 0x3C, 0x12,
280  0x84, 0x5B, 0x03, 0x4F, 0x84, 0x4B, 0x03, 0x57,
281  0x84, 0xD2, 0x04, 0x02, 0x00, 0x62, 0x20, 0xE4,
282  0x86, 0xD1, 0x01, 0xAC, 0x0D, 0x00, 0x10, 0x20,
283  0x86, 0xC9, 0x01, 0xA8, 0x86, 0xC1, 0x01, 0xA7,
284  0x00, 0xFE, 0x20, 0xE8, 0x08, 0x44, 0x26, 0x30,
285  0x08, 0xFC, 0x3C, 0x71, 0x86, 0xC1, 0x01, 0xA6,
286  0x84, 0xCA, 0x04, 0x02, 0x86, 0xD1, 0x01, 0xAB,
287  0x84, 0x80, 0x04, 0x02, 0xE4, 0x00, 0x00, 0x80,
288  0x88, 0x40, 0x00, 0x80, 0x08, 0xFC, 0x08, 0x50,
289  0x02, 0x28, 0x00, 0x01, 0x02, 0xA3, 0x00, 0x18,
290  0xE4, 0x40, 0x00, 0x00, 0x88, 0xC8, 0x00, 0x82,
291  };
292  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
293  if (res < 0)
294  return res;
295  }
296 
297  res = tas5825m_set_page(dev, 0x09);
298  if (res < 0)
299  return res;
300 
301  {
302  const uint8_t values[] = {
303  0x84, 0xC9, 0x03, 0x2D, 0x86, 0xC1, 0x01, 0xA5,
304  0x86, 0xD9, 0x01, 0xA4, 0x0D, 0x00, 0x10, 0x48,
305  0x08, 0x44, 0x06, 0x13, 0x86, 0xC1, 0x01, 0xEF,
306  0x84, 0x49, 0x03, 0x37, 0x00, 0xFC, 0x00, 0x00,
307  0xE4, 0x10, 0x40, 0x83, 0xEC, 0x10, 0x20, 0x00,
308  0x88, 0x47, 0x00, 0x82, 0x04, 0x80, 0xA8, 0xB3,
309  0x84, 0x80, 0x04, 0x07, 0xE4, 0x00, 0x00, 0x83,
310  0x84, 0xDB, 0x03, 0x2D, 0x88, 0x40, 0x00, 0x83,
311  0x10, 0x00, 0x1A, 0x22, 0xE4, 0x80, 0xC0, 0x00,
312  0x88, 0x40, 0x00, 0x81, 0x84, 0xD8, 0x04, 0x04,
313  0x0C, 0x20, 0x08, 0x39, 0x86, 0xD1, 0x01, 0xF0,
314  0x84, 0x81, 0x02, 0xBC, 0x86, 0xC9, 0x01, 0xF1,
315  0xE0, 0x00, 0x11, 0xC7, 0x84, 0x82, 0x20, 0xE0,
316  0x84, 0x82, 0x04, 0x02, 0xF0, 0x1C, 0x31, 0xC8,
317  0xF0, 0x1C, 0x31, 0xC9, 0xF0, 0x1C, 0x31, 0xCA,
318  };
319  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
320  if (res < 0)
321  return res;
322  }
323 
324  res = tas5825m_set_page(dev, 0x0A);
325  if (res < 0)
326  return res;
327 
328  {
329  const uint8_t values[] = {
330  0xF0, 0x1D, 0x31, 0xCB, 0xE4, 0x00, 0x11, 0xCE,
331  0x80, 0x27, 0x80, 0xE1, 0xF4, 0x00, 0x11, 0xCC,
332  0xF4, 0x1F, 0x31, 0xCD, 0xF4, 0x1C, 0x31, 0xCF,
333  0xF4, 0x1D, 0x31, 0xD0, 0x84, 0x41, 0x03, 0x2F,
334  0x80, 0x67, 0x80, 0xF9, 0x02, 0xDB, 0x00, 0x10,
335  0x8F, 0x30, 0x00, 0x00, 0x0C, 0x1C, 0x11, 0x74,
336  0x08, 0x64, 0x66, 0x72, 0x0D, 0x00, 0x10, 0x40,
337  0x08, 0x44, 0x06, 0x12, 0x84, 0xD2, 0x41, 0x00,
338  0xE0, 0x10, 0x51, 0xD1, 0xF0, 0x1C, 0x11, 0xD2,
339  0xF0, 0x1C, 0x11, 0xD3, 0xF0, 0x1C, 0x11, 0xD4,
340  0xF0, 0x1D, 0x11, 0xD5, 0xE4, 0x00, 0x11, 0xD8,
341  0x80, 0x27, 0x80, 0xE0, 0xF4, 0x00, 0x11, 0xD6,
342  0xF4, 0x20, 0x11, 0xD7, 0x84, 0x84, 0x00, 0xF8,
343  0xF4, 0x1C, 0x11, 0xD9, 0x84, 0x4B, 0x03, 0x37,
344  0xF4, 0x1D, 0x11, 0xDA, 0x84, 0x49, 0x03, 0x5F,
345  };
346  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
347  if (res < 0)
348  return res;
349  }
350 
351  res = tas5825m_set_page(dev, 0x0B);
352  if (res < 0)
353  return res;
354 
355  {
356  const uint8_t values[] = {
357  0x80, 0x67, 0x80, 0xF8, 0xE0, 0x00, 0x11, 0xDB,
358  0x84, 0x82, 0x21, 0x00, 0x84, 0x82, 0x20, 0xE0,
359  0xF0, 0x1C, 0x31, 0xDC, 0xF0, 0x1C, 0x31, 0xDD,
360  0xF0, 0x1C, 0x31, 0xDE, 0xF0, 0x1D, 0x31, 0xDF,
361  0xE4, 0x00, 0x11, 0xE2, 0x80, 0x27, 0x80, 0xE1,
362  0xF4, 0x00, 0x11, 0xE0, 0xF4, 0x1F, 0x31, 0xE1,
363  0xF4, 0x1C, 0x31, 0xE3, 0xF4, 0x1D, 0x31, 0xE4,
364  0x84, 0x51, 0x03, 0x60, 0x80, 0x67, 0x80, 0xF9,
365  0xE4, 0x00, 0x00, 0x81, 0xE0, 0x80, 0x51, 0xE5,
366  0x84, 0x82, 0x40, 0xE0, 0xF0, 0x1C, 0x51, 0xE6,
367  0xF0, 0x1C, 0x51, 0xE7, 0xF0, 0x1C, 0x51, 0xE8,
368  0x88, 0x47, 0x00, 0x80, 0xF0, 0x1D, 0x51, 0xE9,
369  0xE4, 0x00, 0x11, 0xEC, 0x80, 0x27, 0x80, 0xE2,
370  0xF4, 0x00, 0x11, 0xEA, 0xF4, 0x1F, 0x51, 0xEB,
371  0xF4, 0x1C, 0x51, 0xED, 0xF4, 0x1D, 0x51, 0xEE,
372  };
373  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
374  if (res < 0)
375  return res;
376  }
377 
378  res = tas5825m_set_page(dev, 0x0C);
379  if (res < 0)
380  return res;
381 
382  {
383  const uint8_t values[] = {
384  0x02, 0x58, 0x02, 0xBC, 0x08, 0xFC, 0x0D, 0x18,
385  0x80, 0x67, 0x80, 0xFA, 0x02, 0xD3, 0x00, 0x10,
386  0x10, 0x00, 0x18, 0x03, 0x84, 0x43, 0x03, 0x2F,
387  0x84, 0x4B, 0x03, 0x5F, 0x84, 0x53, 0x03, 0x60,
388  0x84, 0x41, 0x03, 0x47, 0x84, 0x51, 0x03, 0x3F,
389  0x84, 0xC1, 0x02, 0xBD, 0x00, 0xFC, 0x00, 0x00,
390  0x02, 0x48, 0x02, 0xBD, 0x02, 0x11, 0xFF, 0xF8,
391  0x86, 0xD1, 0x01, 0xEF, 0x86, 0xC9, 0x01, 0xF0,
392  0x86, 0x1D, 0x01, 0xF1, 0xE0, 0x10, 0x11, 0xC7,
393  0x86, 0xA1, 0x01, 0xC8, 0x84, 0xC2, 0x00, 0xE0,
394  0xF0, 0x1C, 0x00, 0x00, 0xF0, 0x1C, 0x11, 0xC9,
395  0xF0, 0x1C, 0x11, 0xCA, 0xF0, 0x1D, 0x11, 0xCB,
396  0xE4, 0x00, 0x11, 0xCE, 0x80, 0x27, 0x80, 0xE0,
397  0x84, 0x1E, 0x04, 0x02, 0x02, 0x78, 0x00, 0x02,
398  0xF4, 0x00, 0x11, 0xCC, 0xF4, 0x1F, 0x11, 0xCD,
399  };
400  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
401  if (res < 0)
402  return res;
403  }
404 
405  res = tas5825m_set_page(dev, 0x0D);
406  if (res < 0)
407  return res;
408 
409  {
410  const uint8_t values[] = {
411  0xF4, 0x1C, 0x11, 0xCF, 0xF4, 0x1D, 0x11, 0xD0,
412  0x86, 0xA1, 0x01, 0xD1, 0x80, 0x67, 0x80, 0xF8,
413  0x84, 0x43, 0x03, 0x47, 0x84, 0x59, 0x03, 0x62,
414  0x8F, 0xA0, 0x00, 0x00, 0x02, 0xDB, 0x00, 0x10,
415  0x0C, 0x1C, 0x51, 0x6C, 0x08, 0x64, 0x66, 0x71,
416  0x0D, 0x00, 0x10, 0x30, 0x08, 0x44, 0x46, 0x51,
417  0x84, 0xCA, 0x01, 0x00, 0xE0, 0x10, 0x20, 0x00,
418  0xF0, 0x1C, 0x51, 0xD2, 0xF0, 0x1C, 0x51, 0xD3,
419  0xF0, 0x1C, 0x51, 0xD4, 0xF0, 0x1D, 0x51, 0xD5,
420  0xE4, 0x00, 0x11, 0xD8, 0x80, 0x27, 0x80, 0xE2,
421  0xF4, 0x00, 0x11, 0xD6, 0xF4, 0x1F, 0x51, 0xD7,
422  0xF4, 0x1C, 0x51, 0xD9, 0xF4, 0x1D, 0x51, 0xDA,
423  0x84, 0x41, 0x03, 0x61, 0x80, 0x67, 0x80, 0xFA,
424  0xE0, 0x00, 0x11, 0xDB, 0x84, 0x82, 0x01, 0x00,
425  0x84, 0x82, 0x00, 0xE0, 0xF0, 0x1C, 0x11, 0xDC,
426  };
427  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
428  if (res < 0)
429  return res;
430  }
431 
432  res = tas5825m_set_page(dev, 0x0E);
433  if (res < 0)
434  return res;
435 
436  {
437  const uint8_t values[] = {
438  0xF0, 0x1C, 0x11, 0xDD, 0xF0, 0x1C, 0x11, 0xDE,
439  0xF0, 0x1D, 0x11, 0xDF, 0xE4, 0x00, 0x11, 0xE2,
440  0x80, 0x27, 0x80, 0xE0, 0xF4, 0x00, 0x11, 0xE0,
441  0xF4, 0x1F, 0x11, 0xE1, 0xF4, 0x1C, 0x11, 0xE3,
442  0x02, 0x83, 0x00, 0x18, 0x84, 0xC2, 0x60, 0xE0,
443  0x86, 0xC1, 0x01, 0xE4, 0xE0, 0x00, 0x11, 0xE5,
444  0xF4, 0x1D, 0x00, 0x80, 0x84, 0xA0, 0x04, 0x02,
445  0x80, 0x67, 0x80, 0xF8, 0xE4, 0x00, 0x00, 0x00,
446  0xF0, 0x1C, 0x71, 0xE6, 0xF0, 0x1C, 0x71, 0xE7,
447  0xF0, 0x1C, 0x71, 0xE8, 0xF0, 0x1D, 0x71, 0xE9,
448  0x86, 0xA1, 0x01, 0xEC, 0x88, 0x47, 0x00, 0x80,
449  0xE4, 0x00, 0x00, 0x00, 0x80, 0x27, 0x80, 0xE3,
450  0xF4, 0x00, 0x11, 0xEA, 0xF4, 0x1F, 0x71, 0xEB,
451  0xF4, 0x1C, 0x71, 0xED, 0xF4, 0x1D, 0x71, 0xEE,
452  0x86, 0xC9, 0x01, 0xA1, 0x80, 0x67, 0x80, 0xFB,
453  };
454  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
455  if (res < 0)
456  return res;
457  }
458 
459  res = tas5825m_set_page(dev, 0x0F);
460  if (res < 0)
461  return res;
462 
463  {
464  const uint8_t values[] = {
465  0x84, 0x5B, 0x03, 0x62, 0x08, 0x00, 0x10, 0x20,
466  0x02, 0xD3, 0x00, 0x10, 0x84, 0x53, 0x03, 0x3F,
467  0x84, 0x43, 0x03, 0x61, 0x08, 0xFC, 0x0D, 0x18,
468  0x02, 0x50, 0x02, 0xBD, 0x00, 0x26, 0x21, 0xB7,
469  0x10, 0x00, 0x18, 0x01, 0x86, 0xC1, 0x01, 0xC6,
470  0x84, 0xC3, 0x03, 0x63, 0x02, 0xC0, 0x03, 0x63,
471  0x84, 0x52, 0x04, 0x00, 0x02, 0x48, 0x02, 0xBC,
472  0x84, 0xC2, 0x04, 0x01, 0x00, 0xFF, 0x10, 0xB0,
473  0x8C, 0xFF, 0x02, 0xBC, 0x00, 0xFE, 0x21, 0xDA,
474  0x00, 0xFC, 0x00, 0x00, 0x86, 0xC9, 0x01, 0xA0,
475  0x84, 0x81, 0x02, 0xBC, 0x02, 0xA3, 0x00, 0x10,
476  0xE4, 0x00, 0x00, 0x00, 0x84, 0x81, 0x02, 0xBD,
477  0x88, 0x47, 0x13, 0x25, 0x02, 0xA3, 0x00, 0x10,
478  0xE4, 0x00, 0x00, 0x00, 0x88, 0x47, 0x13, 0x26,
479  0x02, 0x40, 0x03, 0x28, 0x84, 0xC1, 0x03, 0x25,
480  };
481  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
482  if (res < 0)
483  return res;
484  }
485 
486  res = tas5825m_set_page(dev, 0x10);
487  if (res < 0)
488  return res;
489 
490  {
491  const uint8_t values[] = {
492  0x00, 0xFF, 0x11, 0x4E, 0x00, 0xFC, 0x00, 0x00,
493  0x02, 0x40, 0x03, 0x29, 0x86, 0xC9, 0x01, 0xA0,
494  0x84, 0xC1, 0x03, 0x26, 0x00, 0xFF, 0x11, 0x4E,
495  0x00, 0xFC, 0x00, 0x00, 0x86, 0xC1, 0x01, 0xA2,
496  0x84, 0xC3, 0x03, 0x2A, 0x02, 0xC0, 0x03, 0x29,
497  0x02, 0xC8, 0x03, 0x26, 0x02, 0x40, 0x03, 0x28,
498  0x02, 0x48, 0x03, 0x25, 0x02, 0x50, 0x03, 0x2A,
499  0x84, 0xC2, 0x04, 0x00, 0x84, 0xCA, 0x04, 0x01,
500  0x00, 0xFF, 0x21, 0xDF, 0x00, 0xFC, 0x00, 0x00,
501  0x84, 0xA1, 0x02, 0xBC, 0xE6, 0x64, 0xA0, 0x00,
502  0x88, 0x47, 0x12, 0xBC, 0x84, 0xA1, 0x03, 0x26,
503  0xE6, 0x57, 0xA0, 0x00, 0x88, 0x47, 0x12, 0xBD,
504  0x84, 0x00, 0x04, 0x03, 0x00, 0xFC, 0x00, 0x00,
505  0x02, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x50, 0x00,
506  0x8F, 0x00, 0x00, 0x08, 0x8F, 0x00, 0xFF, 0xFF,
507  };
508  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
509  if (res < 0)
510  return res;
511  }
512 
513  res = tas5825m_set_page(dev, 0x11);
514  if (res < 0)
515  return res;
516 
517  {
518  const uint8_t values[] = {
519  0x84, 0x58, 0x04, 0x01, 0x84, 0xA1, 0x03, 0x68,
520  0x84, 0xC1, 0x03, 0x67, 0xE0, 0xE0, 0x00, 0x00,
521  0x02, 0xCA, 0x60, 0x00, 0x40, 0x40, 0xA0, 0x00,
522  0x80, 0x00, 0xC0, 0x82, 0x08, 0xFC, 0x48, 0x3A,
523  0x08, 0xFC, 0x38, 0x52, 0x84, 0x58, 0x04, 0x02,
524  0xE0, 0x10, 0x40, 0x00, 0x84, 0xA0, 0x41, 0x00,
525  0x40, 0x47, 0x20, 0x00, 0x02, 0xD3, 0x00, 0x10,
526  0x84, 0xA2, 0x04, 0x00, 0x84, 0xA1, 0x03, 0x66,
527  0xE4, 0x20, 0x00, 0x00, 0x08, 0x00, 0x28, 0x42,
528  0x45, 0x40, 0xA0, 0x00, 0x80, 0x40, 0xC0, 0x83,
529  0x08, 0xFC, 0x68, 0x3B, 0x08, 0xFC, 0x38, 0x71,
530  0x84, 0xD3, 0x03, 0x68, 0xE4, 0x10, 0x20, 0x00,
531  0x84, 0xA0, 0x04, 0x00, 0x45, 0x47, 0x20, 0x00,
532  0x02, 0xD3, 0x00, 0x10, 0x80, 0x40, 0xC0, 0x81,
533  0x0D, 0x00, 0x10, 0x20, 0x08, 0x00, 0x28, 0x42,
534  };
535  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
536  if (res < 0)
537  return res;
538  }
539 
540  res = tas5825m_set_page(dev, 0x12);
541  if (res < 0)
542  return res;
543 
544  {
545  const uint8_t values[] = {
546  0x84, 0xD3, 0x03, 0x66, 0x86, 0xD1, 0x01, 0x9C,
547  0x86, 0xD9, 0x01, 0x9B, 0x08, 0xFC, 0x3C, 0x11,
548  0x08, 0x44, 0x46, 0x53, 0x00, 0xFC, 0x00, 0x00,
549  0x02, 0x83, 0x00, 0x19, 0x02, 0xA3, 0x00, 0x1B,
550  0x80, 0x00, 0xC0, 0x83, 0x84, 0xC9, 0x03, 0x69,
551  0x0D, 0x00, 0x10, 0x68, 0x08, 0xFC, 0x7C, 0x33,
552  0xE0, 0x00, 0x00, 0x00, 0x02, 0x83, 0x00, 0x1B,
553  0x86, 0xD9, 0x01, 0x9B, 0x08, 0x44, 0x46, 0x53,
554  0x80, 0x07, 0x00, 0x82, 0xE0, 0x00, 0x00, 0x83,
555  0x80, 0x07, 0x00, 0x83, 0x0C, 0x60, 0x0C, 0x10,
556  0x0C, 0xE0, 0x0C, 0x39, 0x84, 0xC3, 0x03, 0x67,
557  0x84, 0xCB, 0x03, 0x69, 0x00, 0xFC, 0x50, 0x00,
558  0x8F, 0x00, 0x00, 0x01
559  };
560  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
561  if (res < 0)
562  return res;
563  }
564 
565  res = tas5825m_set_book(dev, 0x78);
566  if (res < 0)
567  return res;
568 
569  res = tas5825m_set_page(dev, 0x18);
570  if (res < 0)
571  return res;
572 
573  {
574  const uint8_t values[] = {
575  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
576  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
577  0x00, 0x00, 0x00, 0x00
578  };
579  res = tas5825m_write_block_at(dev, 0x30, values, ARRAY_SIZE(values));
580  if (res < 0)
581  return res;
582  }
583 
584  res = tas5825m_set_book(dev, 0x78);
585  if (res < 0)
586  return res;
587 
588  res = tas5825m_set_page(dev, 0x1C);
589  if (res < 0)
590  return res;
591 
592  {
593  const uint8_t values[] = {
594  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
595  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
596  0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00,
597  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
598  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
599  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
600  };
601  res = tas5825m_write_block_at(dev, 0x0C, values, ARRAY_SIZE(values));
602  if (res < 0)
603  return res;
604  }
605 
606  res = tas5825m_set_book(dev, 0x78);
607  if (res < 0)
608  return res;
609 
610  res = tas5825m_set_page(dev, 0x1C);
611  if (res < 0)
612  return res;
613 
614  {
615  const uint8_t values[] = {
616  0x00, 0x00, 0x03, 0x38, 0x00, 0x00, 0x00, 0x00,
617  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
618  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
619  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
620  };
621  res = tas5825m_write_block_at(dev, 0x3C, values, ARRAY_SIZE(values));
622  if (res < 0)
623  return res;
624  }
625 
626  res = tas5825m_set_book(dev, 0x78);
627  if (res < 0)
628  return res;
629 
630  res = tas5825m_set_page(dev, 0x1C);
631  if (res < 0)
632  return res;
633 
634  {
635  const uint8_t values[] = {
636  0x00, 0x00, 0x03, 0x40, 0x00, 0x00, 0x00, 0x00,
637  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
638  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
639  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
640  };
641  res = tas5825m_write_block_at(dev, 0x5C, values, ARRAY_SIZE(values));
642  if (res < 0)
643  return res;
644  }
645 
646  res = tas5825m_set_book(dev, 0x78);
647  if (res < 0)
648  return res;
649 
650  res = tas5825m_set_page(dev, 0x1C);
651  if (res < 0)
652  return res;
653 
654  {
655  const uint8_t values[] = {
656  0x00, 0x00, 0x03, 0x48
657  };
658  res = tas5825m_write_block_at(dev, 0x7C, values, ARRAY_SIZE(values));
659  if (res < 0)
660  return res;
661  }
662 
663  res = tas5825m_set_page(dev, 0x1D);
664  if (res < 0)
665  return res;
666 
667  {
668  const uint8_t values[] = {
669  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
670  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
671  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
672  0x00, 0x00, 0x00, 0x00
673  };
674  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
675  if (res < 0)
676  return res;
677  }
678 
679  res = tas5825m_set_book(dev, 0x78);
680  if (res < 0)
681  return res;
682 
683  res = tas5825m_set_page(dev, 0x1D);
684  if (res < 0)
685  return res;
686 
687  {
688  const uint8_t values[] = {
689  0x00, 0x00, 0x03, 0x50, 0x00, 0x00, 0x00, 0x00,
690  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
691  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
692  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
693  };
694  res = tas5825m_write_block_at(dev, 0x24, values, ARRAY_SIZE(values));
695  if (res < 0)
696  return res;
697  }
698 
699  res = tas5825m_set_book(dev, 0x78);
700  if (res < 0)
701  return res;
702 
703  res = tas5825m_set_page(dev, 0x1D);
704  if (res < 0)
705  return res;
706 
707  {
708  const uint8_t values[] = {
709  0x00, 0x00, 0x03, 0x58, 0x00, 0x00, 0x00, 0x00,
710  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
711  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
712  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
713  };
714  res = tas5825m_write_block_at(dev, 0x44, values, ARRAY_SIZE(values));
715  if (res < 0)
716  return res;
717  }
718 
719  res = tas5825m_set_book(dev, 0x78);
720  if (res < 0)
721  return res;
722 
723  res = tas5825m_set_page(dev, 0x1D);
724  if (res < 0)
725  return res;
726 
727  {
728  const uint8_t values[] = {
729  0x00, 0x00, 0x03, 0x70, 0x00, 0x00, 0x03, 0x80,
730  0x00, 0x00, 0x03, 0x88, 0x00, 0x00, 0x03, 0x90,
731  0x00, 0x00, 0x00, 0x00
732  };
733  res = tas5825m_write_block_at(dev, 0x64, values, ARRAY_SIZE(values));
734  if (res < 0)
735  return res;
736  }
737 
738  res = tas5825m_set_book(dev, 0x78);
739  if (res < 0)
740  return res;
741 
742  res = tas5825m_set_page(dev, 0x1D);
743  if (res < 0)
744  return res;
745 
746  {
747  const uint8_t values[] = {
748  0x00, 0x00, 0x03, 0x98, 0x00, 0x00, 0x03, 0xA0,
749  };
750  res = tas5825m_write_block_at(dev, 0x78, values, ARRAY_SIZE(values));
751  if (res < 0)
752  return res;
753  }
754 
755  res = tas5825m_set_page(dev, 0x1E);
756  if (res < 0)
757  return res;
758 
759  {
760  const uint8_t values[] = {
761  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
762  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
763  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
764  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
765  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
766  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
767  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
768  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
769  0x00, 0x00, 0x00, 0x00
770  };
771  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
772  if (res < 0)
773  return res;
774  }
775 
776  res = tas5825m_set_book(dev, 0x78);
777  if (res < 0)
778  return res;
779 
780  res = tas5825m_set_page(dev, 0x1E);
781  if (res < 0)
782  return res;
783 
784  {
785  const uint8_t values[] = {
786  0x00, 0x00, 0x03, 0xA8, 0x00, 0x00, 0x03, 0xB0,
787  0x00, 0x00, 0x03, 0xB8, 0x00, 0x00, 0x00, 0x00,
788  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
789  0x00, 0x00, 0x00, 0x00
790  };
791  res = tas5825m_write_block_at(dev, 0x4C, values, ARRAY_SIZE(values));
792  if (res < 0)
793  return res;
794  }
795 
796  res = tas5825m_set_book(dev, 0x78);
797  if (res < 0)
798  return res;
799 
800  res = tas5825m_set_page(dev, 0x1E);
801  if (res < 0)
802  return res;
803 
804  {
805  const uint8_t values[] = {
806  0x00, 0x00, 0x03, 0xC0
807  };
808  res = tas5825m_write_block_at(dev, 0x68, values, ARRAY_SIZE(values));
809  if (res < 0)
810  return res;
811  }
812 
813  res = tas5825m_set_book(dev, 0x8C);
814  if (res < 0)
815  return res;
816 
817  res = tas5825m_set_page(dev, 0x0E);
818  if (res < 0)
819  return res;
820 
821  {
822  const uint8_t values[] = {
823  0x00, 0x20, 0xC4, 0x9C, 0x00, 0x20, 0xC4, 0x9C,
824  0x02, 0xDE, 0xAD, 0x00, 0x74, 0x01, 0x39, 0x01,
825  0x00, 0x20, 0xC4, 0x9B, 0x00, 0xA7, 0x26, 0x4A,
826  0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF,
827  0x7F, 0xFF, 0xFF, 0xFF
828  };
829  res = tas5825m_write_block_at(dev, 0x5C, values, ARRAY_SIZE(values));
830  if (res < 0)
831  return res;
832  }
833 
834  res = tas5825m_set_page(dev, 0x0F);
835  if (res < 0)
836  return res;
837 
838  {
839  const uint8_t values[] = {
840  0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF,
841  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
842  0x00, 0x00, 0x00, 0x00, 0xE7, 0x00, 0x00, 0x00,
843  0xFE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
844  0x00, 0x00, 0x00, 0x00
845  };
846  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
847  if (res < 0)
848  return res;
849  }
850 
851  res = tas5825m_set_book(dev, 0x8C);
852  if (res < 0)
853  return res;
854 
855  res = tas5825m_set_page(dev, 0x0F);
856  if (res < 0)
857  return res;
858 
859  {
860  const uint8_t values[] = {
861  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
862  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
863  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
864  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
865  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
866  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
867  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
868  0x00, 0x00, 0x00, 0x00
869  };
870  res = tas5825m_write_block_at(dev, 0x2C, values, ARRAY_SIZE(values));
871  if (res < 0)
872  return res;
873  }
874 
875  res = tas5825m_set_book(dev, 0x8C);
876  if (res < 0)
877  return res;
878 
879  res = tas5825m_set_page(dev, 0x0F);
880  if (res < 0)
881  return res;
882 
883  {
884  const uint8_t values[] = {
885  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
886  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
887  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
888  };
889  res = tas5825m_write_block_at(dev, 0x68, values, ARRAY_SIZE(values));
890  if (res < 0)
891  return res;
892  }
893 
894  res = tas5825m_set_page(dev, 0x10);
895  if (res < 0)
896  return res;
897 
898  {
899  const uint8_t values[] = {
900  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
901  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
902  0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x62, 0x48, 0x8E,
903  0xFF, 0x83, 0xE9, 0x30, 0x00, 0x2E, 0x18, 0x72,
904  0x0F, 0x40, 0xAE, 0x1F, 0xF8, 0x9A, 0x41, 0xD5,
905  0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
906  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
907  0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF,
908  0xF0, 0xBF, 0x51, 0xE1, 0x07, 0x65, 0xBE, 0x2B,
909  0x0A, 0x19, 0xBB, 0x39, 0xFC, 0x3F, 0x79, 0xE8,
910  0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
911  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
912  0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x79, 0x55,
913  0x00, 0xB8, 0xF2, 0xAB, 0x00, 0x5C, 0x79, 0x55,
914  0x0D, 0x98, 0xCC, 0x51, 0xFA, 0x16, 0x2B, 0x95,
915  };
916  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
917  if (res < 0)
918  return res;
919  }
920 
921  res = tas5825m_set_page(dev, 0x11);
922  if (res < 0)
923  return res;
924 
925  {
926  const uint8_t values[] = {
927  0x00, 0x5C, 0x79, 0x55, 0x00, 0xB8, 0xF2, 0xAB,
928  0x00, 0x5C, 0x79, 0x55, 0x0D, 0x98, 0xCC, 0x51,
929  0xFA, 0x16, 0x2B, 0x95, 0x06, 0xE0, 0xA8, 0x2F,
930  0xF2, 0x3E, 0xAF, 0xA2, 0x06, 0xE0, 0xA8, 0x2F,
931  0x0D, 0x98, 0xCC, 0x51, 0xFA, 0x16, 0x2B, 0x95,
932  0x06, 0xE0, 0xA8, 0x2F, 0xF2, 0x3E, 0xAF, 0xA2,
933  0x06, 0xE0, 0xA8, 0x2F, 0x0D, 0x98, 0xCC, 0x51,
934  0xFA, 0x16, 0x2B, 0x95, 0x02, 0x4D, 0x99, 0x99,
935  0xFD, 0xB2, 0x66, 0x67, 0x00, 0x80, 0x00, 0x00,
936  };
937  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
938  if (res < 0)
939  return res;
940  }
941 
942  res = tas5825m_set_book(dev, 0x00);
943  if (res < 0)
944  return res;
945 
946  res = tas5825m_write_at(dev, 0x40, 0x00);
947  if (res < 0)
948  return res;
949 
950  res = tas5825m_set_book(dev, 0x00);
951  if (res < 0)
952  return res;
953 
954  res = tas5825m_write_at(dev, 0x7D, 0x11);
955  if (res < 0)
956  return res;
957 
958  res = tas5825m_write_at(dev, 0x7E, 0xFF);
959  if (res < 0)
960  return res;
961 
962  res = tas5825m_set_page(dev, 0x01);
963  if (res < 0)
964  return res;
965 
966  res = tas5825m_write_at(dev, 0x51, 0x05);
967  if (res < 0)
968  return res;
969 
970  res = tas5825m_set_page(dev, 0x02);
971  if (res < 0)
972  return res;
973 
974  res = tas5825m_write_at(dev, 0x19, 0xDF);
975  if (res < 0)
976  return res;
977 
978  res = tas5825m_set_book(dev, 0x00);
979  if (res < 0)
980  return res;
981 
982  res = tas5825m_write_at(dev, 0x46, 0x11);
983  if (res < 0)
984  return res;
985 
986  res = tas5825m_set_page(dev, 0x00);
987  if (res < 0)
988  return res;
989 
990  res = tas5825m_write_at(dev, 0x02, 0x00);
991  if (res < 0)
992  return res;
993 
994  res = tas5825m_write_at(dev, 0x53, 0x00);
995  if (res < 0)
996  return res;
997 
998  res = tas5825m_write_at(dev, 0x54, 0x00);
999  if (res < 0)
1000  return res;
1001 
1002  res = tas5825m_set_book(dev, 0x00);
1003  if (res < 0)
1004  return res;
1005 
1006  res = tas5825m_write_at(dev, 0x03, 0x02);
1007  if (res < 0)
1008  return res;
1009 
1010  res = tas5825m_set_page(dev, 0x00);
1011  if (res < 0)
1012  return res;
1013 
1014  res = tas5825m_set_page(dev, 0x00);
1015  if (res < 0)
1016  return res;
1017 
1018  res = tas5825m_set_page(dev, 0x00);
1019  if (res < 0)
1020  return res;
1021 
1022  res = tas5825m_set_book(dev, 0x8C);
1023  if (res < 0)
1024  return res;
1025 
1026  res = tas5825m_set_page(dev, 0x0B);
1027  if (res < 0)
1028  return res;
1029 
1030  {
1031  const uint8_t values[] = {
1032  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
1033  };
1034  res = tas5825m_write_block_at(dev, 0x28, values, ARRAY_SIZE(values));
1035  if (res < 0)
1036  return res;
1037  }
1038 
1039  {
1040  const uint8_t values[] = {
1041  0x00, 0x20, 0xC4, 0x9C
1042  };
1043  res = tas5825m_write_block_at(dev, 0x50, values, ARRAY_SIZE(values));
1044  if (res < 0)
1045  return res;
1046  }
1047 
1048  {
1049  const uint8_t values[] = {
1050  0x7F, 0xFF, 0xFF, 0xFF
1051  };
1052  res = tas5825m_write_block_at(dev, 0x5C, values, ARRAY_SIZE(values));
1053  if (res < 0)
1054  return res;
1055  }
1056 
1057  res = tas5825m_set_book(dev, 0x8C);
1058  if (res < 0)
1059  return res;
1060 
1061  res = tas5825m_set_page(dev, 0x01);
1062  if (res < 0)
1063  return res;
1064 
1065  {
1066  const uint8_t values[] = {
1067  0xC0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x94, 0x9A,
1068  };
1069  res = tas5825m_write_block_at(dev, 0x28, values, ARRAY_SIZE(values));
1070  if (res < 0)
1071  return res;
1072  }
1073 
1074  res = tas5825m_set_page(dev, 0x0A);
1075  if (res < 0)
1076  return res;
1077 
1078  {
1079  const uint8_t values[] = {
1080  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1081  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
1082  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1083  0x00, 0x00, 0x00, 0x00
1084  };
1085  res = tas5825m_write_block_at(dev, 0x64, values, ARRAY_SIZE(values));
1086  if (res < 0)
1087  return res;
1088  }
1089 
1090  res = tas5825m_set_page(dev, 0x0B);
1091  if (res < 0)
1092  return res;
1093 
1094  {
1095  const uint8_t values[] = {
1096  0x00, 0x80, 0x00, 0x00, 0x00, 0x39, 0x2C, 0xEE,
1097  0x00, 0x39, 0x2C, 0xEE, 0x00, 0x80, 0x00, 0x00,
1098  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1099  0x00, 0x80, 0x00, 0x00
1100  };
1101  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1102  if (res < 0)
1103  return res;
1104  }
1105 
1106  {
1107  const uint8_t values[] = {
1108  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1109  0x00, 0x00, 0x57, 0x62, 0x00, 0x00, 0x00, 0x00,
1110  };
1111  res = tas5825m_write_block_at(dev, 0x28, values, ARRAY_SIZE(values));
1112  if (res < 0)
1113  return res;
1114  }
1115 
1116  {
1117  const uint8_t values[] = {
1118  0x02, 0x96, 0x7E, 0x0C, 0x00, 0x01, 0xB4, 0xE8,
1119  };
1120  res = tas5825m_write_block_at(dev, 0x48, values, ARRAY_SIZE(values));
1121  if (res < 0)
1122  return res;
1123  }
1124 
1125  {
1126  const uint8_t values[] = {
1127  0x7D, 0x69, 0x81, 0xF4, 0x00, 0x00, 0x2B, 0xB1,
1128  };
1129  res = tas5825m_write_block_at(dev, 0x54, values, ARRAY_SIZE(values));
1130  if (res < 0)
1131  return res;
1132  }
1133 
1134  res = tas5825m_set_page(dev, 0x0E);
1135  if (res < 0)
1136  return res;
1137 
1138  {
1139  const uint8_t values[] = {
1140  0x00, 0x22, 0x1D, 0x95, 0x00, 0x03, 0x69, 0xC5,
1141  0x00, 0x03, 0x69, 0xC5, 0x1C, 0x1B, 0xF0, 0x41,
1142  0x04, 0x0C, 0x37, 0x14, 0x00, 0x03, 0x69, 0xC5,
1143  0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x42, 0xC9,
1144  0x00, 0xD0, 0xC9, 0x04
1145  };
1146  res = tas5825m_write_block_at(dev, 0x5C, values, ARRAY_SIZE(values));
1147  if (res < 0)
1148  return res;
1149  }
1150 
1151  res = tas5825m_set_page(dev, 0x0F);
1152  if (res < 0)
1153  return res;
1154 
1155  {
1156  const uint8_t values[] = {
1157  0x00, 0x8B, 0x56, 0xA0, 0x00, 0x2E, 0x83, 0x1A,
1158  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1159  0xFF, 0xA0, 0x00, 0x00, 0xF7, 0x5C, 0x28, 0xF6,
1160  0xFB, 0x44, 0x29, 0x20, 0x00, 0x00, 0x00, 0x00,
1161  0x00, 0x00, 0x00, 0x00
1162  };
1163  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1164  if (res < 0)
1165  return res;
1166  }
1167 
1168  res = tas5825m_set_page(dev, 0x10);
1169  if (res < 0)
1170  return res;
1171 
1172  {
1173  const uint8_t values[] = {
1174  0x00, 0xCE, 0xC0, 0x8A
1175  };
1176  res = tas5825m_write_block_at(dev, 0x18, values, ARRAY_SIZE(values));
1177  if (res < 0)
1178  return res;
1179  }
1180 
1181  res = tas5825m_set_page(dev, 0x11);
1182  if (res < 0)
1183  return res;
1184 
1185  {
1186  const uint8_t values[] = {
1187  0x01, 0xE2, 0x0E, 0x98, 0xFE, 0x1D, 0xF1, 0x68,
1188  0x01, 0x00, 0x00, 0x00
1189  };
1190  res = tas5825m_write_block_at(dev, 0x44, values, ARRAY_SIZE(values));
1191  if (res < 0)
1192  return res;
1193  }
1194 
1195  res = tas5825m_set_page(dev, 0x07);
1196  if (res < 0)
1197  return res;
1198 
1199  {
1200  const uint8_t values[] = {
1201  0x00, 0x80, 0x00, 0x00
1202  };
1203  res = tas5825m_write_block_at(dev, 0x64, values, ARRAY_SIZE(values));
1204  if (res < 0)
1205  return res;
1206  }
1207 
1208  {
1209  const uint8_t values[] = {
1210  0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
1211  };
1212  res = tas5825m_write_block_at(dev, 0x6C, values, ARRAY_SIZE(values));
1213  if (res < 0)
1214  return res;
1215  }
1216 
1217  res = tas5825m_set_book(dev, 0xAA);
1218  if (res < 0)
1219  return res;
1220 
1221  res = tas5825m_set_page(dev, 0x01);
1222  if (res < 0)
1223  return res;
1224 
1225  {
1226  const uint8_t values[] = {
1227  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1228  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1229  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1230  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1231  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1232  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1233  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1234  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1235  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1236  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1237  };
1238  res = tas5825m_write_block_at(dev, 0x30, values, ARRAY_SIZE(values));
1239  if (res < 0)
1240  return res;
1241  }
1242 
1243  res = tas5825m_set_page(dev, 0x02);
1244  if (res < 0)
1245  return res;
1246 
1247  {
1248  const uint8_t values[] = {
1249  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1250  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1251  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1252  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1253  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1254  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1255  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1256  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1257  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1258  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1259  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1260  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1261  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1262  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1263  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1264  };
1265  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1266  if (res < 0)
1267  return res;
1268  }
1269 
1270  res = tas5825m_set_page(dev, 0x03);
1271  if (res < 0)
1272  return res;
1273 
1274  {
1275  const uint8_t values[] = {
1276  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1277  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1278  0x00, 0x00, 0x00, 0x00, 0x07, 0xD2, 0xC1, 0x31,
1279  0xF0, 0x5A, 0x7D, 0x9F, 0x07, 0xD2, 0xC1, 0x31,
1280  0x0F, 0xA4, 0xFB, 0xF0, 0xF8, 0x59, 0xF7, 0x2E,
1281  0x07, 0xD9, 0x78, 0x8E, 0xF0, 0x4D, 0x0E, 0xE5,
1282  0x07, 0xD9, 0x78, 0x8E, 0x0F, 0xB2, 0x6A, 0x37,
1283  0xF8, 0x4C, 0x88, 0x00, 0x07, 0xE6, 0x02, 0x7A,
1284  0xF0, 0x33, 0xFB, 0x0B, 0x07, 0xE6, 0x02, 0x7A,
1285  0x0F, 0xCB, 0x7D, 0x39, 0xF8, 0x33, 0x73, 0x4F,
1286  0x07, 0xD0, 0x20, 0x0B, 0xF0, 0x8B, 0x82, 0x11,
1287  0x07, 0xA8, 0xF6, 0xDE, 0x0F, 0x74, 0x7D, 0xEF,
1288  0xF8, 0x86, 0xE9, 0x17, 0x08, 0x00, 0x00, 0x00,
1289  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1290  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1291  };
1292  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1293  if (res < 0)
1294  return res;
1295  }
1296 
1297  res = tas5825m_set_page(dev, 0x04);
1298  if (res < 0)
1299  return res;
1300 
1301  {
1302  const uint8_t values[] = {
1303  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1304  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1305  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1306  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1307  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1308  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1309  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1310  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1311  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1312  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1313  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1314  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1315  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1316  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1317  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1318  };
1319  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1320  if (res < 0)
1321  return res;
1322  }
1323 
1324  res = tas5825m_set_page(dev, 0x05);
1325  if (res < 0)
1326  return res;
1327 
1328  {
1329  const uint8_t values[] = {
1330  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1331  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1332  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1333  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1334  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1335  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1336  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1337  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1338  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1339  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1340  0x07, 0xD2, 0xC1, 0x31, 0xF0, 0x5A, 0x7D, 0x9F,
1341  0x07, 0xD2, 0xC1, 0x31, 0x0F, 0xA4, 0xFB, 0xF0,
1342  0xF8, 0x59, 0xF7, 0x2E, 0x07, 0xD9, 0x78, 0x8E,
1343  0xF0, 0x4D, 0x0E, 0xE5, 0x07, 0xD9, 0x78, 0x8E,
1344  0x0F, 0xB2, 0x6A, 0x37, 0xF8, 0x4C, 0x88, 0x00,
1345  };
1346  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1347  if (res < 0)
1348  return res;
1349  }
1350 
1351  res = tas5825m_set_page(dev, 0x06);
1352  if (res < 0)
1353  return res;
1354 
1355  {
1356  const uint8_t values[] = {
1357  0x07, 0xE6, 0x02, 0x7A, 0xF0, 0x33, 0xFB, 0x0B,
1358  0x07, 0xE6, 0x02, 0x7A, 0x0F, 0xCB, 0x7D, 0x39,
1359  0xF8, 0x33, 0x73, 0x4F, 0x07, 0xD0, 0x20, 0x0B,
1360  0xF0, 0x8B, 0x82, 0x11, 0x07, 0xA8, 0xF6, 0xDE,
1361  0x0F, 0x74, 0x7D, 0xEF, 0xF8, 0x86, 0xE9, 0x17,
1362  };
1363  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1364  if (res < 0)
1365  return res;
1366  }
1367 
1368  res = tas5825m_set_page(dev, 0x0F);
1369  if (res < 0)
1370  return res;
1371 
1372  {
1373  const uint8_t values[] = {
1374  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1375  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1376  0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
1377  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1378  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1379  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1380  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1381  0x00, 0x00, 0x00, 0x00, 0x08, 0x3D, 0x48, 0x3E,
1382  0xF0, 0x15, 0x1E, 0x41, 0x07, 0xB2, 0x55, 0xB4,
1383  0x0F, 0xEC, 0xB6, 0xFF, 0xF8, 0x12, 0x37, 0x4E,
1384  0x08, 0x00, 0x00, 0x00
1385  };
1386  res = tas5825m_write_block_at(dev, 0x2C, values, ARRAY_SIZE(values));
1387  if (res < 0)
1388  return res;
1389  }
1390 
1391  res = tas5825m_set_page(dev, 0x10);
1392  if (res < 0)
1393  return res;
1394 
1395  {
1396  const uint8_t values[] = {
1397  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1398  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1399  };
1400  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1401  if (res < 0)
1402  return res;
1403  }
1404 
1405  {
1406  const uint8_t values[] = {
1407  0x00, 0x91, 0x1E, 0x24, 0xFF, 0x05, 0x01, 0xCF,
1408  0x00, 0x6E, 0x95, 0x34, 0x0F, 0xD3, 0x31, 0xB6,
1409  0xF8, 0x28, 0x19, 0x23, 0x08, 0x00, 0x00, 0x00,
1410  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1411  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1412  0x38, 0x73, 0x61, 0xE0, 0x90, 0x55, 0x66, 0x81,
1413  0x37, 0x58, 0x6F, 0x94, 0x0D, 0xD6, 0x2E, 0xBA,
1414  0xF9, 0xE7, 0x61, 0x5B, 0x08, 0x00, 0x00, 0x00,
1415  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1416  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1417  0x00, 0x01, 0xEC, 0x38, 0x00, 0x03, 0xD8, 0x70,
1418  0x00, 0x01, 0xEC, 0x38, 0x0F, 0x4A, 0xB5, 0x41,
1419  0xF8, 0xAD, 0x99, 0xDE
1420  };
1421  res = tas5825m_write_block_at(dev, 0x1C, values, ARRAY_SIZE(values));
1422  if (res < 0)
1423  return res;
1424  }
1425 
1426  res = tas5825m_set_page(dev, 0x11);
1427  if (res < 0)
1428  return res;
1429 
1430  {
1431  const uint8_t values[] = {
1432  0x00, 0x01, 0xEC, 0x38, 0x00, 0x03, 0xD8, 0x70,
1433  0x00, 0x01, 0xEC, 0x38, 0x0F, 0x4A, 0xB5, 0x41,
1434  0xF8, 0xAD, 0x99, 0xDE, 0x07, 0xA7, 0x46, 0xD9,
1435  0xF0, 0xB1, 0x72, 0x4F, 0x07, 0xA7, 0x46, 0xD9,
1436  0x0F, 0x4A, 0xB5, 0x41, 0xF8, 0xAD, 0x99, 0xDE,
1437  0x07, 0xA7, 0x46, 0xD9, 0xF0, 0xB1, 0x72, 0x4F,
1438  0x07, 0xA7, 0x46, 0xD9, 0x0F, 0x4A, 0xB5, 0x41,
1439  0xF8, 0xAD, 0x99, 0xDE
1440  };
1441  res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1442  if (res < 0)
1443  return res;
1444  }
1445 
1446  res = tas5825m_set_book(dev, 0x00);
1447  if (res < 0)
1448  return res;
1449 
1450  res = tas5825m_write_at(dev, 0x30, 0x00);
1451  if (res < 0)
1452  return res;
1453 
1454  res = tas5825m_write_at(dev, 0x60, 0x02);
1455  if (res < 0)
1456  return res;
1457 
1458  res = tas5825m_write_at(dev, 0x62, 0x09);
1459  if (res < 0)
1460  return res;
1461 
1462  res = tas5825m_write_at(dev, 0x4C, 0x30);
1463  if (res < 0)
1464  return res;
1465 
1466  res = tas5825m_write_at(dev, 0x03, 0x03);
1467  if (res < 0)
1468  return res;
1469 
1470  res = tas5825m_set_book(dev, 0x00);
1471  if (res < 0)
1472  return res;
1473 
1474  res = tas5825m_write_at(dev, 0x78, 0x80);
1475  if (res < 0)
1476  return res;
1477 
1478  return 0;
1479 }
#define ARRAY_SIZE(a)
Definition: helpers.h:12
int tas5825m_set_book(struct device *dev, uint8_t book)
Definition: tas5825m.c:32
int tas5825m_write_at(struct device *dev, uint8_t addr, uint8_t value)
Definition: tas5825m.c:9
int tas5825m_write_block_at(struct device *dev, uint8_t addr, const uint8_t *values, uint8_t length)
Definition: tas5825m.c:15
int tas5825m_set_page(struct device *dev, uint8_t page)
Definition: tas5825m.c:27
__weak int tas5825m_setup(struct device *dev, int id)
Definition: tas5825m.c:40
unsigned char uint8_t
Definition: stdint.h:8
Definition: device.h:107