Skip to content

Commit

Permalink
V4L/DVB (3291): Added support for xc3028 analogue tuner (Hauppauge HV…
Browse files Browse the repository at this point in the history
…R900, Terratec Hybrid XS)

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>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Markus Rechberger authored and Mauro Carvalho Chehab committed Feb 27, 2006
1 parent 1d51960 commit 0004fd5
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 3 deletions.
1 change: 1 addition & 0 deletions Documentation/video4linux/CARDLIST.tuner
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion drivers/media/video/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions drivers/media/video/em28xx/em28xx-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,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 = {{
Expand All @@ -180,8 +180,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 = {{
Expand Down
3 changes: 3 additions & 0 deletions drivers/media/video/tuner-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,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;
Expand Down
21 changes: 21 additions & 0 deletions drivers/media/video/tuner-types.c
Original file line number Diff line number Diff line change
Expand Up @@ -983,6 +983,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[] = {
Expand Down Expand Up @@ -1350,6 +1367,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);
3 changes: 3 additions & 0 deletions include/media/tuner.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,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)
Expand Down Expand Up @@ -209,6 +211,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);
Expand Down

0 comments on commit 0004fd5

Please sign in to comment.