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);
2107 struct dvb_usb_adapter *adap = fe->dvb->priv;
2108 struct dib0700_adapter_state *state = adap->priv;
2129 dib0700_set_i2c_speed(adap->dev, 200);
2132 dib0700_set_i2c_speed(adap->dev, 1000);
2137 static int tfe8096p_frontend_attach(struct dvb_usb_adapter *adap)
2139 struct dib0700_state *st = adap->dev->priv;
2141 struct dib0700_adapter_state *state = adap->priv;
2146 dib0700_get_version(adap->dev, NULL, NULL, &fw_version, NULL);
2150 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2152 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2153 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2154 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2156 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2158 dib0700_ctrl_clock(adap->dev, 72, 1);
2161 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2163 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2165 state->dib8000_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80, 1);
2167 adap->fe_adap[0].fe = state->dib8000_ops.init(&adap->dev->i2c_adap,
2170 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2173 static int tfe8096p_tuner_attach(struct dvb_usb_adapter *adap)
2175 struct dib0700_adapter_state *st = adap->priv;
2176 struct i2c_adapter *tun_i2c = st->dib8000_ops.get_i2c_tuner(adap->fe_adap[0].fe);
2182 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c,
2186 st->dib8000_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
2188 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
2189 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib8096p_agc_startup;
2376 static int stk9090m_frontend_attach(struct dvb_usb_adapter *adap)
2378 struct dib0700_adapter_state *state = adap->priv;
2379 struct dib0700_state *st = adap->dev->priv;
2383 dib0700_get_version(adap->dev, NULL, NULL, &fw_version, NULL);
2386 dib0700_set_i2c_speed(adap->dev, 340);
2388 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2390 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2391 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2392 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2393 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2395 dib0700_ctrl_clock(adap->dev, 72, 1);
2398 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2400 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2402 dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80);
2404 if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) {
2413 adap->fe_adap[0].fe = dvb_attach(dib9000_attach, &adap->dev->i2c_adap, 0x80, &stk9090m_config);
2415 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2418 static int dib9090_tuner_attach(struct dvb_usb_adapter *adap)
2420 struct dib0700_adapter_state *state = adap->priv;
2421 struct i2c_adapter *i2c = dib9000_get_tuner_interface(adap->fe_adap[0].fe);
2432 if (dvb_attach(dib0090_fw_register, adap->fe_adap[0].fe, i2c, &dib9090_dib0090_config) == NULL)
2434 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_1_2, 0);
2439 dib0700_set_i2c_speed(adap->dev, 1500);
2440 if (dib9000_firmware_post_pll_init(adap->fe_adap[0].fe) < 0)
2446 static int nim9090md_frontend_attach(struct dvb_usb_adapter *adap)
2448 struct dib0700_adapter_state *state = adap->priv;
2449 struct dib0700_state *st = adap->dev->priv;
2455 dib0700_get_version(adap->dev, NULL, NULL, &fw_version, NULL);
2458 dib0700_set_i2c_speed(adap->dev, 340);
2460 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2462 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2463 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2464 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2465 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2467 dib0700_ctrl_clock(adap->dev, 72, 1);
2470 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2472 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2474 if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) {
2485 dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x20, 0x80);
2486 adap->fe_adap[0].fe = dvb_attach(dib9000_attach, &adap->dev->i2c_adap, 0x80, &nim9090md_config[0]);
2488 if (adap->fe_adap[0].fe == NULL)
2491 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_3_4, 0);
2495 dib9000_set_slave_frontend(adap->fe_adap[0].fe, fe_slave);
2500 static int nim9090md_tuner_attach(struct dvb_usb_adapter *adap)
2502 struct dib0700_adapter_state *state = adap->priv;
2514 i2c = dib9000_get_tuner_interface(adap->fe_adap[0].fe);
2515 if (dvb_attach(dib0090_fw_register, adap->fe_adap[0].fe, i2c, &nim9090md_dib0090_config[0]) == NULL)
2517 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_1_2, 0);
2523 dib0700_set_i2c_speed(adap->dev, 1500);
2524 if (dib9000_firmware_post_pll_init(adap->fe_adap[0].fe) < 0)
2527 fe_slave = dib9000_get_slave_frontend(adap->fe_adap[0].fe, 1);
2529 i2c = dib9000_get_component_bus_interface(adap->fe_adap[0].fe);
2535 fe_slave->dvb = adap->fe_adap[0].fe->dvb;
2536 dib9000_fw_set_component_bus_speed(adap->fe_adap[0].fe, 1500);
2621 struct dvb_usb_adapter *adap = fe->dvb->priv;
2622 struct dib0700_adapter_state *state = adap->priv;
2657 struct dvb_usb_adapter *adap = fe->dvb->priv;
2658 struct dib0700_adapter_state *state = adap->priv;
2812 struct dvb_usb_adapter *adap = fe->dvb->priv;
2813 struct dib0700_adapter_state *state = adap->priv;
3036 static int nim7090_frontend_attach(struct dvb_usb_adapter *adap)
3038 struct dib0700_adapter_state *state = adap->priv;
3043 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3045 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3046 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3047 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3048 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3051 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3053 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3055 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, &nim7090_dib7000p_config) != 0) {
3060 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x80, &nim7090_dib7000p_config);
3062 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3065 static int nim7090_tuner_attach(struct dvb_usb_adapter *adap)
3067 struct dib0700_adapter_state *st = adap->priv;
3068 struct i2c_adapter *tun_i2c = st->dib7000p_ops.get_i2c_tuner(adap->fe_adap[0].fe);
3074 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &nim7090_dib0090_config) == NULL)
3077 st->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3079 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3080 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3084 static int tfe7090pvr_frontend0_attach(struct dvb_usb_adapter *adap)
3086 struct dib0700_state *st = adap->dev->priv;
3087 struct dib0700_adapter_state *state = adap->priv;
3095 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3097 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3098 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3099 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3100 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3103 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3105 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3108 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 1, 0x20, &tfe7090pvr_dib7000p_config[0]) != 0) {
3114 dib0700_set_i2c_speed(adap->dev, 340);
3115 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x90, &tfe7090pvr_dib7000p_config[0]);
3116 if (adap->fe_adap[0].fe == NULL)
3119 state->dib7000p_ops.slave_reset(adap->fe_adap[0].fe);
3124 static int tfe7090pvr_frontend1_attach(struct dvb_usb_adapter *adap)
3127 struct dib0700_adapter_state *state = adap->priv;
3129 if (adap->dev->adapter[0].fe_adap[0].fe == NULL) {
3137 i2c = state->dib7000p_ops.get_i2c_master(adap->dev->adapter[0].fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_6_7, 1);
3144 adap->fe_adap[0].fe = state->dib7000p_ops.init(i2c, 0x92, &tfe7090pvr_dib7000p_config[1]);
3145 dib0700_set_i2c_speed(adap->dev, 200);
3147 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3150 static int tfe7090pvr_tuner0_attach(struct dvb_usb_adapter *adap)
3152 struct dib0700_adapter_state *st = adap->priv;
3153 struct i2c_adapter *tun_i2c = st->dib7000p_ops.get_i2c_tuner(adap->fe_adap[0].fe);
3159 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &tfe7090pvr_dib0090_config[0]) == NULL)
3162 st->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3164 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3165 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3169 static int tfe7090pvr_tuner1_attach(struct dvb_usb_adapter *adap)
3171 struct dib0700_adapter_state *st = adap->priv;
3172 struct i2c_adapter *tun_i2c = st->dib7000p_ops.get_i2c_tuner(adap->fe_adap[0].fe);
3178 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &tfe7090pvr_dib0090_config[1]) == NULL)
3181 st->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3183 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3184 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3188 static int tfe7790p_frontend_attach(struct dvb_usb_adapter *adap)
3190 struct dib0700_state *st = adap->dev->priv;
3191 struct dib0700_adapter_state *state = adap->priv;
3199 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3201 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3202 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3203 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3204 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3206 dib0700_ctrl_clock(adap->dev, 72, 1);
3207 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3209 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3211 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap,
3218 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap,
3221 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3224 static int tfe7790p_tuner_attach(struct dvb_usb_adapter *adap)
3226 struct dib0700_adapter_state *st = adap->priv;
3228 st->dib7000p_ops.get_i2c_tuner(adap->fe_adap[0].fe);
3235 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c,
3239 st->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3241 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3242 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3294 static int stk7070pd_frontend_attach0(struct dvb_usb_adapter *adap)
3296 struct dib0700_adapter_state *state = adap->priv;
3301 stk7070pd_init(adap->dev);
3304 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3306 if (state->dib7000p_ops.i2c_enumeration(&adap->dev->i2c_adap, 2, 18,
3314 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x80, &stk7070pd_dib7000p_config[0]);
3315 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3318 static int stk7070pd_frontend_attach1(struct dvb_usb_adapter *adap)
3320 struct dib0700_adapter_state *state = adap->priv;
3325 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x82, &stk7070pd_dib7000p_config[1]);
3326 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3332 struct dvb_usb_adapter *adap = fe->dvb->priv;
3333 struct dvb_usb_device *dev = adap->dev;
3340 dib0700_set_gpio(dev, adap->id == 0 ? GPIO1 : GPIO0, GPIO_OUT,
3348 struct dvb_usb_adapter *adap = fe->dvb->priv;
3349 struct dvb_usb_device *dev = adap->dev;
3353 dib0700_set_gpio(dev, adap->id == 0 ? GPIO1 : GPIO0, GPIO_OUT, 0);
3364 static int novatd_frontend_attach(struct dvb_usb_adapter *adap)
3366 struct dvb_usb_device *dev = adap->dev;
3368 struct dib0700_adapter_state *state = adap->priv;
3373 if (adap->id == 0) {
3390 adap->fe_adap[0].fe = state->dib7000p_ops.init(&dev->i2c_adap,
3391 adap->id == 0 ? 0x80 : 0x82,
3392 &stk7070pd_dib7000p_config[adap->id]);
3394 if (adap->fe_adap[0].fe == NULL)
3397 st->read_status = adap->fe_adap[0].fe->ops.read_status;
3398 adap->fe_adap[0].fe->ops.read_status = novatd_read_status_override;
3399 st->sleep = adap->fe_adap[0].fe->ops.sleep;
3400 adap->fe_adap[0].fe->ops.sleep = novatd_sleep_override;
3427 static int s5h1411_frontend_attach(struct dvb_usb_adapter *adap)
3429 struct dib0700_state *st = adap->dev->priv;
3438 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 0);
3439 dib0700_set_gpio(adap->dev, GPIO3, GPIO_OUT, 0);
3440 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3442 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3444 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3446 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3447 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3448 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3449 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3450 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 0);
3454 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 1);
3457 adap->fe_adap[0].fe = dvb_attach(s5h1411_attach, &pinnacle_801e_config,
3458 &adap->dev->i2c_adap);
3459 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3465 struct dvb_usb_adapter *adap = priv;
3469 dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 0);
3471 dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 1);
3486 static int xc5000_tuner_attach(struct dvb_usb_adapter *adap)
3489 adap->fe_adap[0].fe->callback = dib0700_xc5000_tuner_callback;
3491 return dvb_attach(xc5000_attach, adap->fe_adap[0].fe, &adap->dev->i2c_adap,
3499 struct dvb_usb_adapter *adap = priv;
3500 struct dib0700_adapter_state *state = adap->priv;
3504 state->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 0);
3506 state->dib7000p_ops.set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3589 static int pctv340e_frontend_attach(struct dvb_usb_adapter *adap)
3591 struct dib0700_state *st = adap->dev->priv;
3592 struct dib0700_adapter_state *state = adap->priv;
3598 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
3600 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3604 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3606 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3609 dib0700_set_gpio(adap->dev, GPIO8, GPIO_OUT, 1);
3612 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 1);
3615 dib0700_ctrl_clock(adap->dev, 72, 1);
3619 if (state->dib7000p_ops.dib7000pc_detection(&adap->dev->i2c_adap) == 0) {
3625 adap->fe_adap[0].fe = state->dib7000p_ops.init(&adap->dev->i2c_adap, 0x12,
3629 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3640 static int xc4000_tuner_attach(struct dvb_usb_adapter *adap)
3643 struct dib0700_adapter_state *state = adap->priv;
3646 tun_i2c = state->dib7000p_ops.get_i2c_master(adap->fe_adap[0].fe,
3654 adap->fe_adap[0].fe->callback = dib0700_xc4000_tuner_callback;
3656 return dvb_attach(xc4000_attach, adap->fe_adap[0].fe, tun_i2c,
3689 static int lgdt3305_frontend_attach(struct dvb_usb_adapter *adap)
3691 struct dib0700_state *st = adap->dev->priv;
3699 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
3701 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3705 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3707 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3709 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3712 adap->fe_adap[0].fe = dvb_attach(lgdt3305_attach,
3714 &adap->dev->i2c_adap);
3716 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3719 static int mxl5007t_tuner_attach(struct dvb_usb_adapter *adap)
3721 return dvb_attach(mxl5007t_attach, adap->fe_adap[0].fe,
3722 &adap->dev->i2c_adap, 0x60,
3726 static int xbox_one_attach(struct dvb_usb_adapter *adap)
3728 struct dib0700_state *st = adap->dev->priv;
3730 struct dvb_usb_device *d = adap->dev;
3739 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
3741 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3745 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3747 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3749 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3753 mn88472_config.fe = &adap->fe_adap[0].fe;
3771 adap->fe_adap[0].fe = mn88472_config.get_dvb_frontend(client_demod);
3783 tda18250_config.fe = adap->fe_adap[0].fe;
3791 client_tuner = i2c_new_client_device(&adap->dev->i2c_adap, &info);