mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
V4L/DVB (12951): em28xx: add Reddo DVB-C USB TV Box
Support for Reddo DVB-C USB TV Box device. Remote is not working yet. Thanks to Benjamin Larsson <banan@ludd.ltu.se> Cc: Benjamin Larsson <banan@ludd.ltu.se> Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
e558170a91
commit
285eb1a402
5 changed files with 47 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
0 -> Unknown EM2800 video grabber (em2800) [eb1a:2800]
|
||||
1 -> Unknown EM2750/28xx video grabber (em2820/em2840) [eb1a:2710,eb1a:2820,eb1a:2821,eb1a:2860,eb1a:2861,eb1a:2870,eb1a:2881,eb1a:2883]
|
||||
1 -> Unknown EM2750/28xx video grabber (em2820/em2840) [eb1a:2710,eb1a:2820,eb1a:2821,eb1a:2860,eb1a:2861,eb1a:2870,eb1a:2881,eb1a:2883,eb1a:2868]
|
||||
2 -> Terratec Cinergy 250 USB (em2820/em2840) [0ccd:0036]
|
||||
3 -> Pinnacle PCTV USB 2 (em2820/em2840) [2304:0208]
|
||||
4 -> Hauppauge WinTV USB 2 (em2820/em2840) [2040:4200,2040:4201]
|
||||
|
@ -68,3 +68,4 @@
|
|||
70 -> Evga inDtube (em2882)
|
||||
71 -> Silvercrest Webcam 1.3mpix (em2820/em2840)
|
||||
72 -> Gadmei UTV330+ (em2861)
|
||||
73 -> Reddo DVB-C USB TV Box (em2870)
|
||||
|
|
|
@ -36,6 +36,7 @@ config VIDEO_EM28XX_DVB
|
|||
depends on VIDEO_EM28XX && DVB_CORE
|
||||
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA10023 if !DVB_FE_CUSTOMISE
|
||||
select VIDEOBUF_DVB
|
||||
---help---
|
||||
This adds support for DVB cards based on the
|
||||
|
|
|
@ -170,6 +170,19 @@ static struct em28xx_reg_seq pinnacle_hybrid_pro_digital[] = {
|
|||
{ -1, -1, -1, -1},
|
||||
};
|
||||
|
||||
/* eb1a:2868 Reddo DVB-C USB TV Box
|
||||
GPIO4 - CU1216L NIM
|
||||
Other GPIOs seems to be don't care. */
|
||||
static struct em28xx_reg_seq reddo_dvb_c_usb_box[] = {
|
||||
{EM28XX_R08_GPIO, 0xfe, 0xff, 10},
|
||||
{EM28XX_R08_GPIO, 0xde, 0xff, 10},
|
||||
{EM28XX_R08_GPIO, 0xfe, 0xff, 10},
|
||||
{EM28XX_R08_GPIO, 0xff, 0xff, 10},
|
||||
{EM28XX_R08_GPIO, 0x7f, 0xff, 10},
|
||||
{EM28XX_R08_GPIO, 0x6f, 0xff, 10},
|
||||
{EM28XX_R08_GPIO, 0xff, 0xff, 10},
|
||||
{-1, -1, -1, -1},
|
||||
};
|
||||
|
||||
/* Callback for the most boards */
|
||||
static struct em28xx_reg_seq default_tuner_gpio[] = {
|
||||
|
@ -1566,6 +1579,14 @@ struct em28xx_board em28xx_boards[] = {
|
|||
.gpio = evga_indtube_analog,
|
||||
} },
|
||||
},
|
||||
/* eb1a:2868 Empia EM2870 + Philips CU1216L NIM (Philips TDA10023 +
|
||||
Infineon TUA6034) */
|
||||
[EM2870_BOARD_REDDO_DVB_C_USB_BOX] = {
|
||||
.name = "Reddo DVB-C USB TV Box",
|
||||
.tuner_type = TUNER_ABSENT,
|
||||
.has_dvb = 1,
|
||||
.dvb_gpio = reddo_dvb_c_usb_box,
|
||||
},
|
||||
};
|
||||
const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
|
||||
|
||||
|
@ -1593,6 +1614,8 @@ struct usb_device_id em28xx_id_table[] = {
|
|||
.driver_info = EM2820_BOARD_UNKNOWN },
|
||||
{ USB_DEVICE(0xeb1a, 0x2883),
|
||||
.driver_info = EM2820_BOARD_UNKNOWN },
|
||||
{ USB_DEVICE(0xeb1a, 0x2868),
|
||||
.driver_info = EM2820_BOARD_UNKNOWN },
|
||||
{ USB_DEVICE(0xeb1a, 0xe300),
|
||||
.driver_info = EM2861_BOARD_KWORLD_PVRTV_300U },
|
||||
{ USB_DEVICE(0xeb1a, 0xe303),
|
||||
|
@ -1696,6 +1719,7 @@ static struct em28xx_hash_table em28xx_eeprom_hash[] = {
|
|||
{0x166a0441, EM2880_BOARD_EMPIRE_DUAL_TV, TUNER_XC2028},
|
||||
{0xcee44a99, EM2882_BOARD_EVGA_INDTUBE, TUNER_XC2028},
|
||||
{0xb8846b20, EM2881_BOARD_PINNACLE_HYBRID_PRO, TUNER_XC2028},
|
||||
{0x63f653bd, EM2870_BOARD_REDDO_DVB_C_USB_BOX, TUNER_ABSENT},
|
||||
};
|
||||
|
||||
/* I2C devicelist hash table for devices with generic USB IDs */
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "s5h1409.h"
|
||||
#include "mt352.h"
|
||||
#include "mt352_priv.h" /* FIXME */
|
||||
#include "tda1002x.h"
|
||||
|
||||
MODULE_DESCRIPTION("driver for em28xx based DVB cards");
|
||||
MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>");
|
||||
|
@ -295,6 +296,11 @@ static struct mt352_config terratec_xs_mt352_cfg = {
|
|||
.demod_init = mt352_terratec_xs_init,
|
||||
};
|
||||
|
||||
static struct tda10023_config em28xx_tda10023_config = {
|
||||
.demod_address = 0x0c,
|
||||
.invert = 1,
|
||||
};
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
|
||||
static int attach_xc3028(u8 addr, struct em28xx *dev)
|
||||
|
@ -549,6 +555,19 @@ static int dvb_init(struct em28xx *dev)
|
|||
}
|
||||
break;
|
||||
#endif
|
||||
case EM2870_BOARD_REDDO_DVB_C_USB_BOX:
|
||||
/* Philips CU1216L NIM (Philips TDA10023 + Infineon TUA6034) */
|
||||
dvb->frontend = dvb_attach(tda10023_attach,
|
||||
&em28xx_tda10023_config,
|
||||
&dev->i2c_adap, 0x48);
|
||||
if (dvb->frontend) {
|
||||
if (!dvb_attach(simple_tuner_attach, dvb->frontend,
|
||||
&dev->i2c_adap, 0x60, TUNER_PHILIPS_CU1216L)) {
|
||||
result = -EINVAL;
|
||||
goto out_free;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card"
|
||||
" isn't supported yet\n",
|
||||
|
|
|
@ -109,6 +109,7 @@
|
|||
#define EM2882_BOARD_EVGA_INDTUBE 70
|
||||
#define EM2820_BOARD_SILVERCREST_WEBCAM 71
|
||||
#define EM2861_BOARD_GADMEI_UTV330PLUS 72
|
||||
#define EM2870_BOARD_REDDO_DVB_C_USB_BOX 73
|
||||
|
||||
/* Limits minimum and default number of buffers */
|
||||
#define EM28XX_MIN_BUF 4
|
||||
|
|
Loading…
Reference in a new issue