aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/af9015.c
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2010-08-13 02:51:26 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-10-20 23:04:42 -0400
commitee3d440c0c864489e3afb982544c9c22a40e2188 (patch)
tree7b91226ce46bdd37b9e004ecd7244435606e13ff /drivers/media/dvb/dvb-usb/af9015.c
parent2158e5090b5cc99ba05b43657a35d567cf077fe3 (diff)
V4L/DVB: af9015: add support for tda18218 silicon tuner
Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/af9015.c')
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index ea1ed3b4592a..750a1b515139 100644
--- a/drivers/media/dvb/dvb-usb/af9015.c
+++ b/drivers/media/dvb/dvb-usb/af9015.c
@@ -31,6 +31,7 @@
31#include "tda18271.h" 31#include "tda18271.h"
32#include "mxl5005s.h" 32#include "mxl5005s.h"
33#include "mc44s803.h" 33#include "mc44s803.h"
34#include "tda18218.h"
34 35
35static int dvb_usb_af9015_debug; 36static int dvb_usb_af9015_debug;
36module_param_named(debug, dvb_usb_af9015_debug, int, 0644); 37module_param_named(debug, dvb_usb_af9015_debug, int, 0644);
@@ -992,6 +993,7 @@ static int af9015_read_config(struct usb_device *udev)
992 case AF9013_TUNER_MT2060_2: 993 case AF9013_TUNER_MT2060_2:
993 case AF9013_TUNER_TDA18271: 994 case AF9013_TUNER_TDA18271:
994 case AF9013_TUNER_QT1010A: 995 case AF9013_TUNER_QT1010A:
996 case AF9013_TUNER_TDA18218:
995 af9015_af9013_config[i].rf_spec_inv = 1; 997 af9015_af9013_config[i].rf_spec_inv = 1;
996 break; 998 break;
997 case AF9013_TUNER_MXL5003D: 999 case AF9013_TUNER_MXL5003D:
@@ -1003,9 +1005,6 @@ static int af9015_read_config(struct usb_device *udev)
1003 af9015_af9013_config[i].gpio[1] = AF9013_GPIO_LO; 1005 af9015_af9013_config[i].gpio[1] = AF9013_GPIO_LO;
1004 af9015_af9013_config[i].rf_spec_inv = 1; 1006 af9015_af9013_config[i].rf_spec_inv = 1;
1005 break; 1007 break;
1006 case AF9013_TUNER_TDA18218:
1007 warn("tuner NXP TDA18218 not supported yet");
1008 return -ENODEV;
1009 default: 1008 default:
1010 warn("tuner id:%d not supported, please report!", val); 1009 warn("tuner id:%d not supported, please report!", val);
1011 return -ENODEV; 1010 return -ENODEV;
@@ -1208,6 +1207,11 @@ static struct mc44s803_config af9015_mc44s803_config = {
1208 .dig_out = 1, 1207 .dig_out = 1,
1209}; 1208};
1210 1209
1210static struct tda18218_config af9015_tda18218_config = {
1211 .i2c_address = 0xc0,
1212 .i2c_wr_max = 21, /* max wr bytes AF9015 I2C adap can handle at once */
1213};
1214
1211static int af9015_tuner_attach(struct dvb_usb_adapter *adap) 1215static int af9015_tuner_attach(struct dvb_usb_adapter *adap)
1212{ 1216{
1213 struct af9015_state *state = adap->dev->priv; 1217 struct af9015_state *state = adap->dev->priv;
@@ -1238,6 +1242,10 @@ static int af9015_tuner_attach(struct dvb_usb_adapter *adap)
1238 ret = dvb_attach(tda18271_attach, adap->fe, 0xc0, i2c_adap, 1242 ret = dvb_attach(tda18271_attach, adap->fe, 0xc0, i2c_adap,
1239 &af9015_tda18271_config) == NULL ? -ENODEV : 0; 1243 &af9015_tda18271_config) == NULL ? -ENODEV : 0;
1240 break; 1244 break;
1245 case AF9013_TUNER_TDA18218:
1246 ret = dvb_attach(tda18218_attach, adap->fe, i2c_adap,
1247 &af9015_tda18218_config) == NULL ? -ENODEV : 0;
1248 break;
1241 case AF9013_TUNER_MXL5003D: 1249 case AF9013_TUNER_MXL5003D:
1242 ret = dvb_attach(mxl5005s_attach, adap->fe, i2c_adap, 1250 ret = dvb_attach(mxl5005s_attach, adap->fe, i2c_adap,
1243 &af9015_mxl5003_config) == NULL ? -ENODEV : 0; 1251 &af9015_mxl5003_config) == NULL ? -ENODEV : 0;