blob: 57448858678de81590cfcc32e1714b76148b2a61
1 | /* |
2 | * Copyright (C) 2017 Amlogic, Inc. All rights reserved. |
3 | * |
4 | * This program is free software; you can redistribute it and/or modify |
5 | * it under the terms of the GNU General Public License as published by |
6 | * the Free Software Foundation; either version 2 of the License, or |
7 | * (at your option) any later version. |
8 | * |
9 | * This program is distributed in the hope that it will be useful, but WITHOUT |
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
12 | * more details. |
13 | * |
14 | * You should have received a copy of the GNU General Public License along |
15 | * with this program; if not, write to the Free Software Foundation, Inc., |
16 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | * |
18 | * Description: |
19 | */ |
20 | void program_acf(int acf1[20], int acf2[33]) |
21 | { |
22 | int i; |
23 | |
24 | for (i = 0; i < 20; i++) |
25 | apb_write_reg(DVBT_BASE + (0x2c + i) * 4, acf1[i]); |
26 | for (i = 0; i < 33; i++) { |
27 | apb_write_reg(DVBT_BASE + 0xfe * 4, i); |
28 | apb_write_reg(DVBT_BASE + 0xff * 4, acf2[i]); |
29 | } |
30 | } |
31 | |
32 | void ini_acf_iireq_src_45m_8m(void) |
33 | { |
34 | int acf1[] = { 0x294, 0x085, 0x076, 0x01e, |
35 | 0x27c, 0x0af, 0x2bf, 0x06d, |
36 | 0x265, 0x0d8, 0x270, 0x05e, |
37 | 0x257, 0x0ef, 0x25b, 0x04b, |
38 | 0x24f, 0x0fc, 0x254, 0x04d |
39 | }; |
40 | int acf2[] = { 0x3f3fff, 0x3da7cd, 0x3c0f9b, 0x3a7768, 0x38df35, |
41 | 0x373f01, |
42 | 0x3596cd, 0x33ee98, 0x323e62, 0x307e2b, 0x2eb5f3, |
43 | 0x2ce5b9, |
44 | 0x2b057e, 0x290d41, 0x26fd00, 0x24dcbd, 0x229477, |
45 | 0x202c2c, |
46 | 0x1d93dc, 0x1ac386, 0x17b328, 0x144ac1, 0x106a4d, |
47 | 0x0be1c8, |
48 | 0x07e129, 0x04d0cc, 0x015064, 0x3d47ec, 0x38675e, |
49 | 0x326eb1, |
50 | 0x326e4d, 0x326e4d, 0x00064d |
51 | }; |
52 | |
53 | program_acf(acf1, acf2); |
54 | } |
55 | |
56 | void ini_acf_iireq_src_45m_7m(void) |
57 | { |
58 | int acf1[] = { 0x283, 0x091, 0x02f, 0x01e, |
59 | 0x26a, 0x0b8, 0x296, 0x06d, |
60 | 0x253, 0x0dc, 0x257, 0x05e, |
61 | 0x245, 0x0f1, 0x246, 0x04b, |
62 | 0x23d, 0x0fc, 0x241, 0x04d |
63 | }; |
64 | int acf2[] = { 0x3f3fff, 0x3dafce, 0x3c1f9c, 0x3a8769, 0x38ef37, |
65 | 0x374f03, |
66 | 0x35aecf, 0x34069b, 0x325665, 0x30962e, 0x2ecdf6, |
67 | 0x2cfdbc, |
68 | 0x2b1581, 0x291d43, 0x271503, 0x24e4bf, 0x229c78, |
69 | 0x202c2d, |
70 | 0x1d8bdc, 0x1ab384, 0x179325, 0x141abc, 0x102a46, |
71 | 0x0b81be, |
72 | 0x07711c, 0x0448bd, 0x00b052, 0x3c7fd6, 0x374740, |
73 | 0x308684, |
74 | 0x308610, 0x308610, 0x000610 |
75 | }; |
76 | |
77 | program_acf(acf1, acf2); |
78 | } |
79 | |
80 | void ini_acf_iireq_src_45m_6m(void) |
81 | { |
82 | int acf1[] = { 0x272, 0x09e, 0x3dc, 0x01e, |
83 | 0x259, 0x0c0, 0x272, 0x06d, |
84 | 0x242, 0x0e1, 0x240, 0x05e, |
85 | 0x235, 0x0f3, 0x234, 0x04b, |
86 | 0x22e, 0x0fd, 0x230, 0x04d |
87 | }; |
88 | int acf2[] = { 0x3f47ff, 0x3dbfcf, 0x3c379e, 0x3aa76d, 0x391f3c, |
89 | 0x378709, |
90 | 0x35e6d6, 0x343ea2, 0x328e6d, 0x30d636, 0x2f0dfe, |
91 | 0x2d35c4, |
92 | 0x2b4d88, 0x294d49, 0x273d08, 0x2504c4, 0x22b47c, |
93 | 0x203c2f, |
94 | 0x1d9bde, 0x1ac386, 0x17a327, 0x1432bf, 0x104249, |
95 | 0x0ba9c2, |
96 | 0x07a922, 0x0490c5, 0x01185c, 0x3d0fe5, 0x383f58, |
97 | 0x3286af, |
98 | 0x328650, 0x328650, 0x000650 |
99 | }; |
100 | |
101 | program_acf(acf1, acf2); |
102 | } |
103 | |
104 | void ini_acf_iireq_src_45m_5m(void) |
105 | { |
106 | int acf1[] = { 0x260, 0x0ab, 0x37e, 0x02e, |
107 | 0x249, 0x0ca, 0x251, 0x06d, |
108 | 0x233, 0x0e6, 0x22d, 0x05e, |
109 | 0x227, 0x0f5, 0x224, 0x04b, |
110 | 0x220, 0x0fd, 0x221, 0x04d |
111 | }; |
112 | int acf2[] = { 0x3f3fff, 0x3db7cf, 0x3c279d, 0x3a9f6c, 0x39073a, |
113 | 0x377707, |
114 | 0x35d6d4, 0x3436a0, 0x328e6b, 0x30d636, 0x2f15ff, |
115 | 0x2d4dc6, |
116 | 0x2b758c, 0x29854f, 0x278511, 0x256ccf, 0x232c89, |
117 | 0x20cc3f, |
118 | 0x1e33f0, 0x1b6b9b, 0x185b3d, 0x14e2d5, 0x10f260, |
119 | 0x0c51d7, |
120 | 0x082934, 0x04f8d4, 0x014066, 0x3ccfe4, 0x372f46, |
121 | 0x2f5673, |
122 | 0x2f55ea, 0x2f55ea, 0x0005ea |
123 | }; |
124 | |
125 | program_acf(acf1, acf2); |
126 | } |
127 | |
128 | void ini_acf_iireq_src_2857m_8m(void) |
129 | { |
130 | int acf1[] = { 0x2df, 0x059, 0x144, 0x00e, |
131 | 0x2d3, 0x08f, 0x38d, 0x06f, |
132 | 0x2c6, 0x0c5, 0x302, 0x05e, |
133 | 0x2be, 0x0e7, 0x2d6, 0x04b, |
134 | 0x2b7, 0x0f9, 0x2c8, 0x04d |
135 | }; |
136 | int acf2[] = { 0x3f3fff, 0x3dbfcf, 0x3c379e, 0x3aaf6d, 0x391f3c, |
137 | 0x37870a, |
138 | 0x35eed7, 0x344ea3, 0x32a66f, 0x30f639, 0x2f3602, |
139 | 0x2d65c9, |
140 | 0x2b858e, 0x299552, 0x278d12, 0x2564cf, 0x231c88, |
141 | 0x20b43d, |
142 | 0x1e13ec, 0x1b3395, 0x181336, 0x1492cc, 0x109254, |
143 | 0x0be1cb, |
144 | 0x07c127, 0x0498c7, 0x00f85b, 0x3cbfde, 0x377747, |
145 | 0x309e88, |
146 | 0x309e13, 0x309e13, 0x000613 |
147 | }; |
148 | |
149 | program_acf(acf1, acf2); |
150 | } |
151 | |
152 | void ini_acf_iireq_src_2857m_7m(void) |
153 | { |
154 | int acf1[] = { 0x2c6, 0x067, 0x10f, 0x01e, |
155 | 0x2b4, 0x099, 0x344, 0x06f, |
156 | 0x2a2, 0x0cb, 0x2cb, 0x05e, |
157 | 0x297, 0x0ea, 0x2a7, 0x04b, |
158 | 0x28f, 0x0fa, 0x29c, 0x04d |
159 | }; |
160 | int acf2[] = { 0x3f3fff, 0x3dbfcf, 0x3c379e, 0x3aa76d, 0x39173b, |
161 | 0x378709, |
162 | 0x35e6d6, 0x3446a2, 0x329e6d, 0x30e637, 0x2f2600, |
163 | 0x2d4dc7, |
164 | 0x2b6d8c, 0x297d4e, 0x276d0e, 0x2544cb, 0x22fc84, |
165 | 0x208438, |
166 | 0x1de3e7, 0x1b0b90, 0x17eb30, 0x146ac7, 0x107250, |
167 | 0x0bc9c6, |
168 | 0x07b124, 0x0490c5, 0x00f85b, 0x3cc7df, 0x37974a, |
169 | 0x30ce8d, |
170 | 0x30ce19, 0x30ce19, 0x000619 |
171 | }; |
172 | |
173 | program_acf(acf1, acf2); |
174 | } |
175 | |
176 | void ini_acf_iireq_src_2857m_6m(void) |
177 | { |
178 | int acf1[] = { 0x2ac, 0x076, 0x0c9, 0x01e, |
179 | 0x297, 0x0a4, 0x2fd, 0x06d, |
180 | 0x281, 0x0d2, 0x299, 0x05e, |
181 | 0x274, 0x0ed, 0x27d, 0x04b, |
182 | 0x26c, 0x0fb, 0x274, 0x04d |
183 | }; |
184 | int acf2[] = { 0x3f3fff, 0x3db7cf, 0x3c279d, 0x3a976b, 0x390739, |
185 | 0x376f07, |
186 | 0x35ced3, 0x342e9f, 0x327e6a, 0x30c634, 0x2f05fc, |
187 | 0x2d35c4, |
188 | 0x2b5d89, 0x29654c, 0x275d0c, 0x253cca, 0x22fc83, |
189 | 0x209439, |
190 | 0x1dfbe9, 0x1b2b93, 0x181b35, 0x14b2ce, 0x10ca5a, |
191 | 0x0c41d4, |
192 | 0x084935, 0x0538d9, 0x01c071, 0x3db7fa, 0x38bf6b, |
193 | 0x327eb9, |
194 | 0x327e4f, 0x327e4f, 0x00064f |
195 | }; |
196 | |
197 | program_acf(acf1, acf2); |
198 | } |
199 | |
200 | void ini_acf_iireq_src_2857m_5m(void) |
201 | { |
202 | int acf1[] = { 0x292, 0x087, 0x06e, 0x01e, |
203 | 0x27a, 0x0b0, 0x2b9, 0x06d, |
204 | 0x262, 0x0d8, 0x26d, 0x05e, |
205 | 0x254, 0x0f0, 0x258, 0x04b, |
206 | 0x24c, 0x0fc, 0x252, 0x04d |
207 | }; |
208 | int acf2[] = { 0x3f3fff, 0x3db7ce, 0x3c279d, 0x3a976b, 0x38ff38, |
209 | 0x376706, |
210 | 0x35c6d2, 0x341e9d, 0x326e68, 0x30ae31, 0x2eedf9, |
211 | 0x2d15c0, |
212 | 0x2b2d84, 0x293546, 0x272506, 0x24fcc2, 0x22ac7b, |
213 | 0x203c2f, |
214 | 0x1d9bde, 0x1ac386, 0x17a327, 0x1422be, 0x103247, |
215 | 0x0b91bf, |
216 | 0x07891e, 0x0470c1, 0x00e858, 0x3ccfde, 0x37bf4d, |
217 | 0x313e96, |
218 | 0x313e27, 0x313e27, 0x000627 |
219 | }; |
220 | |
221 | program_acf(acf1, acf2); |
222 | } |
223 | |
224 | void ini_acf_iireq_src_24m_8m(void) |
225 | { |
226 | int acf1[] = { 0x303, 0x048, 0x17e, 0x00e, |
227 | 0x302, 0x081, 0x3f8, 0x00a, |
228 | 0x300, 0x0bd, 0x35b, 0x05e, |
229 | 0x2fe, 0x0e3, 0x325, 0x04b, |
230 | 0x2fb, 0x0f8, 0x313, 0x04d |
231 | }; |
232 | int acf2[] = { 0x3f47ff, 0x3dc7d0, 0x3c3fa0, 0x3abf6f, 0x392f3e, |
233 | 0x37a70d, |
234 | 0x360eda, 0x346ea7, 0x32c673, 0x31163d, 0x2f5606, |
235 | 0x2d8dce, |
236 | 0x2bad93, 0x29bd56, 0x27b517, 0x258cd4, 0x23448d, |
237 | 0x20cc41, |
238 | 0x1e2bf0, 0x1b4b98, 0x182338, 0x149ace, 0x109255, |
239 | 0x0bd1ca, |
240 | 0x07a123, 0x0468c2, 0x00b054, 0x3c5fd4, 0x37073a, |
241 | 0x302e79, |
242 | 0x302e05, 0x302e05, 0x000605 |
243 | }; |
244 | |
245 | program_acf(acf1, acf2); |
246 | } |
247 | |
248 | void ini_acf_iireq_src_24m_7m(void) |
249 | { |
250 | int acf1[] = { 0x2e7, 0x055, 0x153, 0x00e, |
251 | 0x2dd, 0x08b, 0x3a5, 0x06f, |
252 | 0x2d2, 0x0c4, 0x315, 0x05e, |
253 | 0x2cb, 0x0e6, 0x2e7, 0x04b, |
254 | 0x2c5, 0x0f9, 0x2d8, 0x04d |
255 | }; |
256 | int acf2[] = { 0x3f3fff, 0x3dbfcf, 0x3c379e, 0x3aaf6d, 0x391f3c, |
257 | 0x37870a, |
258 | 0x35eed7, 0x344ea3, 0x32a66f, 0x30ee39, 0x2f2e02, |
259 | 0x2d65c9, |
260 | 0x2b858e, 0x298d51, 0x278511, 0x255cce, 0x231487, |
261 | 0x20a43c, |
262 | 0x1e0beb, 0x1b3394, 0x181335, 0x1492cb, 0x109254, |
263 | 0x0be1ca, |
264 | 0x07b925, 0x0480c5, 0x00d858, 0x3c87d8, 0x373740, |
265 | 0x305e80, |
266 | 0x305e0b, 0x305e0b, 0x00060b |
267 | }; |
268 | |
269 | program_acf(acf1, acf2); |
270 | } |
271 | |
272 | void ini_acf_iireq_src_24m_6m(void) |
273 | { |
274 | int acf1[] = { 0x2c9, 0x065, 0x118, 0x01e, |
275 | 0x2b9, 0x097, 0x34f, 0x06f, |
276 | 0x2a7, 0x0ca, 0x2d3, 0x05e, |
277 | 0x29c, 0x0e9, 0x2ae, 0x04b, |
278 | 0x295, 0x0fa, 0x2a2, 0x04d |
279 | }; |
280 | int acf2[] = { 0x3f3fff, 0x3db7cf, 0x3c2f9d, 0x3a9f6c, 0x390f3a, |
281 | 0x377707, |
282 | 0x35d6d4, 0x342ea0, 0x32866b, 0x30ce34, 0x2f05fd, |
283 | 0x2d35c3, |
284 | 0x2b5588, 0x295d4b, 0x27550b, 0x252cc8, 0x22dc80, |
285 | 0x206c35, |
286 | 0x1dcbe4, 0x1af38c, 0x17cb2d, 0x144ac3, 0x104a4b, |
287 | 0x0b99c1, |
288 | 0x07791d, 0x0448be, 0x00b052, 0x3c6fd4, 0x37473f, |
289 | 0x30c686, |
290 | 0x30c618, 0x30c618, 0x000618 |
291 | }; |
292 | |
293 | program_acf(acf1, acf2); |
294 | } |
295 | |
296 | void ini_acf_iireq_src_24m_5m(void) |
297 | { |
298 | int acf1[] = { 0x2ab, 0x077, 0x0c6, 0x01e, |
299 | 0x295, 0x0a5, 0x2fa, 0x06d, |
300 | 0x27f, 0x0d2, 0x297, 0x05e, |
301 | 0x272, 0x0ed, 0x27b, 0x04b, |
302 | 0x26a, 0x0fb, 0x272, 0x04d |
303 | }; |
304 | int acf2[] = { 0x3f3fff, 0x3db7cf, 0x3c2f9e, 0x3aa76c, 0x39173b, |
305 | 0x377f08, |
306 | 0x35ded5, 0x343ea1, 0x328e6c, 0x30de36, 0x2f15ff, |
307 | 0x2d45c6, |
308 | 0x2b658a, 0x29754d, 0x27650d, 0x253cca, 0x22f483, |
309 | 0x208438, |
310 | 0x1de3e7, 0x1b0b90, 0x17eb30, 0x1472c7, 0x107a51, |
311 | 0x0bd9c8, |
312 | 0x07c927, 0x04a8c9, 0x01205f, 0x3cf7e4, 0x37e752, |
313 | 0x31669a, |
314 | 0x31662c, 0x31662c, 0x00062c |
315 | }; |
316 | |
317 | program_acf(acf1, acf2); |
318 | } |
319 | |
320 | void ini_acf_iireq_src_207m_8m(void) |
321 | { |
322 | int acf1[] = { 0x327, 0x039, 0x1a5, 0x07b, |
323 | 0x332, 0x076, 0x05c, 0x06e, |
324 | 0x33e, 0x0b6, 0x3b8, 0x05e, |
325 | 0x344, 0x0e0, 0x37a, 0x04b, |
326 | 0x345, 0x0f7, 0x365, 0x04d |
327 | }; |
328 | int acf2[] = { 0x3f47ff, 0x3dcfd1, 0x3c57a1, 0x3ad772, 0x394f42, |
329 | 0x37c711, |
330 | 0x3636df, 0x34a6ad, 0x32fe7a, 0x315645, 0x2f9e0f, |
331 | 0x2dd5d7, |
332 | 0x2bfd9d, 0x2a0d61, 0x280d21, 0x25e4df, 0x239c98, |
333 | 0x212c4d, |
334 | 0x1e8bfc, 0x1baba4, 0x188344, 0x14fad9, 0x10ea61, |
335 | 0x0c29d4, |
336 | 0x07e92d, 0x04a8cb, 0x00f05c, 0x3c87da, 0x371f3e, |
337 | 0x30267a, |
338 | 0x302604, 0x302604, 0x000604 |
339 | }; |
340 | |
341 | program_acf(acf1, acf2); |
342 | } |
343 | |
344 | void ini_acf_iireq_src_207m_7m(void) |
345 | { |
346 | int acf1[] = { 0x307, 0x046, 0x182, 0x00e, |
347 | 0x306, 0x080, 0x002, 0x00a, |
348 | 0x306, 0x0bd, 0x364, 0x05e, |
349 | 0x304, 0x0e3, 0x32d, 0x04b, |
350 | 0x301, 0x0f8, 0x31b, 0x04d |
351 | }; |
352 | int acf2[] = { 0x3f47ff, 0x3dc7d0, 0x3c47a0, 0x3abf6f, 0x39373f, |
353 | 0x37a70d, |
354 | 0x3616db, 0x3476a8, 0x32d674, 0x31263f, 0x2f6608, |
355 | 0x2d9dd0, |
356 | 0x2bbd96, 0x29d559, 0x27cd19, 0x25a4d7, 0x235c90, |
357 | 0x20ec45, |
358 | 0x1e53f4, 0x1b739d, 0x18533d, 0x14d2d4, 0x10d25c, |
359 | 0x0c19d1, |
360 | 0x07e12c, 0x04a8ca, 0x00f05c, 0x3c8fdb, 0x372740, |
361 | 0x302e7c, |
362 | 0x302e05, 0x302e05, 0x000605 |
363 | }; |
364 | |
365 | program_acf(acf1, acf2); |
366 | } |
367 | |
368 | void ini_acf_iireq_src_207m_6m(void) |
369 | { |
370 | int acf1[] = { 0x2e6, 0x056, 0x151, 0x00e, |
371 | 0x2db, 0x08c, 0x3a1, 0x06f, |
372 | 0x2d0, 0x0c4, 0x312, 0x05e, |
373 | 0x2c9, 0x0e6, 0x2e4, 0x04b, |
374 | 0x2c3, 0x0f9, 0x2d6, 0x04d |
375 | }; |
376 | int acf2[] = { 0x3f47ff, 0x3dbfd0, 0x3c3f9f, 0x3ab76e, 0x39273d, |
377 | 0x37970b, |
378 | 0x35fed9, 0x345ea5, 0x32b671, 0x31063b, 0x2f4604, |
379 | 0x2d75cb, |
380 | 0x2b9590, 0x29a553, 0x279513, 0x256cd0, 0x232489, |
381 | 0x20b43d, |
382 | 0x1e0bec, 0x1b3395, 0x180b35, 0x148acb, 0x108253, |
383 | 0x0bd1c8, |
384 | 0x07a123, 0x0470c2, 0x00c055, 0x3c77d6, 0x372f3e, |
385 | 0x306e80, |
386 | 0x306e0d, 0x306e0d, 0x00060d |
387 | }; |
388 | |
389 | program_acf(acf1, acf2); |
390 | } |
391 | |
392 | void ini_acf_iireq_src_207m_5m(void) |
393 | { |
394 | int acf1[] = { 0x2c3, 0x068, 0x109, 0x01e, |
395 | 0x2b1, 0x09a, 0x33d, 0x06f, |
396 | 0x29f, 0x0cc, 0x2c6, 0x05e, |
397 | 0x293, 0x0ea, 0x2a3, 0x04b, |
398 | 0x28c, 0x0fa, 0x298, 0x04d |
399 | }; |
400 | int acf2[] = { 0x3f3fff, 0x3db7ce, 0x3c279d, 0x3a976b, 0x38ff38, |
401 | 0x376706, |
402 | 0x35c6d2, 0x341e9e, 0x327669, 0x30be32, 0x2ef5fb, |
403 | 0x2d25c1, |
404 | 0x2b4586, 0x295549, 0x274509, 0x251cc6, 0x22dc80, |
405 | 0x206c34, |
406 | 0x1dcbe4, 0x1afb8d, 0x17db2e, 0x1462c5, 0x106a4f, |
407 | 0x0bc9c6, |
408 | 0x07b124, 0x0488c5, 0x00e859, 0x3cafdc, 0x377f47, |
409 | 0x30ee8c, |
410 | 0x30ee1d, 0x30ee1d, 0x00061d |
411 | }; |
412 | |
413 | program_acf(acf1, acf2); |
414 | } |
415 |