1c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
29a0bf528SMauro Carvalho Chehab /*
39a0bf528SMauro Carvalho Chehab  * Afatech AF9013 demodulator driver
49a0bf528SMauro Carvalho Chehab  *
59a0bf528SMauro Carvalho Chehab  * Copyright (C) 2007 Antti Palosaari <crope@iki.fi>
69a0bf528SMauro Carvalho Chehab  * Copyright (C) 2011 Antti Palosaari <crope@iki.fi>
79a0bf528SMauro Carvalho Chehab  *
89a0bf528SMauro Carvalho Chehab  * Thanks to Afatech who kindly provided information.
99a0bf528SMauro Carvalho Chehab  */
109a0bf528SMauro Carvalho Chehab 
119a0bf528SMauro Carvalho Chehab #ifndef AF9013_PRIV_H
129a0bf528SMauro Carvalho Chehab #define AF9013_PRIV_H
139a0bf528SMauro Carvalho Chehab 
14fada1935SMauro Carvalho Chehab #include <media/dvb_frontend.h>
15*f97fa3dcSAndy Shevchenko #include <linux/int_log.h>
169a0bf528SMauro Carvalho Chehab #include "af9013.h"
179a0bf528SMauro Carvalho Chehab #include <linux/firmware.h>
1822e59e72SAntti Palosaari #include <linux/i2c-mux.h>
19903b0e58SAntti Palosaari #include <linux/math64.h>
20f458a1bcSAntti Palosaari #include <linux/regmap.h>
219a0bf528SMauro Carvalho Chehab 
22a71103a6SAntti Palosaari #define AF9013_FIRMWARE "dvb-fe-af9013.fw"
239a0bf528SMauro Carvalho Chehab 
243b536127SAntti Palosaari struct af9013_reg_mask_val {
253b536127SAntti Palosaari 	u16 reg;
263b536127SAntti Palosaari 	u8  mask;
279a0bf528SMauro Carvalho Chehab 	u8  val;
289a0bf528SMauro Carvalho Chehab };
299a0bf528SMauro Carvalho Chehab 
309a0bf528SMauro Carvalho Chehab struct af9013_coeff {
319a0bf528SMauro Carvalho Chehab 	u32 clock;
329a0bf528SMauro Carvalho Chehab 	u32 bandwidth_hz;
339a0bf528SMauro Carvalho Chehab 	u8 val[24];
349a0bf528SMauro Carvalho Chehab };
359a0bf528SMauro Carvalho Chehab 
369a0bf528SMauro Carvalho Chehab /* pre-calculated coeff lookup table */
379a0bf528SMauro Carvalho Chehab static const struct af9013_coeff coeff_lut[] = {
389a0bf528SMauro Carvalho Chehab 	/* 28.800 MHz */
399a0bf528SMauro Carvalho Chehab 	{ 28800000, 8000000, { 0x02, 0x8a, 0x28, 0xa3, 0x05, 0x14,
409a0bf528SMauro Carvalho Chehab 		0x51, 0x11, 0x00, 0xa2, 0x8f, 0x3d, 0x00, 0xa2, 0x8a,
419a0bf528SMauro Carvalho Chehab 		0x29, 0x00, 0xa2, 0x85, 0x14, 0x01, 0x45, 0x14, 0x14 } },
429a0bf528SMauro Carvalho Chehab 	{ 28800000, 7000000, { 0x02, 0x38, 0xe3, 0x8e, 0x04, 0x71,
439a0bf528SMauro Carvalho Chehab 		0xc7, 0x07, 0x00, 0x8e, 0x3d, 0x55, 0x00, 0x8e, 0x38,
449a0bf528SMauro Carvalho Chehab 		0xe4, 0x00, 0x8e, 0x34, 0x72, 0x01, 0x1c, 0x71, 0x32 } },
459a0bf528SMauro Carvalho Chehab 	{ 28800000, 6000000, { 0x01, 0xe7, 0x9e, 0x7a, 0x03, 0xcf,
469a0bf528SMauro Carvalho Chehab 		0x3c, 0x3d, 0x00, 0x79, 0xeb, 0x6e, 0x00, 0x79, 0xe7,
479a0bf528SMauro Carvalho Chehab 		0x9e, 0x00, 0x79, 0xe3, 0xcf, 0x00, 0xf3, 0xcf, 0x0f } },
489a0bf528SMauro Carvalho Chehab 	/* 20.480 MHz */
499a0bf528SMauro Carvalho Chehab 	{ 20480000, 8000000, { 0x03, 0x92, 0x49, 0x26, 0x07, 0x24,
509a0bf528SMauro Carvalho Chehab 		0x92, 0x13, 0x00, 0xe4, 0x99, 0x6e, 0x00, 0xe4, 0x92,
519a0bf528SMauro Carvalho Chehab 		0x49, 0x00, 0xe4, 0x8b, 0x25, 0x01, 0xc9, 0x24, 0x25 } },
529a0bf528SMauro Carvalho Chehab 	{ 20480000, 7000000, { 0x03, 0x20, 0x00, 0x01, 0x06, 0x40,
539a0bf528SMauro Carvalho Chehab 		0x00, 0x00, 0x00, 0xc8, 0x06, 0x40, 0x00, 0xc8, 0x00,
549a0bf528SMauro Carvalho Chehab 		0x00, 0x00, 0xc7, 0xf9, 0xc0, 0x01, 0x90, 0x00, 0x00 } },
559a0bf528SMauro Carvalho Chehab 	{ 20480000, 6000000, { 0x02, 0xad, 0xb6, 0xdc, 0x05, 0x5b,
569a0bf528SMauro Carvalho Chehab 		0x6d, 0x2e, 0x00, 0xab, 0x73, 0x13, 0x00, 0xab, 0x6d,
579a0bf528SMauro Carvalho Chehab 		0xb7, 0x00, 0xab, 0x68, 0x5c, 0x01, 0x56, 0xdb, 0x1c } },
589a0bf528SMauro Carvalho Chehab 	/* 28.000 MHz */
599a0bf528SMauro Carvalho Chehab 	{ 28000000, 8000000, { 0x02, 0x9c, 0xbc, 0x15, 0x05, 0x39,
609a0bf528SMauro Carvalho Chehab 		0x78, 0x0a, 0x00, 0xa7, 0x34, 0x3f, 0x00, 0xa7, 0x2f,
619a0bf528SMauro Carvalho Chehab 		0x05, 0x00, 0xa7, 0x29, 0xcc, 0x01, 0x4e, 0x5e, 0x03 } },
629a0bf528SMauro Carvalho Chehab 	{ 28000000, 7000000, { 0x02, 0x49, 0x24, 0x92, 0x04, 0x92,
639a0bf528SMauro Carvalho Chehab 		0x49, 0x09, 0x00, 0x92, 0x4d, 0xb7, 0x00, 0x92, 0x49,
649a0bf528SMauro Carvalho Chehab 		0x25, 0x00, 0x92, 0x44, 0x92, 0x01, 0x24, 0x92, 0x12 } },
659a0bf528SMauro Carvalho Chehab 	{ 28000000, 6000000, { 0x01, 0xf5, 0x8d, 0x10, 0x03, 0xeb,
669a0bf528SMauro Carvalho Chehab 		0x1a, 0x08, 0x00, 0x7d, 0x67, 0x2f, 0x00, 0x7d, 0x63,
679a0bf528SMauro Carvalho Chehab 		0x44, 0x00, 0x7d, 0x5f, 0x59, 0x00, 0xfa, 0xc6, 0x22 } },
689a0bf528SMauro Carvalho Chehab 	/* 25.000 MHz */
699a0bf528SMauro Carvalho Chehab 	{ 25000000, 8000000, { 0x02, 0xec, 0xfb, 0x9d, 0x05, 0xd9,
709a0bf528SMauro Carvalho Chehab 		0xf7, 0x0e, 0x00, 0xbb, 0x44, 0xc1, 0x00, 0xbb, 0x3e,
719a0bf528SMauro Carvalho Chehab 		0xe7, 0x00, 0xbb, 0x39, 0x0d, 0x01, 0x76, 0x7d, 0x34 } },
729a0bf528SMauro Carvalho Chehab 	{ 25000000, 7000000, { 0x02, 0x8f, 0x5c, 0x29, 0x05, 0x1e,
739a0bf528SMauro Carvalho Chehab 		0xb8, 0x14, 0x00, 0xa3, 0xdc, 0x29, 0x00, 0xa3, 0xd7,
749a0bf528SMauro Carvalho Chehab 		0x0a, 0x00, 0xa3, 0xd1, 0xec, 0x01, 0x47, 0xae, 0x05 } },
759a0bf528SMauro Carvalho Chehab 	{ 25000000, 6000000, { 0x02, 0x31, 0xbc, 0xb5, 0x04, 0x63,
769a0bf528SMauro Carvalho Chehab 		0x79, 0x1b, 0x00, 0x8c, 0x73, 0x91, 0x00, 0x8c, 0x6f,
779a0bf528SMauro Carvalho Chehab 		0x2d, 0x00, 0x8c, 0x6a, 0xca, 0x01, 0x18, 0xde, 0x17 } },
789a0bf528SMauro Carvalho Chehab };
799a0bf528SMauro Carvalho Chehab 
803b536127SAntti Palosaari /*
813b536127SAntti Palosaari  * Afatech AF9013 demod init
823b536127SAntti Palosaari  */
833b536127SAntti Palosaari static const struct af9013_reg_mask_val demod_init_tab[] = {
843b536127SAntti Palosaari 	{0xd73a, 0xff, 0xa1},
853b536127SAntti Palosaari 	{0xd73b, 0xff, 0x1f},
863b536127SAntti Palosaari 	{0xd73c, 0xf0, 0xa0},
873b536127SAntti Palosaari 	{0xd732, 0x08, 0x00},
883b536127SAntti Palosaari 	{0xd731, 0x30, 0x30},
893b536127SAntti Palosaari 	{0xd73d, 0x80, 0x80},
903b536127SAntti Palosaari 	{0xd740, 0x01, 0x00},
913b536127SAntti Palosaari 	{0xd740, 0x02, 0x00},
923b536127SAntti Palosaari 	{0xd740, 0x04, 0x00},
933b536127SAntti Palosaari 	{0xd740, 0x08, 0x08},
943b536127SAntti Palosaari 	{0xd3c1, 0x10, 0x10},
953b536127SAntti Palosaari 	{0x9124, 0xff, 0x58},
963b536127SAntti Palosaari 	{0x9125, 0x03, 0x02},
973b536127SAntti Palosaari 	{0xd3a2, 0xff, 0x00},
983b536127SAntti Palosaari 	{0xd3a3, 0xff, 0x04},
993b536127SAntti Palosaari 	{0xd305, 0xff, 0x32},
1003b536127SAntti Palosaari 	{0xd306, 0xff, 0x10},
1013b536127SAntti Palosaari 	{0xd304, 0xff, 0x04},
1023b536127SAntti Palosaari 	{0x9112, 0x01, 0x01},
1033b536127SAntti Palosaari 	{0x911d, 0x01, 0x01},
1043b536127SAntti Palosaari 	{0x911a, 0x01, 0x01},
1053b536127SAntti Palosaari 	{0x911b, 0x01, 0x01},
1063b536127SAntti Palosaari 	{0x9bce, 0x0f, 0x02},
1073b536127SAntti Palosaari 	{0x9116, 0x01, 0x01},
1083b536127SAntti Palosaari 	{0x9122, 0xff, 0xd0},
1093b536127SAntti Palosaari 	{0xd2e0, 0xff, 0xd0},
1103b536127SAntti Palosaari 	{0xd2e9, 0x0f, 0x0d},
1113b536127SAntti Palosaari 	{0xd38c, 0xff, 0xfc},
1123b536127SAntti Palosaari 	{0xd38d, 0xff, 0x00},
1133b536127SAntti Palosaari 	{0xd38e, 0xff, 0x7e},
1143b536127SAntti Palosaari 	{0xd38f, 0xff, 0x00},
1153b536127SAntti Palosaari 	{0xd390, 0xff, 0x2f},
1163b536127SAntti Palosaari 	{0xd145, 0x10, 0x10},
1173b536127SAntti Palosaari 	{0xd1a9, 0x10, 0x10},
1183b536127SAntti Palosaari 	{0xd158, 0xe0, 0x20},
1193b536127SAntti Palosaari 	{0xd159, 0x3f, 0x06},
1203b536127SAntti Palosaari 	{0xd167, 0xff, 0x00},
1213b536127SAntti Palosaari 	{0xd168, 0x0f, 0x07},
1223b536127SAntti Palosaari 	{0xd1c3, 0xe0, 0x00},
1233b536127SAntti Palosaari 	{0xd1c4, 0x3f, 0x00},
1243b536127SAntti Palosaari 	{0xd1c5, 0x7f, 0x10},
1253b536127SAntti Palosaari 	{0xd1c6, 0x07, 0x02},
1263b536127SAntti Palosaari 	{0xd080, 0x7c, 0x0c},
1273b536127SAntti Palosaari 	{0xd081, 0xf0, 0x90},
1283b536127SAntti Palosaari 	{0xd098, 0xf0, 0xf0},
1293b536127SAntti Palosaari 	{0xd098, 0x0f, 0x03},
1303b536127SAntti Palosaari 	{0xdbc0, 0x10, 0x10},
1313b536127SAntti Palosaari 	{0xdbc7, 0xff, 0x08},
1323b536127SAntti Palosaari 	{0xdbc8, 0xf0, 0x00},
1333b536127SAntti Palosaari 	{0xdbc9, 0x1f, 0x01},
1343b536127SAntti Palosaari 	{0xd280, 0xff, 0xe0},
1353b536127SAntti Palosaari 	{0xd281, 0xff, 0xff},
1363b536127SAntti Palosaari 	{0xd282, 0xff, 0xff},
1373b536127SAntti Palosaari 	{0xd283, 0xff, 0xc3},
1383b536127SAntti Palosaari 	{0xd284, 0xff, 0xff},
1393b536127SAntti Palosaari 	{0xd285, 0x0f, 0x01},
1403b536127SAntti Palosaari 	{0xd0f0, 0x7f, 0x1a},
1413b536127SAntti Palosaari 	{0xd0f1, 0x10, 0x10},
1423b536127SAntti Palosaari 	{0xd0f2, 0xff, 0x0c},
1433b536127SAntti Palosaari 	{0xd101, 0xe0, 0xc0},
1443b536127SAntti Palosaari 	{0xd103, 0x0f, 0x08},
1453b536127SAntti Palosaari 	{0xd0f8, 0x7f, 0x20},
1463b536127SAntti Palosaari 	{0xd111, 0x20, 0x00},
1473b536127SAntti Palosaari 	{0xd111, 0x40, 0x00},
1483b536127SAntti Palosaari 	{0x910b, 0xff, 0x0a},
1493b536127SAntti Palosaari 	{0x9115, 0xff, 0x02},
1503b536127SAntti Palosaari 	{0x910c, 0xff, 0x02},
1513b536127SAntti Palosaari 	{0x910d, 0xff, 0x08},
1523b536127SAntti Palosaari 	{0x910e, 0xff, 0x0a},
1533b536127SAntti Palosaari 	{0x9bf6, 0xff, 0x06},
1543b536127SAntti Palosaari 	{0x9bf8, 0xff, 0x02},
1553b536127SAntti Palosaari 	{0x9bf7, 0xff, 0x05},
1563b536127SAntti Palosaari 	{0x9bf9, 0xff, 0x0f},
1573b536127SAntti Palosaari 	{0x9bfc, 0xff, 0x13},
1583b536127SAntti Palosaari 	{0x9bd3, 0xff, 0xff},
1593b536127SAntti Palosaari 	{0x9bbe, 0x01, 0x01},
1603b536127SAntti Palosaari 	{0x9bcc, 0x01, 0x01},
1619a0bf528SMauro Carvalho Chehab };
1629a0bf528SMauro Carvalho Chehab 
1633b536127SAntti Palosaari /*
1643b536127SAntti Palosaari  * Panasonic ENV77H11D5 tuner init
1653b536127SAntti Palosaari  * AF9013_TUNER_ENV77H11D5    0x81
1663b536127SAntti Palosaari  */
1673b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_env77h11d5[] = {
1683b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
1693b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x03},
1703b536127SAntti Palosaari 	{0x9bbe, 0xff, 0x01},
1713b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
1723b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
1733b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
1743b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
1753b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
1763b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
1773b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
1783b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
1793b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
1803b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
1813b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
1823b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
1833b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
1843b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
1853b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
1863b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
1873b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
1883b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
1893b536127SAntti Palosaari 	{0x9bda, 0xff, 0x00},
1903b536127SAntti Palosaari 	{0x9be3, 0xff, 0x00},
1913b536127SAntti Palosaari 	{0xd015, 0xff, 0x50},
1923b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
1933b536127SAntti Palosaari 	{0xd044, 0xff, 0x46},
1943b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
1953b536127SAntti Palosaari 	{0xd008, 0xff, 0xdf},
1963b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
1973b536127SAntti Palosaari 	{0xd006, 0xff, 0x44},
1983b536127SAntti Palosaari 	{0xd007, 0x03, 0x01},
1993b536127SAntti Palosaari 	{0xd00c, 0xff, 0xeb},
2003b536127SAntti Palosaari 	{0xd00d, 0x03, 0x02},
2013b536127SAntti Palosaari 	{0xd00a, 0xff, 0xf4},
2023b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
2033b536127SAntti Palosaari 	{0x9bba, 0xff, 0xf9},
2043b536127SAntti Palosaari 	{0x9bc3, 0xff, 0xdf},
2053b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
2063b536127SAntti Palosaari 	{0x9bc5, 0xff, 0xeb},
2073b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x02},
2083b536127SAntti Palosaari 	{0x9bc9, 0xff, 0x52},
2093b536127SAntti Palosaari 	{0xd011, 0xff, 0x3c},
2103b536127SAntti Palosaari 	{0xd012, 0x03, 0x01},
2113b536127SAntti Palosaari 	{0xd013, 0xff, 0xf7},
2123b536127SAntti Palosaari 	{0xd014, 0x03, 0x02},
2133b536127SAntti Palosaari 	{0xd040, 0xff, 0x0b},
2143b536127SAntti Palosaari 	{0xd041, 0x03, 0x02},
2153b536127SAntti Palosaari 	{0xd042, 0xff, 0x4d},
2163b536127SAntti Palosaari 	{0xd043, 0x03, 0x00},
2173b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
2183b536127SAntti Palosaari 	{0x9bcf, 0x01, 0x01},
2193b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
2203b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
2213b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
2223b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
2233b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
2243b536127SAntti Palosaari 	{0xd053, 0xff, 0x50},
2253b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
2263b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
2273b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
2283b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
2299a0bf528SMauro Carvalho Chehab };
2309a0bf528SMauro Carvalho Chehab 
2313b536127SAntti Palosaari /*
2323b536127SAntti Palosaari  * Microtune MT2060 tuner init
2333b536127SAntti Palosaari  * AF9013_TUNER_MT2060        0x82
2343b536127SAntti Palosaari  */
2353b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_mt2060[] = {
2363b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
2373b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x07},
2383b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
2393b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
2403b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
2413b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
2423b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
2433b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
2443b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
2453b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
2463b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
2473b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
2483b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
2493b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
2503b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
2513b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
2523b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
2533b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
2543b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
2553b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
2563b536127SAntti Palosaari 	{0x9bda, 0xff, 0x00},
2573b536127SAntti Palosaari 	{0x9be3, 0xff, 0x00},
2583b536127SAntti Palosaari 	{0x9bbe, 0x01, 0x00},
2593b536127SAntti Palosaari 	{0x9bcc, 0x01, 0x00},
2603b536127SAntti Palosaari 	{0x9bb9, 0xff, 0x75},
2613b536127SAntti Palosaari 	{0x9bcd, 0xff, 0x24},
2623b536127SAntti Palosaari 	{0x9bff, 0xff, 0x30},
2633b536127SAntti Palosaari 	{0xd015, 0xff, 0x46},
2643b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
2653b536127SAntti Palosaari 	{0xd044, 0xff, 0x46},
2663b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
2673b536127SAntti Palosaari 	{0xd008, 0xff, 0x0f},
2683b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
2693b536127SAntti Palosaari 	{0xd006, 0xff, 0x32},
2703b536127SAntti Palosaari 	{0xd007, 0x03, 0x01},
2713b536127SAntti Palosaari 	{0xd00c, 0xff, 0x36},
2723b536127SAntti Palosaari 	{0xd00d, 0x03, 0x03},
2733b536127SAntti Palosaari 	{0xd00a, 0xff, 0x35},
2743b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
2753b536127SAntti Palosaari 	{0x9bc7, 0xff, 0x07},
2763b536127SAntti Palosaari 	{0x9bc8, 0xff, 0x90},
2773b536127SAntti Palosaari 	{0x9bc3, 0xff, 0x0f},
2783b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
2793b536127SAntti Palosaari 	{0x9bc5, 0xff, 0x36},
2803b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x03},
2813b536127SAntti Palosaari 	{0x9bba, 0xff, 0xc9},
2823b536127SAntti Palosaari 	{0x9bc9, 0xff, 0x79},
2833b536127SAntti Palosaari 	{0xd011, 0xff, 0x10},
2843b536127SAntti Palosaari 	{0xd012, 0x03, 0x01},
2853b536127SAntti Palosaari 	{0xd013, 0xff, 0x45},
2863b536127SAntti Palosaari 	{0xd014, 0x03, 0x03},
2873b536127SAntti Palosaari 	{0xd040, 0xff, 0x98},
2883b536127SAntti Palosaari 	{0xd041, 0x03, 0x00},
2893b536127SAntti Palosaari 	{0xd042, 0xff, 0xcf},
2903b536127SAntti Palosaari 	{0xd043, 0x03, 0x03},
2913b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
2923b536127SAntti Palosaari 	{0x9bcf, 0x01, 0x01},
2933b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
2943b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
2953b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
2963b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
2973b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
2983b536127SAntti Palosaari 	{0xd053, 0xff, 0x50},
2993b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
3003b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
3013b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
3023b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
3033b536127SAntti Palosaari 	{0x9bd0, 0xff, 0xcc},
3043b536127SAntti Palosaari 	{0x9be4, 0xff, 0xa0},
3053b536127SAntti Palosaari 	{0x9bbd, 0xff, 0x8e},
3063b536127SAntti Palosaari 	{0x9be2, 0xff, 0x4d},
3073b536127SAntti Palosaari 	{0x9bee, 0x01, 0x01},
3089a0bf528SMauro Carvalho Chehab };
3099a0bf528SMauro Carvalho Chehab 
3103b536127SAntti Palosaari /*
3113b536127SAntti Palosaari  * Microtune MT2060 tuner init
3123b536127SAntti Palosaari  * AF9013_TUNER_MT2060_2      0x93
3133b536127SAntti Palosaari  */
3143b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_mt2060_2[] = {
3153b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
3163b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x06},
3173b536127SAntti Palosaari 	{0x9bbe, 0xff, 0x01},
3183b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
3193b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
3203b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
3213b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
3223b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
3233b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
3243b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
3253b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
3263b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
3273b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
3283b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
3293b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
3303b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
3313b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
3323b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
3333b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
3343b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
3353b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
3363b536127SAntti Palosaari 	{0xd015, 0xff, 0x46},
3373b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
3383b536127SAntti Palosaari 	{0xd044, 0xff, 0x46},
3393b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
3403b536127SAntti Palosaari 	{0xd008, 0xff, 0x0f},
3413b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
3423b536127SAntti Palosaari 	{0xd006, 0xff, 0x32},
3433b536127SAntti Palosaari 	{0xd007, 0x03, 0x01},
3443b536127SAntti Palosaari 	{0xd00c, 0xff, 0x36},
3453b536127SAntti Palosaari 	{0xd00d, 0x03, 0x03},
3463b536127SAntti Palosaari 	{0xd00a, 0xff, 0x35},
3473b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
3483b536127SAntti Palosaari 	{0x9bc7, 0xff, 0x07},
3493b536127SAntti Palosaari 	{0x9bc8, 0xff, 0x90},
3503b536127SAntti Palosaari 	{0x9bc3, 0xff, 0x0f},
3513b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
3523b536127SAntti Palosaari 	{0x9bc5, 0xff, 0x36},
3533b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x03},
3543b536127SAntti Palosaari 	{0x9bba, 0xff, 0xc9},
3553b536127SAntti Palosaari 	{0x9bc9, 0xff, 0x79},
3563b536127SAntti Palosaari 	{0xd011, 0xff, 0x10},
3573b536127SAntti Palosaari 	{0xd012, 0x03, 0x01},
3583b536127SAntti Palosaari 	{0xd013, 0xff, 0x45},
3593b536127SAntti Palosaari 	{0xd014, 0x03, 0x03},
3603b536127SAntti Palosaari 	{0xd040, 0xff, 0x98},
3613b536127SAntti Palosaari 	{0xd041, 0x03, 0x00},
3623b536127SAntti Palosaari 	{0xd042, 0xff, 0xcf},
3633b536127SAntti Palosaari 	{0xd043, 0x03, 0x03},
3643b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
3653b536127SAntti Palosaari 	{0x9bcf, 0xff, 0x01},
3663b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
3673b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
3683b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
3693b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
3703b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
3713b536127SAntti Palosaari 	{0xd053, 0xff, 0x96},
3723b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
3733b536127SAntti Palosaari 	{0xd045, 0x80, 0x00},
3743b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
3753b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
3763b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
3779a0bf528SMauro Carvalho Chehab };
3789a0bf528SMauro Carvalho Chehab 
3793b536127SAntti Palosaari /*
3803b536127SAntti Palosaari  * MaxLinear MXL5003 tuner init
3813b536127SAntti Palosaari  * AF9013_TUNER_MXL5003D      0x03
3823b536127SAntti Palosaari  */
3833b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_mxl5003d[] = {
3843b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
3853b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x09},
3863b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
3873b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
3883b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
3893b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
3903b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
3913b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
3923b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
3933b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
3943b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
3953b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
3963b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
3973b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
3983b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
3993b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
4003b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
4013b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
4023b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
4033b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
4043b536127SAntti Palosaari 	{0x9bda, 0xff, 0x00},
4053b536127SAntti Palosaari 	{0x9be3, 0xff, 0x00},
4063b536127SAntti Palosaari 	{0x9bfc, 0xff, 0x0f},
4073b536127SAntti Palosaari 	{0x9bf6, 0xff, 0x01},
4083b536127SAntti Palosaari 	{0x9bbe, 0x01, 0x01},
4093b536127SAntti Palosaari 	{0xd015, 0xff, 0x33},
4103b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
4113b536127SAntti Palosaari 	{0xd044, 0xff, 0x40},
4123b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
4133b536127SAntti Palosaari 	{0xd008, 0xff, 0x0f},
4143b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
4153b536127SAntti Palosaari 	{0xd006, 0xff, 0x6c},
4163b536127SAntti Palosaari 	{0xd007, 0x03, 0x00},
4173b536127SAntti Palosaari 	{0xd00c, 0xff, 0x3d},
4183b536127SAntti Palosaari 	{0xd00d, 0x03, 0x00},
4193b536127SAntti Palosaari 	{0xd00a, 0xff, 0x45},
4203b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
4213b536127SAntti Palosaari 	{0x9bc7, 0xff, 0x07},
4223b536127SAntti Palosaari 	{0x9bc8, 0xff, 0x52},
4233b536127SAntti Palosaari 	{0x9bc3, 0xff, 0x0f},
4243b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
4253b536127SAntti Palosaari 	{0x9bc5, 0xff, 0x3d},
4263b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x00},
4273b536127SAntti Palosaari 	{0x9bba, 0xff, 0xa2},
4283b536127SAntti Palosaari 	{0x9bc9, 0xff, 0xa0},
4293b536127SAntti Palosaari 	{0xd011, 0xff, 0x56},
4303b536127SAntti Palosaari 	{0xd012, 0x03, 0x00},
4313b536127SAntti Palosaari 	{0xd013, 0xff, 0x50},
4323b536127SAntti Palosaari 	{0xd014, 0x03, 0x00},
4333b536127SAntti Palosaari 	{0xd040, 0xff, 0x56},
4343b536127SAntti Palosaari 	{0xd041, 0x03, 0x00},
4353b536127SAntti Palosaari 	{0xd042, 0xff, 0x50},
4363b536127SAntti Palosaari 	{0xd043, 0x03, 0x00},
4373b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
4383b536127SAntti Palosaari 	{0x9bcf, 0xff, 0x01},
4393b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
4403b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
4413b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
4423b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
4433b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
4443b536127SAntti Palosaari 	{0xd053, 0xff, 0x50},
4453b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
4463b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
4473b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
4483b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
4499a0bf528SMauro Carvalho Chehab };
4509a0bf528SMauro Carvalho Chehab 
4513b536127SAntti Palosaari /*
4523b536127SAntti Palosaari  * MaxLinear MXL5005S & MXL5007T tuner init
4533b536127SAntti Palosaari  * AF9013_TUNER_MXL5005D      0x0d
4543b536127SAntti Palosaari  * AF9013_TUNER_MXL5005R      0x1e
4553b536127SAntti Palosaari  * AF9013_TUNER_MXL5007T      0xb1
4563b536127SAntti Palosaari  */
4573b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_mxl5005[] = {
4583b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
4593b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x07},
4603b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
4613b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
4623b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
4633b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
4643b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
4653b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
4663b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
4673b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
4683b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
4693b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
4703b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
4713b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
4723b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
4733b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
4743b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
4753b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
4763b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
4773b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
4783b536127SAntti Palosaari 	{0x9bda, 0xff, 0x01},
4793b536127SAntti Palosaari 	{0x9be3, 0xff, 0x01},
4803b536127SAntti Palosaari 	{0x9bbe, 0x01, 0x01},
4813b536127SAntti Palosaari 	{0x9bcc, 0x01, 0x01},
4823b536127SAntti Palosaari 	{0x9bb9, 0xff, 0x00},
4833b536127SAntti Palosaari 	{0x9bcd, 0xff, 0x28},
4843b536127SAntti Palosaari 	{0x9bff, 0xff, 0x24},
4853b536127SAntti Palosaari 	{0xd015, 0xff, 0x40},
4863b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
4873b536127SAntti Palosaari 	{0xd044, 0xff, 0x40},
4883b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
4893b536127SAntti Palosaari 	{0xd008, 0xff, 0x0f},
4903b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
4913b536127SAntti Palosaari 	{0xd006, 0xff, 0x73},
4923b536127SAntti Palosaari 	{0xd007, 0x03, 0x01},
4933b536127SAntti Palosaari 	{0xd00c, 0xff, 0xfa},
4943b536127SAntti Palosaari 	{0xd00d, 0x03, 0x01},
4953b536127SAntti Palosaari 	{0xd00a, 0xff, 0xff},
4963b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
4973b536127SAntti Palosaari 	{0x9bc7, 0xff, 0x23},
4983b536127SAntti Palosaari 	{0x9bc8, 0xff, 0x55},
4993b536127SAntti Palosaari 	{0x9bc3, 0xff, 0x01},
5003b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
5013b536127SAntti Palosaari 	{0x9bc5, 0xff, 0xfa},
5023b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x01},
5033b536127SAntti Palosaari 	{0x9bba, 0xff, 0xff},
5043b536127SAntti Palosaari 	{0x9bc9, 0xff, 0xff},
5053b536127SAntti Palosaari 	{0x9bd3, 0xff, 0x95},
5063b536127SAntti Palosaari 	{0xd011, 0xff, 0x70},
5073b536127SAntti Palosaari 	{0xd012, 0x03, 0x01},
5083b536127SAntti Palosaari 	{0xd013, 0xff, 0xfb},
5093b536127SAntti Palosaari 	{0xd014, 0x03, 0x01},
5103b536127SAntti Palosaari 	{0xd040, 0xff, 0x70},
5113b536127SAntti Palosaari 	{0xd041, 0x03, 0x01},
5123b536127SAntti Palosaari 	{0xd042, 0xff, 0xfb},
5133b536127SAntti Palosaari 	{0xd043, 0x03, 0x01},
5143b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
5153b536127SAntti Palosaari 	{0x9bcf, 0x01, 0x01},
5163b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
5173b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
5183b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
5193b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
5203b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
5213b536127SAntti Palosaari 	{0xd053, 0xff, 0x50},
5223b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
5233b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
5243b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
5253b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
5263b536127SAntti Palosaari 	{0x9bd0, 0xff, 0x93},
5273b536127SAntti Palosaari 	{0x9be4, 0xff, 0xfe},
5283b536127SAntti Palosaari 	{0x9bbd, 0xff, 0x63},
5293b536127SAntti Palosaari 	{0x9be2, 0xff, 0xfe},
5303b536127SAntti Palosaari 	{0x9bee, 0x01, 0x01},
5319a0bf528SMauro Carvalho Chehab };
5329a0bf528SMauro Carvalho Chehab 
5333b536127SAntti Palosaari /*
5343b536127SAntti Palosaari  * Quantek QT1010 tuner init
5353b536127SAntti Palosaari  * AF9013_TUNER_QT1010        0x86
5363b536127SAntti Palosaari  * AF9013_TUNER_QT1010A       0xa2
5373b536127SAntti Palosaari  */
5383b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_qt1010[] = {
5393b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
5403b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x09},
5413b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
5423b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
5433b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
5443b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
5453b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
5463b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
5473b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
5483b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
5493b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
5503b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
5513b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
5523b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
5533b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
5543b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
5553b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
5563b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
5573b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
5583b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
5593b536127SAntti Palosaari 	{0x9bda, 0xff, 0x01},
5603b536127SAntti Palosaari 	{0x9be3, 0xff, 0x01},
5613b536127SAntti Palosaari 	{0xd015, 0xff, 0x46},
5623b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
5633b536127SAntti Palosaari 	{0xd044, 0xff, 0x46},
5643b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
5653b536127SAntti Palosaari 	{0x9bbe, 0x01, 0x01},
5663b536127SAntti Palosaari 	{0x9bcc, 0x01, 0x01},
5673b536127SAntti Palosaari 	{0x9bb9, 0xff, 0x00},
5683b536127SAntti Palosaari 	{0x9bcd, 0xff, 0x28},
5693b536127SAntti Palosaari 	{0x9bff, 0xff, 0x20},
5703b536127SAntti Palosaari 	{0xd008, 0xff, 0x0f},
5713b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
5723b536127SAntti Palosaari 	{0xd006, 0xff, 0x99},
5733b536127SAntti Palosaari 	{0xd007, 0x03, 0x01},
5743b536127SAntti Palosaari 	{0xd00c, 0xff, 0x0f},
5753b536127SAntti Palosaari 	{0xd00d, 0x03, 0x02},
5763b536127SAntti Palosaari 	{0xd00a, 0xff, 0x50},
5773b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
5783b536127SAntti Palosaari 	{0x9bc7, 0xff, 0x00},
5793b536127SAntti Palosaari 	{0x9bc8, 0xff, 0x00},
5803b536127SAntti Palosaari 	{0x9bc3, 0xff, 0x0f},
5813b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
5823b536127SAntti Palosaari 	{0x9bc5, 0xff, 0x0f},
5833b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x02},
5843b536127SAntti Palosaari 	{0x9bba, 0xff, 0xc5},
5853b536127SAntti Palosaari 	{0x9bc9, 0xff, 0xff},
5863b536127SAntti Palosaari 	{0xd011, 0xff, 0x58},
5873b536127SAntti Palosaari 	{0xd012, 0x03, 0x02},
5883b536127SAntti Palosaari 	{0xd013, 0xff, 0x89},
5893b536127SAntti Palosaari 	{0xd014, 0x03, 0x01},
5903b536127SAntti Palosaari 	{0xd040, 0xff, 0x58},
5913b536127SAntti Palosaari 	{0xd041, 0x03, 0x02},
5923b536127SAntti Palosaari 	{0xd042, 0xff, 0x89},
5933b536127SAntti Palosaari 	{0xd043, 0x03, 0x01},
5943b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
5953b536127SAntti Palosaari 	{0x9bcf, 0x01, 0x01},
5963b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
5973b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
5983b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
5993b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
6003b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
6013b536127SAntti Palosaari 	{0xd053, 0xff, 0x50},
6023b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
6033b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
6043b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
6053b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
6063b536127SAntti Palosaari 	{0x9bd0, 0xff, 0xcd},
6073b536127SAntti Palosaari 	{0x9be4, 0xff, 0xbb},
6083b536127SAntti Palosaari 	{0x9bbd, 0xff, 0x93},
6093b536127SAntti Palosaari 	{0x9be2, 0xff, 0x80},
6103b536127SAntti Palosaari 	{0x9bee, 0x01, 0x01},
6119a0bf528SMauro Carvalho Chehab };
6129a0bf528SMauro Carvalho Chehab 
6133b536127SAntti Palosaari /*
6143b536127SAntti Palosaari  * Freescale MC44S803 tuner init
6153b536127SAntti Palosaari  * AF9013_TUNER_MC44S803      0x85
6163b536127SAntti Palosaari  */
6173b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_mc44s803[] = {
6183b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
6193b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x06},
6203b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
6213b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
6223b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
6233b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
6243b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
6253b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
6263b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
6273b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
6283b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
6293b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
6303b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
6313b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
6323b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
6333b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
6343b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
6353b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
6363b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
6373b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
6383b536127SAntti Palosaari 	{0x9bda, 0xff, 0x00},
6393b536127SAntti Palosaari 	{0x9be3, 0xff, 0x00},
6403b536127SAntti Palosaari 	{0x9bf6, 0xff, 0x01},
6413b536127SAntti Palosaari 	{0x9bf8, 0xff, 0x02},
6423b536127SAntti Palosaari 	{0x9bf9, 0xff, 0x02},
6433b536127SAntti Palosaari 	{0x9bfc, 0xff, 0x1f},
6443b536127SAntti Palosaari 	{0x9bbe, 0x01, 0x01},
6453b536127SAntti Palosaari 	{0x9bcc, 0x01, 0x01},
6463b536127SAntti Palosaari 	{0x9bb9, 0xff, 0x00},
6473b536127SAntti Palosaari 	{0x9bcd, 0xff, 0x24},
6483b536127SAntti Palosaari 	{0x9bff, 0xff, 0x24},
6493b536127SAntti Palosaari 	{0xd015, 0xff, 0x46},
6503b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
6513b536127SAntti Palosaari 	{0xd044, 0xff, 0x46},
6523b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
6533b536127SAntti Palosaari 	{0xd008, 0xff, 0x01},
6543b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
6553b536127SAntti Palosaari 	{0xd006, 0xff, 0x7b},
6563b536127SAntti Palosaari 	{0xd007, 0x03, 0x00},
6573b536127SAntti Palosaari 	{0xd00c, 0xff, 0x7c},
6583b536127SAntti Palosaari 	{0xd00d, 0x03, 0x02},
6593b536127SAntti Palosaari 	{0xd00a, 0xff, 0xfe},
6603b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
6613b536127SAntti Palosaari 	{0x9bc7, 0xff, 0x08},
6623b536127SAntti Palosaari 	{0x9bc8, 0xff, 0x9a},
6633b536127SAntti Palosaari 	{0x9bc3, 0xff, 0x01},
6643b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
6653b536127SAntti Palosaari 	{0x9bc5, 0xff, 0x7c},
6663b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x02},
6673b536127SAntti Palosaari 	{0x9bba, 0xff, 0xfc},
6683b536127SAntti Palosaari 	{0x9bc9, 0xff, 0xaa},
6693b536127SAntti Palosaari 	{0xd011, 0xff, 0x6b},
6703b536127SAntti Palosaari 	{0xd012, 0x03, 0x00},
6713b536127SAntti Palosaari 	{0xd013, 0xff, 0x88},
6723b536127SAntti Palosaari 	{0xd014, 0x03, 0x02},
6733b536127SAntti Palosaari 	{0xd040, 0xff, 0x6b},
6743b536127SAntti Palosaari 	{0xd041, 0x03, 0x00},
6753b536127SAntti Palosaari 	{0xd042, 0xff, 0x7c},
6763b536127SAntti Palosaari 	{0xd043, 0x03, 0x02},
6773b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
6783b536127SAntti Palosaari 	{0x9bcf, 0x01, 0x01},
6793b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
6803b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
6813b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
6823b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
6833b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
6843b536127SAntti Palosaari 	{0xd053, 0xff, 0x50},
6853b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
6863b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
6873b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
6883b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
6893b536127SAntti Palosaari 	{0x9bd0, 0xff, 0x9e},
6903b536127SAntti Palosaari 	{0x9be4, 0xff, 0xff},
6913b536127SAntti Palosaari 	{0x9bbd, 0xff, 0x9e},
6923b536127SAntti Palosaari 	{0x9be2, 0xff, 0x25},
6933b536127SAntti Palosaari 	{0x9bee, 0x01, 0x01},
6943b536127SAntti Palosaari 	{0xd73b, 0x08, 0x00},
6959a0bf528SMauro Carvalho Chehab };
6969a0bf528SMauro Carvalho Chehab 
6973b536127SAntti Palosaari /*
6983b536127SAntti Palosaari  * Unknown, probably for tin can tuner, tuner init
6993b536127SAntti Palosaari  * AF9013_TUNER_UNKNOWN       0x8c
7003b536127SAntti Palosaari  */
7013b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_unknown[] = {
7023b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
7033b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x02},
7043b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
7053b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
7063b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
7073b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
7083b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
7093b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
7103b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
7113b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
7123b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
7133b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
7143b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
7153b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
7163b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
7173b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
7183b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
7193b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
7203b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
7213b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
7223b536127SAntti Palosaari 	{0x9bda, 0xff, 0x01},
7233b536127SAntti Palosaari 	{0x9be3, 0xff, 0x01},
7243b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x00},
7253b536127SAntti Palosaari 	{0x9bbe, 0x01, 0x01},
7263b536127SAntti Palosaari 	{0x9bcc, 0x01, 0x01},
7273b536127SAntti Palosaari 	{0x9bb9, 0xff, 0x00},
7283b536127SAntti Palosaari 	{0x9bcd, 0xff, 0x18},
7293b536127SAntti Palosaari 	{0x9bff, 0xff, 0x2c},
7303b536127SAntti Palosaari 	{0xd015, 0xff, 0x46},
7313b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
7323b536127SAntti Palosaari 	{0xd044, 0xff, 0x46},
7333b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
7343b536127SAntti Palosaari 	{0xd008, 0xff, 0xdf},
7353b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
7363b536127SAntti Palosaari 	{0xd006, 0xff, 0x44},
7373b536127SAntti Palosaari 	{0xd007, 0x03, 0x01},
7383b536127SAntti Palosaari 	{0xd00c, 0xff, 0x00},
7393b536127SAntti Palosaari 	{0xd00d, 0x03, 0x02},
7403b536127SAntti Palosaari 	{0xd00a, 0xff, 0xf6},
7413b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
7423b536127SAntti Palosaari 	{0x9bba, 0xff, 0xf9},
7433b536127SAntti Palosaari 	{0x9bc8, 0xff, 0xaa},
7443b536127SAntti Palosaari 	{0x9bc3, 0xff, 0xdf},
7453b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
7463b536127SAntti Palosaari 	{0x9bc5, 0xff, 0x00},
7473b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x02},
7483b536127SAntti Palosaari 	{0x9bc9, 0xff, 0xf0},
7493b536127SAntti Palosaari 	{0xd011, 0xff, 0x3c},
7503b536127SAntti Palosaari 	{0xd012, 0x03, 0x01},
7513b536127SAntti Palosaari 	{0xd013, 0xff, 0xf7},
7523b536127SAntti Palosaari 	{0xd014, 0x03, 0x02},
7533b536127SAntti Palosaari 	{0xd040, 0xff, 0x0b},
7543b536127SAntti Palosaari 	{0xd041, 0x03, 0x02},
7553b536127SAntti Palosaari 	{0xd042, 0xff, 0x4d},
7563b536127SAntti Palosaari 	{0xd043, 0x03, 0x00},
7573b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
7583b536127SAntti Palosaari 	{0x9bcf, 0x01, 0x01},
7593b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
7603b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
7613b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
7623b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
7633b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
7643b536127SAntti Palosaari 	{0xd053, 0xff, 0x50},
7653b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
7663b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
7673b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
7683b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
7699a0bf528SMauro Carvalho Chehab };
7709a0bf528SMauro Carvalho Chehab 
7713b536127SAntti Palosaari /*
7723b536127SAntti Palosaari  * NXP TDA18271 & TDA18218 tuner init
7733b536127SAntti Palosaari  * AF9013_TUNER_TDA18271      0x9c
7743b536127SAntti Palosaari  * AF9013_TUNER_TDA18218      0xb3
7753b536127SAntti Palosaari  */
7763b536127SAntti Palosaari static const struct af9013_reg_mask_val tuner_init_tab_tda18271[] = {
7773b536127SAntti Palosaari 	{0x9bd5, 0xff, 0x01},
7783b536127SAntti Palosaari 	{0x9bd6, 0xff, 0x04},
7793b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x02},
7803b536127SAntti Palosaari 	{0xd000, 0x01, 0x01},
7813b536127SAntti Palosaari 	{0xd000, 0x02, 0x00},
7823b536127SAntti Palosaari 	{0xd001, 0x02, 0x02},
7833b536127SAntti Palosaari 	{0xd001, 0x01, 0x00},
7843b536127SAntti Palosaari 	{0xd001, 0x20, 0x00},
7853b536127SAntti Palosaari 	{0xd002, 0x1f, 0x19},
7863b536127SAntti Palosaari 	{0xd003, 0x1f, 0x1a},
7873b536127SAntti Palosaari 	{0xd004, 0x1f, 0x19},
7883b536127SAntti Palosaari 	{0xd005, 0x1f, 0x1a},
7893b536127SAntti Palosaari 	{0xd00e, 0x1f, 0x10},
7903b536127SAntti Palosaari 	{0xd00f, 0x07, 0x04},
7913b536127SAntti Palosaari 	{0xd00f, 0x38, 0x28},
7923b536127SAntti Palosaari 	{0xd010, 0x07, 0x04},
7933b536127SAntti Palosaari 	{0xd010, 0x38, 0x28},
7943b536127SAntti Palosaari 	{0xd016, 0xf0, 0x30},
7953b536127SAntti Palosaari 	{0xd01f, 0x3f, 0x0a},
7963b536127SAntti Palosaari 	{0xd020, 0x3f, 0x0a},
7973b536127SAntti Palosaari 	{0x9bda, 0xff, 0x01},
7983b536127SAntti Palosaari 	{0x9be3, 0xff, 0x01},
7993b536127SAntti Palosaari 	{0xd1a0, 0x02, 0x00},
8003b536127SAntti Palosaari 	{0x9bbe, 0x01, 0x01},
8013b536127SAntti Palosaari 	{0x9bcc, 0x01, 0x01},
8023b536127SAntti Palosaari 	{0x9bb9, 0xff, 0x00},
8033b536127SAntti Palosaari 	{0x9bcd, 0xff, 0x18},
8043b536127SAntti Palosaari 	{0x9bff, 0xff, 0x2c},
8053b536127SAntti Palosaari 	{0xd015, 0xff, 0x46},
8063b536127SAntti Palosaari 	{0xd016, 0x01, 0x00},
8073b536127SAntti Palosaari 	{0xd044, 0xff, 0x46},
8083b536127SAntti Palosaari 	{0xd045, 0x01, 0x00},
8093b536127SAntti Palosaari 	{0xd008, 0xff, 0xdf},
8103b536127SAntti Palosaari 	{0xd009, 0x03, 0x02},
8113b536127SAntti Palosaari 	{0xd006, 0xff, 0x44},
8123b536127SAntti Palosaari 	{0xd007, 0x03, 0x01},
8133b536127SAntti Palosaari 	{0xd00c, 0xff, 0x00},
8143b536127SAntti Palosaari 	{0xd00d, 0x03, 0x02},
8153b536127SAntti Palosaari 	{0xd00a, 0xff, 0xf6},
8163b536127SAntti Palosaari 	{0xd00b, 0x03, 0x01},
8173b536127SAntti Palosaari 	{0x9bba, 0xff, 0xf9},
8183b536127SAntti Palosaari 	{0x9bc8, 0xff, 0xaa},
8193b536127SAntti Palosaari 	{0x9bc3, 0xff, 0xdf},
8203b536127SAntti Palosaari 	{0x9bc4, 0xff, 0x02},
8213b536127SAntti Palosaari 	{0x9bc5, 0xff, 0x00},
8223b536127SAntti Palosaari 	{0x9bc6, 0xff, 0x02},
8233b536127SAntti Palosaari 	{0x9bc9, 0xff, 0xf0},
8243b536127SAntti Palosaari 	{0xd011, 0xff, 0x3c},
8253b536127SAntti Palosaari 	{0xd012, 0x03, 0x01},
8263b536127SAntti Palosaari 	{0xd013, 0xff, 0xf7},
8273b536127SAntti Palosaari 	{0xd014, 0x03, 0x02},
8283b536127SAntti Palosaari 	{0xd040, 0xff, 0x0b},
8293b536127SAntti Palosaari 	{0xd041, 0x03, 0x02},
8303b536127SAntti Palosaari 	{0xd042, 0xff, 0x4d},
8313b536127SAntti Palosaari 	{0xd043, 0x03, 0x00},
8323b536127SAntti Palosaari 	{0xd045, 0x02, 0x00},
8333b536127SAntti Palosaari 	{0x9bcf, 0x01, 0x01},
8343b536127SAntti Palosaari 	{0xd045, 0x04, 0x04},
8353b536127SAntti Palosaari 	{0xd04f, 0xff, 0x9a},
8363b536127SAntti Palosaari 	{0xd050, 0x01, 0x01},
8373b536127SAntti Palosaari 	{0xd051, 0xff, 0x5a},
8383b536127SAntti Palosaari 	{0xd052, 0x01, 0x01},
8393b536127SAntti Palosaari 	{0xd053, 0xff, 0x50},
8403b536127SAntti Palosaari 	{0xd054, 0xff, 0x46},
8413b536127SAntti Palosaari 	{0x9bd7, 0xff, 0x0a},
8423b536127SAntti Palosaari 	{0x9bd8, 0xff, 0x14},
8433b536127SAntti Palosaari 	{0x9bd9, 0xff, 0x08},
8443b536127SAntti Palosaari 	{0x9bd0, 0xff, 0xa8},
8453b536127SAntti Palosaari 	{0x9be4, 0xff, 0x7f},
8463b536127SAntti Palosaari 	{0x9bbd, 0xff, 0xa8},
8473b536127SAntti Palosaari 	{0x9be2, 0xff, 0x20},
8483b536127SAntti Palosaari 	{0x9bee, 0x01, 0x01},
8499a0bf528SMauro Carvalho Chehab };
8509a0bf528SMauro Carvalho Chehab 
8519a0bf528SMauro Carvalho Chehab #endif /* AF9013_PRIV_H */
852