diff options
author | Igor M. Liplianin <liplianin@me.by> | 2009-01-17 10:11:20 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:42:23 -0400 |
commit | 96318d0cca02a91b22a2e1a1097ffeea0b3becae (patch) | |
tree | 7bf49b7ba8840efd8cbd3c0dbf53cae530ace729 /drivers/media/video/cx23885/cx23885-dvb.c | |
parent | c76b638ca20d6cbf91ee017c6f2afd7d3fcd57ff (diff) |
V4L/DVB (10266): Add support for TurboSight TBS6920 DVB-S2 PCI-e card.
TurboSight TBS6920 DVB-S2 PCI-e card contains cx23885 PCI-e bridge
and cx24116 demodulator.
http://www.linuxtv.org/wiki/index.php/TBS_6920
The card tested by me (Igor).
Signed-off-by: Igor M. Liplianin <liplianin@me.by>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-dvb.c')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index 1c454128a9df..3e0b04074e55 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include "dib7000p.h" | 43 | #include "dib7000p.h" |
44 | #include "dibx000_common.h" | 44 | #include "dibx000_common.h" |
45 | #include "zl10353.h" | 45 | #include "zl10353.h" |
46 | #include "cx24116.h" | ||
46 | 47 | ||
47 | static unsigned int debug; | 48 | static unsigned int debug; |
48 | 49 | ||
@@ -308,6 +309,24 @@ static struct zl10353_config dvico_fusionhdtv_xc3028 = { | |||
308 | .no_tuner = 1, | 309 | .no_tuner = 1, |
309 | }; | 310 | }; |
310 | 311 | ||
312 | static int tbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) | ||
313 | { | ||
314 | struct cx23885_tsport *port = fe->dvb->priv; | ||
315 | struct cx23885_dev *dev = port->dev; | ||
316 | |||
317 | if (voltage == SEC_VOLTAGE_18) | ||
318 | cx_write(MC417_RWD, 0x00001e00);/* GPIO-13 high */ | ||
319 | else if (voltage == SEC_VOLTAGE_13) | ||
320 | cx_write(MC417_RWD, 0x00001a00);/* GPIO-13 low */ | ||
321 | else | ||
322 | cx_write(MC417_RWD, 0x00001800);/* GPIO-12 low */ | ||
323 | return 0; | ||
324 | } | ||
325 | |||
326 | static struct cx24116_config tbs_cx24116_config = { | ||
327 | .demod_address = 0x05, | ||
328 | }; | ||
329 | |||
311 | static int dvb_register(struct cx23885_tsport *port) | 330 | static int dvb_register(struct cx23885_tsport *port) |
312 | { | 331 | { |
313 | struct cx23885_dev *dev = port->dev; | 332 | struct cx23885_dev *dev = port->dev; |
@@ -526,6 +545,16 @@ static int dvb_register(struct cx23885_tsport *port) | |||
526 | fe->ops.tuner_ops.set_config(fe, &ctl); | 545 | fe->ops.tuner_ops.set_config(fe, &ctl); |
527 | } | 546 | } |
528 | break; | 547 | break; |
548 | case CX23885_BOARD_TBS_6920: | ||
549 | i2c_bus = &dev->i2c_bus[0]; | ||
550 | |||
551 | fe0->dvb.frontend = dvb_attach(cx24116_attach, | ||
552 | &tbs_cx24116_config, | ||
553 | &i2c_bus->i2c_adap); | ||
554 | if (fe0->dvb.frontend != NULL) | ||
555 | fe0->dvb.frontend->ops.set_voltage = tbs_set_voltage; | ||
556 | |||
557 | break; | ||
529 | default: | 558 | default: |
530 | printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " | 559 | printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " |
531 | " isn't supported yet\n", | 560 | " isn't supported yet\n", |