Commit ad10c930 authored by Eric Thomas's avatar Eric Thomas Committed by Mauro Carvalho Chehab

V4L/DVB (4359): Cx88: add initial support for Hauppauge HVR3000 trimode card

add initial support for Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T
only analog is working for now
Signed-off-by: default avatarEric Thomas <ethomas@claranet.fr>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 2ab65299
...@@ -51,3 +51,4 @@ ...@@ -51,3 +51,4 @@
50 -> NPG Tech Real TV FM Top 10 [14f1:0842] 50 -> NPG Tech Real TV FM Top 10 [14f1:0842]
51 -> WinFast DTV2000 H [107d:665e] 51 -> WinFast DTV2000 H [107d:665e]
52 -> Geniatech DVB-S [14f1:0084] 52 -> Geniatech DVB-S [14f1:0084]
53 -> Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T [0070:1404]
...@@ -1209,6 +1209,28 @@ struct cx88_board cx88_boards[] = { ...@@ -1209,6 +1209,28 @@ struct cx88_board cx88_boards[] = {
}}, }},
.dvb = 1, .dvb = 1,
}, },
[CX88_BOARD_HAUPPAUGE_HVR3000] = {
/* FIXME: Add dvb & radio support */
.name = "Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T",
.tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
.radio_type = UNSET,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.tda9887_conf = TDA9887_PRESENT,
.input = {{
.type = CX88_VMUX_TELEVISION,
.vmux = 0,
.gpio0 = 0x84bf,
},{
.type = CX88_VMUX_COMPOSITE1,
.vmux = 1,
.gpio0 = 0x84bf,
},{
.type = CX88_VMUX_SVIDEO,
.vmux = 2,
.gpio0 = 0x84bf,
}},
},
}; };
const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards); const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
...@@ -1458,6 +1480,10 @@ struct cx88_subid cx88_subids[] = { ...@@ -1458,6 +1480,10 @@ struct cx88_subid cx88_subids[] = {
.subvendor = 0x14f1, .subvendor = 0x14f1,
.subdevice = 0x0084, .subdevice = 0x0084,
.card = CX88_BOARD_GENIATECH_DVBS, .card = CX88_BOARD_GENIATECH_DVBS,
},{
.subvendor = 0x0070,
.subdevice = 0x1404,
.card = CX88_BOARD_HAUPPAUGE_HVR3000,
}, },
}; };
const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
...@@ -1501,6 +1527,7 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data) ...@@ -1501,6 +1527,7 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
/* Make sure we support the board model */ /* Make sure we support the board model */
switch (tv.model) switch (tv.model)
{ {
case 14569: /* WinTV-HVR3000 (OEM, no IR, no back panel video) */
case 28552: /* WinTV-PVR 'Roslyn' (No IR) */ case 28552: /* WinTV-PVR 'Roslyn' (No IR) */
case 34519: /* WinTV-PCI-FM */ case 34519: /* WinTV-PCI-FM */
case 90002: /* Nova-T-PCI (9002) */ case 90002: /* Nova-T-PCI (9002) */
...@@ -1666,6 +1693,7 @@ void cx88_card_setup(struct cx88_core *core) ...@@ -1666,6 +1693,7 @@ void cx88_card_setup(struct cx88_core *core)
case CX88_BOARD_HAUPPAUGE_DVB_T1: case CX88_BOARD_HAUPPAUGE_DVB_T1:
case CX88_BOARD_HAUPPAUGE_HVR1100: case CX88_BOARD_HAUPPAUGE_HVR1100:
case CX88_BOARD_HAUPPAUGE_HVR1100LP: case CX88_BOARD_HAUPPAUGE_HVR1100LP:
case CX88_BOARD_HAUPPAUGE_HVR3000:
if (0 == core->i2c_rc) if (0 == core->i2c_rc)
hauppauge_eeprom(core,eeprom); hauppauge_eeprom(core,eeprom);
break; break;
......
...@@ -197,6 +197,7 @@ extern struct sram_channel cx88_sram_channels[]; ...@@ -197,6 +197,7 @@ extern struct sram_channel cx88_sram_channels[];
#define CX88_BOARD_NPGTECH_REALTV_TOP10FM 50 #define CX88_BOARD_NPGTECH_REALTV_TOP10FM 50
#define CX88_BOARD_WINFAST_DTV2000H 51 #define CX88_BOARD_WINFAST_DTV2000H 51
#define CX88_BOARD_GENIATECH_DVBS 52 #define CX88_BOARD_GENIATECH_DVBS 52
#define CX88_BOARD_HAUPPAUGE_HVR3000 53
enum cx88_itype { enum cx88_itype {
CX88_VMUX_COMPOSITE1 = 1, CX88_VMUX_COMPOSITE1 = 1,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment