Browse Source

[media] r820t: add support for diplexer

This is part of the original driver, and adding it doesn't hurt,
so add it, to better sync the code.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Tested-by: Antti Palosaari <crope@iki.fi>
Mauro Carvalho Chehab 12 years ago
parent
commit
84ddc33c20
2 changed files with 13 additions and 1 deletions
  1. 12 0
      drivers/media/tuners/r820t.c
  2. 1 1
      drivers/media/tuners/r820t.h

+ 12 - 0
drivers/media/tuners/r820t.c

@@ -101,6 +101,7 @@ struct r820t_freq_range {
 };
 
 #define VCO_POWER_REF   0x02
+#define DIP_FREQ	32000000
 
 /*
  * Static constants
@@ -751,6 +752,17 @@ static int r820t_sysfreq_sel(struct r820t_priv *priv, u32 freq,
 		break;
 	}
 
+	if (priv->cfg->use_diplexer &&
+	   ((priv->cfg->rafael_chip == CHIP_R820T) ||
+	   (priv->cfg->rafael_chip == CHIP_R828S) ||
+	   (priv->cfg->rafael_chip == CHIP_R820C))) {
+		if (freq > DIP_FREQ)
+			air_cable1_in = 0x00;
+		else
+			air_cable1_in = 0x60;
+		cable2_in = 0x00;
+	}
+
 	rc = r820t_write_reg_mask(priv, 0x1d, lna_top, 0xc7);
 	if (rc < 0)
 		return rc;

+ 1 - 1
drivers/media/tuners/r820t.h

@@ -32,10 +32,10 @@ enum r820t_chip {
 
 struct r820t_config {
 	u8 i2c_addr;		/* 0x34 */
-
 	u32 xtal;
 	enum r820t_chip rafael_chip;
 	unsigned max_i2c_msg_len;
+	bool use_diplexer;
 };
 
 #if IS_ENABLED(CONFIG_MEDIA_TUNER_R820T)