diff options
Diffstat (limited to 'drivers/media/video')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 10 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 14 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
3 files changed, 25 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index 0b050bc88ef..dbc59d26f6f 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -166,6 +166,10 @@ struct cx23885_board cx23885_boards[] = { | |||
166 | .name = "TurboSight TBS 6920", | 166 | .name = "TurboSight TBS 6920", |
167 | .portb = CX23885_MPEG_DVB, | 167 | .portb = CX23885_MPEG_DVB, |
168 | }, | 168 | }, |
169 | [CX23885_BOARD_TEVII_S470] = { | ||
170 | .name = "TeVii S470", | ||
171 | .portb = CX23885_MPEG_DVB, | ||
172 | }, | ||
169 | }; | 173 | }; |
170 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 174 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); |
171 | 175 | ||
@@ -253,6 +257,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
253 | .subvendor = 0x6920, | 257 | .subvendor = 0x6920, |
254 | .subdevice = 0x8888, | 258 | .subdevice = 0x8888, |
255 | .card = CX23885_BOARD_TBS_6920, | 259 | .card = CX23885_BOARD_TBS_6920, |
260 | }, { | ||
261 | .subvendor = 0xd470, | ||
262 | .subdevice = 0x9022, | ||
263 | .card = CX23885_BOARD_TEVII_S470, | ||
256 | }, | 264 | }, |
257 | }; | 265 | }; |
258 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 266 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); |
@@ -561,6 +569,7 @@ void cx23885_gpio_setup(struct cx23885_dev *dev) | |||
561 | cx_set(GP0_IO, 0x00040004); | 569 | cx_set(GP0_IO, 0x00040004); |
562 | break; | 570 | break; |
563 | case CX23885_BOARD_TBS_6920: | 571 | case CX23885_BOARD_TBS_6920: |
572 | case CX23885_BOARD_TEVII_S470: | ||
564 | cx_write(MC417_CTL, 0x00000036); | 573 | cx_write(MC417_CTL, 0x00000036); |
565 | cx_write(MC417_OEN, 0x00001000); | 574 | cx_write(MC417_OEN, 0x00001000); |
566 | cx_write(MC417_RWD, 0x00001800); | 575 | cx_write(MC417_RWD, 0x00001800); |
@@ -645,6 +654,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
645 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | 654 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
646 | ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; | 655 | ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; |
647 | break; | 656 | break; |
657 | case CX23885_BOARD_TEVII_S470: | ||
648 | case CX23885_BOARD_TBS_6920: | 658 | case CX23885_BOARD_TBS_6920: |
649 | ts1->gen_ctrl_val = 0x5; /* Parallel */ | 659 | ts1->gen_ctrl_val = 0x5; /* Parallel */ |
650 | ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | 660 | ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index 3e0b04074e5..a6b62a7bf61 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -327,6 +327,10 @@ static struct cx24116_config tbs_cx24116_config = { | |||
327 | .demod_address = 0x05, | 327 | .demod_address = 0x05, |
328 | }; | 328 | }; |
329 | 329 | ||
330 | static struct cx24116_config tevii_cx24116_config = { | ||
331 | .demod_address = 0x55, | ||
332 | }; | ||
333 | |||
330 | static int dvb_register(struct cx23885_tsport *port) | 334 | static int dvb_register(struct cx23885_tsport *port) |
331 | { | 335 | { |
332 | struct cx23885_dev *dev = port->dev; | 336 | struct cx23885_dev *dev = port->dev; |
@@ -555,6 +559,16 @@ static int dvb_register(struct cx23885_tsport *port) | |||
555 | fe0->dvb.frontend->ops.set_voltage = tbs_set_voltage; | 559 | fe0->dvb.frontend->ops.set_voltage = tbs_set_voltage; |
556 | 560 | ||
557 | break; | 561 | break; |
562 | case CX23885_BOARD_TEVII_S470: | ||
563 | i2c_bus = &dev->i2c_bus[1]; | ||
564 | |||
565 | fe0->dvb.frontend = dvb_attach(cx24116_attach, | ||
566 | &tevii_cx24116_config, | ||
567 | &i2c_bus->i2c_adap); | ||
568 | if (fe0->dvb.frontend != NULL) | ||
569 | fe0->dvb.frontend->ops.set_voltage = tbs_set_voltage; | ||
570 | |||
571 | break; | ||
558 | default: | 572 | default: |
559 | printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " | 573 | printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " |
560 | " isn't supported yet\n", | 574 | " isn't supported yet\n", |
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h index b4f23238598..01856fb48a4 100644 --- a/drivers/media/video/cx23885/cx23885.h +++ b/drivers/media/video/cx23885/cx23885.h | |||
@@ -68,6 +68,7 @@ | |||
68 | #define CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H 12 | 68 | #define CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H 12 |
69 | #define CX23885_BOARD_COMPRO_VIDEOMATE_E650F 13 | 69 | #define CX23885_BOARD_COMPRO_VIDEOMATE_E650F 13 |
70 | #define CX23885_BOARD_TBS_6920 14 | 70 | #define CX23885_BOARD_TBS_6920 14 |
71 | #define CX23885_BOARD_TEVII_S470 15 | ||
71 | 72 | ||
72 | /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */ | 73 | /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */ |
73 | #define CX23885_NORMS (\ | 74 | #define CX23885_NORMS (\ |