diff options
author | Antti Palosaari <crope@iki.fi> | 2010-08-13 02:49:24 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-20 23:04:42 -0400 |
commit | 2158e5090b5cc99ba05b43657a35d567cf077fe3 (patch) | |
tree | aecb434022497c3edfd95f6510b1de8f5be3f85c | |
parent | 51ff2e2c8eaf0cc25c024849743613680b87778c (diff) |
V4L/DVB: af9013: add support for tda18218 silicon tuner
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/dvb/frontends/af9013.c | 14 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/af9013_priv.h | 5 |
2 files changed, 17 insertions, 2 deletions
diff --git a/drivers/media/dvb/frontends/af9013.c b/drivers/media/dvb/frontends/af9013.c index dac917f7bb7f..a780c32ebce4 100644 --- a/drivers/media/dvb/frontends/af9013.c +++ b/drivers/media/dvb/frontends/af9013.c | |||
@@ -486,6 +486,19 @@ static int af9013_set_freq_ctrl(struct af9013_state *state, fe_bandwidth_t bw) | |||
486 | if_sample_freq = 4300000; /* 4.3 MHz */ | 486 | if_sample_freq = 4300000; /* 4.3 MHz */ |
487 | break; | 487 | break; |
488 | } | 488 | } |
489 | } else if (state->config.tuner == AF9013_TUNER_TDA18218) { | ||
490 | switch (bw) { | ||
491 | case BANDWIDTH_6_MHZ: | ||
492 | if_sample_freq = 3000000; /* 3 MHz */ | ||
493 | break; | ||
494 | case BANDWIDTH_7_MHZ: | ||
495 | if_sample_freq = 3500000; /* 3.5 MHz */ | ||
496 | break; | ||
497 | case BANDWIDTH_8_MHZ: | ||
498 | default: | ||
499 | if_sample_freq = 4000000; /* 4 MHz */ | ||
500 | break; | ||
501 | } | ||
489 | } | 502 | } |
490 | 503 | ||
491 | while (if_sample_freq > (adc_freq / 2)) | 504 | while (if_sample_freq > (adc_freq / 2)) |
@@ -1393,6 +1406,7 @@ static int af9013_init(struct dvb_frontend *fe) | |||
1393 | init = tuner_init_mt2060_2; | 1406 | init = tuner_init_mt2060_2; |
1394 | break; | 1407 | break; |
1395 | case AF9013_TUNER_TDA18271: | 1408 | case AF9013_TUNER_TDA18271: |
1409 | case AF9013_TUNER_TDA18218: | ||
1396 | len = ARRAY_SIZE(tuner_init_tda18271); | 1410 | len = ARRAY_SIZE(tuner_init_tda18271); |
1397 | init = tuner_init_tda18271; | 1411 | init = tuner_init_tda18271; |
1398 | break; | 1412 | break; |
diff --git a/drivers/media/dvb/frontends/af9013_priv.h b/drivers/media/dvb/frontends/af9013_priv.h index 0fd42b7e248e..0dcca60f0668 100644 --- a/drivers/media/dvb/frontends/af9013_priv.h +++ b/drivers/media/dvb/frontends/af9013_priv.h | |||
@@ -791,8 +791,9 @@ static struct regdesc tuner_init_unknown[] = { | |||
791 | { 0x9bd9, 0, 8, 0x08 }, | 791 | { 0x9bd9, 0, 8, 0x08 }, |
792 | }; | 792 | }; |
793 | 793 | ||
794 | /* NXP TDA18271 tuner init | 794 | /* NXP TDA18271 & TDA18218 tuner init |
795 | AF9013_TUNER_TDA18271 = 156 */ | 795 | AF9013_TUNER_TDA18271 = 156 |
796 | AF9013_TUNER_TDA18218 = 179 */ | ||
796 | static struct regdesc tuner_init_tda18271[] = { | 797 | static struct regdesc tuner_init_tda18271[] = { |
797 | { 0x9bd5, 0, 8, 0x01 }, | 798 | { 0x9bd5, 0, 8, 0x01 }, |
798 | { 0x9bd6, 0, 8, 0x04 }, | 799 | { 0x9bd6, 0, 8, 0x04 }, |