mb/ocp/tiogapass: Fix GPIOs
[coreboot2.git] / src / mainboard / system76 / rpl / variants / oryp12 / tas5825m.c
blob45dfb38b388497f9f0b335d159692b7436599327
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <delay.h>
4 #include <drivers/i2c/tas5825m/tas5825m.h>
6 int tas5825m_setup(struct device *dev, int id)
8 int res;
10 res = tas5825m_set_book(dev, 0x00);
11 if (res < 0)
12 return res;
14 res = tas5825m_write_at(dev, 0x03, 0x02);
15 if (res < 0)
16 return res;
18 res = tas5825m_write_at(dev, 0x01, 0x11);
19 if (res < 0)
20 return res;
22 res = tas5825m_write_at(dev, 0x03, 0x02);
23 if (res < 0)
24 return res;
26 mdelay(5);
28 res = tas5825m_write_at(dev, 0x03, 0x12);
29 if (res < 0)
30 return res;
32 res = tas5825m_write_at(dev, 0x48, 0x0C);
33 if (res < 0)
34 return res;
36 res = tas5825m_write_at(dev, 0x7F, 0x64);
37 if (res < 0)
38 return res;
40 res = tas5825m_set_page(dev, 0x01);
41 if (res < 0)
42 return res;
45 const uint8_t values[] = {
46 0x00, 0xFE, 0x00, 0x40, 0x00, 0xFC, 0x00, 0x00,
47 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
48 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
49 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
50 0x00, 0xFC, 0x50, 0x00, 0x00, 0xFC, 0x00, 0x00,
51 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
52 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
53 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
54 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
55 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
56 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
57 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
58 0x00, 0x82, 0x00, 0x93, 0x00, 0xFC, 0x00, 0x00,
59 0x8F, 0x00, 0xFF, 0xEF, 0x84, 0x49, 0x03, 0x27,
60 0x84, 0x02, 0x04, 0x06, 0x02, 0x60, 0x00, 0x01,
61 0x00
63 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
64 if (res < 0)
65 return res;
68 res = tas5825m_set_page(dev, 0x02);
69 if (res < 0)
70 return res;
73 const uint8_t values[] = {
74 0x02, 0x70, 0x00, 0x06, 0x02, 0x78, 0x00, 0x05,
75 0x02, 0x68, 0x00, 0x02, 0x02, 0x28, 0x03, 0x4D,
76 0x84, 0x2A, 0x04, 0x00, 0xE2, 0x57, 0x91, 0x9F,
77 0x84, 0x82, 0x20, 0xE0, 0x84, 0x82, 0x04, 0x01,
78 0xF0, 0x1C, 0x31, 0xA0, 0xF0, 0x1C, 0x31, 0xA1,
79 0xF0, 0x1C, 0x31, 0xA2, 0xF0, 0x1F, 0x31, 0xA3,
80 0xE4, 0x00, 0x11, 0xA6, 0x80, 0x27, 0x80, 0xE1,
81 0xF4, 0x00, 0x11, 0xA4, 0xF4, 0x1D, 0x31, 0xA5,
82 0xF4, 0x1C, 0x31, 0xA7, 0xF4, 0x1F, 0x31, 0xA8,
83 0x02, 0x78, 0x00, 0x03, 0xE2, 0x68, 0xF1, 0xC3,
84 0x80, 0x67, 0x80, 0xE9, 0x84, 0x4B, 0x03, 0x27,
85 0x02, 0x70, 0x00, 0x04, 0x84, 0x41, 0x03, 0x37,
86 0x80, 0x07, 0x00, 0x80, 0xE0, 0x00, 0x11, 0xA9,
87 0x84, 0x82, 0x00, 0xE0, 0x8E, 0xFC, 0x04, 0x10,
88 0xF0, 0x1C, 0x11, 0xAA, 0xF0, 0x1C, 0x11, 0xAB,
89 0x00
91 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
92 if (res < 0)
93 return res;
96 res = tas5825m_set_page(dev, 0x03);
97 if (res < 0)
98 return res;
101 const uint8_t values[] = {
102 0xF0, 0x1C, 0x11, 0xAC, 0xF0, 0x1F, 0x11, 0xAD,
103 0x86, 0xA1, 0x01, 0xC2, 0x80, 0x27, 0x80, 0xE8,
104 0x60, 0x00, 0x00, 0x00, 0x84, 0x43, 0x03, 0x37,
105 0x80, 0x00, 0x00, 0x81, 0x0D, 0x00, 0x10, 0x20,
106 0x84, 0x51, 0x03, 0x3E, 0x08, 0x44, 0x26, 0x30,
107 0x84, 0xC3, 0x03, 0x47, 0x84, 0xC2, 0x40, 0xE0,
108 0x8C, 0xFF, 0x03, 0x23, 0xE0, 0x10, 0x11, 0xB3,
109 0xF0, 0x1C, 0x51, 0xB4, 0xF0, 0x1C, 0x51, 0xB5,
110 0xF0, 0x1C, 0x51, 0xB6, 0xF0, 0x1F, 0x51, 0xB7,
111 0x86, 0xA1, 0x01, 0xC6, 0x80, 0x27, 0x80, 0xEA,
112 0x84, 0x53, 0x03, 0x3E, 0x84, 0x82, 0x04, 0x05,
113 0x84, 0x51, 0x03, 0x75, 0xE2, 0x6B, 0xC0, 0x00,
114 0x80, 0x07, 0x00, 0x80, 0xE0, 0x80, 0x31, 0xB8,
115 0x84, 0x82, 0x40, 0xE0, 0xF0, 0x1C, 0x51, 0xB9,
116 0xF0, 0x1C, 0x51, 0xBA, 0xF0, 0x1C, 0x51, 0xBB,
117 0x00
119 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
120 if (res < 0)
121 return res;
124 res = tas5825m_set_page(dev, 0x04);
125 if (res < 0)
126 return res;
129 const uint8_t values[] = {
130 0xF0, 0x1F, 0x51, 0xBC, 0x86, 0xA1, 0x01, 0xC5,
131 0x80, 0x27, 0x80, 0xEA, 0x60, 0x00, 0x00, 0x00,
132 0x80, 0x00, 0x00, 0x81, 0x84, 0xA1, 0x03, 0x4F,
133 0xE0, 0x80, 0xA0, 0x00, 0x01, 0x07, 0x11, 0x20,
134 0x08, 0x44, 0x26, 0x30, 0x08, 0x00, 0x98, 0x4A,
135 0x84, 0x53, 0x03, 0x75, 0x08, 0x00, 0x30, 0x48,
136 0x02, 0xCA, 0x00, 0x01, 0x08, 0x60, 0x26, 0x32,
137 0x84, 0x51, 0x03, 0x45, 0xE4, 0x10, 0x40, 0x00,
138 0x80, 0x40, 0xC0, 0x82, 0x84, 0xC2, 0x40, 0xE0,
139 0x84, 0xC3, 0x03, 0x5E, 0x08, 0x00, 0x50, 0x48,
140 0xE0, 0x10, 0x11, 0xBD, 0x02, 0xC2, 0x00, 0x02,
141 0x08, 0x60, 0x06, 0x12, 0x84, 0xD3, 0x03, 0x4F,
142 0xF0, 0x1C, 0x51, 0xBE, 0xF0, 0x1C, 0x51, 0xBF,
143 0xF0, 0x1C, 0x51, 0xC0, 0xF0, 0x1F, 0x51, 0xC1,
144 0x84, 0xA1, 0x03, 0x65, 0x80, 0x27, 0x80, 0xEA,
145 0x00
147 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
148 if (res < 0)
149 return res;
152 res = tas5825m_set_page(dev, 0x05);
153 if (res < 0)
154 return res;
157 const uint8_t values[] = {
158 0xE0, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x83,
159 0x08, 0x00, 0x98, 0x6B, 0x08, 0x00, 0x30, 0x68,
160 0x84, 0x53, 0x03, 0x45, 0x08, 0x60, 0x26, 0x33,
161 0x84, 0x51, 0x03, 0x25, 0xE4, 0x10, 0x60, 0x00,
162 0x80, 0x40, 0xC0, 0x81, 0x02, 0x70, 0x00, 0x7F,
163 0x08, 0x00, 0x50, 0x28, 0x08, 0x60, 0x06, 0x11,
164 0x84, 0xCB, 0x03, 0x65, 0xE0, 0x10, 0x51, 0xC4,
165 0x84, 0x80, 0x41, 0x00, 0x02, 0xA3, 0x00, 0x10,
166 0xE4, 0x00, 0x00, 0x00, 0x84, 0xD0, 0x04, 0x01,
167 0x84, 0xA2, 0x04, 0x03, 0x84, 0xD2, 0x50, 0x01,
168 0x84, 0x53, 0x03, 0x25, 0x80, 0x00, 0xC4, 0x04,
169 0x8F, 0x30, 0x00, 0x00, 0x88, 0x67, 0x03, 0x00,
170 0xE4, 0x00, 0x11, 0x9B, 0xEE, 0x64, 0x60, 0x00,
171 0x02, 0xD3, 0x00, 0x10, 0x88, 0x47, 0x00, 0x80,
172 0x10, 0x00, 0x18, 0x02, 0x86, 0xC1, 0x01, 0x9D,
173 0x00
175 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
176 if (res < 0)
177 return res;
180 res = tas5825m_set_page(dev, 0x06);
181 if (res < 0)
182 return res;
185 const uint8_t values[] = {
186 0xE0, 0x10, 0x31, 0xC7, 0x86, 0xC9, 0x01, 0x9E,
187 0x80, 0x00, 0xC4, 0x02, 0x02, 0x50, 0x01, 0x9C,
188 0x00, 0xFF, 0x21, 0x65, 0x00, 0xFC, 0x00, 0x00,
189 0x02, 0x60, 0x00, 0x01, 0x02, 0x70, 0x00, 0x04,
190 0x84, 0xC8, 0x04, 0x10, 0x84, 0x41, 0x03, 0x67,
191 0x84, 0x51, 0x03, 0x6D, 0x84, 0xC0, 0x04, 0x02,
192 0x04, 0x80, 0x91, 0x20, 0x08, 0x60, 0x26, 0x30,
193 0x02, 0x78, 0x00, 0x03, 0x02, 0x68, 0x00, 0x02,
194 0x0D, 0x00, 0x10, 0x10, 0x08, 0x60, 0x06, 0x12,
195 0x84, 0x49, 0x03, 0x2F, 0xE0, 0x80, 0x71, 0xA9,
196 0x02, 0x28, 0x03, 0x55, 0x84, 0x82, 0x00, 0xE0,
197 0x84, 0x2A, 0x04, 0x00, 0xF0, 0x1C, 0x11, 0xAA,
198 0xF0, 0x1C, 0x11, 0xAB, 0xF0, 0x1C, 0x11, 0xAC,
199 0xF0, 0x1F, 0x11, 0xAD, 0x86, 0xA1, 0x01, 0xAE,
200 0x80, 0x27, 0x80, 0xE8, 0x84, 0x82, 0x04, 0x07,
201 0x00
203 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
204 if (res < 0)
205 return res;
208 res = tas5825m_set_page(dev, 0x07);
209 if (res < 0)
210 return res;
213 const uint8_t values[] = {
214 0xE0, 0x80, 0x60, 0x00, 0x84, 0x82, 0x40, 0xE0,
215 0x84, 0x43, 0x03, 0x67, 0xF0, 0x1C, 0x51, 0xAF,
216 0xF0, 0x1C, 0x51, 0xB0, 0xF0, 0x1C, 0x51, 0xB1,
217 0xF0, 0x1F, 0x51, 0xB2, 0x02, 0x78, 0x00, 0x05,
218 0x80, 0x27, 0x80, 0xEA, 0x84, 0x82, 0x04, 0x08,
219 0x02, 0x70, 0x00, 0x06, 0x84, 0x53, 0x03, 0x6D,
220 0x84, 0x80, 0x04, 0x07, 0xE0, 0x00, 0x00, 0x82,
221 0xF0, 0x81, 0x00, 0x80, 0x80, 0x07, 0x12, 0xBC,
222 0x86, 0xA1, 0x01, 0x9F, 0xE2, 0x57, 0xA0, 0x00,
223 0x84, 0x82, 0x04, 0x09, 0x84, 0x82, 0x20, 0xE0,
224 0xF0, 0x1C, 0x31, 0xA0, 0xF0, 0x1C, 0x31, 0xA1,
225 0xF0, 0x1C, 0x31, 0xA2, 0xF0, 0x1F, 0x31, 0xA3,
226 0xE4, 0x00, 0x11, 0xA6, 0x80, 0x27, 0x80, 0xE1,
227 0xF4, 0x00, 0x11, 0xA4, 0xF4, 0x1D, 0x31, 0xA5,
228 0xF4, 0x1C, 0x31, 0xA7, 0xF4, 0x1F, 0x31, 0xA8,
229 0x00
231 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
232 if (res < 0)
233 return res;
236 res = tas5825m_set_page(dev, 0x08);
237 if (res < 0)
238 return res;
241 const uint8_t values[] = {
242 0x02, 0x78, 0x00, 0x03, 0xE2, 0x6A, 0xF1, 0xC3,
243 0x80, 0x67, 0x80, 0xE9, 0x84, 0x4B, 0x03, 0x2F,
244 0x02, 0x70, 0x00, 0x04, 0x84, 0x59, 0x03, 0x3D,
245 0x80, 0x07, 0x00, 0x80, 0xE0, 0x00, 0x11, 0xA9,
246 0x84, 0x82, 0x60, 0xE0, 0x8E, 0xFC, 0x04, 0x10,
247 0xF0, 0x1C, 0x71, 0xAA, 0xF0, 0x1C, 0x71, 0xAB,
248 0xF0, 0x1C, 0x71, 0xAC, 0xF0, 0x1F, 0x71, 0xAD,
249 0x86, 0xA1, 0x01, 0xC2, 0x80, 0x27, 0x80, 0xEB,
250 0x60, 0x00, 0x00, 0x00, 0x84, 0x5B, 0x03, 0x3D,
251 0x80, 0x00, 0x00, 0x81, 0x0D, 0x00, 0x10, 0x20,
252 0x84, 0x59, 0x03, 0x3F, 0x08, 0x44, 0x26, 0x30,
253 0x84, 0xC3, 0x03, 0x57, 0x84, 0xC2, 0x60, 0xE0,
254 0xE0, 0x10, 0x11, 0xB3, 0xF0, 0x1C, 0x71, 0xB4,
255 0xF0, 0x1C, 0x71, 0xB5, 0xF0, 0x1C, 0x71, 0xB6,
256 0xF0, 0x1F, 0x71, 0xB7, 0x86, 0xA1, 0x01, 0xC6,
257 0x00
259 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
260 if (res < 0)
261 return res;
264 res = tas5825m_set_page(dev, 0x09);
265 if (res < 0)
266 return res;
269 const uint8_t values[] = {
270 0x80, 0x27, 0x80, 0xEB, 0x84, 0x5B, 0x03, 0x3F,
271 0x84, 0x82, 0x04, 0x0D, 0x84, 0x41, 0x03, 0x76,
272 0xE2, 0x6B, 0xE0, 0x00, 0x80, 0x07, 0x00, 0x80,
273 0xE0, 0x81, 0x31, 0xB8, 0x84, 0x82, 0x00, 0xE0,
274 0xF0, 0x1C, 0x11, 0xB9, 0xF0, 0x1C, 0x11, 0xBA,
275 0xF0, 0x1C, 0x11, 0xBB, 0xF0, 0x1F, 0x11, 0xBC,
276 0x86, 0xA1, 0x01, 0xC5, 0x80, 0x27, 0x80, 0xE8,
277 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x81,
278 0x84, 0xA1, 0x03, 0x5D, 0xE0, 0x81, 0xA0, 0x00,
279 0x01, 0x07, 0x11, 0x20, 0x08, 0x44, 0x26, 0x30,
280 0x08, 0x00, 0x98, 0x4A, 0x84, 0x43, 0x03, 0x76,
281 0x08, 0x00, 0x30, 0x48, 0x02, 0xCA, 0x00, 0x01,
282 0x08, 0x60, 0x26, 0x32, 0x84, 0x41, 0x03, 0x46,
283 0xE4, 0x10, 0x40, 0x00, 0x80, 0x40, 0xC0, 0x82,
284 0x84, 0xC2, 0x00, 0xE0, 0x84, 0xC3, 0x03, 0x5F,
285 0x00
287 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
288 if (res < 0)
289 return res;
292 res = tas5825m_set_page(dev, 0x0A);
293 if (res < 0)
294 return res;
297 const uint8_t values[] = {
298 0x08, 0x00, 0x50, 0x48, 0xE0, 0x10, 0x11, 0xBD,
299 0x02, 0xC2, 0x00, 0x02, 0x08, 0x60, 0x06, 0x12,
300 0x84, 0xD3, 0x03, 0x5D, 0xF0, 0x1C, 0x11, 0xBE,
301 0xF0, 0x1C, 0x11, 0xBF, 0xF0, 0x1C, 0x11, 0xC0,
302 0xF0, 0x1F, 0x11, 0xC1, 0x84, 0xA1, 0x03, 0x66,
303 0x80, 0x27, 0x80, 0xE8, 0xE0, 0x00, 0x00, 0x00,
304 0x80, 0x07, 0x00, 0x83, 0x08, 0x00, 0x98, 0x6B,
305 0x08, 0x00, 0x30, 0x68, 0x84, 0x43, 0x03, 0x46,
306 0x08, 0x60, 0x26, 0x33, 0x84, 0x51, 0x03, 0x26,
307 0xE4, 0x10, 0x60, 0x00, 0x80, 0x40, 0xC0, 0x81,
308 0x02, 0x70, 0x00, 0x7F, 0x08, 0x00, 0x50, 0x28,
309 0x08, 0x60, 0x06, 0x11, 0x8C, 0xFF, 0x03, 0x24,
310 0x84, 0xCB, 0x03, 0x66, 0xE0, 0x10, 0x51, 0xC4,
311 0x84, 0x80, 0x41, 0x00, 0x02, 0xA3, 0x00, 0x10,
312 0xE4, 0x00, 0x00, 0x00, 0x84, 0xD0, 0x04, 0x09,
313 0x00
315 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
316 if (res < 0)
317 return res;
320 res = tas5825m_set_page(dev, 0x0B);
321 if (res < 0)
322 return res;
325 const uint8_t values[] = {
326 0x84, 0xA2, 0x04, 0x0B, 0x84, 0xD2, 0x50, 0x01,
327 0x84, 0x53, 0x03, 0x26, 0x80, 0x00, 0xC4, 0x0C,
328 0x8F, 0x30, 0x00, 0x00, 0x88, 0x67, 0x03, 0x00,
329 0xE4, 0x00, 0x11, 0x9B, 0xEE, 0x64, 0x80, 0x00,
330 0x02, 0xD3, 0x00, 0x10, 0x88, 0x47, 0x00, 0x80,
331 0x10, 0x00, 0x18, 0x02, 0x86, 0xC1, 0x01, 0x9D,
332 0xE0, 0x10, 0x31, 0xC7, 0x86, 0xC9, 0x01, 0x9E,
333 0x80, 0x00, 0xC4, 0x0A, 0x02, 0x50, 0x01, 0x9C,
334 0x00, 0xFF, 0x21, 0x65, 0x00, 0xFC, 0x00, 0x00,
335 0x02, 0x70, 0x00, 0x04, 0x02, 0x68, 0x00, 0x01,
336 0x02, 0x60, 0x00, 0x03, 0x02, 0x78, 0x00, 0x02,
337 0x84, 0x49, 0x03, 0x6E, 0x84, 0x41, 0x03, 0x6F,
338 0x84, 0xC8, 0x04, 0x10, 0x84, 0xC0, 0x04, 0x0A,
339 0x04, 0x81, 0x91, 0x20, 0x08, 0x60, 0x26, 0x30,
340 0x0D, 0x00, 0x10, 0x10, 0x08, 0x60, 0x06, 0x12,
341 0x00
343 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
344 if (res < 0)
345 return res;
348 res = tas5825m_set_page(dev, 0x0C);
349 if (res < 0)
350 return res;
353 const uint8_t values[] = {
354 0x84, 0x00, 0x04, 0x06, 0xE0, 0x81, 0x71, 0xA9,
355 0x84, 0x82, 0x20, 0xE8, 0xF0, 0x1D, 0x31, 0xAA,
356 0xF0, 0x1D, 0x31, 0xAB, 0xF0, 0x1D, 0x31, 0xAC,
357 0xF0, 0x1C, 0x31, 0xAD, 0x86, 0xA1, 0x01, 0xAE,
358 0x80, 0x27, 0x80, 0xF9, 0x84, 0x82, 0x04, 0x0E,
359 0xE0, 0x81, 0x60, 0x00, 0x84, 0x82, 0x00, 0xE8,
360 0x84, 0x4B, 0x03, 0x6E, 0xF0, 0x1D, 0x11, 0xAF,
361 0xF0, 0x1D, 0x11, 0xB0, 0xF0, 0x1D, 0x11, 0xB1,
362 0xF0, 0x1C, 0x11, 0xB2, 0x02, 0xA3, 0x00, 0x1A,
363 0x80, 0x27, 0x80, 0xF8, 0x84, 0x82, 0x04, 0x0F,
364 0xE0, 0x81, 0xC0, 0x00, 0xF0, 0x81, 0xE0, 0x80,
365 0x84, 0x43, 0x03, 0x6F, 0x80, 0x07, 0x12, 0xBD,
366 0x02, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x50, 0x00,
367 0x8F, 0x00, 0x00, 0x11, 0x8F, 0x00, 0xFF, 0xFF,
368 0x84, 0x58, 0x04, 0x01, 0x84, 0xC2, 0x04, 0x00,
369 0x00
371 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
372 if (res < 0)
373 return res;
376 res = tas5825m_set_page(dev, 0x0D);
377 if (res < 0)
378 return res;
381 const uint8_t values[] = {
382 0x02, 0xC2, 0x60, 0x00, 0x84, 0xA0, 0x61, 0x00,
383 0xE0, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00,
384 0x40, 0x40, 0xA0, 0x00, 0x80, 0x00, 0xC0, 0x82,
385 0x08, 0xFC, 0x48, 0x3A, 0x08, 0xFC, 0x18, 0x50,
386 0x00, 0xFC, 0x00, 0x00, 0xE0, 0x10, 0x00, 0x00,
387 0x86, 0xA0, 0x41, 0x00, 0x40, 0x47, 0x20, 0x00,
388 0x80, 0x00, 0xC0, 0x83, 0x04, 0xE0, 0x3D, 0x1E,
389 0x04, 0x80, 0x11, 0xE0, 0x08, 0x44, 0x26, 0x33,
390 0x02, 0xCB, 0x00, 0x10, 0xE0, 0x10, 0x40, 0x83,
391 0x08, 0x00, 0x28, 0x21, 0x84, 0xCA, 0x61, 0x00,
392 0x80, 0x07, 0x00, 0x81, 0x0C, 0xE0, 0x2C, 0x09,
393 0x84, 0xCA, 0x21, 0x00, 0x00, 0xFC, 0x50, 0x00,
394 0x8F, 0x00, 0x00, 0x01, 0x00
396 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
397 if (res < 0)
398 return res;
401 res = tas5825m_set_book(dev, 0x78);
402 if (res < 0)
403 return res;
405 res = tas5825m_set_page(dev, 0x18);
406 if (res < 0)
407 return res;
410 const uint8_t values[] = {
411 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
412 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
413 0x00, 0x00, 0x00, 0x00, 0x00
415 res = tas5825m_write_block_at(dev, 0x30, values, ARRAY_SIZE(values));
416 if (res < 0)
417 return res;
420 res = tas5825m_set_page(dev, 0x1B);
421 if (res < 0)
422 return res;
425 const uint8_t values[] = {
426 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x04, 0x00,
427 0x00, 0x00, 0x03, 0x28, 0x00, 0x00, 0x00, 0x00,
428 0x00, 0x00, 0x00, 0x00, 0x00
430 res = tas5825m_write_block_at(dev, 0x6C, values, ARRAY_SIZE(values));
431 if (res < 0)
432 return res;
435 res = tas5825m_set_page(dev, 0x1C);
436 if (res < 0)
437 return res;
440 const uint8_t values[] = {
441 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
442 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
443 0x00, 0x00, 0x00, 0x00, 0x00
445 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
446 if (res < 0)
447 return res;
451 const uint8_t values[] = {
452 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00,
453 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
454 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
455 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
456 0x00
458 res = tas5825m_write_block_at(dev, 0x1C, values, ARRAY_SIZE(values));
459 if (res < 0)
460 return res;
464 const uint8_t values[] = {
465 0x00, 0x00, 0x03, 0x38, 0x00, 0x00, 0x00, 0x00,
466 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
467 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
468 0x00
470 res = tas5825m_write_block_at(dev, 0x3C, values, ARRAY_SIZE(values));
471 if (res < 0)
472 return res;
476 const uint8_t values[] = {
477 0x00, 0x00, 0x03, 0x40, 0x00, 0x00, 0x03, 0x48,
478 0x00, 0x00, 0x03, 0x50, 0x00, 0x00, 0x00, 0x00,
479 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
480 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
481 0x00
483 res = tas5825m_write_block_at(dev, 0x54, values, ARRAY_SIZE(values));
484 if (res < 0)
485 return res;
489 const uint8_t values[] = {
490 0x00, 0x00, 0x03, 0x58, 0x00, 0x00, 0x03, 0x60,
491 0x00, 0x00, 0x00, 0x00, 0x00
493 res = tas5825m_write_block_at(dev, 0x74, values, ARRAY_SIZE(values));
494 if (res < 0)
495 return res;
498 res = tas5825m_set_page(dev, 0x1D);
499 if (res < 0)
500 return res;
503 const uint8_t values[] = {
504 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
505 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
506 0x00, 0x00, 0x00, 0x00, 0x00
508 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
509 if (res < 0)
510 return res;
514 const uint8_t values[] = {
515 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
516 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
517 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
518 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
519 0x00
521 res = tas5825m_write_block_at(dev, 0x1C, values, ARRAY_SIZE(values));
522 if (res < 0)
523 return res;
527 const uint8_t values[] = {
528 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
529 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
530 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
531 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
532 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
533 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
534 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
535 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
536 0x00, 0x00, 0x00, 0x00, 0x00
538 res = tas5825m_write_block_at(dev, 0x3C, values, ARRAY_SIZE(values));
539 if (res < 0)
540 return res;
543 res = tas5825m_set_page(dev, 0x1E);
544 if (res < 0)
545 return res;
548 const uint8_t values[] = {
549 0x00, 0x00, 0x00, 0x00, 0x00
551 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
552 if (res < 0)
553 return res;
557 const uint8_t values[] = {
558 0x00, 0x00, 0x03, 0x68, 0x00, 0x00, 0x00, 0x00,
559 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
560 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
561 0x00
563 res = tas5825m_write_block_at(dev, 0x0C, values, ARRAY_SIZE(values));
564 if (res < 0)
565 return res;
569 const uint8_t values[] = {
570 0x00, 0x00, 0x03, 0x70, 0x00, 0x00, 0x03, 0x78,
571 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x00, 0x00,
572 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
573 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
574 0x00
576 res = tas5825m_write_block_at(dev, 0x24, values, ARRAY_SIZE(values));
577 if (res < 0)
578 return res;
582 const uint8_t values[] = {
583 0x00, 0x00, 0x04, 0x88, 0x00, 0x00, 0x04, 0x90,
584 0x00
586 res = tas5825m_write_block_at(dev, 0x44, values, ARRAY_SIZE(values));
587 if (res < 0)
588 return res;
591 res = tas5825m_set_book(dev, 0x8C);
592 if (res < 0)
593 return res;
595 res = tas5825m_set_page(dev, 0x0E);
596 if (res < 0)
597 return res;
600 const uint8_t values[] = {
601 0x00, 0xA7, 0x26, 0x4A, 0x7F, 0xFF, 0xFF, 0xFF,
602 0x00, 0x20, 0xC4, 0x9C, 0x00, 0x20, 0xC4, 0x9C,
603 0x00, 0x00, 0x68, 0xDB, 0x00, 0x00, 0xD1, 0xB7,
604 0x00, 0x00, 0x68, 0xDB, 0x0F, 0xA4, 0xA8, 0xC1,
605 0xF8, 0x59, 0x7F, 0x63, 0x00
607 res = tas5825m_write_block_at(dev, 0x5C, values, ARRAY_SIZE(values));
608 if (res < 0)
609 return res;
612 res = tas5825m_set_page(dev, 0x0F);
613 if (res < 0)
614 return res;
617 const uint8_t values[] = {
618 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
619 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
620 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0xB7, 0xE9,
621 0x00, 0x5F, 0x6F, 0xD2, 0x00, 0x2F, 0xB7, 0xE9,
622 0x0B, 0x1E, 0x4F, 0x76, 0xFC, 0x23, 0x05, 0x54,
623 0xFA, 0x41, 0x20, 0x5C, 0x0B, 0x7D, 0xBF, 0x48,
624 0xFA, 0x41, 0x20, 0x5C, 0x0B, 0x1E, 0x4F, 0x76,
625 0xFC, 0x23, 0x05, 0x54, 0x00, 0x04, 0x81, 0x6F,
626 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
627 0x0F, 0x3F, 0xE5, 0xC9, 0xF8, 0xBB, 0x98, 0xC8,
628 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
629 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
630 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x81, 0x6F,
631 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
632 0x0F, 0x3F, 0xE5, 0xC9, 0xF8, 0xBB, 0x98, 0xC8,
633 0x00
635 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
636 if (res < 0)
637 return res;
640 res = tas5825m_set_page(dev, 0x10);
641 if (res < 0)
642 return res;
645 const uint8_t values[] = {
646 0x00, 0x89, 0xA0, 0x27, 0x7F, 0xEC, 0x56, 0xD5,
647 0x7F, 0xFC, 0xB9, 0x23, 0x00, 0x89, 0xA0, 0x27,
648 0x7F, 0xEC, 0x56, 0xD5, 0x7F, 0xFC, 0xB9, 0x23,
649 0x00
651 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
652 if (res < 0)
653 return res;
656 res = tas5825m_set_book(dev, 0x00);
657 if (res < 0)
658 return res;
660 res = tas5825m_write_at(dev, 0x40, 0x00);
661 if (res < 0)
662 return res;
665 const uint8_t values[] = {
666 0x11, 0xFF, 0x00
668 res = tas5825m_write_block_at(dev, 0x7D, values, ARRAY_SIZE(values));
669 if (res < 0)
670 return res;
673 res = tas5825m_set_page(dev, 0x01);
674 if (res < 0)
675 return res;
677 res = tas5825m_write_at(dev, 0x51, 0x05);
678 if (res < 0)
679 return res;
681 res = tas5825m_set_page(dev, 0x02);
682 if (res < 0)
683 return res;
685 res = tas5825m_write_at(dev, 0x19, 0xDF);
686 if (res < 0)
687 return res;
689 res = tas5825m_set_page(dev, 0x00);
690 if (res < 0)
691 return res;
693 res = tas5825m_write_at(dev, 0x46, 0x11);
694 if (res < 0)
695 return res;
697 res = tas5825m_write_at(dev, 0x02, 0x00);
698 if (res < 0)
699 return res;
701 res = tas5825m_write_at(dev, 0x53, 0x01);
702 if (res < 0)
703 return res;
705 res = tas5825m_write_at(dev, 0x54, 0x00);
706 if (res < 0)
707 return res;
709 res = tas5825m_write_at(dev, 0x03, 0x02);
710 if (res < 0)
711 return res;
713 res = tas5825m_write_at(dev, 0x7F, 0x8C);
714 if (res < 0)
715 return res;
717 res = tas5825m_set_page(dev, 0x01);
718 if (res < 0)
719 return res;
722 const uint8_t values[] = {
723 0x00, 0x71, 0x94, 0x9A, 0x00
725 res = tas5825m_write_block_at(dev, 0x2C, values, ARRAY_SIZE(values));
726 if (res < 0)
727 return res;
730 res = tas5825m_set_page(dev, 0x0A);
731 if (res < 0)
732 return res;
735 const uint8_t values[] = {
736 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
737 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
738 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
739 0x00, 0x00, 0x00, 0x00, 0x00
741 res = tas5825m_write_block_at(dev, 0x64, values, ARRAY_SIZE(values));
742 if (res < 0)
743 return res;
746 res = tas5825m_set_page(dev, 0x0B);
747 if (res < 0)
748 return res;
751 const uint8_t values[] = {
752 0x00, 0x80, 0x00, 0x00, 0x00, 0x28, 0x7A, 0x27,
753 0x00, 0x28, 0x7A, 0x27, 0x00, 0x80, 0x00, 0x00,
754 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
755 0x00, 0x80, 0x00, 0x00, 0x00
757 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
758 if (res < 0)
759 return res;
763 const uint8_t values[] = {
764 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
765 0x00, 0x00, 0x57, 0x62, 0x00, 0x00, 0x00, 0x00,
766 0x00
768 res = tas5825m_write_block_at(dev, 0x28, values, ARRAY_SIZE(values));
769 if (res < 0)
770 return res;
773 res = tas5825m_set_page(dev, 0x0E);
774 if (res < 0)
775 return res;
778 const uint8_t values[] = {
779 0x00, 0x03, 0x69, 0xC5, 0x01, 0x24, 0x02, 0xCB,
780 0x00, 0x22, 0x1D, 0x95, 0x00, 0x03, 0x69, 0xC5,
781 0x00
783 res = tas5825m_write_block_at(dev, 0x5C, values, ARRAY_SIZE(values));
784 if (res < 0)
785 return res;
788 res = tas5825m_set_page(dev, 0x0F);
789 if (res < 0)
790 return res;
793 const uint8_t values[] = {
794 0x7F, 0xF9, 0x2C, 0x60, 0x09, 0xC6, 0x4C, 0xCF,
795 0x00
797 res = tas5825m_write_block_at(dev, 0x5C, values, ARRAY_SIZE(values));
798 if (res < 0)
799 return res;
802 res = tas5825m_set_page(dev, 0x07);
803 if (res < 0)
804 return res;
807 const uint8_t values[] = {
808 0x00, 0x80, 0x00, 0x00, 0x00
810 res = tas5825m_write_block_at(dev, 0x64, values, ARRAY_SIZE(values));
811 if (res < 0)
812 return res;
816 const uint8_t values[] = {
817 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
818 0x00
820 res = tas5825m_write_block_at(dev, 0x6C, values, ARRAY_SIZE(values));
821 if (res < 0)
822 return res;
825 res = tas5825m_set_book(dev, 0xAA);
826 if (res < 0)
827 return res;
829 res = tas5825m_set_page(dev, 0x01);
830 if (res < 0)
831 return res;
834 const uint8_t values[] = {
835 0x05, 0xA9, 0xDF, 0x7B, 0x00, 0x00, 0x00, 0x00,
836 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
837 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
838 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
839 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
840 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
841 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
842 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
843 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
844 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
845 0x00
847 res = tas5825m_write_block_at(dev, 0x30, values, ARRAY_SIZE(values));
848 if (res < 0)
849 return res;
852 res = tas5825m_set_page(dev, 0x02);
853 if (res < 0)
854 return res;
857 const uint8_t values[] = {
858 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
859 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
860 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
861 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
862 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
863 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
864 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
865 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
866 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
867 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
868 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
869 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
870 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
871 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
872 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
873 0x00
875 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
876 if (res < 0)
877 return res;
880 res = tas5825m_set_page(dev, 0x03);
881 if (res < 0)
882 return res;
885 const uint8_t values[] = {
886 0x07, 0xE0, 0x03, 0x27, 0xF0, 0x3F, 0xF9, 0xB1,
887 0x07, 0xE0, 0x03, 0x27, 0x0F, 0xBF, 0xC1, 0x46,
888 0xF8, 0x3F, 0xB4, 0xA8, 0x07, 0xE8, 0x73, 0x5B,
889 0xF0, 0x2F, 0x19, 0x4B, 0x07, 0xE8, 0x73, 0x5B,
890 0x0F, 0xD0, 0xA1, 0x62, 0xF8, 0x2E, 0xD3, 0xF8,
891 0x07, 0xE8, 0x65, 0x1C, 0xF0, 0x4C, 0x95, 0x0B,
892 0x07, 0xCC, 0x6D, 0xBC, 0x0F, 0xB3, 0x6A, 0xF5,
893 0xF8, 0x4B, 0x2D, 0x28, 0x08, 0x1D, 0xB8, 0xB2,
894 0xF0, 0x12, 0x40, 0x2B, 0x07, 0xD1, 0x74, 0x3E,
895 0x0F, 0xEE, 0x30, 0x8F, 0xF8, 0x11, 0x43, 0xC9,
896 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
897 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
898 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
899 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
900 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
901 0x00
903 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
904 if (res < 0)
905 return res;
908 res = tas5825m_set_page(dev, 0x04);
909 if (res < 0)
910 return res;
913 const uint8_t values[] = {
914 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
915 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
916 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
917 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
918 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
919 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
920 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
921 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
922 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
923 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
924 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
925 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
926 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
927 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
928 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
929 0x00
931 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
932 if (res < 0)
933 return res;
936 res = tas5825m_set_page(dev, 0x05);
937 if (res < 0)
938 return res;
941 const uint8_t values[] = {
942 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
943 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
944 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
945 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
946 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
947 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
948 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
949 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x03, 0x27,
950 0xF0, 0x3F, 0xF9, 0xB1, 0x07, 0xE0, 0x03, 0x27,
951 0x0F, 0xBF, 0xC1, 0x46, 0xF8, 0x3F, 0xB4, 0xA8,
952 0x07, 0xE8, 0x73, 0x5B, 0xF0, 0x2F, 0x19, 0x4B,
953 0x07, 0xE8, 0x73, 0x5B, 0x0F, 0xD0, 0xA1, 0x62,
954 0xF8, 0x2E, 0xD3, 0xF8, 0x07, 0xE8, 0x65, 0x1C,
955 0xF0, 0x4C, 0x95, 0x0B, 0x07, 0xCC, 0x6D, 0xBC,
956 0x0F, 0xB3, 0x6A, 0xF5, 0xF8, 0x4B, 0x2D, 0x28,
957 0x00
959 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
960 if (res < 0)
961 return res;
964 res = tas5825m_set_page(dev, 0x06);
965 if (res < 0)
966 return res;
969 const uint8_t values[] = {
970 0x08, 0x1D, 0xB8, 0xB2, 0xF0, 0x12, 0x40, 0x2B,
971 0x07, 0xD1, 0x74, 0x3E, 0x0F, 0xEE, 0x30, 0x8F,
972 0xF8, 0x11, 0x43, 0xC9, 0x08, 0x00, 0x00, 0x00,
973 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
974 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
975 0x00
977 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
978 if (res < 0)
979 return res;
982 res = tas5825m_set_page(dev, 0x0E);
983 if (res < 0)
984 return res;
987 const uint8_t values[] = {
988 0x00, 0x88, 0xF4, 0xB0, 0xFF, 0x02, 0x86, 0x19,
989 0x00, 0x75, 0xF1, 0x4C, 0x0F, 0xE2, 0x49, 0x11,
990 0xF8, 0x1C, 0x4A, 0xDB, 0x00
992 res = tas5825m_write_block_at(dev, 0x6C, values, ARRAY_SIZE(values));
993 if (res < 0)
994 return res;
997 res = tas5825m_set_page(dev, 0x0F);
998 if (res < 0)
999 return res;
1002 const uint8_t values[] = {
1003 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1004 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1005 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF4, 0x49, 0x81,
1006 0xFF, 0xE8, 0x93, 0x02, 0xFF, 0xF4, 0x49, 0x81,
1007 0x0D, 0x94, 0x7A, 0x64, 0xFA, 0x3C, 0xAB, 0xA1,
1008 0x06, 0xD5, 0xF3, 0xB1, 0xF2, 0x54, 0x18, 0x9F,
1009 0x06, 0xD5, 0xF3, 0xB1, 0x0D, 0x94, 0x7A, 0x64,
1010 0xFA, 0x3C, 0xAB, 0xA1, 0x00, 0x00, 0x38, 0xE4,
1011 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1012 0x0F, 0xD5, 0x55, 0x55, 0xF8, 0x2A, 0x71, 0xC7,
1013 0x00
1015 res = tas5825m_write_block_at(dev, 0x08, values, ARRAY_SIZE(values));
1016 if (res < 0)
1017 return res;
1020 res = tas5825m_set_book(dev, 0x00);
1021 if (res < 0)
1022 return res;
1024 res = tas5825m_write_at(dev, 0x30, 0x00);
1025 if (res < 0)
1026 return res;
1028 res = tas5825m_write_at(dev, 0x60, 0x02);
1029 if (res < 0)
1030 return res;
1032 res = tas5825m_write_at(dev, 0x62, 0x09);
1033 if (res < 0)
1034 return res;
1036 res = tas5825m_write_at(dev, 0x4C, 0x30);
1037 if (res < 0)
1038 return res;
1040 res = tas5825m_write_at(dev, 0x03, 0x03);
1041 if (res < 0)
1042 return res;
1044 res = tas5825m_write_at(dev, 0x78, 0x80);
1045 if (res < 0)
1046 return res;
1048 res = tas5825m_set_page(dev, 0x00);
1049 if (res < 0)
1050 return res;
1052 return 0;