提交 ac7a24fb 编写于 作者: A Antti Palosaari 提交者: Mauro Carvalho Chehab

[media] em28xx: convert tda18212 tuner to I2C client

Used tda18212 tuner is implemented as a I2C driver. Use em28xx
tuner I2C client for tda18212 driver.
Signed-off-by: NAntti Palosaari <crope@iki.fi>
Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
上级 f80f2ae2
...@@ -373,7 +373,6 @@ static struct tda18271_config kworld_ub435q_v2_config = { ...@@ -373,7 +373,6 @@ static struct tda18271_config kworld_ub435q_v2_config = {
}; };
static struct tda18212_config kworld_ub435q_v3_config = { static struct tda18212_config kworld_ub435q_v3_config = {
.i2c_address = 0x60,
.if_atsc_vsb = 3600, .if_atsc_vsb = 3600,
.if_atsc_qam = 3600, .if_atsc_qam = 3600,
}; };
...@@ -1437,6 +1436,15 @@ static int em28xx_dvb_init(struct em28xx *dev) ...@@ -1437,6 +1436,15 @@ static int em28xx_dvb_init(struct em28xx *dev)
} }
break; break;
case EM2874_BOARD_KWORLD_UB435Q_V3: case EM2874_BOARD_KWORLD_UB435Q_V3:
{
struct i2c_client *client;
struct i2c_adapter *adapter = &dev->i2c_adap[dev->def_i2c_bus];
struct i2c_board_info board_info = {
.type = "tda18212",
.addr = 0x60,
.platform_data = &kworld_ub435q_v3_config,
};
dvb->fe[0] = dvb_attach(lgdt3305_attach, dvb->fe[0] = dvb_attach(lgdt3305_attach,
&em2874_lgdt3305_nogate_dev, &em2874_lgdt3305_nogate_dev,
&dev->i2c_adap[dev->def_i2c_bus]); &dev->i2c_adap[dev->def_i2c_bus]);
...@@ -1445,14 +1453,26 @@ static int em28xx_dvb_init(struct em28xx *dev) ...@@ -1445,14 +1453,26 @@ static int em28xx_dvb_init(struct em28xx *dev)
goto out_free; goto out_free;
} }
/* Attach the demodulator. */ /* attach tuner */
if (!dvb_attach(tda18212_attach, dvb->fe[0], kworld_ub435q_v3_config.fe = dvb->fe[0];
&dev->i2c_adap[dev->def_i2c_bus], request_module("tda18212");
&kworld_ub435q_v3_config)) { client = i2c_new_device(adapter, &board_info);
result = -EINVAL; if (client == NULL || client->dev.driver == NULL) {
dvb_frontend_detach(dvb->fe[0]);
result = -ENODEV;
goto out_free; goto out_free;
} }
if (!try_module_get(client->dev.driver->owner)) {
i2c_unregister_device(client);
dvb_frontend_detach(dvb->fe[0]);
result = -ENODEV;
goto out_free;
}
dvb->i2c_client_tuner = client;
break; break;
}
case EM2874_BOARD_PCTV_HD_MINI_80E: case EM2874_BOARD_PCTV_HD_MINI_80E:
dvb->fe[0] = dvb_attach(drx39xxj_attach, &dev->i2c_adap[dev->def_i2c_bus]); dvb->fe[0] = dvb_attach(drx39xxj_attach, &dev->i2c_adap[dev->def_i2c_bus]);
if (dvb->fe[0] != NULL) { if (dvb->fe[0] != NULL) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册