From ac77fb0f0ce9f77f465692d590b9615b95a99fb2 Mon Sep 17 00:00:00 2001 From: Antti Palosaari Date: Mon, 7 Jan 2013 09:51:13 -0300 Subject: [PATCH] [media] af9035: add support for 1st gen it9135 Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab --- drivers/media/usb/dvb-usb-v2/Kconfig | 1 + drivers/media/usb/dvb-usb-v2/af9035.c | 24 +++++++++++++++++++++++- drivers/media/usb/dvb-usb-v2/af9035.h | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/media/usb/dvb-usb-v2/Kconfig b/drivers/media/usb/dvb-usb-v2/Kconfig index 692224d97d06..2d4abfa75043 100644 --- a/drivers/media/usb/dvb-usb-v2/Kconfig +++ b/drivers/media/usb/dvb-usb-v2/Kconfig @@ -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. diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c index 66f65197c40d..f43e83c4122a 100644 --- a/drivers/media/usb/dvb-usb-v2/af9035.c +++ b/drivers/media/usb/dvb-usb-v2/af9035.c @@ -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 = { diff --git a/drivers/media/usb/dvb-usb-v2/af9035.h b/drivers/media/usb/dvb-usb-v2/af9035.h index 6d098a93d5ab..1b2f69f594f3 100644 --- a/drivers/media/usb/dvb-usb-v2/af9035.h +++ b/drivers/media/usb/dvb-usb-v2/af9035.h @@ -30,6 +30,7 @@ #include "mxl5007t.h" #include "tda18218.h" #include "fc2580.h" +#include "it913x.h" struct reg_val { u32 reg; -- 2.30.2