diff options
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-dvb.c')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index a3906225c493..af8a225763d3 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -61,6 +61,8 @@ | |||
61 | #include "cx23885-f300.h" | 61 | #include "cx23885-f300.h" |
62 | #include "altera-ci.h" | 62 | #include "altera-ci.h" |
63 | #include "stv0367.h" | 63 | #include "stv0367.h" |
64 | #include "drxk.h" | ||
65 | #include "mt2063.h" | ||
64 | 66 | ||
65 | static unsigned int debug; | 67 | static unsigned int debug; |
66 | 68 | ||
@@ -600,6 +602,24 @@ static struct xc5000_config netup_xc5000_config[] = { | |||
600 | }, | 602 | }, |
601 | }; | 603 | }; |
602 | 604 | ||
605 | static struct drxk_config terratec_drxk_config[] = { | ||
606 | { | ||
607 | .adr = 0x29, | ||
608 | .no_i2c_bridge = 1, | ||
609 | }, { | ||
610 | .adr = 0x2a, | ||
611 | .no_i2c_bridge = 1, | ||
612 | }, | ||
613 | }; | ||
614 | |||
615 | static struct mt2063_config terratec_mt2063_config[] = { | ||
616 | { | ||
617 | .tuner_address = 0x60, | ||
618 | }, { | ||
619 | .tuner_address = 0x67, | ||
620 | }, | ||
621 | }; | ||
622 | |||
603 | int netup_altera_fpga_rw(void *device, int flag, int data, int read) | 623 | int netup_altera_fpga_rw(void *device, int flag, int data, int read) |
604 | { | 624 | { |
605 | struct cx23885_dev *dev = (struct cx23885_dev *)device; | 625 | struct cx23885_dev *dev = (struct cx23885_dev *)device; |
@@ -1115,6 +1135,39 @@ static int dvb_register(struct cx23885_tsport *port) | |||
1115 | goto frontend_detach; | 1135 | goto frontend_detach; |
1116 | } | 1136 | } |
1117 | break; | 1137 | break; |
1138 | case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL: | ||
1139 | i2c_bus = &dev->i2c_bus[0]; | ||
1140 | i2c_bus2 = &dev->i2c_bus[1]; | ||
1141 | |||
1142 | switch (port->nr) { | ||
1143 | /* port b */ | ||
1144 | case 1: | ||
1145 | fe0->dvb.frontend = dvb_attach(drxk_attach, | ||
1146 | &terratec_drxk_config[0], | ||
1147 | &i2c_bus->i2c_adap); | ||
1148 | if (fe0->dvb.frontend != NULL) { | ||
1149 | if (!dvb_attach(mt2063_attach, | ||
1150 | fe0->dvb.frontend, | ||
1151 | &terratec_mt2063_config[0], | ||
1152 | &i2c_bus2->i2c_adap)) | ||
1153 | goto frontend_detach; | ||
1154 | } | ||
1155 | break; | ||
1156 | /* port c */ | ||
1157 | case 2: | ||
1158 | fe0->dvb.frontend = dvb_attach(drxk_attach, | ||
1159 | &terratec_drxk_config[1], | ||
1160 | &i2c_bus->i2c_adap); | ||
1161 | if (fe0->dvb.frontend != NULL) { | ||
1162 | if (!dvb_attach(mt2063_attach, | ||
1163 | fe0->dvb.frontend, | ||
1164 | &terratec_mt2063_config[1], | ||
1165 | &i2c_bus2->i2c_adap)) | ||
1166 | goto frontend_detach; | ||
1167 | } | ||
1168 | break; | ||
1169 | } | ||
1170 | break; | ||
1118 | default: | 1171 | default: |
1119 | printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " | 1172 | printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " |
1120 | " isn't supported yet\n", | 1173 | " isn't supported yet\n", |