Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac77fb0f authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab
Browse files

[media] af9035: add support for 1st gen it9135

parent 4902bb39
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -41,6 +41,7 @@ config DVB_USB_AF9035
	select MEDIA_TUNER_MXL5007T if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_MXL5007T if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_TDA18218 if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_TDA18218 if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_FC2580 if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_FC2580 if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_IT913X if MEDIA_SUBDRV_AUTOSELECT
	help
	help
	  Say Y here to support the Afatech AF9035 based DVB USB receiver.
	  Say Y here to support the Afatech AF9035 based DVB USB receiver.


+23 −1
Original line number Original line Diff line number Diff line
@@ -652,6 +652,10 @@ static int af9035_read_config_it9135(struct dvb_usb_device *d)
	int ret, i;
	int ret, i;
	u8 tmp;
	u8 tmp;


	/* demod I2C "address" */
	state->af9033_config[0].i2c_addr = 0x38;
	state->af9033_config[0].tuner = AF9033_TUNER_IT9135_38;
	state->af9033_config[0].adc_multiplier = AF9033_ADC_MULTIPLIER_2X;
	state->dual_mode = false;
	state->dual_mode = false;


	/* get demod clock */
	/* get demod clock */
@@ -920,6 +924,20 @@ static const struct fc0012_config af9035_fc0012_config[] = {
	}
	}
};
};


static struct ite_config af9035_it913x_config = {
	.chip_ver = 0x01,
	.chip_type = 0x9135,
	.firmware = 0x00000000,
	.firmware_ver = 1,
	.adc_x2 = 1,
	.tuner_id_0 = AF9033_TUNER_IT9135_38,
	.tuner_id_1 = 0x00,
	.dual_mode = 0x00,
	.adf = 0x00,
	/* option to read SIGNAL_LEVEL */
	.read_slevel = 0,
};

static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
{
{
	struct state *state = adap_to_priv(adap);
	struct state *state = adap_to_priv(adap);
@@ -1082,6 +1100,11 @@ static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
		fe = dvb_attach(fc0012_attach, adap->fe[0], &d->i2c_adap,
		fe = dvb_attach(fc0012_attach, adap->fe[0], &d->i2c_adap,
				&af9035_fc0012_config[adap->id]);
				&af9035_fc0012_config[adap->id]);
		break;
		break;
	case AF9033_TUNER_IT9135_38:
		/* attach tuner */
		fe = dvb_attach(it913x_attach, adap->fe[0],
				&d->i2c_adap, 0x38, &af9035_it913x_config);
		break;
	default:
	default:
		fe = NULL;
		fe = NULL;
	}
	}
@@ -1275,7 +1298,6 @@ static const struct dvb_usb_device_properties it9135_props = {
	.frontend_attach = af9035_frontend_attach,
	.frontend_attach = af9035_frontend_attach,
	.tuner_attach = af9035_tuner_attach,
	.tuner_attach = af9035_tuner_attach,
	.init = af9035_init,
	.init = af9035_init,
	.get_rc_config = af9035_get_rc_config,


	.num_adapters = 1,
	.num_adapters = 1,
	.adapter = {
	.adapter = {
+1 −0
Original line number Original line Diff line number Diff line
@@ -30,6 +30,7 @@
#include "mxl5007t.h"
#include "mxl5007t.h"
#include "tda18218.h"
#include "tda18218.h"
#include "fc2580.h"
#include "fc2580.h"
#include "it913x.h"


struct reg_val {
struct reg_val {
	u32 reg;
	u32 reg;