summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Rechberger <mrechberger@gmail.com>2006-02-01 14:43:34 +0100
committerMarkus Rechberger <mrechberger@gmail.com>2006-02-01 14:43:34 +0100
commitc3ac6318cf5fc0e6a2dc4a72b869ab496f78e2a2 (patch)
tree1c73faf88a0b22720fdcb608e036ad57fb16bb51
parentaed6c7095773ce833bac839d15ae13e41eaaf428 (diff)
downloadmediapointer-dvb-s2-c3ac6318cf5fc0e6a2dc4a72b869ab496f78e2a2.tar.gz
mediapointer-dvb-s2-c3ac6318cf5fc0e6a2dc4a72b869ab496f78e2a2.tar.bz2
added support for xc3028 analogue tuner (Hauppauge HVR900, Terratec Hybrid XS)
From: Markus Rechberger <mrechberger@gmail.com> added support for xc3028 to v4l which adds support for: * Terratec Hybrid XS (analogue) * Hauppauge HVR 900 (analogue) Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
-rw-r--r--linux/Documentation/video4linux/CARDLIST.tuner1
-rw-r--r--linux/drivers/media/video/Makefile2
-rw-r--r--linux/drivers/media/video/em28xx/em28xx-cards.c4
-rw-r--r--linux/drivers/media/video/tuner-core.c3
-rw-r--r--linux/drivers/media/video/tuner-types.c21
-rw-r--r--linux/include/media/tuner.h3
-rw-r--r--v4l/Makefile4
7 files changed, 33 insertions, 5 deletions
diff --git a/linux/Documentation/video4linux/CARDLIST.tuner b/linux/Documentation/video4linux/CARDLIST.tuner
index f6d0cf7b7..de48438d5 100644
--- a/linux/Documentation/video4linux/CARDLIST.tuner
+++ b/linux/Documentation/video4linux/CARDLIST.tuner
@@ -69,3 +69,4 @@ tuner=67 - Philips TD1316 Hybrid Tuner
tuner=68 - Philips TUV1236D ATSC/NTSC dual in
tuner=69 - Tena TNF 5335 MF
tuner=70 - Samsung TCPN 2121P30A
+tuner=71 - Xceive xc3028
diff --git a/linux/drivers/media/video/Makefile b/linux/drivers/media/video/Makefile
index faf728366..60e9c6e3f 100644
--- a/linux/drivers/media/video/Makefile
+++ b/linux/drivers/media/video/Makefile
@@ -9,7 +9,7 @@ zoran-objs := zr36120.o zr36120_i2c.o zr36120_mem.o
zr36067-objs := zoran_procfs.o zoran_device.o \
zoran_driver.o zoran_card.o
tuner-objs := tuner-core.o tuner-types.o tuner-simple.o \
- mt20xx.o tda8290.o tea5767.o
+ mt20xx.o tda8290.o tea5767.o xc3028.o
msp3400-objs := msp3400-driver.o msp3400-kthreads.o
diff --git a/linux/drivers/media/video/em28xx/em28xx-cards.c b/linux/drivers/media/video/em28xx/em28xx-cards.c
index 7a15cff10..dbaf5f207 100644
--- a/linux/drivers/media/video/em28xx/em28xx-cards.c
+++ b/linux/drivers/media/video/em28xx/em28xx-cards.c
@@ -159,8 +159,8 @@ struct em28xx_board em28xx_boards[] = {
.name = "Hauppauge WinTV HVR 900",
.vchannels = 3,
.norm = VIDEO_MODE_PAL,
- .has_tuner = 0,
.tda9887_conf = TDA9887_PRESENT,
+ .tuner_type = TUNER_XCEIVE_XC3028,
.has_tuner = 1,
.decoder = EM28XX_TVP5150,
.input = {{
@@ -181,8 +181,8 @@ struct em28xx_board em28xx_boards[] = {
.name = "Terratec Hybrid XS",
.vchannels = 3,
.norm = VIDEO_MODE_PAL,
- .has_tuner = 0,
.tda9887_conf = TDA9887_PRESENT,
+ .tuner_type = TUNER_XCEIVE_XC3028,
.has_tuner = 1,
.decoder = EM28XX_TVP5150,
.input = {{
diff --git a/linux/drivers/media/video/tuner-core.c b/linux/drivers/media/video/tuner-core.c
index f5fbdf9cf..bc559b9d7 100644
--- a/linux/drivers/media/video/tuner-core.c
+++ b/linux/drivers/media/video/tuner-core.c
@@ -246,6 +246,9 @@ static void set_type(struct i2c_client *c, unsigned int type,
i2c_master_send(c,buffer,4);
default_tuner_init(c);
break;
+ case TUNER_XCEIVE_XC3028:
+ xc3028_init(c);
+ break;
default:
default_tuner_init(c);
break;
diff --git a/linux/drivers/media/video/tuner-types.c b/linux/drivers/media/video/tuner-types.c
index 20744bac9..d9ac7ed77 100644
--- a/linux/drivers/media/video/tuner-types.c
+++ b/linux/drivers/media/video/tuner-types.c
@@ -1032,6 +1032,23 @@ static struct tuner_params tuner_samsung_tcpn_2121p30a_params[] = {
},
};
+/* ------------ TUNER_XCEIVE_XC3028 - Xceive xc3028 ------------ */
+
+static struct tuner_range tuner_xceive_xc3028_ranges[] = {
+ { 16 * 140.25 /*MHz*/, 0x02, },
+ { 16 * 463.25 /*MHz*/, 0x04, },
+ { 16 * 999.99 , 0x01, },
+};
+
+static struct tuner_params tuner_xceive_xc3028_params[] = {
+ {
+ .type = TUNER_XCEIVE_XC3028,
+ .ranges = tuner_xceive_xc3028_ranges,
+ .count = ARRAY_SIZE(tuner_xceive_xc3028_ranges),
+ },
+};
+
+
/* --------------------------------------------------------------------- */
struct tunertype tuners[] = {
@@ -1399,6 +1416,10 @@ struct tunertype tuners[] = {
.params = tuner_samsung_tcpn_2121p30a_params,
.count = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_params),
},
+ [TUNER_XCEIVE_XC3028] = { /* Xceive 3028 */
+ .name = "Xceive xc3028",
+ .params = tuner_xceive_xc3028_params,
+ },
};
unsigned const int tuner_count = ARRAY_SIZE(tuners);
diff --git a/linux/include/media/tuner.h b/linux/include/media/tuner.h
index 50e3bd601..2e5e8c25c 100644
--- a/linux/include/media/tuner.h
+++ b/linux/include/media/tuner.h
@@ -118,6 +118,8 @@
#define TUNER_TNF_5335MF 69 /* Sabrent Bt848 */
#define TUNER_SAMSUNG_TCPN_2121P30A 70 /* Hauppauge PVR-500MCE NTSC */
+#define TUNER_XCEIVE_XC3028 71
+
/* tv card specific */
#define TDA9887_PRESENT (1<<0)
#define TDA9887_PORT1_INACTIVE (1<<1)
@@ -210,6 +212,7 @@ struct tuner {
extern unsigned const int tuner_count;
extern int microtune_init(struct i2c_client *c);
+extern int xc3028_init(struct i2c_client *c);
extern int tda8290_init(struct i2c_client *c);
extern int tda8290_probe(struct i2c_client *c);
extern int tea5767_tuner_init(struct i2c_client *c);
diff --git a/v4l/Makefile b/v4l/Makefile
index dcf171759..8becabf7b 100644
--- a/v4l/Makefile
+++ b/v4l/Makefile
@@ -30,7 +30,7 @@ cx88xx-objs := cx88-cards.o cx88-core.o cx88-i2c.o cx88-tvaudio.o \
cx88-input.o
cx8800-objs := cx88-video.o cx88-vbi.o
cx8802-objs := cx88-mpeg.o
-tuner-objs := tuner-core.o tuner-types.o tuner-simple.o mt20xx.o tda8290.o tea5767.o
+tuner-objs := tuner-core.o tuner-types.o tuner-simple.o mt20xx.o tda8290.o tea5767.o xc3028.o
msp3400-objs := msp3400-driver.o msp3400-kthreads.o
list-multi := bttv.o saa7134.o cx88xx.o cx8800.o cx88-alsa.o cx8802.o
em28xx-objs := em28xx-video.o em28xx-i2c.o em28xx-cards.o em28xx-core.o \
@@ -97,7 +97,7 @@ endif
obj-$(CONFIG_VIDEO_SAA7134) += saa7134.o saa7134-empress.o saa6752hs.o
obj-$(CONFIG_VIDEO_SAA7134) += saa7134-oss.o
obj-$(CONFIG_VIDEO_IR) += ir-common.o
-obj-$(CONFIG_VIDEO_TUNER) += tuner.o tda9887.o saa6588.o
+obj-$(CONFIG_VIDEO_TUNER) += tuner.o tda9887.o saa6588.o xc3028.o
obj-$(CONFIG_VIDEO_TVAUDIO) += msp3400.o tvaudio.o tvmixer.o wm8775.o \
cs53l32a.o tda7432.o tda9875.o