[media] tda18212: add support for ATSC and clearQAM on tda18272
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Mon, 3 Mar 2014 19:27:38 +0000 (16:27 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 4 Mar 2014 17:43:43 +0000 (14:43 -0300)
tda18272 is programmed just like tda18212, but it also
supports ClearQAM and ATSC.

Add support for them. Tested with a Kworld UB435-Q on both
8VSB and 256QAM modes.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/tuners/tda18212.c
drivers/media/tuners/tda18212.h

index abe256e1f84324d36041fc67af9ca4587f113cb2..05a4ac9edb6b0559eedde3f39273bb958df9cfd8 100644 (file)
@@ -150,6 +150,8 @@ static int tda18212_set_params(struct dvb_frontend *fe)
        #define DVBT2_8  5
        #define DVBC_6   6
        #define DVBC_8   7
+       #define ATSC_VSB 8
+       #define ATSC_QAM 9
        static const u8 bw_params[][3] = {
                     /* reg:   0f    13    23 */
                [DVBT_6]  = { 0xb3, 0x20, 0x03 },
@@ -160,6 +162,8 @@ static int tda18212_set_params(struct dvb_frontend *fe)
                [DVBT2_8] = { 0xbc, 0x22, 0x01 },
                [DVBC_6]  = { 0x92, 0x50, 0x03 },
                [DVBC_8]  = { 0x92, 0x53, 0x03 },
+               [ATSC_VSB] = { 0x7d, 0x20, 0x63 },
+               [ATSC_QAM] = { 0x7d, 0x20, 0x63 },
        };
 
        dev_dbg(&priv->i2c->dev,
@@ -171,6 +175,14 @@ static int tda18212_set_params(struct dvb_frontend *fe)
                fe->ops.i2c_gate_ctrl(fe, 1); /* open I2C-gate */
 
        switch (c->delivery_system) {
+       case SYS_ATSC:
+               if_khz = priv->cfg->if_atsc_vsb;
+               i = ATSC_VSB;
+               break;
+       case SYS_DVBC_ANNEX_B:
+               if_khz = priv->cfg->if_atsc_qam;
+               i = ATSC_QAM;
+               break;
        case SYS_DVBT:
                switch (c->bandwidth_hz) {
                case 6000000:
index 7e0d503baf05f1d66444001ce798f9b2a4b205c2..c36b49e4b2742a8f8cf12f1dd99e253c69d89ac6 100644 (file)
@@ -35,6 +35,8 @@ struct tda18212_config {
        u16 if_dvbt2_7;
        u16 if_dvbt2_8;
        u16 if_dvbc;
+       u16 if_atsc_vsb;
+       u16 if_atsc_qam;
 };
 
 #if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA18212)