19a0bf528SMauro Carvalho Chehab /* 29a0bf528SMauro Carvalho Chehab * Afatech AF9013 demodulator driver 39a0bf528SMauro Carvalho Chehab * 49a0bf528SMauro Carvalho Chehab * Copyright (C) 2007 Antti Palosaari <crope@iki.fi> 59a0bf528SMauro Carvalho Chehab * Copyright (C) 2011 Antti Palosaari <crope@iki.fi> 69a0bf528SMauro Carvalho Chehab * 79a0bf528SMauro Carvalho Chehab * Thanks to Afatech who kindly provided information. 89a0bf528SMauro Carvalho Chehab * 99a0bf528SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify 109a0bf528SMauro Carvalho Chehab * it under the terms of the GNU General Public License as published by 119a0bf528SMauro Carvalho Chehab * the Free Software Foundation; either version 2 of the License, or 129a0bf528SMauro Carvalho Chehab * (at your option) any later version. 139a0bf528SMauro Carvalho Chehab * 149a0bf528SMauro Carvalho Chehab * This program is distributed in the hope that it will be useful, 159a0bf528SMauro Carvalho Chehab * but WITHOUT ANY WARRANTY; without even the implied warranty of 169a0bf528SMauro Carvalho Chehab * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 179a0bf528SMauro Carvalho Chehab * GNU General Public License for more details. 189a0bf528SMauro Carvalho Chehab * 199a0bf528SMauro Carvalho Chehab */ 209a0bf528SMauro Carvalho Chehab 219a0bf528SMauro Carvalho Chehab #ifndef AF9013_PRIV_H 229a0bf528SMauro Carvalho Chehab #define AF9013_PRIV_H 239a0bf528SMauro Carvalho Chehab 249a0bf528SMauro Carvalho Chehab #include "dvb_frontend.h" 259a0bf528SMauro Carvalho Chehab #include "af9013.h" 269a0bf528SMauro Carvalho Chehab #include <linux/firmware.h> 27903b0e58SAntti Palosaari #include <linux/math64.h> 28f458a1bcSAntti Palosaari #include <linux/regmap.h> 299a0bf528SMauro Carvalho Chehab 30a71103a6SAntti Palosaari #define AF9013_FIRMWARE "dvb-fe-af9013.fw" 319a0bf528SMauro Carvalho Chehab 329a0bf528SMauro Carvalho Chehab struct af9013_reg_bit { 339a0bf528SMauro Carvalho Chehab u16 addr; 349a0bf528SMauro Carvalho Chehab u8 pos:4; 359a0bf528SMauro Carvalho Chehab u8 len:4; 369a0bf528SMauro Carvalho Chehab u8 val; 379a0bf528SMauro Carvalho Chehab }; 389a0bf528SMauro Carvalho Chehab 399a0bf528SMauro Carvalho Chehab struct af9013_snr { 409a0bf528SMauro Carvalho Chehab u32 val; 419a0bf528SMauro Carvalho Chehab u8 snr; 429a0bf528SMauro Carvalho Chehab }; 439a0bf528SMauro Carvalho Chehab 449a0bf528SMauro Carvalho Chehab struct af9013_coeff { 459a0bf528SMauro Carvalho Chehab u32 clock; 469a0bf528SMauro Carvalho Chehab u32 bandwidth_hz; 479a0bf528SMauro Carvalho Chehab u8 val[24]; 489a0bf528SMauro Carvalho Chehab }; 499a0bf528SMauro Carvalho Chehab 509a0bf528SMauro Carvalho Chehab /* pre-calculated coeff lookup table */ 519a0bf528SMauro Carvalho Chehab static const struct af9013_coeff coeff_lut[] = { 529a0bf528SMauro Carvalho Chehab /* 28.800 MHz */ 539a0bf528SMauro Carvalho Chehab { 28800000, 8000000, { 0x02, 0x8a, 0x28, 0xa3, 0x05, 0x14, 549a0bf528SMauro Carvalho Chehab 0x51, 0x11, 0x00, 0xa2, 0x8f, 0x3d, 0x00, 0xa2, 0x8a, 559a0bf528SMauro Carvalho Chehab 0x29, 0x00, 0xa2, 0x85, 0x14, 0x01, 0x45, 0x14, 0x14 } }, 569a0bf528SMauro Carvalho Chehab { 28800000, 7000000, { 0x02, 0x38, 0xe3, 0x8e, 0x04, 0x71, 579a0bf528SMauro Carvalho Chehab 0xc7, 0x07, 0x00, 0x8e, 0x3d, 0x55, 0x00, 0x8e, 0x38, 589a0bf528SMauro Carvalho Chehab 0xe4, 0x00, 0x8e, 0x34, 0x72, 0x01, 0x1c, 0x71, 0x32 } }, 599a0bf528SMauro Carvalho Chehab { 28800000, 6000000, { 0x01, 0xe7, 0x9e, 0x7a, 0x03, 0xcf, 609a0bf528SMauro Carvalho Chehab 0x3c, 0x3d, 0x00, 0x79, 0xeb, 0x6e, 0x00, 0x79, 0xe7, 619a0bf528SMauro Carvalho Chehab 0x9e, 0x00, 0x79, 0xe3, 0xcf, 0x00, 0xf3, 0xcf, 0x0f } }, 629a0bf528SMauro Carvalho Chehab /* 20.480 MHz */ 639a0bf528SMauro Carvalho Chehab { 20480000, 8000000, { 0x03, 0x92, 0x49, 0x26, 0x07, 0x24, 649a0bf528SMauro Carvalho Chehab 0x92, 0x13, 0x00, 0xe4, 0x99, 0x6e, 0x00, 0xe4, 0x92, 659a0bf528SMauro Carvalho Chehab 0x49, 0x00, 0xe4, 0x8b, 0x25, 0x01, 0xc9, 0x24, 0x25 } }, 669a0bf528SMauro Carvalho Chehab { 20480000, 7000000, { 0x03, 0x20, 0x00, 0x01, 0x06, 0x40, 679a0bf528SMauro Carvalho Chehab 0x00, 0x00, 0x00, 0xc8, 0x06, 0x40, 0x00, 0xc8, 0x00, 689a0bf528SMauro Carvalho Chehab 0x00, 0x00, 0xc7, 0xf9, 0xc0, 0x01, 0x90, 0x00, 0x00 } }, 699a0bf528SMauro Carvalho Chehab { 20480000, 6000000, { 0x02, 0xad, 0xb6, 0xdc, 0x05, 0x5b, 709a0bf528SMauro Carvalho Chehab 0x6d, 0x2e, 0x00, 0xab, 0x73, 0x13, 0x00, 0xab, 0x6d, 719a0bf528SMauro Carvalho Chehab 0xb7, 0x00, 0xab, 0x68, 0x5c, 0x01, 0x56, 0xdb, 0x1c } }, 729a0bf528SMauro Carvalho Chehab /* 28.000 MHz */ 739a0bf528SMauro Carvalho Chehab { 28000000, 8000000, { 0x02, 0x9c, 0xbc, 0x15, 0x05, 0x39, 749a0bf528SMauro Carvalho Chehab 0x78, 0x0a, 0x00, 0xa7, 0x34, 0x3f, 0x00, 0xa7, 0x2f, 759a0bf528SMauro Carvalho Chehab 0x05, 0x00, 0xa7, 0x29, 0xcc, 0x01, 0x4e, 0x5e, 0x03 } }, 769a0bf528SMauro Carvalho Chehab { 28000000, 7000000, { 0x02, 0x49, 0x24, 0x92, 0x04, 0x92, 779a0bf528SMauro Carvalho Chehab 0x49, 0x09, 0x00, 0x92, 0x4d, 0xb7, 0x00, 0x92, 0x49, 789a0bf528SMauro Carvalho Chehab 0x25, 0x00, 0x92, 0x44, 0x92, 0x01, 0x24, 0x92, 0x12 } }, 799a0bf528SMauro Carvalho Chehab { 28000000, 6000000, { 0x01, 0xf5, 0x8d, 0x10, 0x03, 0xeb, 809a0bf528SMauro Carvalho Chehab 0x1a, 0x08, 0x00, 0x7d, 0x67, 0x2f, 0x00, 0x7d, 0x63, 819a0bf528SMauro Carvalho Chehab 0x44, 0x00, 0x7d, 0x5f, 0x59, 0x00, 0xfa, 0xc6, 0x22 } }, 829a0bf528SMauro Carvalho Chehab /* 25.000 MHz */ 839a0bf528SMauro Carvalho Chehab { 25000000, 8000000, { 0x02, 0xec, 0xfb, 0x9d, 0x05, 0xd9, 849a0bf528SMauro Carvalho Chehab 0xf7, 0x0e, 0x00, 0xbb, 0x44, 0xc1, 0x00, 0xbb, 0x3e, 859a0bf528SMauro Carvalho Chehab 0xe7, 0x00, 0xbb, 0x39, 0x0d, 0x01, 0x76, 0x7d, 0x34 } }, 869a0bf528SMauro Carvalho Chehab { 25000000, 7000000, { 0x02, 0x8f, 0x5c, 0x29, 0x05, 0x1e, 879a0bf528SMauro Carvalho Chehab 0xb8, 0x14, 0x00, 0xa3, 0xdc, 0x29, 0x00, 0xa3, 0xd7, 889a0bf528SMauro Carvalho Chehab 0x0a, 0x00, 0xa3, 0xd1, 0xec, 0x01, 0x47, 0xae, 0x05 } }, 899a0bf528SMauro Carvalho Chehab { 25000000, 6000000, { 0x02, 0x31, 0xbc, 0xb5, 0x04, 0x63, 909a0bf528SMauro Carvalho Chehab 0x79, 0x1b, 0x00, 0x8c, 0x73, 0x91, 0x00, 0x8c, 0x6f, 919a0bf528SMauro Carvalho Chehab 0x2d, 0x00, 0x8c, 0x6a, 0xca, 0x01, 0x18, 0xde, 0x17 } }, 929a0bf528SMauro Carvalho Chehab }; 939a0bf528SMauro Carvalho Chehab 949a0bf528SMauro Carvalho Chehab /* QPSK SNR lookup table */ 959a0bf528SMauro Carvalho Chehab static const struct af9013_snr qpsk_snr_lut[] = { 969a0bf528SMauro Carvalho Chehab { 0x000000, 0 }, 979a0bf528SMauro Carvalho Chehab { 0x0b4771, 0 }, 989a0bf528SMauro Carvalho Chehab { 0x0c1aed, 1 }, 999a0bf528SMauro Carvalho Chehab { 0x0d0d27, 2 }, 1009a0bf528SMauro Carvalho Chehab { 0x0e4d19, 3 }, 1019a0bf528SMauro Carvalho Chehab { 0x0e5da8, 4 }, 1029a0bf528SMauro Carvalho Chehab { 0x107097, 5 }, 1039a0bf528SMauro Carvalho Chehab { 0x116975, 6 }, 1049a0bf528SMauro Carvalho Chehab { 0x1252d9, 7 }, 1059a0bf528SMauro Carvalho Chehab { 0x131fa4, 8 }, 1069a0bf528SMauro Carvalho Chehab { 0x13d5e1, 9 }, 1079a0bf528SMauro Carvalho Chehab { 0x148e53, 10 }, 1089a0bf528SMauro Carvalho Chehab { 0x15358b, 11 }, 1099a0bf528SMauro Carvalho Chehab { 0x15dd29, 12 }, 1109a0bf528SMauro Carvalho Chehab { 0x168112, 13 }, 1119a0bf528SMauro Carvalho Chehab { 0x170b61, 14 }, 1129a0bf528SMauro Carvalho Chehab { 0xffffff, 15 }, 1139a0bf528SMauro Carvalho Chehab }; 1149a0bf528SMauro Carvalho Chehab 1159a0bf528SMauro Carvalho Chehab /* QAM16 SNR lookup table */ 1169a0bf528SMauro Carvalho Chehab static const struct af9013_snr qam16_snr_lut[] = { 1179a0bf528SMauro Carvalho Chehab { 0x000000, 0 }, 1189a0bf528SMauro Carvalho Chehab { 0x05eb62, 5 }, 1199a0bf528SMauro Carvalho Chehab { 0x05fecf, 6 }, 1209a0bf528SMauro Carvalho Chehab { 0x060b80, 7 }, 1219a0bf528SMauro Carvalho Chehab { 0x062501, 8 }, 1229a0bf528SMauro Carvalho Chehab { 0x064865, 9 }, 1239a0bf528SMauro Carvalho Chehab { 0x069604, 10 }, 1249a0bf528SMauro Carvalho Chehab { 0x06f356, 11 }, 1259a0bf528SMauro Carvalho Chehab { 0x07706a, 12 }, 1269a0bf528SMauro Carvalho Chehab { 0x0804d3, 13 }, 1279a0bf528SMauro Carvalho Chehab { 0x089d1a, 14 }, 1289a0bf528SMauro Carvalho Chehab { 0x093e3d, 15 }, 1299a0bf528SMauro Carvalho Chehab { 0x09e35d, 16 }, 1309a0bf528SMauro Carvalho Chehab { 0x0a7c3c, 17 }, 1319a0bf528SMauro Carvalho Chehab { 0x0afaf8, 18 }, 1329a0bf528SMauro Carvalho Chehab { 0x0b719d, 19 }, 1339a0bf528SMauro Carvalho Chehab { 0xffffff, 20 }, 1349a0bf528SMauro Carvalho Chehab }; 1359a0bf528SMauro Carvalho Chehab 1369a0bf528SMauro Carvalho Chehab /* QAM64 SNR lookup table */ 1379a0bf528SMauro Carvalho Chehab static const struct af9013_snr qam64_snr_lut[] = { 1389a0bf528SMauro Carvalho Chehab { 0x000000, 0 }, 1399a0bf528SMauro Carvalho Chehab { 0x03109b, 12 }, 1409a0bf528SMauro Carvalho Chehab { 0x0310d4, 13 }, 1419a0bf528SMauro Carvalho Chehab { 0x031920, 14 }, 1429a0bf528SMauro Carvalho Chehab { 0x0322d0, 15 }, 1439a0bf528SMauro Carvalho Chehab { 0x0339fc, 16 }, 1449a0bf528SMauro Carvalho Chehab { 0x0364a1, 17 }, 1459a0bf528SMauro Carvalho Chehab { 0x038bcc, 18 }, 1469a0bf528SMauro Carvalho Chehab { 0x03c7d3, 19 }, 1479a0bf528SMauro Carvalho Chehab { 0x0408cc, 20 }, 1489a0bf528SMauro Carvalho Chehab { 0x043bed, 21 }, 1499a0bf528SMauro Carvalho Chehab { 0x048061, 22 }, 1509a0bf528SMauro Carvalho Chehab { 0x04be95, 23 }, 1519a0bf528SMauro Carvalho Chehab { 0x04fa7d, 24 }, 1529a0bf528SMauro Carvalho Chehab { 0x052405, 25 }, 1539a0bf528SMauro Carvalho Chehab { 0x05570d, 26 }, 1549a0bf528SMauro Carvalho Chehab { 0xffffff, 27 }, 1559a0bf528SMauro Carvalho Chehab }; 1569a0bf528SMauro Carvalho Chehab 1579a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit ofsm_init[] = { 1589a0bf528SMauro Carvalho Chehab { 0xd73a, 0, 8, 0xa1 }, 1599a0bf528SMauro Carvalho Chehab { 0xd73b, 0, 8, 0x1f }, 1609a0bf528SMauro Carvalho Chehab { 0xd73c, 4, 4, 0x0a }, 1619a0bf528SMauro Carvalho Chehab { 0xd732, 3, 1, 0x00 }, 1629a0bf528SMauro Carvalho Chehab { 0xd731, 4, 2, 0x03 }, 1639a0bf528SMauro Carvalho Chehab { 0xd73d, 7, 1, 0x01 }, 1649a0bf528SMauro Carvalho Chehab { 0xd740, 0, 1, 0x00 }, 1659a0bf528SMauro Carvalho Chehab { 0xd740, 1, 1, 0x00 }, 1669a0bf528SMauro Carvalho Chehab { 0xd740, 2, 1, 0x00 }, 1679a0bf528SMauro Carvalho Chehab { 0xd740, 3, 1, 0x01 }, 1689a0bf528SMauro Carvalho Chehab { 0xd3c1, 4, 1, 0x01 }, 1699a0bf528SMauro Carvalho Chehab { 0x9124, 0, 8, 0x58 }, 1709a0bf528SMauro Carvalho Chehab { 0x9125, 0, 2, 0x02 }, 1719a0bf528SMauro Carvalho Chehab { 0xd3a2, 0, 8, 0x00 }, 1729a0bf528SMauro Carvalho Chehab { 0xd3a3, 0, 8, 0x04 }, 1739a0bf528SMauro Carvalho Chehab { 0xd305, 0, 8, 0x32 }, 1749a0bf528SMauro Carvalho Chehab { 0xd306, 0, 8, 0x10 }, 1759a0bf528SMauro Carvalho Chehab { 0xd304, 0, 8, 0x04 }, 1769a0bf528SMauro Carvalho Chehab { 0x9112, 0, 1, 0x01 }, 1779a0bf528SMauro Carvalho Chehab { 0x911d, 0, 1, 0x01 }, 1789a0bf528SMauro Carvalho Chehab { 0x911a, 0, 1, 0x01 }, 1799a0bf528SMauro Carvalho Chehab { 0x911b, 0, 1, 0x01 }, 1809a0bf528SMauro Carvalho Chehab { 0x9bce, 0, 4, 0x02 }, 1819a0bf528SMauro Carvalho Chehab { 0x9116, 0, 1, 0x01 }, 1829a0bf528SMauro Carvalho Chehab { 0x9122, 0, 8, 0xd0 }, 1839a0bf528SMauro Carvalho Chehab { 0xd2e0, 0, 8, 0xd0 }, 1849a0bf528SMauro Carvalho Chehab { 0xd2e9, 0, 4, 0x0d }, 1859a0bf528SMauro Carvalho Chehab { 0xd38c, 0, 8, 0xfc }, 1869a0bf528SMauro Carvalho Chehab { 0xd38d, 0, 8, 0x00 }, 1879a0bf528SMauro Carvalho Chehab { 0xd38e, 0, 8, 0x7e }, 1889a0bf528SMauro Carvalho Chehab { 0xd38f, 0, 8, 0x00 }, 1899a0bf528SMauro Carvalho Chehab { 0xd390, 0, 8, 0x2f }, 1909a0bf528SMauro Carvalho Chehab { 0xd145, 4, 1, 0x01 }, 1919a0bf528SMauro Carvalho Chehab { 0xd1a9, 4, 1, 0x01 }, 1929a0bf528SMauro Carvalho Chehab { 0xd158, 5, 3, 0x01 }, 1939a0bf528SMauro Carvalho Chehab { 0xd159, 0, 6, 0x06 }, 1949a0bf528SMauro Carvalho Chehab { 0xd167, 0, 8, 0x00 }, 1959a0bf528SMauro Carvalho Chehab { 0xd168, 0, 4, 0x07 }, 1969a0bf528SMauro Carvalho Chehab { 0xd1c3, 5, 3, 0x00 }, 1979a0bf528SMauro Carvalho Chehab { 0xd1c4, 0, 6, 0x00 }, 1989a0bf528SMauro Carvalho Chehab { 0xd1c5, 0, 7, 0x10 }, 1999a0bf528SMauro Carvalho Chehab { 0xd1c6, 0, 3, 0x02 }, 2009a0bf528SMauro Carvalho Chehab { 0xd080, 2, 5, 0x03 }, 2019a0bf528SMauro Carvalho Chehab { 0xd081, 4, 4, 0x09 }, 2029a0bf528SMauro Carvalho Chehab { 0xd098, 4, 4, 0x0f }, 2039a0bf528SMauro Carvalho Chehab { 0xd098, 0, 4, 0x03 }, 2049a0bf528SMauro Carvalho Chehab { 0xdbc0, 4, 1, 0x01 }, 2059a0bf528SMauro Carvalho Chehab { 0xdbc7, 0, 8, 0x08 }, 2069a0bf528SMauro Carvalho Chehab { 0xdbc8, 4, 4, 0x00 }, 2079a0bf528SMauro Carvalho Chehab { 0xdbc9, 0, 5, 0x01 }, 2089a0bf528SMauro Carvalho Chehab { 0xd280, 0, 8, 0xe0 }, 2099a0bf528SMauro Carvalho Chehab { 0xd281, 0, 8, 0xff }, 2109a0bf528SMauro Carvalho Chehab { 0xd282, 0, 8, 0xff }, 2119a0bf528SMauro Carvalho Chehab { 0xd283, 0, 8, 0xc3 }, 2129a0bf528SMauro Carvalho Chehab { 0xd284, 0, 8, 0xff }, 2139a0bf528SMauro Carvalho Chehab { 0xd285, 0, 4, 0x01 }, 2149a0bf528SMauro Carvalho Chehab { 0xd0f0, 0, 7, 0x1a }, 2159a0bf528SMauro Carvalho Chehab { 0xd0f1, 4, 1, 0x01 }, 2169a0bf528SMauro Carvalho Chehab { 0xd0f2, 0, 8, 0x0c }, 2179a0bf528SMauro Carvalho Chehab { 0xd101, 5, 3, 0x06 }, 2189a0bf528SMauro Carvalho Chehab { 0xd103, 0, 4, 0x08 }, 2199a0bf528SMauro Carvalho Chehab { 0xd0f8, 0, 7, 0x20 }, 2209a0bf528SMauro Carvalho Chehab { 0xd111, 5, 1, 0x00 }, 2219a0bf528SMauro Carvalho Chehab { 0xd111, 6, 1, 0x00 }, 2229a0bf528SMauro Carvalho Chehab { 0x910b, 0, 8, 0x0a }, 2239a0bf528SMauro Carvalho Chehab { 0x9115, 0, 8, 0x02 }, 2249a0bf528SMauro Carvalho Chehab { 0x910c, 0, 8, 0x02 }, 2259a0bf528SMauro Carvalho Chehab { 0x910d, 0, 8, 0x08 }, 2269a0bf528SMauro Carvalho Chehab { 0x910e, 0, 8, 0x0a }, 2279a0bf528SMauro Carvalho Chehab { 0x9bf6, 0, 8, 0x06 }, 2289a0bf528SMauro Carvalho Chehab { 0x9bf8, 0, 8, 0x02 }, 2299a0bf528SMauro Carvalho Chehab { 0x9bf7, 0, 8, 0x05 }, 2309a0bf528SMauro Carvalho Chehab { 0x9bf9, 0, 8, 0x0f }, 2319a0bf528SMauro Carvalho Chehab { 0x9bfc, 0, 8, 0x13 }, 2329a0bf528SMauro Carvalho Chehab { 0x9bd3, 0, 8, 0xff }, 2339a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 1, 0x01 }, 2349a0bf528SMauro Carvalho Chehab { 0x9bcc, 0, 1, 0x01 }, 2359a0bf528SMauro Carvalho Chehab }; 2369a0bf528SMauro Carvalho Chehab 2379a0bf528SMauro Carvalho Chehab /* Panasonic ENV77H11D5 tuner init 2389a0bf528SMauro Carvalho Chehab AF9013_TUNER_ENV77H11D5 = 129 */ 2399a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_env77h11d5[] = { 2409a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 2419a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x03 }, 2429a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 8, 0x01 }, 2439a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 2449a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 2459a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 2469a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 2479a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 2489a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 2499a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 2509a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 2519a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 2529a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 2539a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 2549a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 2559a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 2569a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 2579a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 2589a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 2599a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 2609a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 2619a0bf528SMauro Carvalho Chehab { 0x9bda, 0, 8, 0x00 }, 2629a0bf528SMauro Carvalho Chehab { 0x9be3, 0, 8, 0x00 }, 2639a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x50 }, 2649a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 2659a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x46 }, 2669a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 2679a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0xdf }, 2689a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 2699a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x44 }, 2709a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x01 }, 2719a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0xeb }, 2729a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x02 }, 2739a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0xf4 }, 2749a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 2759a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xf9 }, 2769a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0xdf }, 2779a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 2789a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0xeb }, 2799a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x02 }, 2809a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0x52 }, 2819a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x3c }, 2829a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x01 }, 2839a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0xf7 }, 2849a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x02 }, 2859a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x0b }, 2869a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x02 }, 2879a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0x4d }, 2889a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x00 }, 2899a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 2909a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 1, 0x01 }, 2919a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 2929a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 2939a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 2949a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 2959a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 2969a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x50 }, 2979a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 2989a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 2999a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 3009a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 3019a0bf528SMauro Carvalho Chehab }; 3029a0bf528SMauro Carvalho Chehab 3039a0bf528SMauro Carvalho Chehab /* Microtune MT2060 tuner init 3049a0bf528SMauro Carvalho Chehab AF9013_TUNER_MT2060 = 130 */ 3059a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_mt2060[] = { 3069a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 3079a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x07 }, 3089a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 3099a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 3109a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 3119a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 3129a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 3139a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 3149a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 3159a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 3169a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 3179a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 3189a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 3199a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 3209a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 3219a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 3229a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 3239a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 3249a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 3259a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 3269a0bf528SMauro Carvalho Chehab { 0x9bda, 0, 8, 0x00 }, 3279a0bf528SMauro Carvalho Chehab { 0x9be3, 0, 8, 0x00 }, 3289a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 1, 0x00 }, 3299a0bf528SMauro Carvalho Chehab { 0x9bcc, 0, 1, 0x00 }, 3309a0bf528SMauro Carvalho Chehab { 0x9bb9, 0, 8, 0x75 }, 3319a0bf528SMauro Carvalho Chehab { 0x9bcd, 0, 8, 0x24 }, 3329a0bf528SMauro Carvalho Chehab { 0x9bff, 0, 8, 0x30 }, 3339a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x46 }, 3349a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 3359a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x46 }, 3369a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 3379a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0x0f }, 3389a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 3399a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x32 }, 3409a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x01 }, 3419a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0x36 }, 3429a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x03 }, 3439a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0x35 }, 3449a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 3459a0bf528SMauro Carvalho Chehab { 0x9bc7, 0, 8, 0x07 }, 3469a0bf528SMauro Carvalho Chehab { 0x9bc8, 0, 8, 0x90 }, 3479a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0x0f }, 3489a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 3499a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0x36 }, 3509a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x03 }, 3519a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xc9 }, 3529a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0x79 }, 3539a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x10 }, 3549a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x01 }, 3559a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0x45 }, 3569a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x03 }, 3579a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x98 }, 3589a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x00 }, 3599a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0xcf }, 3609a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x03 }, 3619a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 3629a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 1, 0x01 }, 3639a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 3649a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 3659a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 3669a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 3679a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 3689a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x50 }, 3699a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 3709a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 3719a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 3729a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 3739a0bf528SMauro Carvalho Chehab { 0x9bd0, 0, 8, 0xcc }, 3749a0bf528SMauro Carvalho Chehab { 0x9be4, 0, 8, 0xa0 }, 3759a0bf528SMauro Carvalho Chehab { 0x9bbd, 0, 8, 0x8e }, 3769a0bf528SMauro Carvalho Chehab { 0x9be2, 0, 8, 0x4d }, 3779a0bf528SMauro Carvalho Chehab { 0x9bee, 0, 1, 0x01 }, 3789a0bf528SMauro Carvalho Chehab }; 3799a0bf528SMauro Carvalho Chehab 3809a0bf528SMauro Carvalho Chehab /* Microtune MT2060 tuner init 3819a0bf528SMauro Carvalho Chehab AF9013_TUNER_MT2060_2 = 147 */ 3829a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_mt2060_2[] = { 3839a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 3849a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x06 }, 3859a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 8, 0x01 }, 3869a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 3879a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 3889a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 3899a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 3909a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 3919a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 3929a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 3939a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 3949a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 3959a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 3969a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 3979a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 3989a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 3999a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 4009a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 4019a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 4029a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 4039a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 4049a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x46 }, 4059a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 4069a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x46 }, 4079a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 4089a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0x0f }, 4099a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 4109a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x32 }, 4119a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x01 }, 4129a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0x36 }, 4139a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x03 }, 4149a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0x35 }, 4159a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 4169a0bf528SMauro Carvalho Chehab { 0x9bc7, 0, 8, 0x07 }, 4179a0bf528SMauro Carvalho Chehab { 0x9bc8, 0, 8, 0x90 }, 4189a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0x0f }, 4199a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 4209a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0x36 }, 4219a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x03 }, 4229a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xc9 }, 4239a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0x79 }, 4249a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x10 }, 4259a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x01 }, 4269a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0x45 }, 4279a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x03 }, 4289a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x98 }, 4299a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x00 }, 4309a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0xcf }, 4319a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x03 }, 4329a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 4339a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 8, 0x01 }, 4349a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 4359a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 4369a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 4379a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 4389a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 4399a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x96 }, 4409a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 4419a0bf528SMauro Carvalho Chehab { 0xd045, 7, 1, 0x00 }, 4429a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 4439a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 4449a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 4459a0bf528SMauro Carvalho Chehab }; 4469a0bf528SMauro Carvalho Chehab 4479a0bf528SMauro Carvalho Chehab /* MaxLinear MXL5003 tuner init 4489a0bf528SMauro Carvalho Chehab AF9013_TUNER_MXL5003D = 3 */ 4499a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_mxl5003d[] = { 4509a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 4519a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x09 }, 4529a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 4539a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 4549a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 4559a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 4569a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 4579a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 4589a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 4599a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 4609a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 4619a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 4629a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 4639a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 4649a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 4659a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 4669a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 4679a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 4689a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 4699a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 4709a0bf528SMauro Carvalho Chehab { 0x9bda, 0, 8, 0x00 }, 4719a0bf528SMauro Carvalho Chehab { 0x9be3, 0, 8, 0x00 }, 4729a0bf528SMauro Carvalho Chehab { 0x9bfc, 0, 8, 0x0f }, 4739a0bf528SMauro Carvalho Chehab { 0x9bf6, 0, 8, 0x01 }, 4749a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 1, 0x01 }, 4759a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x33 }, 4769a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 4779a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x40 }, 4789a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 4799a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0x0f }, 4809a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 4819a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x6c }, 4829a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x00 }, 4839a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0x3d }, 4849a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x00 }, 4859a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0x45 }, 4869a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 4879a0bf528SMauro Carvalho Chehab { 0x9bc7, 0, 8, 0x07 }, 4889a0bf528SMauro Carvalho Chehab { 0x9bc8, 0, 8, 0x52 }, 4899a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0x0f }, 4909a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 4919a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0x3d }, 4929a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x00 }, 4939a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xa2 }, 4949a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0xa0 }, 4959a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x56 }, 4969a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x00 }, 4979a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0x50 }, 4989a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x00 }, 4999a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x56 }, 5009a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x00 }, 5019a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0x50 }, 5029a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x00 }, 5039a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 5049a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 8, 0x01 }, 5059a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 5069a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 5079a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 5089a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 5099a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 5109a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x50 }, 5119a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 5129a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 5139a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 5149a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 5159a0bf528SMauro Carvalho Chehab }; 5169a0bf528SMauro Carvalho Chehab 5179a0bf528SMauro Carvalho Chehab /* MaxLinear MXL5005S & MXL5007T tuner init 5189a0bf528SMauro Carvalho Chehab AF9013_TUNER_MXL5005D = 13 5199a0bf528SMauro Carvalho Chehab AF9013_TUNER_MXL5005R = 30 5209a0bf528SMauro Carvalho Chehab AF9013_TUNER_MXL5007T = 177 */ 5219a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_mxl5005[] = { 5229a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 5239a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x07 }, 5249a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 5259a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 5269a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 5279a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 5289a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 5299a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 5309a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 5319a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 5329a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 5339a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 5349a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 5359a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 5369a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 5379a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 5389a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 5399a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 5409a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 5419a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 5429a0bf528SMauro Carvalho Chehab { 0x9bda, 0, 8, 0x01 }, 5439a0bf528SMauro Carvalho Chehab { 0x9be3, 0, 8, 0x01 }, 5449a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 1, 0x01 }, 5459a0bf528SMauro Carvalho Chehab { 0x9bcc, 0, 1, 0x01 }, 5469a0bf528SMauro Carvalho Chehab { 0x9bb9, 0, 8, 0x00 }, 5479a0bf528SMauro Carvalho Chehab { 0x9bcd, 0, 8, 0x28 }, 5489a0bf528SMauro Carvalho Chehab { 0x9bff, 0, 8, 0x24 }, 5499a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x40 }, 5509a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 5519a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x40 }, 5529a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 5539a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0x0f }, 5549a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 5559a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x73 }, 5569a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x01 }, 5579a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0xfa }, 5589a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x01 }, 5599a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0xff }, 5609a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 5619a0bf528SMauro Carvalho Chehab { 0x9bc7, 0, 8, 0x23 }, 5629a0bf528SMauro Carvalho Chehab { 0x9bc8, 0, 8, 0x55 }, 5639a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0x01 }, 5649a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 5659a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0xfa }, 5669a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x01 }, 5679a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xff }, 5689a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0xff }, 5699a0bf528SMauro Carvalho Chehab { 0x9bd3, 0, 8, 0x95 }, 5709a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x70 }, 5719a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x01 }, 5729a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0xfb }, 5739a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x01 }, 5749a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x70 }, 5759a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x01 }, 5769a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0xfb }, 5779a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x01 }, 5789a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 5799a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 1, 0x01 }, 5809a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 5819a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 5829a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 5839a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 5849a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 5859a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x50 }, 5869a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 5879a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 5889a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 5899a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 5909a0bf528SMauro Carvalho Chehab { 0x9bd0, 0, 8, 0x93 }, 5919a0bf528SMauro Carvalho Chehab { 0x9be4, 0, 8, 0xfe }, 5929a0bf528SMauro Carvalho Chehab { 0x9bbd, 0, 8, 0x63 }, 5939a0bf528SMauro Carvalho Chehab { 0x9be2, 0, 8, 0xfe }, 5949a0bf528SMauro Carvalho Chehab { 0x9bee, 0, 1, 0x01 }, 5959a0bf528SMauro Carvalho Chehab }; 5969a0bf528SMauro Carvalho Chehab 5979a0bf528SMauro Carvalho Chehab /* Quantek QT1010 tuner init 5989a0bf528SMauro Carvalho Chehab AF9013_TUNER_QT1010 = 134 5999a0bf528SMauro Carvalho Chehab AF9013_TUNER_QT1010A = 162 */ 6009a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_qt1010[] = { 6019a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 6029a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x09 }, 6039a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 6049a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 6059a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 6069a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 6079a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 6089a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 6099a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 6109a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 6119a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 6129a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 6139a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 6149a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 6159a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 6169a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 6179a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 6189a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 6199a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 6209a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 6219a0bf528SMauro Carvalho Chehab { 0x9bda, 0, 8, 0x01 }, 6229a0bf528SMauro Carvalho Chehab { 0x9be3, 0, 8, 0x01 }, 6239a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x46 }, 6249a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 6259a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x46 }, 6269a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 6279a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 1, 0x01 }, 6289a0bf528SMauro Carvalho Chehab { 0x9bcc, 0, 1, 0x01 }, 6299a0bf528SMauro Carvalho Chehab { 0x9bb9, 0, 8, 0x00 }, 6309a0bf528SMauro Carvalho Chehab { 0x9bcd, 0, 8, 0x28 }, 6319a0bf528SMauro Carvalho Chehab { 0x9bff, 0, 8, 0x20 }, 6329a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0x0f }, 6339a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 6349a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x99 }, 6359a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x01 }, 6369a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0x0f }, 6379a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x02 }, 6389a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0x50 }, 6399a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 6409a0bf528SMauro Carvalho Chehab { 0x9bc7, 0, 8, 0x00 }, 6419a0bf528SMauro Carvalho Chehab { 0x9bc8, 0, 8, 0x00 }, 6429a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0x0f }, 6439a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 6449a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0x0f }, 6459a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x02 }, 6469a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xc5 }, 6479a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0xff }, 6489a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x58 }, 6499a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x02 }, 6509a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0x89 }, 6519a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x01 }, 6529a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x58 }, 6539a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x02 }, 6549a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0x89 }, 6559a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x01 }, 6569a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 6579a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 1, 0x01 }, 6589a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 6599a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 6609a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 6619a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 6629a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 6639a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x50 }, 6649a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 6659a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 6669a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 6679a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 6689a0bf528SMauro Carvalho Chehab { 0x9bd0, 0, 8, 0xcd }, 6699a0bf528SMauro Carvalho Chehab { 0x9be4, 0, 8, 0xbb }, 6709a0bf528SMauro Carvalho Chehab { 0x9bbd, 0, 8, 0x93 }, 6719a0bf528SMauro Carvalho Chehab { 0x9be2, 0, 8, 0x80 }, 6729a0bf528SMauro Carvalho Chehab { 0x9bee, 0, 1, 0x01 }, 6739a0bf528SMauro Carvalho Chehab }; 6749a0bf528SMauro Carvalho Chehab 6759a0bf528SMauro Carvalho Chehab /* Freescale MC44S803 tuner init 6769a0bf528SMauro Carvalho Chehab AF9013_TUNER_MC44S803 = 133 */ 6779a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_mc44s803[] = { 6789a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 6799a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x06 }, 6809a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 6819a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 6829a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 6839a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 6849a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 6859a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 6869a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 6879a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 6889a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 6899a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 6909a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 6919a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 6929a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 6939a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 6949a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 6959a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 6969a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 6979a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 6989a0bf528SMauro Carvalho Chehab { 0x9bda, 0, 8, 0x00 }, 6999a0bf528SMauro Carvalho Chehab { 0x9be3, 0, 8, 0x00 }, 7009a0bf528SMauro Carvalho Chehab { 0x9bf6, 0, 8, 0x01 }, 7019a0bf528SMauro Carvalho Chehab { 0x9bf8, 0, 8, 0x02 }, 7029a0bf528SMauro Carvalho Chehab { 0x9bf9, 0, 8, 0x02 }, 7039a0bf528SMauro Carvalho Chehab { 0x9bfc, 0, 8, 0x1f }, 7049a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 1, 0x01 }, 7059a0bf528SMauro Carvalho Chehab { 0x9bcc, 0, 1, 0x01 }, 7069a0bf528SMauro Carvalho Chehab { 0x9bb9, 0, 8, 0x00 }, 7079a0bf528SMauro Carvalho Chehab { 0x9bcd, 0, 8, 0x24 }, 7089a0bf528SMauro Carvalho Chehab { 0x9bff, 0, 8, 0x24 }, 7099a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x46 }, 7109a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 7119a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x46 }, 7129a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 7139a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0x01 }, 7149a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 7159a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x7b }, 7169a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x00 }, 7179a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0x7c }, 7189a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x02 }, 7199a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0xfe }, 7209a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 7219a0bf528SMauro Carvalho Chehab { 0x9bc7, 0, 8, 0x08 }, 7229a0bf528SMauro Carvalho Chehab { 0x9bc8, 0, 8, 0x9a }, 7239a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0x01 }, 7249a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 7259a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0x7c }, 7269a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x02 }, 7279a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xfc }, 7289a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0xaa }, 7299a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x6b }, 7309a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x00 }, 7319a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0x88 }, 7329a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x02 }, 7339a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x6b }, 7349a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x00 }, 7359a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0x7c }, 7369a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x02 }, 7379a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 7389a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 1, 0x01 }, 7399a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 7409a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 7419a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 7429a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 7439a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 7449a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x50 }, 7459a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 7469a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 7479a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 7489a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 7499a0bf528SMauro Carvalho Chehab { 0x9bd0, 0, 8, 0x9e }, 7509a0bf528SMauro Carvalho Chehab { 0x9be4, 0, 8, 0xff }, 7519a0bf528SMauro Carvalho Chehab { 0x9bbd, 0, 8, 0x9e }, 7529a0bf528SMauro Carvalho Chehab { 0x9be2, 0, 8, 0x25 }, 7539a0bf528SMauro Carvalho Chehab { 0x9bee, 0, 1, 0x01 }, 7549a0bf528SMauro Carvalho Chehab { 0xd73b, 3, 1, 0x00 }, 7559a0bf528SMauro Carvalho Chehab }; 7569a0bf528SMauro Carvalho Chehab 7579a0bf528SMauro Carvalho Chehab /* unknown, probably for tin can tuner, tuner init 7589a0bf528SMauro Carvalho Chehab AF9013_TUNER_UNKNOWN = 140 */ 7599a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_unknown[] = { 7609a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 7619a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x02 }, 7629a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 7639a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 7649a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 7659a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 7669a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 7679a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 7689a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 7699a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 7709a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 7719a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 7729a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 7739a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 7749a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 7759a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 7769a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 7779a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 7789a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 7799a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 7809a0bf528SMauro Carvalho Chehab { 0x9bda, 0, 8, 0x01 }, 7819a0bf528SMauro Carvalho Chehab { 0x9be3, 0, 8, 0x01 }, 7829a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x00 }, 7839a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 1, 0x01 }, 7849a0bf528SMauro Carvalho Chehab { 0x9bcc, 0, 1, 0x01 }, 7859a0bf528SMauro Carvalho Chehab { 0x9bb9, 0, 8, 0x00 }, 7869a0bf528SMauro Carvalho Chehab { 0x9bcd, 0, 8, 0x18 }, 7879a0bf528SMauro Carvalho Chehab { 0x9bff, 0, 8, 0x2c }, 7889a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x46 }, 7899a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 7909a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x46 }, 7919a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 7929a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0xdf }, 7939a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 7949a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x44 }, 7959a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x01 }, 7969a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0x00 }, 7979a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x02 }, 7989a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0xf6 }, 7999a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 8009a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xf9 }, 8019a0bf528SMauro Carvalho Chehab { 0x9bc8, 0, 8, 0xaa }, 8029a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0xdf }, 8039a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 8049a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0x00 }, 8059a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x02 }, 8069a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0xf0 }, 8079a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x3c }, 8089a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x01 }, 8099a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0xf7 }, 8109a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x02 }, 8119a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x0b }, 8129a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x02 }, 8139a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0x4d }, 8149a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x00 }, 8159a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 8169a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 1, 0x01 }, 8179a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 8189a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 8199a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 8209a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 8219a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 8229a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x50 }, 8239a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 8249a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 8259a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 8269a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 8279a0bf528SMauro Carvalho Chehab }; 8289a0bf528SMauro Carvalho Chehab 8299a0bf528SMauro Carvalho Chehab /* NXP TDA18271 & TDA18218 tuner init 8309a0bf528SMauro Carvalho Chehab AF9013_TUNER_TDA18271 = 156 8319a0bf528SMauro Carvalho Chehab AF9013_TUNER_TDA18218 = 179 */ 8329a0bf528SMauro Carvalho Chehab static const struct af9013_reg_bit tuner_init_tda18271[] = { 8339a0bf528SMauro Carvalho Chehab { 0x9bd5, 0, 8, 0x01 }, 8349a0bf528SMauro Carvalho Chehab { 0x9bd6, 0, 8, 0x04 }, 8359a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x01 }, 8369a0bf528SMauro Carvalho Chehab { 0xd000, 0, 1, 0x01 }, 8379a0bf528SMauro Carvalho Chehab { 0xd000, 1, 1, 0x00 }, 8389a0bf528SMauro Carvalho Chehab { 0xd001, 1, 1, 0x01 }, 8399a0bf528SMauro Carvalho Chehab { 0xd001, 0, 1, 0x00 }, 8409a0bf528SMauro Carvalho Chehab { 0xd001, 5, 1, 0x00 }, 8419a0bf528SMauro Carvalho Chehab { 0xd002, 0, 5, 0x19 }, 8429a0bf528SMauro Carvalho Chehab { 0xd003, 0, 5, 0x1a }, 8439a0bf528SMauro Carvalho Chehab { 0xd004, 0, 5, 0x19 }, 8449a0bf528SMauro Carvalho Chehab { 0xd005, 0, 5, 0x1a }, 8459a0bf528SMauro Carvalho Chehab { 0xd00e, 0, 5, 0x10 }, 8469a0bf528SMauro Carvalho Chehab { 0xd00f, 0, 3, 0x04 }, 8479a0bf528SMauro Carvalho Chehab { 0xd00f, 3, 3, 0x05 }, 8489a0bf528SMauro Carvalho Chehab { 0xd010, 0, 3, 0x04 }, 8499a0bf528SMauro Carvalho Chehab { 0xd010, 3, 3, 0x05 }, 8509a0bf528SMauro Carvalho Chehab { 0xd016, 4, 4, 0x03 }, 8519a0bf528SMauro Carvalho Chehab { 0xd01f, 0, 6, 0x0a }, 8529a0bf528SMauro Carvalho Chehab { 0xd020, 0, 6, 0x0a }, 8539a0bf528SMauro Carvalho Chehab { 0x9bda, 0, 8, 0x01 }, 8549a0bf528SMauro Carvalho Chehab { 0x9be3, 0, 8, 0x01 }, 8559a0bf528SMauro Carvalho Chehab { 0xd1a0, 1, 1, 0x00 }, 8569a0bf528SMauro Carvalho Chehab { 0x9bbe, 0, 1, 0x01 }, 8579a0bf528SMauro Carvalho Chehab { 0x9bcc, 0, 1, 0x01 }, 8589a0bf528SMauro Carvalho Chehab { 0x9bb9, 0, 8, 0x00 }, 8599a0bf528SMauro Carvalho Chehab { 0x9bcd, 0, 8, 0x18 }, 8609a0bf528SMauro Carvalho Chehab { 0x9bff, 0, 8, 0x2c }, 8619a0bf528SMauro Carvalho Chehab { 0xd015, 0, 8, 0x46 }, 8629a0bf528SMauro Carvalho Chehab { 0xd016, 0, 1, 0x00 }, 8639a0bf528SMauro Carvalho Chehab { 0xd044, 0, 8, 0x46 }, 8649a0bf528SMauro Carvalho Chehab { 0xd045, 0, 1, 0x00 }, 8659a0bf528SMauro Carvalho Chehab { 0xd008, 0, 8, 0xdf }, 8669a0bf528SMauro Carvalho Chehab { 0xd009, 0, 2, 0x02 }, 8679a0bf528SMauro Carvalho Chehab { 0xd006, 0, 8, 0x44 }, 8689a0bf528SMauro Carvalho Chehab { 0xd007, 0, 2, 0x01 }, 8699a0bf528SMauro Carvalho Chehab { 0xd00c, 0, 8, 0x00 }, 8709a0bf528SMauro Carvalho Chehab { 0xd00d, 0, 2, 0x02 }, 8719a0bf528SMauro Carvalho Chehab { 0xd00a, 0, 8, 0xf6 }, 8729a0bf528SMauro Carvalho Chehab { 0xd00b, 0, 2, 0x01 }, 8739a0bf528SMauro Carvalho Chehab { 0x9bba, 0, 8, 0xf9 }, 8749a0bf528SMauro Carvalho Chehab { 0x9bc8, 0, 8, 0xaa }, 8759a0bf528SMauro Carvalho Chehab { 0x9bc3, 0, 8, 0xdf }, 8769a0bf528SMauro Carvalho Chehab { 0x9bc4, 0, 8, 0x02 }, 8779a0bf528SMauro Carvalho Chehab { 0x9bc5, 0, 8, 0x00 }, 8789a0bf528SMauro Carvalho Chehab { 0x9bc6, 0, 8, 0x02 }, 8799a0bf528SMauro Carvalho Chehab { 0x9bc9, 0, 8, 0xf0 }, 8809a0bf528SMauro Carvalho Chehab { 0xd011, 0, 8, 0x3c }, 8819a0bf528SMauro Carvalho Chehab { 0xd012, 0, 2, 0x01 }, 8829a0bf528SMauro Carvalho Chehab { 0xd013, 0, 8, 0xf7 }, 8839a0bf528SMauro Carvalho Chehab { 0xd014, 0, 2, 0x02 }, 8849a0bf528SMauro Carvalho Chehab { 0xd040, 0, 8, 0x0b }, 8859a0bf528SMauro Carvalho Chehab { 0xd041, 0, 2, 0x02 }, 8869a0bf528SMauro Carvalho Chehab { 0xd042, 0, 8, 0x4d }, 8879a0bf528SMauro Carvalho Chehab { 0xd043, 0, 2, 0x00 }, 8889a0bf528SMauro Carvalho Chehab { 0xd045, 1, 1, 0x00 }, 8899a0bf528SMauro Carvalho Chehab { 0x9bcf, 0, 1, 0x01 }, 8909a0bf528SMauro Carvalho Chehab { 0xd045, 2, 1, 0x01 }, 8919a0bf528SMauro Carvalho Chehab { 0xd04f, 0, 8, 0x9a }, 8929a0bf528SMauro Carvalho Chehab { 0xd050, 0, 1, 0x01 }, 8939a0bf528SMauro Carvalho Chehab { 0xd051, 0, 8, 0x5a }, 8949a0bf528SMauro Carvalho Chehab { 0xd052, 0, 1, 0x01 }, 8959a0bf528SMauro Carvalho Chehab { 0xd053, 0, 8, 0x50 }, 8969a0bf528SMauro Carvalho Chehab { 0xd054, 0, 8, 0x46 }, 8979a0bf528SMauro Carvalho Chehab { 0x9bd7, 0, 8, 0x0a }, 8989a0bf528SMauro Carvalho Chehab { 0x9bd8, 0, 8, 0x14 }, 8999a0bf528SMauro Carvalho Chehab { 0x9bd9, 0, 8, 0x08 }, 9009a0bf528SMauro Carvalho Chehab { 0x9bd0, 0, 8, 0xa8 }, 9019a0bf528SMauro Carvalho Chehab { 0x9be4, 0, 8, 0x7f }, 9029a0bf528SMauro Carvalho Chehab { 0x9bbd, 0, 8, 0xa8 }, 9039a0bf528SMauro Carvalho Chehab { 0x9be2, 0, 8, 0x20 }, 9049a0bf528SMauro Carvalho Chehab { 0x9bee, 0, 1, 0x01 }, 9059a0bf528SMauro Carvalho Chehab }; 9069a0bf528SMauro Carvalho Chehab 9079a0bf528SMauro Carvalho Chehab #endif /* AF9013_PRIV_H */ 908