Lines Matching refs:adap

84 static int bristol_frontend_attach(struct dvb_usb_adapter *adap)
86 struct dib0700_state *st = adap->dev->priv;
87 if (adap->id == 0) {
88 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(10);
89 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); msleep(10);
90 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); msleep(10);
91 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); msleep(10);
94 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
96 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 0);
98 if (dib3000mc_i2c_enumeration(&adap->dev->i2c_adap, 2, DEFAULT_DIB3000P_I2C_ADDRESS, bristol_dib3000mc_config) != 0) {
99 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(10);
103 st->mt2060_if1[adap->id] = 1220;
104 return (adap->fe_adap[0].fe = dvb_attach(dib3000mc_attach, &adap->dev->i2c_adap,
105 (10 + adap->id) << 1, &bristol_dib3000mc_config[adap->id])) == NULL ? -ENODEV : 0;
108 static int eeprom_read(struct i2c_adapter *adap,u8 adrs,u8 *pval)
114 if (i2c_transfer(adap, msg, 2) != 2) return -EREMOTEIO;
118 static int bristol_tuner_attach(struct dvb_usb_adapter *adap)
120 struct i2c_adapter *prim_i2c = &adap->dev->i2c_adap;
121 struct i2c_adapter *tun_i2c = dib3000mc_get_tuner_i2c_master(adap->fe_adap[0].fe, 1);
124 if (adap->dev->udev->descriptor.idVendor == cpu_to_le16(USB_VID_HAUPPAUGE) &&
125 adap->dev->udev->descriptor.idProduct == cpu_to_le16(USB_PID_HAUPPAUGE_NOVA_T_500_2)) {
126 if (!eeprom_read(prim_i2c,0x59 + adap->id,&a)) if1=1220+a;
128 return dvb_attach(mt2060_attach, adap->fe_adap[0].fe, tun_i2c,
129 &bristol_mt2060_config[adap->id], if1) == NULL ?
263 static int stk7700P2_frontend_attach(struct dvb_usb_adapter *adap)
265 if (adap->id == 0) {
266 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
268 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
269 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
270 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
271 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
273 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
275 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
283 adap->fe_adap[0].fe =
284 dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,
285 0x80 + (adap->id << 1),
286 &stk7700d_dib7000p_mt2266_config[adap->id]);
288 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
291 static int stk7700d_frontend_attach(struct dvb_usb_adapter *adap)
293 if (adap->id == 0) {
294 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
296 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
297 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
298 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
299 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
301 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
303 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
304 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 2, 18,
312 adap->fe_adap[0].fe =
313 dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,
314 0x80 + (adap->id << 1),
315 &stk7700d_dib7000p_mt2266_config[adap->id]);
317 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
320 static int stk7700d_tuner_attach(struct dvb_usb_adapter *adap)
323 tun_i2c = dib7000p_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
324 return dvb_attach(mt2266_attach, adap->fe_adap[0].fe, tun_i2c,
325 &stk7700d_mt2266_config[adap->id]) == NULL ? -ENODEV : 0;
399 struct dvb_usb_adapter *adap = ptr;
404 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 0); msleep(10);
405 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
428 static int stk7700ph_frontend_attach(struct dvb_usb_adapter *adap)
430 struct usb_device_descriptor *desc = &adap->dev->udev->descriptor;
434 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
436 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
438 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
439 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
440 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
441 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
443 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
445 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
448 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
455 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80,
458 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
461 static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap)
465 tun_i2c = dib7000p_get_i2c_master(adap->fe_adap[0].fe,
471 adap->fe_adap[0].fe->callback = stk7700ph_xc3028_callback;
473 return dvb_attach(xc2028_attach, adap->fe_adap[0].fe, &stk7700ph_xc3028_config)
673 static int stk7700p_frontend_attach(struct dvb_usb_adapter *adap)
675 struct dib0700_state *st = adap->dev->priv;
678 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
679 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(50);
681 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); msleep(10);
682 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
684 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); msleep(10);
685 dib0700_ctrl_clock(adap->dev, 72, 1);
686 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); msleep(100);
688 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
692 if (dib7000pc_detection(&adap->dev->i2c_adap)) {
693 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 18, &stk7700p_dib7000p_config);
696 adap->fe_adap[0].fe = dvb_attach(dib7000m_attach, &adap->dev->i2c_adap, 18, &stk7700p_dib7000m_config);
698 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
705 static int stk7700p_tuner_attach(struct dvb_usb_adapter *adap)
707 struct i2c_adapter *prim_i2c = &adap->dev->i2c_adap;
708 struct dib0700_state *st = adap->dev->priv;
712 if (adap->dev->udev->descriptor.idVendor == cpu_to_le16(USB_VID_HAUPPAUGE) &&
713 adap->dev->udev->descriptor.idProduct == cpu_to_le16(USB_PID_HAUPPAUGE_NOVA_T_STICK)) {
717 tun_i2c = dib7000p_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
719 tun_i2c = dib7000m_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
721 return dvb_attach(mt2060_attach, adap->fe_adap[0].fe, tun_i2c, &stk7700p_mt2060_config,
810 struct dvb_usb_adapter *adap = fe->dvb->priv;
811 struct dib0700_adapter_state *state = adap->priv;
828 struct dvb_usb_adapter *adap = fe->dvb->priv;
829 struct dib0700_adapter_state *state = adap->priv;
849 static int dib7770p_tuner_attach(struct dvb_usb_adapter *adap)
851 struct dib0700_adapter_state *st = adap->priv;
852 struct i2c_adapter *tun_i2c = dib7000p_get_i2c_master(adap->fe_adap[0].fe,
855 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c,
859 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
860 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7770_set_param_override;
864 static int dib7070p_tuner_attach(struct dvb_usb_adapter *adap)
866 struct dib0700_adapter_state *st = adap->priv;
867 struct i2c_adapter *tun_i2c = dib7000p_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
869 if (adap->id == 0) {
870 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c, &dib7070p_dib0070_config[0]) == NULL)
873 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c, &dib7070p_dib0070_config[1]) == NULL)
877 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
878 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7070_set_param_override;
936 static int stk7070p_frontend_attach(struct dvb_usb_adapter *adap)
938 struct usb_device_descriptor *p = &adap->dev->udev->descriptor;
941 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
943 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
945 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
946 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
947 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
948 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
950 dib0700_ctrl_clock(adap->dev, 72, 1);
953 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
955 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
957 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
964 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80,
966 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
988 static int stk7770p_frontend_attach(struct dvb_usb_adapter *adap)
990 struct usb_device_descriptor *p = &adap->dev->udev->descriptor;
993 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
995 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
997 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
998 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
999 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1000 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1002 dib0700_ctrl_clock(adap->dev, 72, 1);
1005 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1007 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1009 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
1016 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80,
1018 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1212 struct dvb_usb_adapter *adap = fe->dvb->priv;
1213 struct dib0700_adapter_state *state = adap->priv;
1231 static int dib807x_tuner_attach(struct dvb_usb_adapter *adap)
1233 struct dib0700_adapter_state *st = adap->priv;
1234 struct i2c_adapter *tun_i2c = dib8000_get_i2c_master(adap->fe_adap[0].fe,
1237 if (adap->id == 0) {
1238 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c,
1242 if (dvb_attach(dib0070_attach, adap->fe_adap[0].fe, tun_i2c,
1247 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
1248 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib807x_set_param_override;
1265 static int stk807x_frontend_attach(struct dvb_usb_adapter *adap)
1267 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1269 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1270 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1271 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1273 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1275 dib0700_ctrl_clock(adap->dev, 72, 1);
1278 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1280 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1282 dib8000_i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
1285 adap->fe_adap[0].fe = dvb_attach(dib8000_attach, &adap->dev->i2c_adap, 0x80,
1288 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1292 static int stk807xpvr_frontend_attach0(struct dvb_usb_adapter *adap)
1294 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
1296 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1298 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1299 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1300 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1302 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1304 dib0700_ctrl_clock(adap->dev, 72, 1);
1307 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1309 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1312 dib8000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x22, 0x80, 0);
1314 adap->fe_adap[0].fe = dvb_attach(dib8000_attach, &adap->dev->i2c_adap, 0x80,
1317 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1320 static int stk807xpvr_frontend_attach1(struct dvb_usb_adapter *adap)
1323 dib8000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x12, 0x82, 0);
1325 adap->fe_adap[0].fe = dvb_attach(dib8000_attach, &adap->dev->i2c_adap, 0x82,
1328 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1510 struct dvb_usb_adapter *adap = fe->dvb->priv;
1511 struct dib0700_adapter_state *state = adap->priv;
1552 static int dib809x_tuner_attach(struct dvb_usb_adapter *adap)
1554 struct dib0700_adapter_state *st = adap->priv;
1555 struct i2c_adapter *tun_i2c = dib8000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
1557 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &dib809x_dib0090_config) == NULL)
1560 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
1561 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib8096_set_param_override;
1565 static int stk809x_frontend_attach(struct dvb_usb_adapter *adap)
1567 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1569 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1570 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1571 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1573 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1575 dib0700_ctrl_clock(adap->dev, 72, 1);
1578 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1580 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1582 dib8000_i2c_enumeration(&adap->dev->i2c_adap, 1, 18, 0x80, 0);
1584 adap->fe_adap[0].fe = dvb_attach(dib8000_attach, &adap->dev->i2c_adap, 0x80, &dib809x_dib8000_config[0]);
1586 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1589 static int nim8096md_tuner_attach(struct dvb_usb_adapter *adap)
1591 struct dib0700_adapter_state *st = adap->priv;
1593 struct dvb_frontend *fe_slave = dib8000_get_slave_frontend(adap->fe_adap[0].fe, 1);
1599 fe_slave->dvb = adap->fe_adap[0].fe->dvb;
1602 tun_i2c = dib8000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_TUNER, 1);
1603 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &dib809x_dib0090_config) == NULL)
1606 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
1607 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib8096_set_param_override;
1612 static int nim8096md_frontend_attach(struct dvb_usb_adapter *adap)
1616 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
1618 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1620 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1621 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1622 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1624 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1626 dib0700_ctrl_clock(adap->dev, 72, 1);
1629 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1631 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1633 dib8000_i2c_enumeration(&adap->dev->i2c_adap, 2, 18, 0x80, 0);
1635 adap->fe_adap[0].fe = dvb_attach(dib8000_attach, &adap->dev->i2c_adap, 0x80, &dib809x_dib8000_config[0]);
1636 if (adap->fe_adap[0].fe == NULL)
1639 fe_slave = dvb_attach(dib8000_attach, &adap->dev->i2c_adap, 0x82, &dib809x_dib8000_config[1]);
1640 dib8000_set_slave_frontend(adap->fe_adap[0].fe, fe_slave);
1826 struct dvb_usb_adapter *adap = fe->dvb->priv;
1827 struct dib0700_adapter_state *state = adap->priv;
1859 static int tfe8096p_frontend_attach(struct dvb_usb_adapter *adap)
1861 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
1863 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
1864 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
1865 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
1867 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
1869 dib0700_ctrl_clock(adap->dev, 72, 1);
1872 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
1874 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
1876 dib8000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80, 1);
1878 adap->fe_adap[0].fe = dvb_attach(dib8000_attach,
1879 &adap->dev->i2c_adap, 0x80, &tfe8096p_dib8000_config);
1881 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
1884 static int tfe8096p_tuner_attach(struct dvb_usb_adapter *adap)
1886 struct dib0700_adapter_state *st = adap->priv;
1887 struct i2c_adapter *tun_i2c = dib8096p_get_i2c_tuner(adap->fe_adap[0].fe);
1889 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c,
1893 dib8000_set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
1895 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
1896 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib8096p_agc_startup;
2083 static int stk9090m_frontend_attach(struct dvb_usb_adapter *adap)
2085 struct dib0700_adapter_state *state = adap->priv;
2086 struct dib0700_state *st = adap->dev->priv;
2090 dib0700_get_version(adap->dev, NULL, NULL, &fw_version, NULL);
2093 dib0700_set_i2c_speed(adap->dev, 340);
2095 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2097 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2098 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2099 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2100 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2102 dib0700_ctrl_clock(adap->dev, 72, 1);
2105 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2107 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2109 dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80);
2111 if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) {
2120 adap->fe_adap[0].fe = dvb_attach(dib9000_attach, &adap->dev->i2c_adap, 0x80, &stk9090m_config);
2122 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2125 static int dib9090_tuner_attach(struct dvb_usb_adapter *adap)
2127 struct dib0700_adapter_state *state = adap->priv;
2128 struct i2c_adapter *i2c = dib9000_get_tuner_interface(adap->fe_adap[0].fe);
2137 if (dvb_attach(dib0090_fw_register, adap->fe_adap[0].fe, i2c, &dib9090_dib0090_config) == NULL)
2139 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_1_2, 0);
2142 dib0700_set_i2c_speed(adap->dev, 1500);
2143 if (dib9000_firmware_post_pll_init(adap->fe_adap[0].fe) < 0)
2149 static int nim9090md_frontend_attach(struct dvb_usb_adapter *adap)
2151 struct dib0700_adapter_state *state = adap->priv;
2152 struct dib0700_state *st = adap->dev->priv;
2158 dib0700_get_version(adap->dev, NULL, NULL, &fw_version, NULL);
2161 dib0700_set_i2c_speed(adap->dev, 340);
2163 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2165 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2166 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2167 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2168 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2170 dib0700_ctrl_clock(adap->dev, 72, 1);
2173 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2175 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2177 if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) {
2188 dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x20, 0x80);
2189 adap->fe_adap[0].fe = dvb_attach(dib9000_attach, &adap->dev->i2c_adap, 0x80, &nim9090md_config[0]);
2191 if (adap->fe_adap[0].fe == NULL)
2194 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_3_4, 0);
2198 dib9000_set_slave_frontend(adap->fe_adap[0].fe, fe_slave);
2203 static int nim9090md_tuner_attach(struct dvb_usb_adapter *adap)
2205 struct dib0700_adapter_state *state = adap->priv;
2215 i2c = dib9000_get_tuner_interface(adap->fe_adap[0].fe);
2216 if (dvb_attach(dib0090_fw_register, adap->fe_adap[0].fe, i2c, &nim9090md_dib0090_config[0]) == NULL)
2218 i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_1_2, 0);
2222 dib0700_set_i2c_speed(adap->dev, 1500);
2223 if (dib9000_firmware_post_pll_init(adap->fe_adap[0].fe) < 0)
2226 fe_slave = dib9000_get_slave_frontend(adap->fe_adap[0].fe, 1);
2228 i2c = dib9000_get_component_bus_interface(adap->fe_adap[0].fe);
2234 fe_slave->dvb = adap->fe_adap[0].fe->dvb;
2235 dib9000_fw_set_component_bus_speed(adap->fe_adap[0].fe, 1500);
2326 struct dvb_usb_adapter *adap = fe->dvb->priv;
2327 struct dib0700_adapter_state *state = adap->priv;
2821 static int nim7090_frontend_attach(struct dvb_usb_adapter *adap)
2823 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2825 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2826 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2827 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2828 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2831 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2833 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2835 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, &nim7090_dib7000p_config) != 0) {
2839 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80, &nim7090_dib7000p_config);
2841 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2844 static int nim7090_tuner_attach(struct dvb_usb_adapter *adap)
2846 struct dib0700_adapter_state *st = adap->priv;
2847 struct i2c_adapter *tun_i2c = dib7090_get_i2c_tuner(adap->fe_adap[0].fe);
2849 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &nim7090_dib0090_config) == NULL)
2852 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
2854 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
2855 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
2859 static int tfe7090pvr_frontend0_attach(struct dvb_usb_adapter *adap)
2861 struct dib0700_state *st = adap->dev->priv;
2866 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2868 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2869 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2870 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2871 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2874 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2876 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2879 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x20, &tfe7090pvr_dib7000p_config[0]) != 0) {
2884 dib0700_set_i2c_speed(adap->dev, 340);
2885 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x90, &tfe7090pvr_dib7000p_config[0]);
2886 if (adap->fe_adap[0].fe == NULL)
2889 dib7090_slave_reset(adap->fe_adap[0].fe);
2894 static int tfe7090pvr_frontend1_attach(struct dvb_usb_adapter *adap)
2898 if (adap->dev->adapter[0].fe_adap[0].fe == NULL) {
2903 i2c = dib7000p_get_i2c_master(adap->dev->adapter[0].fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_6_7, 1);
2909 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, i2c, 0x92, &tfe7090pvr_dib7000p_config[1]);
2910 dib0700_set_i2c_speed(adap->dev, 200);
2912 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2915 static int tfe7090pvr_tuner0_attach(struct dvb_usb_adapter *adap)
2917 struct dib0700_adapter_state *st = adap->priv;
2918 struct i2c_adapter *tun_i2c = dib7090_get_i2c_tuner(adap->fe_adap[0].fe);
2920 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &tfe7090pvr_dib0090_config[0]) == NULL)
2923 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
2925 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
2926 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
2930 static int tfe7090pvr_tuner1_attach(struct dvb_usb_adapter *adap)
2932 struct dib0700_adapter_state *st = adap->priv;
2933 struct i2c_adapter *tun_i2c = dib7090_get_i2c_tuner(adap->fe_adap[0].fe);
2935 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c, &tfe7090pvr_dib0090_config[1]) == NULL)
2938 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
2940 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
2941 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
2945 static int tfe7090e_frontend_attach(struct dvb_usb_adapter *adap)
2947 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2949 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2950 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2951 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2952 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2955 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2957 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2959 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap,
2965 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,
2968 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2971 static int tfe7790e_frontend_attach(struct dvb_usb_adapter *adap)
2973 struct dib0700_state *st = adap->dev->priv;
2978 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
2980 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
2981 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
2982 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
2983 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
2985 dib0700_ctrl_clock(adap->dev, 72, 1);
2986 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
2988 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
2990 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap,
2996 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,
2999 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3002 static int tfe7790e_tuner_attach(struct dvb_usb_adapter *adap)
3004 struct dib0700_adapter_state *st = adap->priv;
3006 dib7090_get_i2c_tuner(adap->fe_adap[0].fe);
3008 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c,
3012 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3014 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3015 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3019 static int tfe7090e_tuner_attach(struct dvb_usb_adapter *adap)
3021 struct dib0700_adapter_state *st = adap->priv;
3023 dib7090_get_i2c_tuner(adap->fe_adap[0].fe);
3025 if (dvb_attach(dib0090_register, adap->fe_adap[0].fe, tun_i2c,
3029 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3031 st->set_param_save = adap->fe_adap[0].fe->ops.tuner_ops.set_params;
3032 adap->fe_adap[0].fe->ops.tuner_ops.set_params = dib7090_agc_startup;
3084 static int stk7070pd_frontend_attach0(struct dvb_usb_adapter *adap)
3086 stk7070pd_init(adap->dev);
3089 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3091 if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 2, 18,
3098 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80, &stk7070pd_dib7000p_config[0]);
3099 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3102 static int stk7070pd_frontend_attach1(struct dvb_usb_adapter *adap)
3104 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x82, &stk7070pd_dib7000p_config[1]);
3105 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3111 struct dvb_usb_adapter *adap = fe->dvb->priv;
3112 struct dvb_usb_device *dev = adap->dev;
3119 dib0700_set_gpio(dev, adap->id == 0 ? GPIO1 : GPIO0, GPIO_OUT,
3127 struct dvb_usb_adapter *adap = fe->dvb->priv;
3128 struct dvb_usb_device *dev = adap->dev;
3132 dib0700_set_gpio(dev, adap->id == 0 ? GPIO1 : GPIO0, GPIO_OUT, 0);
3143 static int novatd_frontend_attach(struct dvb_usb_adapter *adap)
3145 struct dvb_usb_device *dev = adap->dev;
3148 if (adap->id == 0) {
3164 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &dev->i2c_adap,
3165 adap->id == 0 ? 0x80 : 0x82,
3166 &stk7070pd_dib7000p_config[adap->id]);
3168 if (adap->fe_adap[0].fe == NULL)
3171 st->read_status = adap->fe_adap[0].fe->ops.read_status;
3172 adap->fe_adap[0].fe->ops.read_status = novatd_read_status_override;
3173 st->sleep = adap->fe_adap[0].fe->ops.sleep;
3174 adap->fe_adap[0].fe->ops.sleep = novatd_sleep_override;
3201 static int s5h1411_frontend_attach(struct dvb_usb_adapter *adap)
3203 struct dib0700_state *st = adap->dev->priv;
3212 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 0);
3213 dib0700_set_gpio(adap->dev, GPIO3, GPIO_OUT, 0);
3214 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3216 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3218 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3220 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
3221 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
3222 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
3223 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
3224 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 0);
3228 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 1);
3231 adap->fe_adap[0].fe = dvb_attach(s5h1411_attach, &pinnacle_801e_config,
3232 &adap->dev->i2c_adap);
3233 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3239 struct dvb_usb_adapter *adap = priv;
3243 dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 0);
3245 dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 1);
3260 static int xc5000_tuner_attach(struct dvb_usb_adapter *adap)
3263 adap->fe_adap[0].fe->callback = dib0700_xc5000_tuner_callback;
3265 return dvb_attach(xc5000_attach, adap->fe_adap[0].fe, &adap->dev->i2c_adap,
3273 struct dvb_usb_adapter *adap = priv;
3277 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 0);
3279 dib7000p_set_gpio(adap->fe_adap[0].fe, 8, 0, 1);
3354 static int pctv340e_frontend_attach(struct dvb_usb_adapter *adap)
3356 struct dib0700_state *st = adap->dev->priv;
3359 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
3361 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3365 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3367 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3370 dib0700_set_gpio(adap->dev, GPIO8, GPIO_OUT, 1);
3373 dib0700_set_gpio(adap->dev, GPIO2, GPIO_OUT, 1);
3376 dib0700_ctrl_clock(adap->dev, 72, 1);
3380 if (dib7000pc_detection(&adap->dev->i2c_adap) == 0) {
3385 adap->fe_adap[0].fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x12,
3389 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3400 static int xc4000_tuner_attach(struct dvb_usb_adapter *adap)
3405 tun_i2c = dib7000p_get_i2c_master(adap->fe_adap[0].fe,
3413 adap->fe_adap[0].fe->callback = dib0700_xc4000_tuner_callback;
3415 return dvb_attach(xc4000_attach, adap->fe_adap[0].fe, tun_i2c,
3448 static int lgdt3305_frontend_attach(struct dvb_usb_adapter *adap)
3450 struct dib0700_state *st = adap->dev->priv;
3458 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
3460 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
3464 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3466 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
3468 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
3471 adap->fe_adap[0].fe = dvb_attach(lgdt3305_attach,
3473 &adap->dev->i2c_adap);
3475 return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
3478 static int mxl5007t_tuner_attach(struct dvb_usb_adapter *adap)
3480 return dvb_attach(mxl5007t_attach, adap->fe_adap[0].fe,
3481 &adap->dev->i2c_adap, 0x60,