[media] em28xx: PCTV tripleStick (292e) LNA support
authorAntti Palosaari <crope@iki.fi>
Wed, 23 Apr 2014 01:56:54 +0000 (22:56 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Wed, 23 Apr 2014 12:56:20 +0000 (09:56 -0300)
External LNA between antenna connector and RF tuner is controlled
by EM28178 GPIO 0. GPIO value 1 is LNA active and value 0 is LNA
disabled.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/usb/em28xx/em28xx-dvb.c

index b79e08bb3aad72236411866c17335f64d22f8d1a..a121ed9561fd4467d109413ab753bbb7b20355bd 100644 (file)
@@ -746,6 +746,21 @@ static int em28xx_pctv_290e_set_lna(struct dvb_frontend *fe)
 #endif
 }
 
+static int em28xx_pctv_292e_set_lna(struct dvb_frontend *fe)
+{
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
+       struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv;
+       struct em28xx *dev = i2c_bus->dev;
+       u8 lna;
+
+       if (c->lna == 1)
+               lna = 0x01;
+       else
+               lna = 0x00;
+
+       return em28xx_write_reg_bits(dev, EM2874_R80_GPIO_P0_CTRL, lna, 0x01);
+}
+
 static int em28xx_mt352_terratec_xs_init(struct dvb_frontend *fe)
 {
        /* Values extracted from a USB trace of the Terratec Windows driver */
@@ -1553,6 +1568,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
                        }
 
                        dvb->i2c_client_tuner = client;
+                       dvb->fe[0]->ops.set_lna = em28xx_pctv_292e_set_lna;
                }
                break;
        default: