[media] rtl2832: add inittab for FC2580 tuner
authorAntti Palosaari <crope@iki.fi>
Fri, 24 Apr 2015 01:52:07 +0000 (22:52 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 18 May 2015 18:55:52 +0000 (15:55 -0300)
Add reg/val inittab for FC2580 tuner.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-frontends/rtl2832.c
drivers/media/dvb-frontends/rtl2832.h
drivers/media/dvb-frontends/rtl2832_priv.h

index 55a8b1f26beee714b9b0539a3b3911a041954dcb..a57c478e230679e7e6223447d3c8a551af2fd160 100644 (file)
@@ -358,6 +358,10 @@ static int rtl2832_init(struct dvb_frontend *fe)
        dev_dbg(&client->dev, "load settings for tuner=%02x\n",
                dev->pdata->tuner);
        switch (dev->pdata->tuner) {
+       case RTL2832_TUNER_FC2580:
+               len = ARRAY_SIZE(rtl2832_tuner_init_fc2580);
+               init = rtl2832_tuner_init_fc2580;
+               break;
        case RTL2832_TUNER_FC0012:
        case RTL2832_TUNER_FC0013:
                len = ARRAY_SIZE(rtl2832_tuner_init_fc0012);
index c6cdcc45d1ce68493e829f60902e6c77a14f2c10..c29a4c2bf71ab1debcce9d71f0fee93d82627442 100644 (file)
@@ -41,6 +41,7 @@ struct rtl2832_platform_data {
        /*
         * XXX: This list must be kept sync with dvb_usb_rtl28xxu USB IF driver.
         */
+#define RTL2832_TUNER_FC2580    0x21
 #define RTL2832_TUNER_TUA9001   0x24
 #define RTL2832_TUNER_FC0012    0x26
 #define RTL2832_TUNER_E4000     0x27
index a973b8aba07cf5310c7555ebf15fe0c15c5d2ade..6f3a49c63ab0b682554b55ef94d71c7f2c61098e 100644 (file)
@@ -252,6 +252,30 @@ enum DVBT_REG_BIT_NAME {
        DVBT_REG_BIT_NAME_ITEM_TERMINATOR,
 };
 
+static const struct rtl2832_reg_value rtl2832_tuner_init_fc2580[] = {
+       {DVBT_DAGC_TRG_VAL,             0x39},
+       {DVBT_AGC_TARG_VAL_0,            0x0},
+       {DVBT_AGC_TARG_VAL_8_1,         0x5a},
+       {DVBT_AAGC_LOOP_GAIN,           0x16},
+       {DVBT_LOOP_GAIN2_3_0,            0x6},
+       {DVBT_LOOP_GAIN2_4,              0x1},
+       {DVBT_LOOP_GAIN3,               0x16},
+       {DVBT_VTOP1,                    0x35},
+       {DVBT_VTOP2,                    0x21},
+       {DVBT_VTOP3,                    0x21},
+       {DVBT_KRF1,                      0x0},
+       {DVBT_KRF2,                     0x40},
+       {DVBT_KRF3,                     0x10},
+       {DVBT_KRF4,                     0x10},
+       {DVBT_IF_AGC_MIN,               0x80},
+       {DVBT_IF_AGC_MAX,               0x7f},
+       {DVBT_RF_AGC_MIN,               0x9c},
+       {DVBT_RF_AGC_MAX,               0x7f},
+       {DVBT_POLAR_RF_AGC,              0x0},
+       {DVBT_POLAR_IF_AGC,              0x0},
+       {DVBT_AD7_SETTING,            0xe9f4},
+};
+
 static const struct rtl2832_reg_value rtl2832_tuner_init_tua9001[] = {
        {DVBT_DAGC_TRG_VAL,             0x39},
        {DVBT_AGC_TARG_VAL_0,            0x0},