Lines Matching defs:adap

85 static int bristol_frontend_attach(struct dvb_usb_adapter *adap)
87 struct dib0700_state *st = adap->dev->priv;
88 if (adap->id == 0) {
89 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(10);
90 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); msleep(10);
91 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); msleep(10);
92 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); msleep(10);
95 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
97 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 0);
99 if (dib3000mc_i2c_enumeration(&adap->dev->i2c_adap, 2, DEFAULT_DIB3000P_I2C_ADDRESS, bristol_dib3000mc_config) != 0) {
100 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(10);
104 st->mt2060_if1[adap->id] = 1220;
105 return (adap->fe_adap[0].fe = dvb_attach(dib3000mc_attach, &adap->dev->i2c_adap,
106 (10 + adap->id) << 1, &bristol_dib3000mc_config[adap->id])) == NULL ? -ENODEV : 0;
109 static int eeprom_read(struct i2c_adapter *adap,u8 adrs,u8 *pval)
115 if (i2c_transfer(adap, msg, 2) != 2) return -EREMOTEIO;
119 static int bristol_tuner_attach(struct dvb_usb_adapter *adap)
121 struct i2c_adapter *prim_i2c = &adap->dev->i2c_adap;
122 struct i2c_adapter *tun_i2c = dib3000mc_get_tuner_i2c_master(adap->fe_adap[0].fe, 1);
125 if (adap->dev->udev->descriptor.idVendor == cpu_to_le16(USB_VID_HAUPPAUGE) &&
126 adap->dev->udev->descriptor.idProduct == cpu_to_le16(USB_PID_HAUPPAUGE_NOVA_T_500_2)) {
127 if (!eeprom_read(prim_i2c,0x59 + adap->id,&a)) if1=1220+a;
129 return dvb_attach(mt2060_attach, adap->fe_adap[0].fe, tun_i2c,
130 &bristol_mt2060_config[adap->id], if1) == NULL ?
273 static int stk7700P2_frontend_attach(struct dvb_usb_adapter *adap)
275 struct dib0700_adapter_state *state = adap->priv;
280 if (adap->id == 0) {
281 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
283 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
284 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
285 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
286 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
288 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
290 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
299 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap,
300 0x80 + (adap->id << 1),
301 &stk7700d_dib7000p_mt2266_config[adap->id]);
303 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
306 static int stk7700d_frontend_attach(struct dvb_usb_adapter *adap)
308 struct dib0700_adapter_state *state = adap->priv;
313 if (adap->id == 0) {
314 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
316 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
317 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
318 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
319 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
321 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
323 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
324 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 2, 18,
333 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap,
334 0x80 + (adap->id << 1),
335 &stk7700d_dib7000p_mt2266_config[adap->id]);
337 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
340 static int stk7700d_tuner_attach(struct dvb_usb_adapter *adap)
343 struct dib0700_adapter_state *state = adap->priv;
345 tun_i2c = state->dib7000p_ops.get_i2c_master(adap->fe_adap[0].fe,
347 return dvb_attach(mt2266_attach, adap->fe_adap[0].fe, tun_i2c,
348 &stk7700d_mt2266_config[adap->id]) == NULL ? -ENODEV : 0;
422 struct dvb_usb_adapter *adap = ptr;
423 struct dib0700_adapter_state *state = adap->priv;
428 state->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 0);
430 state->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
454 static int stk7700ph_frontend_attach(struct dvb_usb_adapter *adap)
456 struct usb_device_descriptor *desc = &adap->dev->udev->descriptor;
457 struct dib0700_adapter_state *state = adap->priv;
464 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
466 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
468 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
469 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
470 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
471 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
473 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
475 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
478 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
486 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x80,
489 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
492 static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap)
495 struct dib0700_adapter_state *state = adap->priv;
497 tun_i2c = state->dib7000p_ops.get_i2c_master(adap->fe_adap[0].fe,
503 adap->fe_adap[0].fe->callback = stk7700ph_xc3028_callback;
505 return dvb_attach(xc2028_attach, adap->fe_adap[0].fe, &stk7700ph_xc3028_config)
701 static int stk7700p_frontend_attach(struct dvb_usb_adapter *adap)
703 struct dib0700_state *st = adap->dev->priv;
704 struct dib0700_adapter_state *state = adap->priv;
711 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
712 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(50);
714 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); msleep(10);
715 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
717 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); msleep(10);
718 dib0700_ctrl_clock(adap->dev, 72, 1);
719 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); msleep(100);
721 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
725 if (state->dib7000p_ops.dib7000pc_detection(&adap->dev->i2c_adap)) {
726 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 18, &stk7700p_dib7000p_config);
730 adap->fe_adap[0].fe = dvb_attach(dib7000m_attach, &adap->dev->i2c_adap, 18, &stk7700p_dib7000m_config);
733 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
740 static int stk7700p_tuner_attach(struct dvb_usb_adapter *adap)
742 struct i2c_adapter *prim_i2c = &adap->dev->i2c_adap;
743 struct dib0700_state *st = adap->dev->priv;
745 struct dib0700_adapter_state *state = adap->priv;
749 if (adap->dev->udev->descriptor.idVendor == cpu_to_le16(USB_VID_HAUPPAUGE) &&
750 adap->dev->udev->descriptor.idProduct == cpu_to_le16(USB_PID_HAUPPAUGE_NOVA_T_STICK)) {
754 tun_i2c = state->dib7000p_ops.get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
756 tun_i2c = dib7000m_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
758 return dvb_attach(mt2060_attach, adap->fe_adap[0].fe, tun_i2c, &stk7700p_mt2060_config,
798 struct dvb_usb_adapter *adap = fe->dvb->priv;
799 struct dib0700_adapter_state *state = adap->priv;
807 struct dvb_usb_adapter *adap = fe->dvb->priv;
808 struct dib0700_adapter_state *state = adap->priv;
844 struct dvb_usb_adapter *adap = fe->dvb->priv;
845 struct dib0700_adapter_state *state = adap->priv;
862 struct dvb_usb_adapter *adap = fe->dvb->priv;
863 struct dib0700_adapter_state *state = adap->priv;
883 static int dib7770p_tuner_attach(struct dvb_usb_adapter *adap)
885 struct dib0700_adapter_state *st = adap->priv;
886 struct i2c_adapter *tun_i2c = st->dib7000p_ops.get_i2c_master(adap->fe_adap[0].fe,
889 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c,
893 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
894 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7770_set_param_override;
898 static int dib7070p_tuner_attach(struct dvb_usb_adapter *adap)
900 struct dib0700_adapter_state *st = adap->priv;
901 struct i2c_adapter *tun_i2c = st->dib7000p_ops.get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
903 if (adap->id == 0) {
904 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c, &dib7070p_dib0070_config[0]) == NULL)
907 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c, &dib7070p_dib0070_config[1]) == NULL)
911 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
912 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7070_set_param_override;
984 static int stk7070p_frontend_attach(struct dvb_usb_adapter *adap)
986 struct usb_device_descriptor *p = &adap->dev->udev->descriptor;
987 struct dib0700_adapter_state *state = adap->priv;
994 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
996 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
998 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
999 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1000 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1001 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1003 dib0700_ctrl_clock(adap->dev, 72, 1);
1006 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1008 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1010 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
1018 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x80,
1020 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1042 static int stk7770p_frontend_attach(struct dvb_usb_adapter *adap)
1044 struct usb_device_descriptor *p = &adap->dev->udev->descriptor;
1045 struct dib0700_adapter_state *state = adap->priv;
1052 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
1054 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1056 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1057 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1058 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1059 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1061 dib0700_ctrl_clock(adap->dev, 72, 1);
1064 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1066 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1068 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
1076 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x80,
1078 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1232 struct dvb_usb_adapter *adap = fe->dvb->priv;
1233 struct dib0700_adapter_state *state = adap->priv;
1240 struct dvb_usb_adapter *adap = fe->dvb->priv;
1241 struct dib0700_adapter_state *state = adap->priv;
1286 struct dvb_usb_adapter *adap = fe->dvb->priv;
1287 struct dib0700_adapter_state *state = adap->priv;
1305 static int dib807x_tuner_attach(struct dvb_usb_adapter *adap)
1307 struct dib0700_adapter_state *st = adap->priv;
1308 struct i2c_adapter *tun_i2c = st->dib8000_ops.get_i2c_master(adap->fe_adap[0].fe,
1311 if (adap->id == 0) {
1312 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c,
1316 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c,
1321 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
1322 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib807x_set_param_override;
1343 static int stk807x_frontend_attach(struct dvb_usb_adapter *adap)
1345 struct dib0700_adapter_state *state = adap->priv;
1350 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1352 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1353 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1354 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1356 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1358 dib0700_ctrl_clock(adap->dev, 72, 1);
1361 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1363 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1365 state->dib8000_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
1368 adap->fe_adap[0].fe = state->dib8000_ops.init(&adap->dev->i2c_adap, 0x80,
1371 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1375 static int stk807xpvr_frontend_attach0(struct dvb_usb_adapter *adap)
1377 struct dib0700_adapter_state *state = adap->priv;
1382 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
1384 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1386 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1387 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1388 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1390 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1392 dib0700_ctrl_clock(adap->dev, 72, 1);
1395 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1397 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1400 state->dib8000_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x22, 0x80, 0);
1402 adap->fe_adap[0].fe = state->dib8000_ops.init(&adap->dev->i2c_adap, 0x80,
1405 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1408 static int stk807xpvr_frontend_attach1(struct dvb_usb_adapter *adap)
1410 struct dib0700_adapter_state *state = adap->priv;
1416 state->dib8000_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x12, 0x82, 0);
1418 adap->fe_adap[0].fe = state->dib8000_ops.init(&adap->dev->i2c_adap, 0x82,
1421 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1538 struct dvb_usb_adapter *adap = fe->dvb->priv;
1539 struct dib0700_adapter_state *state = adap->priv;
1652 struct dvb_usb_adapter *adap = fe->dvb->priv;
1653 struct dib0700_adapter_state *state = adap->priv;
1736 static int dib809x_tuner_attach(struct dvb_usb_adapter *adap)
1738 struct dib0700_adapter_state *st = adap->priv;
1739 struct i2c_adapter *tun_i2c = st->dib8000_ops.get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
1741 /* FIXME: if adap->id != 0, check if it is fe_adap[1] */
1742 if (!dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &dib809x_dib0090_config))
1745 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
1746 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib8096_set_param_override;
1750 static int stk809x_frontend_attach(struct dvb_usb_adapter *adap)
1752 struct dib0700_adapter_state *state = adap->priv;
1757 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1759 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1760 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1761 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1763 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1765 dib0700_ctrl_clock(adap->dev, 72, 1);
1768 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1770 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1772 state->dib8000_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 18, 0x80, 0);
1774 adap->fe_adap[0].fe = state->dib8000_ops.init(&adap->dev->i2c_adap, 0x80, &dib809x_dib8000_config[0]);
1776 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1779 static int stk809x_frontend1_attach(struct dvb_usb_adapter *adap)
1781 struct dib0700_adapter_state *state = adap->priv;
1786 state->dib8000_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x82, 0);
1788 adap->fe_adap[0].fe = state->dib8000_ops.init(&adap->dev->i2c_adap, 0x82, &dib809x_dib8000_config[1]);
1790 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1793 static int nim8096md_tuner_attach(struct dvb_usb_adapter *adap)
1795 struct dib0700_adapter_state *st = adap->priv;
1797 struct dvb_frontend *fe_slave = st->dib8000_ops.get_slave_frontend(adap->fe_adap[0].fe, 1);
1803 fe_slave->dvb = adap->fe_adap[0].fe->dvb;
1806 tun_i2c = st->dib8000_ops.get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
1807 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &dib809x_dib0090_config) == NULL)
1810 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
1811 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib8096_set_param_override;
1816 static int nim8096md_frontend_attach(struct dvb_usb_adapter *adap)
1819 struct dib0700_adapter_state *state = adap->priv;
1824 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
1826 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1828 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1829 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1830 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1832 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1834 dib0700_ctrl_clock(adap->dev, 72, 1);
1837 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1839 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1841 state->dib8000_ops.i2c_enumeration(&adap->dev->i2c_adap, 2, 18, 0x80, 0);
1843 adap->fe_adap[0].fe = state->dib8000_ops.init(&adap->dev->i2c_adap, 0x80, &dib809x_dib8000_config[0]);
1844 if (adap->fe_adap[0].fe == NULL)
1851 fe_slave = state->dib8000_ops.init(&adap->dev->i2c_adap, 0x82, &dib809x_dib8000_config[1]);
1852 state->dib8000_ops.set_slave_frontend(adap->fe_adap[0].fe, fe_slave);
2114 struct dvb_usb_adapter *adap = fe->dvb->priv;
2115 struct dib0700_adapter_state *state = adap->priv;
2136 dib0700_set_i2c_speed(adap->dev, 200);
2139 dib0700_set_i2c_speed(adap->dev, 1000);
2144 static int tfe8096p_frontend_attach(struct dvb_usb_adapter *adap)
2146 struct dib0700_state *st = adap->dev->priv;
2148 struct dib0700_adapter_state *state = adap->priv;
2153 dib0700_get_version(adap->dev, NULL, NULL, &fw_version, NULL);
2157 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2159 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2160 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2161 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2163 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2165 dib0700_ctrl_clock(adap->dev, 72, 1);
2168 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2170 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2172 state->dib8000_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80, 1);
2174 adap->fe_adap[0].fe = state->dib8000_ops.init(&adap->dev->i2c_adap,
2177 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2180 static int tfe8096p_tuner_attach(struct dvb_usb_adapter *adap)
2182 struct dib0700_adapter_state *st = adap->priv;
2183 struct i2c_adapter *tun_i2c = st->dib8000_ops.get_i2c_tuner(adap->fe_adap[0].fe);
2189 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c,
2193 st->dib8000_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
2195 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
2196 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib8096p_agc_startup;
2383 static int stk9090m_frontend_attach(struct dvb_usb_adapter *adap)
2385 struct dib0700_adapter_state *state = adap->priv;
2386 struct dib0700_state *st = adap->dev->priv;
2390 dib0700_get_version(adap->dev, NULL, NULL, &fw_version, NULL);
2393 dib0700_set_i2c_speed(adap->dev, 340);
2395 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2397 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2398 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2399 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2400 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2402 dib0700_ctrl_clock(adap->dev, 72, 1);
2405 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2407 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2409 dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80);
2411 if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) {
2420 adap->fe_adap[0].fe = dvb_attach(dib9000_attach, &adap->dev->i2c_adap, 0x80, &stk9090m_config);
2422 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2425 static int dib9090_tuner_attach(struct dvb_usb_adapter *adap)
2427 struct dib0700_adapter_state *state = adap->priv;
2428 struct i2c_adapter *i2c = dib9000_get_tuner_interface(adap->fe_adap[0].fe);
2439 if (dvb_attach(dib0090_fw_register, adap->fe_adap[0].fe, i2c, &dib9090_dib0090_config) == NULL)
2441 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_1_2, 0);
2446 dib0700_set_i2c_speed(adap->dev, 1500);
2447 if (dib9000_firmware_post_pll_init(adap->fe_adap[0].fe) < 0)
2453 static int nim9090md_frontend_attach(struct dvb_usb_adapter *adap)
2455 struct dib0700_adapter_state *state = adap->priv;
2456 struct dib0700_state *st = adap->dev->priv;
2462 dib0700_get_version(adap->dev, NULL, NULL, &fw_version, NULL);
2465 dib0700_set_i2c_speed(adap->dev, 340);
2467 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2469 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2470 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2471 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2472 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2474 dib0700_ctrl_clock(adap->dev, 72, 1);
2477 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2479 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2481 if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) {
2492 dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x20, 0x80);
2493 adap->fe_adap[0].fe = dvb_attach(dib9000_attach, &adap->dev->i2c_adap, 0x80, &nim9090md_config[0]);
2495 if (adap->fe_adap[0].fe == NULL)
2498 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_3_4, 0);
2502 dib9000_set_slave_frontend(adap->fe_adap[0].fe, fe_slave);
2507 static int nim9090md_tuner_attach(struct dvb_usb_adapter *adap)
2509 struct dib0700_adapter_state *state = adap->priv;
2521 i2c = dib9000_get_tuner_interface(adap->fe_adap[0].fe);
2522 if (dvb_attach(dib0090_fw_register, adap->fe_adap[0].fe, i2c, &nim9090md_dib0090_config[0]) == NULL)
2524 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_1_2, 0);
2530 dib0700_set_i2c_speed(adap->dev, 1500);
2531 if (dib9000_firmware_post_pll_init(adap->fe_adap[0].fe) < 0)
2534 fe_slave = dib9000_get_slave_frontend(adap->fe_adap[0].fe, 1);
2536 i2c = dib9000_get_component_bus_interface(adap->fe_adap[0].fe);
2542 fe_slave->dvb = adap->fe_adap[0].fe->dvb;
2543 dib9000_fw_set_component_bus_speed(adap->fe_adap[0].fe, 1500);
2628 struct dvb_usb_adapter *adap = fe->dvb->priv;
2629 struct dib0700_adapter_state *state = adap->priv;
2664 struct dvb_usb_adapter *adap = fe->dvb->priv;
2665 struct dib0700_adapter_state *state = adap->priv;
2819 struct dvb_usb_adapter *adap = fe->dvb->priv;
2820 struct dib0700_adapter_state *state = adap->priv;
3043 static int nim7090_frontend_attach(struct dvb_usb_adapter *adap)
3045 struct dib0700_adapter_state *state = adap->priv;
3050 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3052 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3053 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3054 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3055 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3058 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3060 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3062 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, &nim7090_dib7000p_config) != 0) {
3067 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x80, &nim7090_dib7000p_config);
3069 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3072 static int nim7090_tuner_attach(struct dvb_usb_adapter *adap)
3074 struct dib0700_adapter_state *st = adap->priv;
3075 struct i2c_adapter *tun_i2c = st->dib7000p_ops.get_i2c_tuner(adap->fe_adap[0].fe);
3081 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &nim7090_dib0090_config) == NULL)
3084 st->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3086 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3087 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3091 static int tfe7090pvr_frontend0_attach(struct dvb_usb_adapter *adap)
3093 struct dib0700_state *st = adap->dev->priv;
3094 struct dib0700_adapter_state *state = adap->priv;
3102 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3104 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3105 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3106 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3107 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3110 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3112 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3115 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x20, &tfe7090pvr_dib7000p_config[0]) != 0) {
3121 dib0700_set_i2c_speed(adap->dev, 340);
3122 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x90, &tfe7090pvr_dib7000p_config[0]);
3123 if (adap->fe_adap[0].fe == NULL)
3126 state->dib7000p_ops.slave_reset(adap->fe_adap[0].fe);
3131 static int tfe7090pvr_frontend1_attach(struct dvb_usb_adapter *adap)
3134 struct dib0700_adapter_state *state = adap->priv;
3136 if (adap->dev->adapter[0].fe_adap[0].fe == NULL) {
3144 i2c = state->dib7000p_ops.get_i2c_master(adap->dev->adapter[0].fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_6_7, 1);
3151 adap->fe_adap[0].fe = state->dib7000p_ops.init(i2c, 0x92, &tfe7090pvr_dib7000p_config[1]);
3152 dib0700_set_i2c_speed(adap->dev, 200);
3154 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3157 static int tfe7090pvr_tuner0_attach(struct dvb_usb_adapter *adap)
3159 struct dib0700_adapter_state *st = adap->priv;
3160 struct i2c_adapter *tun_i2c = st->dib7000p_ops.get_i2c_tuner(adap->fe_adap[0].fe);
3166 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &tfe7090pvr_dib0090_config[0]) == NULL)
3169 st->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3171 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3172 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3176 static int tfe7090pvr_tuner1_attach(struct dvb_usb_adapter *adap)
3178 struct dib0700_adapter_state *st = adap->priv;
3179 struct i2c_adapter *tun_i2c = st->dib7000p_ops.get_i2c_tuner(adap->fe_adap[0].fe);
3185 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &tfe7090pvr_dib0090_config[1]) == NULL)
3188 st->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3190 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3191 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3195 static int tfe7790p_frontend_attach(struct dvb_usb_adapter *adap)
3197 struct dib0700_state *st = adap->dev->priv;
3198 struct dib0700_adapter_state *state = adap->priv;
3206 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3208 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3209 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3210 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3211 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3213 dib0700_ctrl_clock(adap->dev, 72, 1);
3214 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3216 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3218 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap,
3225 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap,
3228 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3231 static int tfe7790p_tuner_attach(struct dvb_usb_adapter *adap)
3233 struct dib0700_adapter_state *st = adap->priv;
3235 st->dib7000p_ops.get_i2c_tuner(adap->fe_adap[0].fe);
3242 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c,
3246 st->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3248 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3249 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3301 static int stk7070pd_frontend_attach0(struct dvb_usb_adapter *adap)
3303 struct dib0700_adapter_state *state = adap->priv;
3308 stk7070pd_init(adap->dev);
3311 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3313 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 2, 18,
3321 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x80, &stk7070pd_dib7000p_config[0]);
3322 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3325 static int stk7070pd_frontend_attach1(struct dvb_usb_adapter *adap)
3327 struct dib0700_adapter_state *state = adap->priv;
3332 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x82, &stk7070pd_dib7000p_config[1]);
3333 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3339 struct dvb_usb_adapter *adap = fe->dvb->priv;
3340 struct dvb_usb_device *dev = adap->dev;
3347 dib0700_set_gpio(dev, adap->id == 0 ? GPIO1 : GPIO0, GPIO_OUT,
3355 struct dvb_usb_adapter *adap = fe->dvb->priv;
3356 struct dvb_usb_device *dev = adap->dev;
3360 dib0700_set_gpio(dev, adap->id == 0 ? GPIO1 : GPIO0, GPIO_OUT, 0);
3371 static int novatd_frontend_attach(struct dvb_usb_adapter *adap)
3373 struct dvb_usb_device *dev = adap->dev;
3375 struct dib0700_adapter_state *state = adap->priv;
3380 if (adap->id == 0) {
3397 adap->fe_adap[0].fe = state->dib7000p_ops.init(&dev->i2c_adap,
3398 adap->id == 0 ? 0x80 : 0x82,
3399 &stk7070pd_dib7000p_config[adap->id]);
3401 if (adap->fe_adap[0].fe == NULL)
3404 st->read_status = adap->fe_adap[0].fe->ops.read_status;
3405 adap->fe_adap[0].fe->ops.read_status = novatd_read_status_override;
3406 st->sleep = adap->fe_adap[0].fe->ops.sleep;
3407 adap->fe_adap[0].fe->ops.sleep = novatd_sleep_override;
3434 static int s5h1411_frontend_attach(struct dvb_usb_adapter *adap)
3436 struct dib0700_state *st = adap->dev->priv;
3445 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 0);
3446 dib0700_set_gpio(adap->dev, GPIO3, GPIO_OUT, 0);
3447 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3449 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3451 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3453 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3454 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3455 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3456 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3457 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 0);
3461 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 1);
3464 adap->fe_adap[0].fe = dvb_attach(s5h1411_attach, &pinnacle_801e_config,
3465 &adap->dev->i2c_adap);
3466 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3472 struct dvb_usb_adapter *adap = priv;
3476 dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 0);
3478 dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 1);
3493 static int xc5000_tuner_attach(struct dvb_usb_adapter *adap)
3496 adap->fe_adap[0].fe->callback = dib0700_xc5000_tuner_callback;
3498 return dvb_attach(xc5000_attach, adap->fe_adap[0].fe, &adap->dev->i2c_adap,
3506 struct dvb_usb_adapter *adap = priv;
3507 struct dib0700_adapter_state *state = adap->priv;
3511 state->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 0);
3513 state->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3596 static int pctv340e_frontend_attach(struct dvb_usb_adapter *adap)
3598 struct dib0700_state *st = adap->dev->priv;
3599 struct dib0700_adapter_state *state = adap->priv;
3605 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
3607 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3611 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3613 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3616 dib0700_set_gpio(adap->dev, GPIO8, GPIO_OUT, 1);
3619 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 1);
3622 dib0700_ctrl_clock(adap->dev, 72, 1);
3626 if (state->dib7000p_ops.dib7000pc_detection(&adap->dev->i2c_adap) == 0) {
3632 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x12,
3636 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3647 static int xc4000_tuner_attach(struct dvb_usb_adapter *adap)
3650 struct dib0700_adapter_state *state = adap->priv;
3653 tun_i2c = state->dib7000p_ops.get_i2c_master(adap->fe_adap[0].fe,
3661 adap->fe_adap[0].fe->callback = dib0700_xc4000_tuner_callback;
3663 return dvb_attach(xc4000_attach, adap->fe_adap[0].fe, tun_i2c,
3696 static int lgdt3305_frontend_attach(struct dvb_usb_adapter *adap)
3698 struct dib0700_state *st = adap->dev->priv;
3706 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
3708 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3712 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3714 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3716 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3719 adap->fe_adap[0].fe = dvb_attach(lgdt3305_attach,
3721 &adap->dev->i2c_adap);
3723 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3726 static int mxl5007t_tuner_attach(struct dvb_usb_adapter *adap)
3728 return dvb_attach(mxl5007t_attach, adap->fe_adap[0].fe,
3729 &adap->dev->i2c_adap, 0x60,
3733 static int xbox_one_attach(struct dvb_usb_adapter *adap)
3735 struct dib0700_state *st = adap->dev->priv;
3737 struct dvb_usb_device *d = adap->dev;
3746 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
3748 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3752 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3754 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3756 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3760 mn88472_config.fe = &adap->fe_adap[0].fe;
3778 adap->fe_adap[0].fe = mn88472_config.get_dvb_frontend(client_demod);
3790 tda18250_config.fe = adap->fe_adap[0].fe;
3798 client_tuner = i2c_new_client_device(&adap->dev->i2c_adap, &info);