diff options
author | Antti Palosaari <crope@iki.fi> | 2008-05-17 22:02:00 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-20 06:06:12 -0400 |
commit | 139dfeb2611ce92dec4c6b77297d209748340a21 (patch) | |
tree | 3dba1800bc9e4f1ca7cfb579b17cfa7bcf9a52f3 /drivers/media/dvb/frontends/dvb-pll.c | |
parent | 4388c3b4fe0362e8bb3fe3a09b312db929b8c730 (diff) |
V4L/DVB (7913): DVB-PLL: add Samsung DTOS403IH102A tuner
- add Samsung DTOS403IH102A tuner
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/frontends/dvb-pll.c')
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/media/dvb/frontends/dvb-pll.c b/drivers/media/dvb/frontends/dvb-pll.c index a054894ff481..ea058153ebfa 100644 --- a/drivers/media/dvb/frontends/dvb-pll.c +++ b/drivers/media/dvb/frontends/dvb-pll.c | |||
@@ -343,6 +343,52 @@ static struct dvb_pll_desc dvb_pll_opera1 = { | |||
343 | } | 343 | } |
344 | }; | 344 | }; |
345 | 345 | ||
346 | static void samsung_dtos403ih102a_set(struct dvb_frontend *fe, u8 *buf, | ||
347 | const struct dvb_frontend_parameters *params) | ||
348 | { | ||
349 | struct dvb_pll_priv *priv = fe->tuner_priv; | ||
350 | struct i2c_msg msg = { | ||
351 | .addr = priv->pll_i2c_address, | ||
352 | .flags = 0, | ||
353 | .buf = buf, | ||
354 | .len = 4 | ||
355 | }; | ||
356 | int result; | ||
357 | |||
358 | if (fe->ops.i2c_gate_ctrl) | ||
359 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
360 | |||
361 | result = i2c_transfer(priv->i2c, &msg, 1); | ||
362 | if (result != 1) | ||
363 | printk(KERN_ERR "%s: i2c_transfer failed:%d", | ||
364 | __func__, result); | ||
365 | |||
366 | buf[2] = 0x9e; | ||
367 | buf[3] = 0x90; | ||
368 | |||
369 | return; | ||
370 | } | ||
371 | |||
372 | /* unknown pll used in Samsung DTOS403IH102A DVB-C tuner */ | ||
373 | static struct dvb_pll_desc dvb_pll_samsung_dtos403ih102a = { | ||
374 | .name = "Samsung DTOS403IH102A", | ||
375 | .min = 44250000, | ||
376 | .max = 858000000, | ||
377 | .iffreq = 36125000, | ||
378 | .count = 8, | ||
379 | .set = samsung_dtos403ih102a_set, | ||
380 | .entries = { | ||
381 | { 135000000, 62500, 0xbe, 0x01 }, | ||
382 | { 177000000, 62500, 0xf6, 0x01 }, | ||
383 | { 370000000, 62500, 0xbe, 0x02 }, | ||
384 | { 450000000, 62500, 0xf6, 0x02 }, | ||
385 | { 466000000, 62500, 0xfe, 0x02 }, | ||
386 | { 538000000, 62500, 0xbe, 0x08 }, | ||
387 | { 826000000, 62500, 0xf6, 0x08 }, | ||
388 | { 999999999, 62500, 0xfe, 0x08 }, | ||
389 | } | ||
390 | }; | ||
391 | |||
346 | /* ----------------------------------------------------------- */ | 392 | /* ----------------------------------------------------------- */ |
347 | 393 | ||
348 | static struct dvb_pll_desc *pll_list[] = { | 394 | static struct dvb_pll_desc *pll_list[] = { |
@@ -360,6 +406,7 @@ static struct dvb_pll_desc *pll_list[] = { | |||
360 | [DVB_PLL_SAMSUNG_TBMV] = &dvb_pll_samsung_tbmv, | 406 | [DVB_PLL_SAMSUNG_TBMV] = &dvb_pll_samsung_tbmv, |
361 | [DVB_PLL_PHILIPS_SD1878_TDA8261] = &dvb_pll_philips_sd1878_tda8261, | 407 | [DVB_PLL_PHILIPS_SD1878_TDA8261] = &dvb_pll_philips_sd1878_tda8261, |
362 | [DVB_PLL_OPERA1] = &dvb_pll_opera1, | 408 | [DVB_PLL_OPERA1] = &dvb_pll_opera1, |
409 | [DVB_PLL_SAMSUNG_DTOS403IH102A] = &dvb_pll_samsung_dtos403ih102a, | ||
363 | }; | 410 | }; |
364 | 411 | ||
365 | /* ----------------------------------------------------------- */ | 412 | /* ----------------------------------------------------------- */ |