static int vp3030_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) { struct i2c_adapter *adapter = &mantis->adapter; struct mantis_hwconfig *config = mantis->hwconfig; int err = 0; mantis_gpio_set_bits(mantis, config->reset, 0); msleep(100); err = mantis_frontend_power(mantis, POWER_ON); msleep(100); mantis_gpio_set_bits(mantis, config->reset, 1); if (err == 0) { msleep(250); dprintk(MANTIS_ERROR, 1, "Probing for 10353 (DVB-T)"); fe = dvb_attach(zl10353_attach, &mantis_vp3030_config, adapter); if (!fe) return -1; dvb_attach(tda665x_attach, fe, &env57h12d5_config, adapter); } else { dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", adapter->name, err); return -EIO; } mantis->fe = fe; dprintk(MANTIS_ERROR, 1, "Done!"); return 0; }
int mantis_frontend_power(struct mantis_pci *mantis, enum mantis_power power) { struct mantis_hwconfig *config = mantis->hwconfig; switch (power) { case POWER_ON: dprintk(MANTIS_DEBUG, 1, "Power ON"); mantis_gpio_set_bits(mantis, config->power, POWER_ON); msleep(100); mantis_gpio_set_bits(mantis, config->power, POWER_ON); msleep(100); break; case POWER_OFF: dprintk(MANTIS_DEBUG, 1, "Power OFF"); mantis_gpio_set_bits(mantis, config->power, POWER_OFF); msleep(100); break; default: dprintk(MANTIS_DEBUG, 1, "Unknown state <%02x>", power); return -1; } return 0; }
static int vp3028_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) { struct i2c_adapter *adapter = &mantis->adapter; struct mantis_hwconfig *config = mantis->hwconfig; int err = 0; mantis_gpio_set_bits(mantis, config->reset, 0); msleep(100); err = mantis_frontend_power(mantis, POWER_ON); msleep(100); mantis_gpio_set_bits(mantis, config->reset, 1); err = mantis_frontend_power(mantis, POWER_ON); if (err == 0) { msleep(250); ; fe = dvb_attach(zl10353_attach, &hopper_vp3028_config, adapter); if (!fe) return -1; } else { // dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", // adapter->name, ; return -EIO; } ; return 0; }
int vp1034_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) { struct mantis_pci *mantis = fe->dvb->priv; switch (voltage) { case SEC_VOLTAGE_13: dprintk(MANTIS_ERROR, 1, "Polarization=[13V]"); mantis_gpio_set_bits(mantis, 13, 1); mantis_gpio_set_bits(mantis, 14, 0); break; case SEC_VOLTAGE_18: dprintk(MANTIS_ERROR, 1, "Polarization=[18V]"); mantis_gpio_set_bits(mantis, 13, 1); mantis_gpio_set_bits(mantis, 14, 1); break; case SEC_VOLTAGE_OFF: dprintk(MANTIS_ERROR, 1, "Frontend (dummy) POWERDOWN"); break; default: dprintk(MANTIS_ERROR, 1, "Invalid = (%d)", (u32) voltage); return -EINVAL; } mmwrite(0x00, MANTIS_GPIF_DOUT); return 0; }
void mantis_frontend_soft_reset(struct mantis_pci *mantis) { struct mantis_hwconfig *config = mantis->hwconfig; dprintk(MANTIS_DEBUG, 1, "Frontend RESET"); mantis_gpio_set_bits(mantis, config->reset, 0); msleep(100); mantis_gpio_set_bits(mantis, config->reset, 0); msleep(100); mantis_gpio_set_bits(mantis, config->reset, 1); msleep(100); mantis_gpio_set_bits(mantis, config->reset, 1); msleep(100); return; }
void mantis_frontend_soft_reset(struct mantis_pci *mantis) { struct mantis_hwconfig *config = mantis->hwconfig; #ifdef CONFIG_DEBUG_PRINTK dprintk(MANTIS_DEBUG, 1, "Frontend RESET"); #else d; #endif mantis_gpio_set_bits(mantis, config->reset, 0); msleep(100); mantis_gpio_set_bits(mantis, config->reset, 0); msleep(100); mantis_gpio_set_bits(mantis, config->reset, 1); msleep(100); mantis_gpio_set_bits(mantis, config->reset, 1); msleep(100); return; }