[media] af9035: add support for 1st gen it9135
authorAntti Palosaari <crope@iki.fi>
Mon, 7 Jan 2013 12:51:13 +0000 (09:51 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 21 Mar 2013 21:47:19 +0000 (18:47 -0300)
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/usb/dvb-usb-v2/Kconfig
drivers/media/usb/dvb-usb-v2/af9035.c
drivers/media/usb/dvb-usb-v2/af9035.h

index 692224d97d060b478cf707cf5dadad0900dc8994..2d4abfa75043b10504f2a941cc98ddc12233da30 100644 (file)
@@ -41,6 +41,7 @@ config DVB_USB_AF9035
        select MEDIA_TUNER_MXL5007T if MEDIA_SUBDRV_AUTOSELECT
        select MEDIA_TUNER_TDA18218 if MEDIA_SUBDRV_AUTOSELECT
        select MEDIA_TUNER_FC2580 if MEDIA_SUBDRV_AUTOSELECT
+       select MEDIA_TUNER_IT913X if MEDIA_SUBDRV_AUTOSELECT
        help
          Say Y here to support the Afatech AF9035 based DVB USB receiver.
 
index 66f65197c40d26ffa88695d0bc47e843d486297a..f43e83c4122a8f41e726b1b555eb61b035f7d0a6 100644 (file)
@@ -652,6 +652,10 @@ static int af9035_read_config_it9135(struct dvb_usb_device *d)
        int ret, i;
        u8 tmp;
 
+       /* demod I2C "address" */
+       state->af9033_config[0].i2c_addr = 0x38;
+       state->af9033_config[0].tuner = AF9033_TUNER_IT9135_38;
+       state->af9033_config[0].adc_multiplier = AF9033_ADC_MULTIPLIER_2X;
        state->dual_mode = false;
 
        /* get demod clock */
@@ -920,6 +924,20 @@ static const struct fc0012_config af9035_fc0012_config[] = {
        }
 };
 
+static struct ite_config af9035_it913x_config = {
+       .chip_ver = 0x01,
+       .chip_type = 0x9135,
+       .firmware = 0x00000000,
+       .firmware_ver = 1,
+       .adc_x2 = 1,
+       .tuner_id_0 = AF9033_TUNER_IT9135_38,
+       .tuner_id_1 = 0x00,
+       .dual_mode = 0x00,
+       .adf = 0x00,
+       /* option to read SIGNAL_LEVEL */
+       .read_slevel = 0,
+};
+
 static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
 {
        struct state *state = adap_to_priv(adap);
@@ -1082,6 +1100,11 @@ static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
                fe = dvb_attach(fc0012_attach, adap->fe[0], &d->i2c_adap,
                                &af9035_fc0012_config[adap->id]);
                break;
+       case AF9033_TUNER_IT9135_38:
+               /* attach tuner */
+               fe = dvb_attach(it913x_attach, adap->fe[0],
+                               &d->i2c_adap, 0x38, &af9035_it913x_config);
+               break;
        default:
                fe = NULL;
        }
@@ -1275,7 +1298,6 @@ static const struct dvb_usb_device_properties it9135_props = {
        .frontend_attach = af9035_frontend_attach,
        .tuner_attach = af9035_tuner_attach,
        .init = af9035_init,
-       .get_rc_config = af9035_get_rc_config,
 
        .num_adapters = 1,
        .adapter = {
index 6d098a93d5ab33c0ffe27297f9c25b2bc1f28dc9..1b2f69f594f39fbd42cef1980e1958275afd04a2 100644 (file)
@@ -30,6 +30,7 @@
 #include "mxl5007t.h"
 #include "tda18218.h"
 #include "fc2580.h"
+#include "it913x.h"
 
 struct reg_val {
        u32 reg;