diff options
author | Markus Rechberger <mrechberger@gmail.com> | 2006-02-01 14:43:34 +0100 |
---|---|---|
committer | Markus Rechberger <mrechberger@gmail.com> | 2006-02-01 14:43:34 +0100 |
commit | c3ac6318cf5fc0e6a2dc4a72b869ab496f78e2a2 (patch) | |
tree | 1c73faf88a0b22720fdcb608e036ad57fb16bb51 | |
parent | aed6c7095773ce833bac839d15ae13e41eaaf428 (diff) | |
download | mediapointer-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.tuner | 1 | ||||
-rw-r--r-- | linux/drivers/media/video/Makefile | 2 | ||||
-rw-r--r-- | linux/drivers/media/video/em28xx/em28xx-cards.c | 4 | ||||
-rw-r--r-- | linux/drivers/media/video/tuner-core.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/video/tuner-types.c | 21 | ||||
-rw-r--r-- | linux/include/media/tuner.h | 3 | ||||
-rw-r--r-- | v4l/Makefile | 4 |
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 |