root/drivers/media/dvb-frontends/af9013_priv.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * Afatech AF9013 demodulator driver
   4  *
   5  * Copyright (C) 2007 Antti Palosaari <crope@iki.fi>
   6  * Copyright (C) 2011 Antti Palosaari <crope@iki.fi>
   7  *
   8  * Thanks to Afatech who kindly provided information.
   9  */
  10 
  11 #ifndef AF9013_PRIV_H
  12 #define AF9013_PRIV_H
  13 
  14 #include <media/dvb_frontend.h>
  15 #include <media/dvb_math.h>
  16 #include "af9013.h"
  17 #include <linux/firmware.h>
  18 #include <linux/i2c-mux.h>
  19 #include <linux/math64.h>
  20 #include <linux/regmap.h>
  21 
  22 #define AF9013_FIRMWARE "dvb-fe-af9013.fw"
  23 
  24 struct af9013_reg_mask_val {
  25         u16 reg;
  26         u8  mask;
  27         u8  val;
  28 };
  29 
  30 struct af9013_coeff {
  31         u32 clock;
  32         u32 bandwidth_hz;
  33         u8 val[24];
  34 };
  35 
  36 /* pre-calculated coeff lookup table */
  37 static const struct af9013_coeff coeff_lut[] = {
  38         /* 28.800 MHz */
  39         { 28800000, 8000000, { 0x02, 0x8a, 0x28, 0xa3, 0x05, 0x14,
  40                 0x51, 0x11, 0x00, 0xa2, 0x8f, 0x3d, 0x00, 0xa2, 0x8a,
  41                 0x29, 0x00, 0xa2, 0x85, 0x14, 0x01, 0x45, 0x14, 0x14 } },
  42         { 28800000, 7000000, { 0x02, 0x38, 0xe3, 0x8e, 0x04, 0x71,
  43                 0xc7, 0x07, 0x00, 0x8e, 0x3d, 0x55, 0x00, 0x8e, 0x38,
  44                 0xe4, 0x00, 0x8e, 0x34, 0x72, 0x01, 0x1c, 0x71, 0x32 } },
  45         { 28800000, 6000000, { 0x01, 0xe7, 0x9e, 0x7a, 0x03, 0xcf,
  46                 0x3c, 0x3d, 0x00, 0x79, 0xeb, 0x6e, 0x00, 0x79, 0xe7,
  47                 0x9e, 0x00, 0x79, 0xe3, 0xcf, 0x00, 0xf3, 0xcf, 0x0f } },
  48         /* 20.480 MHz */
  49         { 20480000, 8000000, { 0x03, 0x92, 0x49, 0x26, 0x07, 0x24,
  50                 0x92, 0x13, 0x00, 0xe4, 0x99, 0x6e, 0x00, 0xe4, 0x92,
  51                 0x49, 0x00, 0xe4, 0x8b, 0x25, 0x01, 0xc9, 0x24, 0x25 } },
  52         { 20480000, 7000000, { 0x03, 0x20, 0x00, 0x01, 0x06, 0x40,
  53                 0x00, 0x00, 0x00, 0xc8, 0x06, 0x40, 0x00, 0xc8, 0x00,
  54                 0x00, 0x00, 0xc7, 0xf9, 0xc0, 0x01, 0x90, 0x00, 0x00 } },
  55         { 20480000, 6000000, { 0x02, 0xad, 0xb6, 0xdc, 0x05, 0x5b,
  56                 0x6d, 0x2e, 0x00, 0xab, 0x73, 0x13, 0x00, 0xab, 0x6d,
  57                 0xb7, 0x00, 0xab, 0x68, 0x5c, 0x01, 0x56, 0xdb, 0x1c } },
  58         /* 28.000 MHz */
  59         { 28000000, 8000000, { 0x02, 0x9c, 0xbc, 0x15, 0x05, 0x39,
  60                 0x78, 0x0a, 0x00, 0xa7, 0x34, 0x3f, 0x00, 0xa7, 0x2f,
  61                 0x05, 0x00, 0xa7, 0x29, 0xcc, 0x01, 0x4e, 0x5e, 0x03 } },
  62         { 28000000, 7000000, { 0x02, 0x49, 0x24, 0x92, 0x04, 0x92,
  63                 0x49, 0x09, 0x00, 0x92, 0x4d, 0xb7, 0x00, 0x92, 0x49,
  64                 0x25, 0x00, 0x92, 0x44, 0x92, 0x01, 0x24, 0x92, 0x12 } },
  65         { 28000000, 6000000, { 0x01, 0xf5, 0x8d, 0x10, 0x03, 0xeb,
  66                 0x1a, 0x08, 0x00, 0x7d, 0x67, 0x2f, 0x00, 0x7d, 0x63,
  67                 0x44, 0x00, 0x7d, 0x5f, 0x59, 0x00, 0xfa, 0xc6, 0x22 } },
  68         /* 25.000 MHz */
  69         { 25000000, 8000000, { 0x02, 0xec, 0xfb, 0x9d, 0x05, 0xd9,
  70                 0xf7, 0x0e, 0x00, 0xbb, 0x44, 0xc1, 0x00, 0xbb, 0x3e,
  71                 0xe7, 0x00, 0xbb, 0x39, 0x0d, 0x01, 0x76, 0x7d, 0x34 } },
  72         { 25000000, 7000000, { 0x02, 0x8f, 0x5c, 0x29, 0x05, 0x1e,
  73                 0xb8, 0x14, 0x00, 0xa3, 0xdc, 0x29, 0x00, 0xa3, 0xd7,
  74                 0x0a, 0x00, 0xa3, 0xd1, 0xec, 0x01, 0x47, 0xae, 0x05 } },
  75         { 25000000, 6000000, { 0x02, 0x31, 0xbc, 0xb5, 0x04, 0x63,
  76                 0x79, 0x1b, 0x00, 0x8c, 0x73, 0x91, 0x00, 0x8c, 0x6f,
  77                 0x2d, 0x00, 0x8c, 0x6a, 0xca, 0x01, 0x18, 0xde, 0x17 } },
  78 };
  79 
  80 /*
  81  * Afatech AF9013 demod init
  82  */
  83 static const struct af9013_reg_mask_val demod_init_tab[] = {
  84         {0xd73a, 0xff, 0xa1},
  85         {0xd73b, 0xff, 0x1f},
  86         {0xd73c, 0xf0, 0xa0},
  87         {0xd732, 0x08, 0x00},
  88         {0xd731, 0x30, 0x30},
  89         {0xd73d, 0x80, 0x80},
  90         {0xd740, 0x01, 0x00},
  91         {0xd740, 0x02, 0x00},
  92         {0xd740, 0x04, 0x00},
  93         {0xd740, 0x08, 0x08},
  94         {0xd3c1, 0x10, 0x10},
  95         {0x9124, 0xff, 0x58},
  96         {0x9125, 0x03, 0x02},
  97         {0xd3a2, 0xff, 0x00},
  98         {0xd3a3, 0xff, 0x04},
  99         {0xd305, 0xff, 0x32},
 100         {0xd306, 0xff, 0x10},
 101         {0xd304, 0xff, 0x04},
 102         {0x9112, 0x01, 0x01},
 103         {0x911d, 0x01, 0x01},
 104         {0x911a, 0x01, 0x01},
 105         {0x911b, 0x01, 0x01},
 106         {0x9bce, 0x0f, 0x02},
 107         {0x9116, 0x01, 0x01},
 108         {0x9122, 0xff, 0xd0},
 109         {0xd2e0, 0xff, 0xd0},
 110         {0xd2e9, 0x0f, 0x0d},
 111         {0xd38c, 0xff, 0xfc},
 112         {0xd38d, 0xff, 0x00},
 113         {0xd38e, 0xff, 0x7e},
 114         {0xd38f, 0xff, 0x00},
 115         {0xd390, 0xff, 0x2f},
 116         {0xd145, 0x10, 0x10},
 117         {0xd1a9, 0x10, 0x10},
 118         {0xd158, 0xe0, 0x20},
 119         {0xd159, 0x3f, 0x06},
 120         {0xd167, 0xff, 0x00},
 121         {0xd168, 0x0f, 0x07},
 122         {0xd1c3, 0xe0, 0x00},
 123         {0xd1c4, 0x3f, 0x00},
 124         {0xd1c5, 0x7f, 0x10},
 125         {0xd1c6, 0x07, 0x02},
 126         {0xd080, 0x7c, 0x0c},
 127         {0xd081, 0xf0, 0x90},
 128         {0xd098, 0xf0, 0xf0},
 129         {0xd098, 0x0f, 0x03},
 130         {0xdbc0, 0x10, 0x10},
 131         {0xdbc7, 0xff, 0x08},
 132         {0xdbc8, 0xf0, 0x00},
 133         {0xdbc9, 0x1f, 0x01},
 134         {0xd280, 0xff, 0xe0},
 135         {0xd281, 0xff, 0xff},
 136         {0xd282, 0xff, 0xff},
 137         {0xd283, 0xff, 0xc3},
 138         {0xd284, 0xff, 0xff},
 139         {0xd285, 0x0f, 0x01},
 140         {0xd0f0, 0x7f, 0x1a},
 141         {0xd0f1, 0x10, 0x10},
 142         {0xd0f2, 0xff, 0x0c},
 143         {0xd101, 0xe0, 0xc0},
 144         {0xd103, 0x0f, 0x08},
 145         {0xd0f8, 0x7f, 0x20},
 146         {0xd111, 0x20, 0x00},
 147         {0xd111, 0x40, 0x00},
 148         {0x910b, 0xff, 0x0a},
 149         {0x9115, 0xff, 0x02},
 150         {0x910c, 0xff, 0x02},
 151         {0x910d, 0xff, 0x08},
 152         {0x910e, 0xff, 0x0a},
 153         {0x9bf6, 0xff, 0x06},
 154         {0x9bf8, 0xff, 0x02},
 155         {0x9bf7, 0xff, 0x05},
 156         {0x9bf9, 0xff, 0x0f},
 157         {0x9bfc, 0xff, 0x13},
 158         {0x9bd3, 0xff, 0xff},
 159         {0x9bbe, 0x01, 0x01},
 160         {0x9bcc, 0x01, 0x01},
 161 };
 162 
 163 /*
 164  * Panasonic ENV77H11D5 tuner init
 165  * AF9013_TUNER_ENV77H11D5    0x81
 166  */
 167 static const struct af9013_reg_mask_val tuner_init_tab_env77h11d5[] = {
 168         {0x9bd5, 0xff, 0x01},
 169         {0x9bd6, 0xff, 0x03},
 170         {0x9bbe, 0xff, 0x01},
 171         {0xd1a0, 0x02, 0x02},
 172         {0xd000, 0x01, 0x01},
 173         {0xd000, 0x02, 0x00},
 174         {0xd001, 0x02, 0x02},
 175         {0xd001, 0x01, 0x00},
 176         {0xd001, 0x20, 0x00},
 177         {0xd002, 0x1f, 0x19},
 178         {0xd003, 0x1f, 0x1a},
 179         {0xd004, 0x1f, 0x19},
 180         {0xd005, 0x1f, 0x1a},
 181         {0xd00e, 0x1f, 0x10},
 182         {0xd00f, 0x07, 0x04},
 183         {0xd00f, 0x38, 0x28},
 184         {0xd010, 0x07, 0x04},
 185         {0xd010, 0x38, 0x28},
 186         {0xd016, 0xf0, 0x30},
 187         {0xd01f, 0x3f, 0x0a},
 188         {0xd020, 0x3f, 0x0a},
 189         {0x9bda, 0xff, 0x00},
 190         {0x9be3, 0xff, 0x00},
 191         {0xd015, 0xff, 0x50},
 192         {0xd016, 0x01, 0x00},
 193         {0xd044, 0xff, 0x46},
 194         {0xd045, 0x01, 0x00},
 195         {0xd008, 0xff, 0xdf},
 196         {0xd009, 0x03, 0x02},
 197         {0xd006, 0xff, 0x44},
 198         {0xd007, 0x03, 0x01},
 199         {0xd00c, 0xff, 0xeb},
 200         {0xd00d, 0x03, 0x02},
 201         {0xd00a, 0xff, 0xf4},
 202         {0xd00b, 0x03, 0x01},
 203         {0x9bba, 0xff, 0xf9},
 204         {0x9bc3, 0xff, 0xdf},
 205         {0x9bc4, 0xff, 0x02},
 206         {0x9bc5, 0xff, 0xeb},
 207         {0x9bc6, 0xff, 0x02},
 208         {0x9bc9, 0xff, 0x52},
 209         {0xd011, 0xff, 0x3c},
 210         {0xd012, 0x03, 0x01},
 211         {0xd013, 0xff, 0xf7},
 212         {0xd014, 0x03, 0x02},
 213         {0xd040, 0xff, 0x0b},
 214         {0xd041, 0x03, 0x02},
 215         {0xd042, 0xff, 0x4d},
 216         {0xd043, 0x03, 0x00},
 217         {0xd045, 0x02, 0x00},
 218         {0x9bcf, 0x01, 0x01},
 219         {0xd045, 0x04, 0x04},
 220         {0xd04f, 0xff, 0x9a},
 221         {0xd050, 0x01, 0x01},
 222         {0xd051, 0xff, 0x5a},
 223         {0xd052, 0x01, 0x01},
 224         {0xd053, 0xff, 0x50},
 225         {0xd054, 0xff, 0x46},
 226         {0x9bd7, 0xff, 0x0a},
 227         {0x9bd8, 0xff, 0x14},
 228         {0x9bd9, 0xff, 0x08},
 229 };
 230 
 231 /*
 232  * Microtune MT2060 tuner init
 233  * AF9013_TUNER_MT2060        0x82
 234  */
 235 static const struct af9013_reg_mask_val tuner_init_tab_mt2060[] = {
 236         {0x9bd5, 0xff, 0x01},
 237         {0x9bd6, 0xff, 0x07},
 238         {0xd1a0, 0x02, 0x02},
 239         {0xd000, 0x01, 0x01},
 240         {0xd000, 0x02, 0x00},
 241         {0xd001, 0x02, 0x02},
 242         {0xd001, 0x01, 0x00},
 243         {0xd001, 0x20, 0x00},
 244         {0xd002, 0x1f, 0x19},
 245         {0xd003, 0x1f, 0x1a},
 246         {0xd004, 0x1f, 0x19},
 247         {0xd005, 0x1f, 0x1a},
 248         {0xd00e, 0x1f, 0x10},
 249         {0xd00f, 0x07, 0x04},
 250         {0xd00f, 0x38, 0x28},
 251         {0xd010, 0x07, 0x04},
 252         {0xd010, 0x38, 0x28},
 253         {0xd016, 0xf0, 0x30},
 254         {0xd01f, 0x3f, 0x0a},
 255         {0xd020, 0x3f, 0x0a},
 256         {0x9bda, 0xff, 0x00},
 257         {0x9be3, 0xff, 0x00},
 258         {0x9bbe, 0x01, 0x00},
 259         {0x9bcc, 0x01, 0x00},
 260         {0x9bb9, 0xff, 0x75},
 261         {0x9bcd, 0xff, 0x24},
 262         {0x9bff, 0xff, 0x30},
 263         {0xd015, 0xff, 0x46},
 264         {0xd016, 0x01, 0x00},
 265         {0xd044, 0xff, 0x46},
 266         {0xd045, 0x01, 0x00},
 267         {0xd008, 0xff, 0x0f},
 268         {0xd009, 0x03, 0x02},
 269         {0xd006, 0xff, 0x32},
 270         {0xd007, 0x03, 0x01},
 271         {0xd00c, 0xff, 0x36},
 272         {0xd00d, 0x03, 0x03},
 273         {0xd00a, 0xff, 0x35},
 274         {0xd00b, 0x03, 0x01},
 275         {0x9bc7, 0xff, 0x07},
 276         {0x9bc8, 0xff, 0x90},
 277         {0x9bc3, 0xff, 0x0f},
 278         {0x9bc4, 0xff, 0x02},
 279         {0x9bc5, 0xff, 0x36},
 280         {0x9bc6, 0xff, 0x03},
 281         {0x9bba, 0xff, 0xc9},
 282         {0x9bc9, 0xff, 0x79},
 283         {0xd011, 0xff, 0x10},
 284         {0xd012, 0x03, 0x01},
 285         {0xd013, 0xff, 0x45},
 286         {0xd014, 0x03, 0x03},
 287         {0xd040, 0xff, 0x98},
 288         {0xd041, 0x03, 0x00},
 289         {0xd042, 0xff, 0xcf},
 290         {0xd043, 0x03, 0x03},
 291         {0xd045, 0x02, 0x00},
 292         {0x9bcf, 0x01, 0x01},
 293         {0xd045, 0x04, 0x04},
 294         {0xd04f, 0xff, 0x9a},
 295         {0xd050, 0x01, 0x01},
 296         {0xd051, 0xff, 0x5a},
 297         {0xd052, 0x01, 0x01},
 298         {0xd053, 0xff, 0x50},
 299         {0xd054, 0xff, 0x46},
 300         {0x9bd7, 0xff, 0x0a},
 301         {0x9bd8, 0xff, 0x14},
 302         {0x9bd9, 0xff, 0x08},
 303         {0x9bd0, 0xff, 0xcc},
 304         {0x9be4, 0xff, 0xa0},
 305         {0x9bbd, 0xff, 0x8e},
 306         {0x9be2, 0xff, 0x4d},
 307         {0x9bee, 0x01, 0x01},
 308 };
 309 
 310 /*
 311  * Microtune MT2060 tuner init
 312  * AF9013_TUNER_MT2060_2      0x93
 313  */
 314 static const struct af9013_reg_mask_val tuner_init_tab_mt2060_2[] = {
 315         {0x9bd5, 0xff, 0x01},
 316         {0x9bd6, 0xff, 0x06},
 317         {0x9bbe, 0xff, 0x01},
 318         {0xd1a0, 0x02, 0x02},
 319         {0xd000, 0x01, 0x01},
 320         {0xd000, 0x02, 0x00},
 321         {0xd001, 0x02, 0x02},
 322         {0xd001, 0x01, 0x00},
 323         {0xd001, 0x20, 0x00},
 324         {0xd002, 0x1f, 0x19},
 325         {0xd003, 0x1f, 0x1a},
 326         {0xd004, 0x1f, 0x19},
 327         {0xd005, 0x1f, 0x1a},
 328         {0xd00e, 0x1f, 0x10},
 329         {0xd00f, 0x07, 0x04},
 330         {0xd00f, 0x38, 0x28},
 331         {0xd010, 0x07, 0x04},
 332         {0xd010, 0x38, 0x28},
 333         {0xd016, 0xf0, 0x30},
 334         {0xd01f, 0x3f, 0x0a},
 335         {0xd020, 0x3f, 0x0a},
 336         {0xd015, 0xff, 0x46},
 337         {0xd016, 0x01, 0x00},
 338         {0xd044, 0xff, 0x46},
 339         {0xd045, 0x01, 0x00},
 340         {0xd008, 0xff, 0x0f},
 341         {0xd009, 0x03, 0x02},
 342         {0xd006, 0xff, 0x32},
 343         {0xd007, 0x03, 0x01},
 344         {0xd00c, 0xff, 0x36},
 345         {0xd00d, 0x03, 0x03},
 346         {0xd00a, 0xff, 0x35},
 347         {0xd00b, 0x03, 0x01},
 348         {0x9bc7, 0xff, 0x07},
 349         {0x9bc8, 0xff, 0x90},
 350         {0x9bc3, 0xff, 0x0f},
 351         {0x9bc4, 0xff, 0x02},
 352         {0x9bc5, 0xff, 0x36},
 353         {0x9bc6, 0xff, 0x03},
 354         {0x9bba, 0xff, 0xc9},
 355         {0x9bc9, 0xff, 0x79},
 356         {0xd011, 0xff, 0x10},
 357         {0xd012, 0x03, 0x01},
 358         {0xd013, 0xff, 0x45},
 359         {0xd014, 0x03, 0x03},
 360         {0xd040, 0xff, 0x98},
 361         {0xd041, 0x03, 0x00},
 362         {0xd042, 0xff, 0xcf},
 363         {0xd043, 0x03, 0x03},
 364         {0xd045, 0x02, 0x00},
 365         {0x9bcf, 0xff, 0x01},
 366         {0xd045, 0x04, 0x04},
 367         {0xd04f, 0xff, 0x9a},
 368         {0xd050, 0x01, 0x01},
 369         {0xd051, 0xff, 0x5a},
 370         {0xd052, 0x01, 0x01},
 371         {0xd053, 0xff, 0x96},
 372         {0xd054, 0xff, 0x46},
 373         {0xd045, 0x80, 0x00},
 374         {0x9bd7, 0xff, 0x0a},
 375         {0x9bd8, 0xff, 0x14},
 376         {0x9bd9, 0xff, 0x08},
 377 };
 378 
 379 /*
 380  * MaxLinear MXL5003 tuner init
 381  * AF9013_TUNER_MXL5003D      0x03
 382  */
 383 static const struct af9013_reg_mask_val tuner_init_tab_mxl5003d[] = {
 384         {0x9bd5, 0xff, 0x01},
 385         {0x9bd6, 0xff, 0x09},
 386         {0xd1a0, 0x02, 0x02},
 387         {0xd000, 0x01, 0x01},
 388         {0xd000, 0x02, 0x00},
 389         {0xd001, 0x02, 0x02},
 390         {0xd001, 0x01, 0x00},
 391         {0xd001, 0x20, 0x00},
 392         {0xd002, 0x1f, 0x19},
 393         {0xd003, 0x1f, 0x1a},
 394         {0xd004, 0x1f, 0x19},
 395         {0xd005, 0x1f, 0x1a},
 396         {0xd00e, 0x1f, 0x10},
 397         {0xd00f, 0x07, 0x04},
 398         {0xd00f, 0x38, 0x28},
 399         {0xd010, 0x07, 0x04},
 400         {0xd010, 0x38, 0x28},
 401         {0xd016, 0xf0, 0x30},
 402         {0xd01f, 0x3f, 0x0a},
 403         {0xd020, 0x3f, 0x0a},
 404         {0x9bda, 0xff, 0x00},
 405         {0x9be3, 0xff, 0x00},
 406         {0x9bfc, 0xff, 0x0f},
 407         {0x9bf6, 0xff, 0x01},
 408         {0x9bbe, 0x01, 0x01},
 409         {0xd015, 0xff, 0x33},
 410         {0xd016, 0x01, 0x00},
 411         {0xd044, 0xff, 0x40},
 412         {0xd045, 0x01, 0x00},
 413         {0xd008, 0xff, 0x0f},
 414         {0xd009, 0x03, 0x02},
 415         {0xd006, 0xff, 0x6c},
 416         {0xd007, 0x03, 0x00},
 417         {0xd00c, 0xff, 0x3d},
 418         {0xd00d, 0x03, 0x00},
 419         {0xd00a, 0xff, 0x45},
 420         {0xd00b, 0x03, 0x01},
 421         {0x9bc7, 0xff, 0x07},
 422         {0x9bc8, 0xff, 0x52},
 423         {0x9bc3, 0xff, 0x0f},
 424         {0x9bc4, 0xff, 0x02},
 425         {0x9bc5, 0xff, 0x3d},
 426         {0x9bc6, 0xff, 0x00},
 427         {0x9bba, 0xff, 0xa2},
 428         {0x9bc9, 0xff, 0xa0},
 429         {0xd011, 0xff, 0x56},
 430         {0xd012, 0x03, 0x00},
 431         {0xd013, 0xff, 0x50},
 432         {0xd014, 0x03, 0x00},
 433         {0xd040, 0xff, 0x56},
 434         {0xd041, 0x03, 0x00},
 435         {0xd042, 0xff, 0x50},
 436         {0xd043, 0x03, 0x00},
 437         {0xd045, 0x02, 0x00},
 438         {0x9bcf, 0xff, 0x01},
 439         {0xd045, 0x04, 0x04},
 440         {0xd04f, 0xff, 0x9a},
 441         {0xd050, 0x01, 0x01},
 442         {0xd051, 0xff, 0x5a},
 443         {0xd052, 0x01, 0x01},
 444         {0xd053, 0xff, 0x50},
 445         {0xd054, 0xff, 0x46},
 446         {0x9bd7, 0xff, 0x0a},
 447         {0x9bd8, 0xff, 0x14},
 448         {0x9bd9, 0xff, 0x08},
 449 };
 450 
 451 /*
 452  * MaxLinear MXL5005S & MXL5007T tuner init
 453  * AF9013_TUNER_MXL5005D      0x0d
 454  * AF9013_TUNER_MXL5005R      0x1e
 455  * AF9013_TUNER_MXL5007T      0xb1
 456  */
 457 static const struct af9013_reg_mask_val tuner_init_tab_mxl5005[] = {
 458         {0x9bd5, 0xff, 0x01},
 459         {0x9bd6, 0xff, 0x07},
 460         {0xd1a0, 0x02, 0x02},
 461         {0xd000, 0x01, 0x01},
 462         {0xd000, 0x02, 0x00},
 463         {0xd001, 0x02, 0x02},
 464         {0xd001, 0x01, 0x00},
 465         {0xd001, 0x20, 0x00},
 466         {0xd002, 0x1f, 0x19},
 467         {0xd003, 0x1f, 0x1a},
 468         {0xd004, 0x1f, 0x19},
 469         {0xd005, 0x1f, 0x1a},
 470         {0xd00e, 0x1f, 0x10},
 471         {0xd00f, 0x07, 0x04},
 472         {0xd00f, 0x38, 0x28},
 473         {0xd010, 0x07, 0x04},
 474         {0xd010, 0x38, 0x28},
 475         {0xd016, 0xf0, 0x30},
 476         {0xd01f, 0x3f, 0x0a},
 477         {0xd020, 0x3f, 0x0a},
 478         {0x9bda, 0xff, 0x01},
 479         {0x9be3, 0xff, 0x01},
 480         {0x9bbe, 0x01, 0x01},
 481         {0x9bcc, 0x01, 0x01},
 482         {0x9bb9, 0xff, 0x00},
 483         {0x9bcd, 0xff, 0x28},
 484         {0x9bff, 0xff, 0x24},
 485         {0xd015, 0xff, 0x40},
 486         {0xd016, 0x01, 0x00},
 487         {0xd044, 0xff, 0x40},
 488         {0xd045, 0x01, 0x00},
 489         {0xd008, 0xff, 0x0f},
 490         {0xd009, 0x03, 0x02},
 491         {0xd006, 0xff, 0x73},
 492         {0xd007, 0x03, 0x01},
 493         {0xd00c, 0xff, 0xfa},
 494         {0xd00d, 0x03, 0x01},
 495         {0xd00a, 0xff, 0xff},
 496         {0xd00b, 0x03, 0x01},
 497         {0x9bc7, 0xff, 0x23},
 498         {0x9bc8, 0xff, 0x55},
 499         {0x9bc3, 0xff, 0x01},
 500         {0x9bc4, 0xff, 0x02},
 501         {0x9bc5, 0xff, 0xfa},
 502         {0x9bc6, 0xff, 0x01},
 503         {0x9bba, 0xff, 0xff},
 504         {0x9bc9, 0xff, 0xff},
 505         {0x9bd3, 0xff, 0x95},
 506         {0xd011, 0xff, 0x70},
 507         {0xd012, 0x03, 0x01},
 508         {0xd013, 0xff, 0xfb},
 509         {0xd014, 0x03, 0x01},
 510         {0xd040, 0xff, 0x70},
 511         {0xd041, 0x03, 0x01},
 512         {0xd042, 0xff, 0xfb},
 513         {0xd043, 0x03, 0x01},
 514         {0xd045, 0x02, 0x00},
 515         {0x9bcf, 0x01, 0x01},
 516         {0xd045, 0x04, 0x04},
 517         {0xd04f, 0xff, 0x9a},
 518         {0xd050, 0x01, 0x01},
 519         {0xd051, 0xff, 0x5a},
 520         {0xd052, 0x01, 0x01},
 521         {0xd053, 0xff, 0x50},
 522         {0xd054, 0xff, 0x46},
 523         {0x9bd7, 0xff, 0x0a},
 524         {0x9bd8, 0xff, 0x14},
 525         {0x9bd9, 0xff, 0x08},
 526         {0x9bd0, 0xff, 0x93},
 527         {0x9be4, 0xff, 0xfe},
 528         {0x9bbd, 0xff, 0x63},
 529         {0x9be2, 0xff, 0xfe},
 530         {0x9bee, 0x01, 0x01},
 531 };
 532 
 533 /*
 534  * Quantek QT1010 tuner init
 535  * AF9013_TUNER_QT1010        0x86
 536  * AF9013_TUNER_QT1010A       0xa2
 537  */
 538 static const struct af9013_reg_mask_val tuner_init_tab_qt1010[] = {
 539         {0x9bd5, 0xff, 0x01},
 540         {0x9bd6, 0xff, 0x09},
 541         {0xd1a0, 0x02, 0x02},
 542         {0xd000, 0x01, 0x01},
 543         {0xd000, 0x02, 0x00},
 544         {0xd001, 0x02, 0x02},
 545         {0xd001, 0x01, 0x00},
 546         {0xd001, 0x20, 0x00},
 547         {0xd002, 0x1f, 0x19},
 548         {0xd003, 0x1f, 0x1a},
 549         {0xd004, 0x1f, 0x19},
 550         {0xd005, 0x1f, 0x1a},
 551         {0xd00e, 0x1f, 0x10},
 552         {0xd00f, 0x07, 0x04},
 553         {0xd00f, 0x38, 0x28},
 554         {0xd010, 0x07, 0x04},
 555         {0xd010, 0x38, 0x28},
 556         {0xd016, 0xf0, 0x30},
 557         {0xd01f, 0x3f, 0x0a},
 558         {0xd020, 0x3f, 0x0a},
 559         {0x9bda, 0xff, 0x01},
 560         {0x9be3, 0xff, 0x01},
 561         {0xd015, 0xff, 0x46},
 562         {0xd016, 0x01, 0x00},
 563         {0xd044, 0xff, 0x46},
 564         {0xd045, 0x01, 0x00},
 565         {0x9bbe, 0x01, 0x01},
 566         {0x9bcc, 0x01, 0x01},
 567         {0x9bb9, 0xff, 0x00},
 568         {0x9bcd, 0xff, 0x28},
 569         {0x9bff, 0xff, 0x20},
 570         {0xd008, 0xff, 0x0f},
 571         {0xd009, 0x03, 0x02},
 572         {0xd006, 0xff, 0x99},
 573         {0xd007, 0x03, 0x01},
 574         {0xd00c, 0xff, 0x0f},
 575         {0xd00d, 0x03, 0x02},
 576         {0xd00a, 0xff, 0x50},
 577         {0xd00b, 0x03, 0x01},
 578         {0x9bc7, 0xff, 0x00},
 579         {0x9bc8, 0xff, 0x00},
 580         {0x9bc3, 0xff, 0x0f},
 581         {0x9bc4, 0xff, 0x02},
 582         {0x9bc5, 0xff, 0x0f},
 583         {0x9bc6, 0xff, 0x02},
 584         {0x9bba, 0xff, 0xc5},
 585         {0x9bc9, 0xff, 0xff},
 586         {0xd011, 0xff, 0x58},
 587         {0xd012, 0x03, 0x02},
 588         {0xd013, 0xff, 0x89},
 589         {0xd014, 0x03, 0x01},
 590         {0xd040, 0xff, 0x58},
 591         {0xd041, 0x03, 0x02},
 592         {0xd042, 0xff, 0x89},
 593         {0xd043, 0x03, 0x01},
 594         {0xd045, 0x02, 0x00},
 595         {0x9bcf, 0x01, 0x01},
 596         {0xd045, 0x04, 0x04},
 597         {0xd04f, 0xff, 0x9a},
 598         {0xd050, 0x01, 0x01},
 599         {0xd051, 0xff, 0x5a},
 600         {0xd052, 0x01, 0x01},
 601         {0xd053, 0xff, 0x50},
 602         {0xd054, 0xff, 0x46},
 603         {0x9bd7, 0xff, 0x0a},
 604         {0x9bd8, 0xff, 0x14},
 605         {0x9bd9, 0xff, 0x08},
 606         {0x9bd0, 0xff, 0xcd},
 607         {0x9be4, 0xff, 0xbb},
 608         {0x9bbd, 0xff, 0x93},
 609         {0x9be2, 0xff, 0x80},
 610         {0x9bee, 0x01, 0x01},
 611 };
 612 
 613 /*
 614  * Freescale MC44S803 tuner init
 615  * AF9013_TUNER_MC44S803      0x85
 616  */
 617 static const struct af9013_reg_mask_val tuner_init_tab_mc44s803[] = {
 618         {0x9bd5, 0xff, 0x01},
 619         {0x9bd6, 0xff, 0x06},
 620         {0xd1a0, 0x02, 0x02},
 621         {0xd000, 0x01, 0x01},
 622         {0xd000, 0x02, 0x00},
 623         {0xd001, 0x02, 0x02},
 624         {0xd001, 0x01, 0x00},
 625         {0xd001, 0x20, 0x00},
 626         {0xd002, 0x1f, 0x19},
 627         {0xd003, 0x1f, 0x1a},
 628         {0xd004, 0x1f, 0x19},
 629         {0xd005, 0x1f, 0x1a},
 630         {0xd00e, 0x1f, 0x10},
 631         {0xd00f, 0x07, 0x04},
 632         {0xd00f, 0x38, 0x28},
 633         {0xd010, 0x07, 0x04},
 634         {0xd010, 0x38, 0x28},
 635         {0xd016, 0xf0, 0x30},
 636         {0xd01f, 0x3f, 0x0a},
 637         {0xd020, 0x3f, 0x0a},
 638         {0x9bda, 0xff, 0x00},
 639         {0x9be3, 0xff, 0x00},
 640         {0x9bf6, 0xff, 0x01},
 641         {0x9bf8, 0xff, 0x02},
 642         {0x9bf9, 0xff, 0x02},
 643         {0x9bfc, 0xff, 0x1f},
 644         {0x9bbe, 0x01, 0x01},
 645         {0x9bcc, 0x01, 0x01},
 646         {0x9bb9, 0xff, 0x00},
 647         {0x9bcd, 0xff, 0x24},
 648         {0x9bff, 0xff, 0x24},
 649         {0xd015, 0xff, 0x46},
 650         {0xd016, 0x01, 0x00},
 651         {0xd044, 0xff, 0x46},
 652         {0xd045, 0x01, 0x00},
 653         {0xd008, 0xff, 0x01},
 654         {0xd009, 0x03, 0x02},
 655         {0xd006, 0xff, 0x7b},
 656         {0xd007, 0x03, 0x00},
 657         {0xd00c, 0xff, 0x7c},
 658         {0xd00d, 0x03, 0x02},
 659         {0xd00a, 0xff, 0xfe},
 660         {0xd00b, 0x03, 0x01},
 661         {0x9bc7, 0xff, 0x08},
 662         {0x9bc8, 0xff, 0x9a},
 663         {0x9bc3, 0xff, 0x01},
 664         {0x9bc4, 0xff, 0x02},
 665         {0x9bc5, 0xff, 0x7c},
 666         {0x9bc6, 0xff, 0x02},
 667         {0x9bba, 0xff, 0xfc},
 668         {0x9bc9, 0xff, 0xaa},
 669         {0xd011, 0xff, 0x6b},
 670         {0xd012, 0x03, 0x00},
 671         {0xd013, 0xff, 0x88},
 672         {0xd014, 0x03, 0x02},
 673         {0xd040, 0xff, 0x6b},
 674         {0xd041, 0x03, 0x00},
 675         {0xd042, 0xff, 0x7c},
 676         {0xd043, 0x03, 0x02},
 677         {0xd045, 0x02, 0x00},
 678         {0x9bcf, 0x01, 0x01},
 679         {0xd045, 0x04, 0x04},
 680         {0xd04f, 0xff, 0x9a},
 681         {0xd050, 0x01, 0x01},
 682         {0xd051, 0xff, 0x5a},
 683         {0xd052, 0x01, 0x01},
 684         {0xd053, 0xff, 0x50},
 685         {0xd054, 0xff, 0x46},
 686         {0x9bd7, 0xff, 0x0a},
 687         {0x9bd8, 0xff, 0x14},
 688         {0x9bd9, 0xff, 0x08},
 689         {0x9bd0, 0xff, 0x9e},
 690         {0x9be4, 0xff, 0xff},
 691         {0x9bbd, 0xff, 0x9e},
 692         {0x9be2, 0xff, 0x25},
 693         {0x9bee, 0x01, 0x01},
 694         {0xd73b, 0x08, 0x00},
 695 };
 696 
 697 /*
 698  * Unknown, probably for tin can tuner, tuner init
 699  * AF9013_TUNER_UNKNOWN       0x8c
 700  */
 701 static const struct af9013_reg_mask_val tuner_init_tab_unknown[] = {
 702         {0x9bd5, 0xff, 0x01},
 703         {0x9bd6, 0xff, 0x02},
 704         {0xd1a0, 0x02, 0x02},
 705         {0xd000, 0x01, 0x01},
 706         {0xd000, 0x02, 0x00},
 707         {0xd001, 0x02, 0x02},
 708         {0xd001, 0x01, 0x00},
 709         {0xd001, 0x20, 0x00},
 710         {0xd002, 0x1f, 0x19},
 711         {0xd003, 0x1f, 0x1a},
 712         {0xd004, 0x1f, 0x19},
 713         {0xd005, 0x1f, 0x1a},
 714         {0xd00e, 0x1f, 0x10},
 715         {0xd00f, 0x07, 0x04},
 716         {0xd00f, 0x38, 0x28},
 717         {0xd010, 0x07, 0x04},
 718         {0xd010, 0x38, 0x28},
 719         {0xd016, 0xf0, 0x30},
 720         {0xd01f, 0x3f, 0x0a},
 721         {0xd020, 0x3f, 0x0a},
 722         {0x9bda, 0xff, 0x01},
 723         {0x9be3, 0xff, 0x01},
 724         {0xd1a0, 0x02, 0x00},
 725         {0x9bbe, 0x01, 0x01},
 726         {0x9bcc, 0x01, 0x01},
 727         {0x9bb9, 0xff, 0x00},
 728         {0x9bcd, 0xff, 0x18},
 729         {0x9bff, 0xff, 0x2c},
 730         {0xd015, 0xff, 0x46},
 731         {0xd016, 0x01, 0x00},
 732         {0xd044, 0xff, 0x46},
 733         {0xd045, 0x01, 0x00},
 734         {0xd008, 0xff, 0xdf},
 735         {0xd009, 0x03, 0x02},
 736         {0xd006, 0xff, 0x44},
 737         {0xd007, 0x03, 0x01},
 738         {0xd00c, 0xff, 0x00},
 739         {0xd00d, 0x03, 0x02},
 740         {0xd00a, 0xff, 0xf6},
 741         {0xd00b, 0x03, 0x01},
 742         {0x9bba, 0xff, 0xf9},
 743         {0x9bc8, 0xff, 0xaa},
 744         {0x9bc3, 0xff, 0xdf},
 745         {0x9bc4, 0xff, 0x02},
 746         {0x9bc5, 0xff, 0x00},
 747         {0x9bc6, 0xff, 0x02},
 748         {0x9bc9, 0xff, 0xf0},
 749         {0xd011, 0xff, 0x3c},
 750         {0xd012, 0x03, 0x01},
 751         {0xd013, 0xff, 0xf7},
 752         {0xd014, 0x03, 0x02},
 753         {0xd040, 0xff, 0x0b},
 754         {0xd041, 0x03, 0x02},
 755         {0xd042, 0xff, 0x4d},
 756         {0xd043, 0x03, 0x00},
 757         {0xd045, 0x02, 0x00},
 758         {0x9bcf, 0x01, 0x01},
 759         {0xd045, 0x04, 0x04},
 760         {0xd04f, 0xff, 0x9a},
 761         {0xd050, 0x01, 0x01},
 762         {0xd051, 0xff, 0x5a},
 763         {0xd052, 0x01, 0x01},
 764         {0xd053, 0xff, 0x50},
 765         {0xd054, 0xff, 0x46},
 766         {0x9bd7, 0xff, 0x0a},
 767         {0x9bd8, 0xff, 0x14},
 768         {0x9bd9, 0xff, 0x08},
 769 };
 770 
 771 /*
 772  * NXP TDA18271 & TDA18218 tuner init
 773  * AF9013_TUNER_TDA18271      0x9c
 774  * AF9013_TUNER_TDA18218      0xb3
 775  */
 776 static const struct af9013_reg_mask_val tuner_init_tab_tda18271[] = {
 777         {0x9bd5, 0xff, 0x01},
 778         {0x9bd6, 0xff, 0x04},
 779         {0xd1a0, 0x02, 0x02},
 780         {0xd000, 0x01, 0x01},
 781         {0xd000, 0x02, 0x00},
 782         {0xd001, 0x02, 0x02},
 783         {0xd001, 0x01, 0x00},
 784         {0xd001, 0x20, 0x00},
 785         {0xd002, 0x1f, 0x19},
 786         {0xd003, 0x1f, 0x1a},
 787         {0xd004, 0x1f, 0x19},
 788         {0xd005, 0x1f, 0x1a},
 789         {0xd00e, 0x1f, 0x10},
 790         {0xd00f, 0x07, 0x04},
 791         {0xd00f, 0x38, 0x28},
 792         {0xd010, 0x07, 0x04},
 793         {0xd010, 0x38, 0x28},
 794         {0xd016, 0xf0, 0x30},
 795         {0xd01f, 0x3f, 0x0a},
 796         {0xd020, 0x3f, 0x0a},
 797         {0x9bda, 0xff, 0x01},
 798         {0x9be3, 0xff, 0x01},
 799         {0xd1a0, 0x02, 0x00},
 800         {0x9bbe, 0x01, 0x01},
 801         {0x9bcc, 0x01, 0x01},
 802         {0x9bb9, 0xff, 0x00},
 803         {0x9bcd, 0xff, 0x18},
 804         {0x9bff, 0xff, 0x2c},
 805         {0xd015, 0xff, 0x46},
 806         {0xd016, 0x01, 0x00},
 807         {0xd044, 0xff, 0x46},
 808         {0xd045, 0x01, 0x00},
 809         {0xd008, 0xff, 0xdf},
 810         {0xd009, 0x03, 0x02},
 811         {0xd006, 0xff, 0x44},
 812         {0xd007, 0x03, 0x01},
 813         {0xd00c, 0xff, 0x00},
 814         {0xd00d, 0x03, 0x02},
 815         {0xd00a, 0xff, 0xf6},
 816         {0xd00b, 0x03, 0x01},
 817         {0x9bba, 0xff, 0xf9},
 818         {0x9bc8, 0xff, 0xaa},
 819         {0x9bc3, 0xff, 0xdf},
 820         {0x9bc4, 0xff, 0x02},
 821         {0x9bc5, 0xff, 0x00},
 822         {0x9bc6, 0xff, 0x02},
 823         {0x9bc9, 0xff, 0xf0},
 824         {0xd011, 0xff, 0x3c},
 825         {0xd012, 0x03, 0x01},
 826         {0xd013, 0xff, 0xf7},
 827         {0xd014, 0x03, 0x02},
 828         {0xd040, 0xff, 0x0b},
 829         {0xd041, 0x03, 0x02},
 830         {0xd042, 0xff, 0x4d},
 831         {0xd043, 0x03, 0x00},
 832         {0xd045, 0x02, 0x00},
 833         {0x9bcf, 0x01, 0x01},
 834         {0xd045, 0x04, 0x04},
 835         {0xd04f, 0xff, 0x9a},
 836         {0xd050, 0x01, 0x01},
 837         {0xd051, 0xff, 0x5a},
 838         {0xd052, 0x01, 0x01},
 839         {0xd053, 0xff, 0x50},
 840         {0xd054, 0xff, 0x46},
 841         {0x9bd7, 0xff, 0x0a},
 842         {0x9bd8, 0xff, 0x14},
 843         {0x9bd9, 0xff, 0x08},
 844         {0x9bd0, 0xff, 0xa8},
 845         {0x9be4, 0xff, 0x7f},
 846         {0x9bbd, 0xff, 0xa8},
 847         {0x9be2, 0xff, 0x20},
 848         {0x9bee, 0x01, 0x01},
 849 };
 850 
 851 #endif /* AF9013_PRIV_H */

/* [<][>][^][v][top][bottom][index][help] */