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

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * stv0900_init.h
   4  *
   5  * Driver for ST STV0900 satellite demodulator IC.
   6  *
   7  * Copyright (C) ST Microelectronics.
   8  * Copyright (C) 2009 NetUP Inc.
   9  * Copyright (C) 2009 Igor M. Liplianin <liplianin@netup.ru>
  10  */
  11 
  12 #ifndef STV0900_INIT_H
  13 #define STV0900_INIT_H
  14 
  15 #include "stv0900_priv.h"
  16 
  17 /* DVBS2 C/N Look-Up table */
  18 static const struct stv0900_table stv0900_s2_cn = {
  19         55,
  20         {
  21                 { -30,  13348 }, /*C/N=-3dB*/
  22                 { -20,  12640 }, /*C/N=-2dB*/
  23                 { -10,  11883 }, /*C/N=-1dB*/
  24                 { 0,    11101 }, /*C/N=-0dB*/
  25                 { 5,    10718 }, /*C/N=0.5dB*/
  26                 { 10,   10339 }, /*C/N=1.0dB*/
  27                 { 15,   9947 }, /*C/N=1.5dB*/
  28                 { 20,   9552 }, /*C/N=2.0dB*/
  29                 { 25,   9183 }, /*C/N=2.5dB*/
  30                 { 30,   8799 }, /*C/N=3.0dB*/
  31                 { 35,   8422 }, /*C/N=3.5dB*/
  32                 { 40,   8062 }, /*C/N=4.0dB*/
  33                 { 45,   7707 }, /*C/N=4.5dB*/
  34                 { 50,   7353 }, /*C/N=5.0dB*/
  35                 { 55,   7025 }, /*C/N=5.5dB*/
  36                 { 60,   6684 }, /*C/N=6.0dB*/
  37                 { 65,   6331 }, /*C/N=6.5dB*/
  38                 { 70,   6036 }, /*C/N=7.0dB*/
  39                 { 75,   5727 }, /*C/N=7.5dB*/
  40                 { 80,   5437 }, /*C/N=8.0dB*/
  41                 { 85,   5164 }, /*C/N=8.5dB*/
  42                 { 90,   4902 }, /*C/N=9.0dB*/
  43                 { 95,   4653 }, /*C/N=9.5dB*/
  44                 { 100,  4408 }, /*C/N=10.0dB*/
  45                 { 105,  4187 }, /*C/N=10.5dB*/
  46                 { 110,  3961 }, /*C/N=11.0dB*/
  47                 { 115,  3751 }, /*C/N=11.5dB*/
  48                 { 120,  3558 }, /*C/N=12.0dB*/
  49                 { 125,  3368 }, /*C/N=12.5dB*/
  50                 { 130,  3191 }, /*C/N=13.0dB*/
  51                 { 135,  3017 }, /*C/N=13.5dB*/
  52                 { 140,  2862 }, /*C/N=14.0dB*/
  53                 { 145,  2710 }, /*C/N=14.5dB*/
  54                 { 150,  2565 }, /*C/N=15.0dB*/
  55                 { 160,  2300 }, /*C/N=16.0dB*/
  56                 { 170,  2058 }, /*C/N=17.0dB*/
  57                 { 180,  1849 }, /*C/N=18.0dB*/
  58                 { 190,  1663 }, /*C/N=19.0dB*/
  59                 { 200,  1495 }, /*C/N=20.0dB*/
  60                 { 210,  1349 }, /*C/N=21.0dB*/
  61                 { 220,  1222 }, /*C/N=22.0dB*/
  62                 { 230,  1110 }, /*C/N=23.0dB*/
  63                 { 240,  1011 }, /*C/N=24.0dB*/
  64                 { 250,  925 }, /*C/N=25.0dB*/
  65                 { 260,  853 }, /*C/N=26.0dB*/
  66                 { 270,  789 }, /*C/N=27.0dB*/
  67                 { 280,  734 }, /*C/N=28.0dB*/
  68                 { 290,  690 }, /*C/N=29.0dB*/
  69                 { 300,  650 }, /*C/N=30.0dB*/
  70                 { 310,  619 }, /*C/N=31.0dB*/
  71                 { 320,  593 }, /*C/N=32.0dB*/
  72                 { 330,  571 }, /*C/N=33.0dB*/
  73                 { 400,  498 }, /*C/N=40.0dB*/
  74                 { 450,  484 }, /*C/N=45.0dB*/
  75                 { 500,  481 }  /*C/N=50.0dB*/
  76         }
  77 };
  78 
  79 /* RF level C/N Look-Up table */
  80 static const struct stv0900_table stv0900_rf = {
  81         14,
  82         {
  83                 { -5, 0xCAA1 }, /*-5dBm*/
  84                 { -10, 0xC229 }, /*-10dBm*/
  85                 { -15, 0xBB08 }, /*-15dBm*/
  86                 { -20, 0xB4BC }, /*-20dBm*/
  87                 { -25, 0xAD5A }, /*-25dBm*/
  88                 { -30, 0xA298 }, /*-30dBm*/
  89                 { -35, 0x98A8 }, /*-35dBm*/
  90                 { -40, 0x8389 }, /*-40dBm*/
  91                 { -45, 0x59BE }, /*-45dBm*/
  92                 { -50, 0x3A14 }, /*-50dBm*/
  93                 { -55, 0x2D11 }, /*-55dBm*/
  94                 { -60, 0x210D }, /*-60dBm*/
  95                 { -65, 0xA14F }, /*-65dBm*/
  96                 { -70, 0x7AA }  /*-70dBm*/
  97         }
  98 };
  99 
 100 struct stv0900_car_loop_optim {
 101         enum fe_stv0900_modcode modcode;
 102         u8 car_loop_pilots_on_2;
 103         u8 car_loop_pilots_off_2;
 104         u8 car_loop_pilots_on_5;
 105         u8 car_loop_pilots_off_5;
 106         u8 car_loop_pilots_on_10;
 107         u8 car_loop_pilots_off_10;
 108         u8 car_loop_pilots_on_20;
 109         u8 car_loop_pilots_off_20;
 110         u8 car_loop_pilots_on_30;
 111         u8 car_loop_pilots_off_30;
 112 
 113 };
 114 
 115 struct stv0900_short_frames_car_loop_optim {
 116         enum fe_stv0900_modulation modulation;
 117         u8 car_loop_cut12_2;    /* Cut 1.2,   SR<=3msps     */
 118         u8 car_loop_cut20_2;    /* Cut 2.0,   SR<3msps      */
 119         u8 car_loop_cut12_5;    /* Cut 1.2,   3<SR<=7msps   */
 120         u8 car_loop_cut20_5;    /* Cut 2.0,   3<SR<=7msps   */
 121         u8 car_loop_cut12_10;   /* Cut 1.2,   7<SR<=15msps  */
 122         u8 car_loop_cut20_10;   /* Cut 2.0,   7<SR<=15msps  */
 123         u8 car_loop_cut12_20;   /* Cut 1.2,   10<SR<=25msps */
 124         u8 car_loop_cut20_20;   /* Cut 2.0,   10<SR<=25msps */
 125         u8 car_loop_cut12_30;   /* Cut 1.2,   25<SR<=45msps */
 126         u8 car_loop_cut20_30;   /* Cut 2.0,   10<SR<=45msps */
 127 
 128 };
 129 
 130 struct stv0900_short_frames_car_loop_optim_vs_mod {
 131         enum fe_stv0900_modulation modulation;
 132         u8 car_loop_2;    /* SR<3msps      */
 133         u8 car_loop_5;    /* 3<SR<=7msps   */
 134         u8 car_loop_10;   /* 7<SR<=15msps  */
 135         u8 car_loop_20;   /* 10<SR<=25msps */
 136         u8 car_loop_30;   /* 10<SR<=45msps */
 137 };
 138 
 139 /* Cut 1.x Tracking carrier loop carrier QPSK 1/2 to 8PSK 9/10 long Frame */
 140 static const struct stv0900_car_loop_optim FE_STV0900_S2CarLoop[14] = {
 141         /*Modcod                2MPon   2MPoff  5MPon   5MPoff  10MPon
 142                                 10MPoff 20MPon  20MPoff 30MPon  30MPoff */
 143         { STV0900_QPSK_12,      0x1C,   0x0D,   0x1B,   0x2C,   0x3A,
 144                                 0x1C,   0x2A,   0x3B,   0x2A,   0x1B },
 145         { STV0900_QPSK_35,      0x2C,   0x0D,   0x2B,   0x2C,   0x3A,
 146                                 0x0C,   0x3A,   0x2B,   0x2A,   0x0B },
 147         { STV0900_QPSK_23,      0x2C,   0x0D,   0x2B,   0x2C,   0x0B,
 148                                 0x0C,   0x3A,   0x1B,   0x2A,   0x3A },
 149         { STV0900_QPSK_34,      0x3C,   0x0D,   0x3B,   0x1C,   0x0B,
 150                                 0x3B,   0x3A,   0x0B,   0x2A,   0x3A },
 151         { STV0900_QPSK_45,      0x3C,   0x0D,   0x3B,   0x1C,   0x0B,
 152                                 0x3B,   0x3A,   0x0B,   0x2A,   0x3A },
 153         { STV0900_QPSK_56,      0x0D,   0x0D,   0x3B,   0x1C,   0x0B,
 154                                 0x3B,   0x3A,   0x0B,   0x2A,   0x3A },
 155         { STV0900_QPSK_89,      0x0D,   0x0D,   0x3B,   0x1C,   0x1B,
 156                                 0x3B,   0x3A,   0x0B,   0x2A,   0x3A },
 157         { STV0900_QPSK_910,     0x1D,   0x0D,   0x3B,   0x1C,   0x1B,
 158                                 0x3B,   0x3A,   0x0B,   0x2A,   0x3A },
 159         { STV0900_8PSK_35,      0x29,   0x3B,   0x09,   0x2B,   0x38,
 160                                 0x0B,   0x18,   0x1A,   0x08,   0x0A },
 161         { STV0900_8PSK_23,      0x0A,   0x3B,   0x29,   0x2B,   0x19,
 162                                 0x0B,   0x38,   0x1A,   0x18,   0x0A },
 163         { STV0900_8PSK_34,      0x3A,   0x3B,   0x2A,   0x2B,   0x39,
 164                                 0x0B,   0x19,   0x1A,   0x38,   0x0A },
 165         { STV0900_8PSK_56,      0x1B,   0x3B,   0x0B,   0x2B,   0x1A,
 166                                 0x0B,   0x39,   0x1A,   0x19,   0x0A },
 167         { STV0900_8PSK_89,      0x3B,   0x3B,   0x0B,   0x2B,   0x2A,
 168                                 0x0B,   0x39,   0x1A,   0x29,   0x39 },
 169         { STV0900_8PSK_910,     0x3B,   0x3B,   0x0B,   0x2B,   0x2A,
 170                                 0x0B,   0x39,   0x1A,   0x29,   0x39 }
 171 };
 172 
 173 
 174 /* Cut 2.0 Tracking carrier loop carrier QPSK 1/2 to 8PSK 9/10 long Frame */
 175 static const struct stv0900_car_loop_optim FE_STV0900_S2CarLoopCut20[14] = {
 176         /* Modcod               2MPon   2MPoff  5MPon   5MPoff  10MPon
 177                                 10MPoff 20MPon  20MPoff 30MPon  30MPoff */
 178         { STV0900_QPSK_12,      0x1F,   0x3F,   0x1E,   0x3F,   0x3D,
 179                                 0x1F,   0x3D,   0x3E,   0x3D,   0x1E },
 180         { STV0900_QPSK_35,      0x2F,   0x3F,   0x2E,   0x2F,   0x3D,
 181                                 0x0F,   0x0E,   0x2E,   0x3D,   0x0E },
 182         { STV0900_QPSK_23,      0x2F,   0x3F,   0x2E,   0x2F,   0x0E,
 183                                 0x0F,   0x0E,   0x1E,   0x3D,   0x3D },
 184         { STV0900_QPSK_34,      0x3F,   0x3F,   0x3E,   0x1F,   0x0E,
 185                                 0x3E,   0x0E,   0x1E,   0x3D,   0x3D },
 186         { STV0900_QPSK_45,      0x3F,   0x3F,   0x3E,   0x1F,   0x0E,
 187                                 0x3E,   0x0E,   0x1E,   0x3D,   0x3D },
 188         { STV0900_QPSK_56,      0x3F,   0x3F,   0x3E,   0x1F,   0x0E,
 189                                 0x3E,   0x0E,   0x1E,   0x3D,   0x3D },
 190         { STV0900_QPSK_89,      0x3F,   0x3F,   0x3E,   0x1F,   0x1E,
 191                                 0x3E,   0x0E,   0x1E,   0x3D,   0x3D },
 192         { STV0900_QPSK_910,     0x3F,   0x3F,   0x3E,   0x1F,   0x1E,
 193                                 0x3E,   0x0E,   0x1E,   0x3D,   0x3D },
 194         { STV0900_8PSK_35,      0x3c,   0x0c,   0x1c,   0x3b,   0x0c,
 195                                 0x3b,   0x2b,   0x2b,   0x1b,   0x2b },
 196         { STV0900_8PSK_23,      0x1d,   0x0c,   0x3c,   0x0c,   0x2c,
 197                                 0x3b,   0x0c,   0x2b,   0x2b,   0x2b },
 198         { STV0900_8PSK_34,      0x0e,   0x1c,   0x3d,   0x0c,   0x0d,
 199                                 0x3b,   0x2c,   0x3b,   0x0c,   0x2b },
 200         { STV0900_8PSK_56,      0x2e,   0x3e,   0x1e,   0x2e,   0x2d,
 201                                 0x1e,   0x3c,   0x2d,   0x2c,   0x1d },
 202         { STV0900_8PSK_89,      0x3e,   0x3e,   0x1e,   0x2e,   0x3d,
 203                                 0x1e,   0x0d,   0x2d,   0x3c,   0x1d },
 204         { STV0900_8PSK_910,     0x3e,   0x3e,   0x1e,   0x2e,   0x3d,
 205                                 0x1e,   0x1d,   0x2d,   0x0d,   0x1d },
 206 };
 207 
 208 
 209 
 210 /* Cut 2.0 Tracking carrier loop carrier 16APSK 2/3 to 32APSK 9/10 long Frame */
 211 static const struct stv0900_car_loop_optim FE_STV0900_S2APSKCarLoopCut20[11] = {
 212         /* Modcod               2MPon   2MPoff  5MPon   5MPoff  10MPon
 213                                 10MPoff 20MPon  20MPoff 30MPon  30MPoff */
 214         { STV0900_16APSK_23,    0x0C,   0x0C,   0x0C,   0x0C,   0x1D,
 215                                 0x0C,   0x3C,   0x0C,   0x2C,   0x0C },
 216         { STV0900_16APSK_34,    0x0C,   0x0C,   0x0C,   0x0C,   0x0E,
 217                                 0x0C,   0x2D,   0x0C,   0x1D,   0x0C },
 218         { STV0900_16APSK_45,    0x0C,   0x0C,   0x0C,   0x0C,   0x1E,
 219                                 0x0C,   0x3D,   0x0C,   0x2D,   0x0C },
 220         { STV0900_16APSK_56,    0x0C,   0x0C,   0x0C,   0x0C,   0x1E,
 221                                 0x0C,   0x3D,   0x0C,   0x2D,   0x0C },
 222         { STV0900_16APSK_89,    0x0C,   0x0C,   0x0C,   0x0C,   0x2E,
 223                                 0x0C,   0x0E,   0x0C,   0x3D,   0x0C },
 224         { STV0900_16APSK_910,   0x0C,   0x0C,   0x0C,   0x0C,   0x2E,
 225                                 0x0C,   0x0E,   0x0C,   0x3D,   0x0C },
 226         { STV0900_32APSK_34,    0x0C,   0x0C,   0x0C,   0x0C,   0x0C,
 227                                 0x0C,   0x0C,   0x0C,   0x0C,   0x0C },
 228         { STV0900_32APSK_45,    0x0C,   0x0C,   0x0C,   0x0C,   0x0C,
 229                                 0x0C,   0x0C,   0x0C,   0x0C,   0x0C },
 230         { STV0900_32APSK_56,    0x0C,   0x0C,   0x0C,   0x0C,   0x0C,
 231                                 0x0C,   0x0C,   0x0C,   0x0C,   0x0C },
 232         { STV0900_32APSK_89,    0x0C,   0x0C,   0x0C,   0x0C,   0x0C,
 233                                 0x0C,   0x0C,   0x0C,   0x0C,   0x0C },
 234         { STV0900_32APSK_910,   0x0C,   0x0C,   0x0C,   0x0C,   0x0C,
 235                                 0x0C,   0x0C,   0x0C,   0x0C,   0x0C },
 236 };
 237 
 238 
 239 /* Cut 2.0 Tracking carrier loop carrier QPSK 1/4 to QPSK 2/5 long Frame */
 240 static const struct stv0900_car_loop_optim FE_STV0900_S2LowQPCarLoopCut20[3] = {
 241         /* Modcod               2MPon   2MPoff  5MPon   5MPoff  10MPon
 242                                 10MPoff 20MPon  20MPoff 30MPon  30MPoff */
 243         { STV0900_QPSK_14,      0x0F,   0x3F,   0x0E,   0x3F,   0x2D,
 244                                 0x2F,   0x2D,   0x1F,   0x3D,   0x3E },
 245         { STV0900_QPSK_13,      0x0F,   0x3F,   0x0E,   0x3F,   0x2D,
 246                                 0x2F,   0x3D,   0x0F,   0x3D,   0x2E },
 247         { STV0900_QPSK_25,      0x1F,   0x3F,   0x1E,   0x3F,   0x3D,
 248                                 0x1F,   0x3D,   0x3E,   0x3D,   0x2E }
 249 };
 250 
 251 
 252 /* Cut 2.0 Tracking carrier loop carrier  short Frame, cut 1.2 and 2.0 */
 253 static const
 254 struct stv0900_short_frames_car_loop_optim FE_STV0900_S2ShortCarLoop[4] = {
 255         /*Mod           2Mcut1.2 2Mcut2.0 5Mcut1.2 5Mcut2.0 10Mcut1.2
 256                         10Mcut2.0 20Mcut1.2 20M_cut2.0 30Mcut1.2 30Mcut2.0*/
 257         { STV0900_QPSK,         0x3C,   0x2F,   0x2B,   0x2E,   0x0B,
 258                                 0x0E,   0x3A,   0x0E,   0x2A,   0x3D },
 259         { STV0900_8PSK,         0x0B,   0x3E,   0x2A,   0x0E,   0x0A,
 260                                 0x2D,   0x19,   0x0D,   0x09,   0x3C },
 261         { STV0900_16APSK,       0x1B,   0x1E,   0x1B,   0x1E,   0x1B,
 262                                 0x1E,   0x3A,   0x3D,   0x2A,   0x2D },
 263         { STV0900_32APSK,       0x1B,   0x1E,   0x1B,   0x1E,   0x1B,
 264                                 0x1E,   0x3A,   0x3D,   0x2A,   0x2D }
 265 };
 266 
 267 static  const struct stv0900_car_loop_optim FE_STV0900_S2CarLoopCut30[14] = {
 268         /*Modcod                2MPon   2MPoff  5MPon   5MPoff  10MPon
 269                                 10MPoff 20MPon  20MPoff 30MPon  30MPoff */
 270         { STV0900_QPSK_12,      0x3C,   0x2C,   0x0C,   0x2C,   0x1B,
 271                                 0x2C,   0x1B,   0x1C,   0x0B,   0x3B },
 272         { STV0900_QPSK_35,      0x0D,   0x0D,   0x0C,   0x0D,   0x1B,
 273                                 0x3C,   0x1B,   0x1C,   0x0B,   0x3B },
 274         { STV0900_QPSK_23,      0x1D,   0x0D,   0x0C,   0x1D,   0x2B,
 275                                 0x3C,   0x1B,   0x1C,   0x0B,   0x3B },
 276         { STV0900_QPSK_34,      0x1D,   0x1D,   0x0C,   0x1D,   0x2B,
 277                                 0x3C,   0x1B,   0x1C,   0x0B,   0x3B },
 278         { STV0900_QPSK_45,      0x2D,   0x1D,   0x1C,   0x1D,   0x2B,
 279                                 0x3C,   0x2B,   0x0C,   0x1B,   0x3B },
 280         { STV0900_QPSK_56,      0x2D,   0x1D,   0x1C,   0x1D,   0x2B,
 281                                 0x3C,   0x2B,   0x0C,   0x1B,   0x3B },
 282         { STV0900_QPSK_89,      0x3D,   0x2D,   0x1C,   0x1D,   0x3B,
 283                                 0x3C,   0x2B,   0x0C,   0x1B,   0x3B },
 284         { STV0900_QPSK_910,     0x3D,   0x2D,   0x1C,   0x1D,   0x3B,
 285                                 0x3C,   0x2B,   0x0C,   0x1B,   0x3B },
 286         { STV0900_8PSK_35,      0x39,   0x19,   0x39,   0x19,   0x19,
 287                                 0x19,   0x19,   0x19,   0x09,   0x19 },
 288         { STV0900_8PSK_23,      0x2A,   0x39,   0x1A,   0x0A,   0x39,
 289                                 0x0A,   0x29,   0x39,   0x29,   0x0A },
 290         { STV0900_8PSK_34,      0x0B,   0x3A,   0x0B,   0x0B,   0x3A,
 291                                 0x1B,   0x1A,   0x0B,   0x1A,   0x3A },
 292         { STV0900_8PSK_56,      0x0C,   0x1B,   0x3B,   0x2B,   0x1B,
 293                                 0x3B,   0x3A,   0x3B,   0x3A,   0x1B },
 294         { STV0900_8PSK_89,      0x2C,   0x2C,   0x2C,   0x1C,   0x2B,
 295                                 0x0C,   0x0B,   0x3B,   0x0B,   0x1B },
 296         { STV0900_8PSK_910,     0x2C,   0x3C,   0x2C,   0x1C,   0x3B,
 297                                 0x1C,   0x0B,   0x3B,   0x0B,   0x1B }
 298 };
 299 
 300 static  const
 301 struct stv0900_car_loop_optim FE_STV0900_S2APSKCarLoopCut30[11] = {
 302         /*Modcod                2MPon   2MPoff  5MPon   5MPoff  10MPon
 303                                 10MPoff 20MPon  20MPoff 30MPon  30MPoff */
 304         { STV0900_16APSK_23,    0x0A,   0x0A,   0x0A,   0x0A,   0x1A,
 305                                 0x0A,   0x3A,   0x0A,   0x2A,   0x0A },
 306         { STV0900_16APSK_34,    0x0A,   0x0A,   0x0A,   0x0A,   0x0B,
 307                                 0x0A,   0x3B,   0x0A,   0x1B,   0x0A },
 308         { STV0900_16APSK_45,    0x0A,   0x0A,   0x0A,   0x0A,   0x1B,
 309                                 0x0A,   0x3B,   0x0A,   0x2B,   0x0A },
 310         { STV0900_16APSK_56,    0x0A,   0x0A,   0x0A,   0x0A,   0x1B,
 311                                 0x0A,   0x3B,   0x0A,   0x2B,   0x0A },
 312         { STV0900_16APSK_89,    0x0A,   0x0A,   0x0A,   0x0A,   0x2B,
 313                                 0x0A,   0x0C,   0x0A,   0x3B,   0x0A },
 314         { STV0900_16APSK_910,   0x0A,   0x0A,   0x0A,   0x0A,   0x2B,
 315                                 0x0A,   0x0C,   0x0A,   0x3B,   0x0A },
 316         { STV0900_32APSK_34,    0x0A,   0x0A,   0x0A,   0x0A,   0x0A,
 317                                 0x0A,   0x0A,   0x0A,   0x0A,   0x0A },
 318         { STV0900_32APSK_45,    0x0A,   0x0A,   0x0A,   0x0A,   0x0A,
 319                                 0x0A,   0x0A,   0x0A,   0x0A,   0x0A },
 320         { STV0900_32APSK_56,    0x0A,   0x0A,   0x0A,   0x0A,   0x0A,
 321                                 0x0A,   0x0A,   0x0A,   0x0A,   0x0A },
 322         { STV0900_32APSK_89,    0x0A,   0x0A,   0x0A,   0x0A,   0x0A,
 323                                 0x0A,   0x0A,   0x0A,   0x0A,   0x0A },
 324         { STV0900_32APSK_910,   0x0A,   0x0A,   0x0A,   0x0A,   0x0A,
 325                                 0x0A,   0x0A,   0x0A,   0x0A,   0x0A }
 326 };
 327 
 328 static  const
 329 struct stv0900_car_loop_optim FE_STV0900_S2LowQPCarLoopCut30[3] = {
 330         /*Modcod                2MPon   2MPoff  5MPon   5MPoff  10MPon
 331                                 10MPoff 20MPon  20MPoff 30MPon  30MPoff*/
 332         { STV0900_QPSK_14,      0x0C,   0x3C,   0x0B,   0x3C,   0x2A,
 333                                 0x2C,   0x2A,   0x1C,   0x3A,   0x3B },
 334         { STV0900_QPSK_13,      0x0C,   0x3C,   0x0B,   0x3C,   0x2A,
 335                                 0x2C,   0x3A,   0x0C,   0x3A,   0x2B },
 336         { STV0900_QPSK_25,      0x1C,   0x3C,   0x1B,   0x3C,   0x3A,
 337                                 0x1C,   0x3A,   0x3B,   0x3A,   0x2B }
 338 };
 339 
 340 static  const struct stv0900_short_frames_car_loop_optim_vs_mod
 341 FE_STV0900_S2ShortCarLoopCut30[4] = {
 342         /*Mod           2Mcut3.0 5Mcut3.0 10Mcut3.0 20Mcut3.0 30Mcut3.0*/
 343         { STV0900_QPSK,         0x2C,   0x2B,   0x0B,   0x0B,   0x3A },
 344         { STV0900_8PSK,         0x3B,   0x0B,   0x2A,   0x0A,   0x39 },
 345         { STV0900_16APSK,       0x1B,   0x1B,   0x1B,   0x3A,   0x2A },
 346         { STV0900_32APSK,       0x1B,   0x1B,   0x1B,   0x3A,   0x2A },
 347 
 348 };
 349 
 350 static const u16 STV0900_InitVal[181][2] = {
 351         { R0900_OUTCFG          , 0x00  },
 352         { R0900_AGCRF1CFG       , 0x11  },
 353         { R0900_AGCRF2CFG       , 0x13  },
 354         { R0900_TSGENERAL1X     , 0x14  },
 355         { R0900_TSTTNR2         , 0x21  },
 356         { R0900_TSTTNR4         , 0x21  },
 357         { R0900_P2_DISTXCTL     , 0x22  },
 358         { R0900_P2_F22TX        , 0xc0  },
 359         { R0900_P2_F22RX        , 0xc0  },
 360         { R0900_P2_DISRXCTL     , 0x00  },
 361         { R0900_P2_TNRSTEPS     , 0x87  },
 362         { R0900_P2_TNRGAIN      , 0x09  },
 363         { R0900_P2_DMDCFGMD     , 0xF9  },
 364         { R0900_P2_DEMOD        , 0x08  },
 365         { R0900_P2_DMDCFG3      , 0xc4  },
 366         { R0900_P2_CARFREQ      , 0xed  },
 367         { R0900_P2_TNRCFG2      , 0x02  },
 368         { R0900_P2_TNRCFG3      , 0x02  },
 369         { R0900_P2_LDT          , 0xd0  },
 370         { R0900_P2_LDT2         , 0xb8  },
 371         { R0900_P2_TMGCFG       , 0xd2  },
 372         { R0900_P2_TMGTHRISE    , 0x20  },
 373         { R0900_P2_TMGTHFALL    , 0x00  },
 374         { R0900_P2_FECSPY       , 0x88  },
 375         { R0900_P2_FSPYDATA     , 0x3a  },
 376         { R0900_P2_FBERCPT4     , 0x00  },
 377         { R0900_P2_FSPYBER      , 0x10  },
 378         { R0900_P2_ERRCTRL1     , 0x35  },
 379         { R0900_P2_ERRCTRL2     , 0xc1  },
 380         { R0900_P2_CFRICFG      , 0xf8  },
 381         { R0900_P2_NOSCFG       , 0x1c  },
 382         { R0900_P2_DMDT0M       , 0x20  },
 383         { R0900_P2_CORRELMANT   , 0x70  },
 384         { R0900_P2_CORRELABS    , 0x88  },
 385         { R0900_P2_AGC2O        , 0x5b  },
 386         { R0900_P2_AGC2REF      , 0x38  },
 387         { R0900_P2_CARCFG       , 0xe4  },
 388         { R0900_P2_ACLC         , 0x1A  },
 389         { R0900_P2_BCLC         , 0x09  },
 390         { R0900_P2_CARHDR       , 0x08  },
 391         { R0900_P2_KREFTMG      , 0xc1  },
 392         { R0900_P2_SFRUPRATIO   , 0xf0  },
 393         { R0900_P2_SFRLOWRATIO  , 0x70  },
 394         { R0900_P2_SFRSTEP      , 0x58  },
 395         { R0900_P2_TMGCFG2      , 0x01  },
 396         { R0900_P2_CAR2CFG      , 0x26  },
 397         { R0900_P2_BCLC2S2Q     , 0x86  },
 398         { R0900_P2_BCLC2S28     , 0x86  },
 399         { R0900_P2_SMAPCOEF7    , 0x77  },
 400         { R0900_P2_SMAPCOEF6    , 0x85  },
 401         { R0900_P2_SMAPCOEF5    , 0x77  },
 402         { R0900_P2_TSCFGL       , 0x20  },
 403         { R0900_P2_DMDCFG2      , 0x3b  },
 404         { R0900_P2_MODCODLST0   , 0xff  },
 405         { R0900_P2_MODCODLST1   , 0xff  },
 406         { R0900_P2_MODCODLST2   , 0xff  },
 407         { R0900_P2_MODCODLST3   , 0xff  },
 408         { R0900_P2_MODCODLST4   , 0xff  },
 409         { R0900_P2_MODCODLST5   , 0xff  },
 410         { R0900_P2_MODCODLST6   , 0xff  },
 411         { R0900_P2_MODCODLST7   , 0xcc  },
 412         { R0900_P2_MODCODLST8   , 0xcc  },
 413         { R0900_P2_MODCODLST9   , 0xcc  },
 414         { R0900_P2_MODCODLSTA   , 0xcc  },
 415         { R0900_P2_MODCODLSTB   , 0xcc  },
 416         { R0900_P2_MODCODLSTC   , 0xcc  },
 417         { R0900_P2_MODCODLSTD   , 0xcc  },
 418         { R0900_P2_MODCODLSTE   , 0xcc  },
 419         { R0900_P2_MODCODLSTF   , 0xcf  },
 420         { R0900_P1_DISTXCTL     , 0x22  },
 421         { R0900_P1_F22TX        , 0xc0  },
 422         { R0900_P1_F22RX        , 0xc0  },
 423         { R0900_P1_DISRXCTL     , 0x00  },
 424         { R0900_P1_TNRSTEPS     , 0x87  },
 425         { R0900_P1_TNRGAIN      , 0x09  },
 426         { R0900_P1_DMDCFGMD     , 0xf9  },
 427         { R0900_P1_DEMOD        , 0x08  },
 428         { R0900_P1_DMDCFG3      , 0xc4  },
 429         { R0900_P1_DMDT0M       , 0x20  },
 430         { R0900_P1_CARFREQ      , 0xed  },
 431         { R0900_P1_TNRCFG2      , 0x82  },
 432         { R0900_P1_TNRCFG3      , 0x02  },
 433         { R0900_P1_LDT          , 0xd0  },
 434         { R0900_P1_LDT2         , 0xb8  },
 435         { R0900_P1_TMGCFG       , 0xd2  },
 436         { R0900_P1_TMGTHRISE    , 0x20  },
 437         { R0900_P1_TMGTHFALL    , 0x00  },
 438         { R0900_P1_SFRUPRATIO   , 0xf0  },
 439         { R0900_P1_SFRLOWRATIO  , 0x70  },
 440         { R0900_P1_TSCFGL       , 0x20  },
 441         { R0900_P1_FECSPY       , 0x88  },
 442         { R0900_P1_FSPYDATA     , 0x3a  },
 443         { R0900_P1_FBERCPT4     , 0x00  },
 444         { R0900_P1_FSPYBER      , 0x10  },
 445         { R0900_P1_ERRCTRL1     , 0x35  },
 446         { R0900_P1_ERRCTRL2     , 0xc1  },
 447         { R0900_P1_CFRICFG      , 0xf8  },
 448         { R0900_P1_NOSCFG       , 0x1c  },
 449         { R0900_P1_CORRELMANT   , 0x70  },
 450         { R0900_P1_CORRELABS    , 0x88  },
 451         { R0900_P1_AGC2O        , 0x5b  },
 452         { R0900_P1_AGC2REF      , 0x38  },
 453         { R0900_P1_CARCFG       , 0xe4  },
 454         { R0900_P1_ACLC         , 0x1A  },
 455         { R0900_P1_BCLC         , 0x09  },
 456         { R0900_P1_CARHDR       , 0x08  },
 457         { R0900_P1_KREFTMG      , 0xc1  },
 458         { R0900_P1_SFRSTEP      , 0x58  },
 459         { R0900_P1_TMGCFG2      , 0x01  },
 460         { R0900_P1_CAR2CFG      , 0x26  },
 461         { R0900_P1_BCLC2S2Q     , 0x86  },
 462         { R0900_P1_BCLC2S28     , 0x86  },
 463         { R0900_P1_SMAPCOEF7    , 0x77  },
 464         { R0900_P1_SMAPCOEF6    , 0x85  },
 465         { R0900_P1_SMAPCOEF5    , 0x77  },
 466         { R0900_P1_DMDCFG2      , 0x3b  },
 467         { R0900_P1_MODCODLST0   , 0xff  },
 468         { R0900_P1_MODCODLST1   , 0xff  },
 469         { R0900_P1_MODCODLST2   , 0xff  },
 470         { R0900_P1_MODCODLST3   , 0xff  },
 471         { R0900_P1_MODCODLST4   , 0xff  },
 472         { R0900_P1_MODCODLST5   , 0xff  },
 473         { R0900_P1_MODCODLST6   , 0xff  },
 474         { R0900_P1_MODCODLST7   , 0xcc  },
 475         { R0900_P1_MODCODLST8   , 0xcc  },
 476         { R0900_P1_MODCODLST9   , 0xcc  },
 477         { R0900_P1_MODCODLSTA   , 0xcc  },
 478         { R0900_P1_MODCODLSTB   , 0xcc  },
 479         { R0900_P1_MODCODLSTC   , 0xcc  },
 480         { R0900_P1_MODCODLSTD   , 0xcc  },
 481         { R0900_P1_MODCODLSTE   , 0xcc  },
 482         { R0900_P1_MODCODLSTF   , 0xcf  },
 483         { R0900_GENCFG          , 0x1d  },
 484         { R0900_NBITER_NF4      , 0x37  },
 485         { R0900_NBITER_NF5      , 0x29  },
 486         { R0900_NBITER_NF6      , 0x37  },
 487         { R0900_NBITER_NF7      , 0x33  },
 488         { R0900_NBITER_NF8      , 0x31  },
 489         { R0900_NBITER_NF9      , 0x2f  },
 490         { R0900_NBITER_NF10     , 0x39  },
 491         { R0900_NBITER_NF11     , 0x3a  },
 492         { R0900_NBITER_NF12     , 0x29  },
 493         { R0900_NBITER_NF13     , 0x37  },
 494         { R0900_NBITER_NF14     , 0x33  },
 495         { R0900_NBITER_NF15     , 0x2f  },
 496         { R0900_NBITER_NF16     , 0x39  },
 497         { R0900_NBITER_NF17     , 0x3a  },
 498         { R0900_NBITERNOERR     , 0x04  },
 499         { R0900_GAINLLR_NF4     , 0x0C  },
 500         { R0900_GAINLLR_NF5     , 0x0F  },
 501         { R0900_GAINLLR_NF6     , 0x11  },
 502         { R0900_GAINLLR_NF7     , 0x14  },
 503         { R0900_GAINLLR_NF8     , 0x17  },
 504         { R0900_GAINLLR_NF9     , 0x19  },
 505         { R0900_GAINLLR_NF10    , 0x20  },
 506         { R0900_GAINLLR_NF11    , 0x21  },
 507         { R0900_GAINLLR_NF12    , 0x0D  },
 508         { R0900_GAINLLR_NF13    , 0x0F  },
 509         { R0900_GAINLLR_NF14    , 0x13  },
 510         { R0900_GAINLLR_NF15    , 0x1A  },
 511         { R0900_GAINLLR_NF16    , 0x1F  },
 512         { R0900_GAINLLR_NF17    , 0x21  },
 513         { R0900_RCCFG2          , 0x20  },
 514         { R0900_P1_FECM         , 0x01  }, /*disable DSS modes*/
 515         { R0900_P2_FECM         , 0x01  }, /*disable DSS modes*/
 516         { R0900_P1_PRVIT        , 0x2F  }, /*disable puncture rate 6/7*/
 517         { R0900_P2_PRVIT        , 0x2F  }, /*disable puncture rate 6/7*/
 518         { R0900_STROUT1CFG      , 0x4c  },
 519         { R0900_STROUT2CFG      , 0x4c  },
 520         { R0900_CLKOUT1CFG      , 0x50  },
 521         { R0900_CLKOUT2CFG      , 0x50  },
 522         { R0900_DPN1CFG         , 0x4a  },
 523         { R0900_DPN2CFG         , 0x4a  },
 524         { R0900_DATA71CFG       , 0x52  },
 525         { R0900_DATA72CFG       , 0x52  },
 526         { R0900_P1_TSCFGM       , 0xc0  },
 527         { R0900_P2_TSCFGM       , 0xc0  },
 528         { R0900_P1_TSCFGH       , 0xe0  }, /* DVB-CI timings */
 529         { R0900_P2_TSCFGH       , 0xe0  }, /* DVB-CI timings */
 530         { R0900_P1_TSSPEED      , 0x40  },
 531         { R0900_P2_TSSPEED      , 0x40  },
 532 };
 533 
 534 static const u16 STV0900_Cut20_AddOnVal[32][2] = {
 535         { R0900_P2_DMDCFG3      , 0xe8  },
 536         { R0900_P2_DMDCFG4      , 0x10  },
 537         { R0900_P2_CARFREQ      , 0x38  },
 538         { R0900_P2_CARHDR       , 0x20  },
 539         { R0900_P2_KREFTMG      , 0x5a  },
 540         { R0900_P2_SMAPCOEF7    , 0x06  },
 541         { R0900_P2_SMAPCOEF6    , 0x00  },
 542         { R0900_P2_SMAPCOEF5    , 0x04  },
 543         { R0900_P2_NOSCFG       , 0x0c  },
 544         { R0900_P1_DMDCFG3      , 0xe8  },
 545         { R0900_P1_DMDCFG4      , 0x10  },
 546         { R0900_P1_CARFREQ      , 0x38  },
 547         { R0900_P1_CARHDR       , 0x20  },
 548         { R0900_P1_KREFTMG      , 0x5a  },
 549         { R0900_P1_SMAPCOEF7    , 0x06  },
 550         { R0900_P1_SMAPCOEF6    , 0x00  },
 551         { R0900_P1_SMAPCOEF5    , 0x04  },
 552         { R0900_P1_NOSCFG       , 0x0c  },
 553         { R0900_GAINLLR_NF4     , 0x21  },
 554         { R0900_GAINLLR_NF5     , 0x21  },
 555         { R0900_GAINLLR_NF6     , 0x20  },
 556         { R0900_GAINLLR_NF7     , 0x1F  },
 557         { R0900_GAINLLR_NF8     , 0x1E  },
 558         { R0900_GAINLLR_NF9     , 0x1E  },
 559         { R0900_GAINLLR_NF10    , 0x1D  },
 560         { R0900_GAINLLR_NF11    , 0x1B  },
 561         { R0900_GAINLLR_NF12    , 0x20  },
 562         { R0900_GAINLLR_NF13    , 0x20  },
 563         { R0900_GAINLLR_NF14    , 0x20  },
 564         { R0900_GAINLLR_NF15    , 0x20  },
 565         { R0900_GAINLLR_NF16    , 0x20  },
 566         { R0900_GAINLLR_NF17    , 0x21  }
 567 
 568 };
 569 
 570 #endif

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