aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
authorAidan Thornton <makosoft@googlemail.com>2008-04-17 20:40:03 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:09:41 -0400
commit7e6388a1b97cca57a1906df6104feb4001721576 (patch)
tree39605d0155820b172893a8d4d70e13ea208b0cba /drivers/media/video
parentd2d9fbfd732f49999a2a94f2479934488fe3ea9d (diff)
V4L/DVB (7601): em28xx-dvb: add support for the HVR-900
Adds the correct GPIOs and demod attach code for the HVR-900 Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/em28xx/Kconfig1
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c20
-rw-r--r--drivers/media/video/em28xx/em28xx-dvb.c18
3 files changed, 39 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/Kconfig b/drivers/media/video/em28xx/Kconfig
index 4818cda38913..c57420e263ff 100644
--- a/drivers/media/video/em28xx/Kconfig
+++ b/drivers/media/video/em28xx/Kconfig
@@ -32,6 +32,7 @@ config VIDEO_EM28XX_DVB
32 tristate "DVB/ATSC Support for em28xx based TV cards" 32 tristate "DVB/ATSC Support for em28xx based TV cards"
33 depends on VIDEO_EM28XX && DVB_CORE 33 depends on VIDEO_EM28XX && DVB_CORE
34 select DVB_LGDT330X if !DVB_FE_CUSTOMISE 34 select DVB_LGDT330X if !DVB_FE_CUSTOMISE
35 select DVB_ZL10353 if !DVB_FE_CUSTOMISE
35 select VIDEOBUF_DVB 36 select VIDEOBUF_DVB
36 select FW_LOADER 37 select FW_LOADER
37 ---help--- 38 ---help---
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 2e7fd1911154..2a44d2adeb09 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -171,6 +171,26 @@ struct em28xx_board em28xx_boards[] = {
171 .vmux = TVP5150_SVIDEO, 171 .vmux = TVP5150_SVIDEO,
172 .amux = 1, 172 .amux = 1,
173 } }, 173 } },
174 .analog_gpio = {
175 { /* xc3028 reset seq */
176 .reg = 0x08,
177 .val = 0x2d,
178 .rst = 0x3d,
179 .t1 = 5,
180 .t2 = 10,
181 .t3 = 5,
182 },
183 },
184 .digital_gpio = {
185 { /* xc3028 reset seq */
186 .reg = 0x08,
187 .val = 0x2e,
188 .rst = 0x3e,
189 .t1 = 6,
190 .t2 = 6,
191 .t3 = 6,
192 }
193 },
174 }, 194 },
175 [EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950] = { 195 [EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950] = {
176 .name = "Hauppauge WinTV HVR 950", 196 .name = "Hauppauge WinTV HVR 950",
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c
index d3d52972cd84..65e0ab65fbe1 100644
--- a/drivers/media/video/em28xx/em28xx-dvb.c
+++ b/drivers/media/video/em28xx/em28xx-dvb.c
@@ -23,6 +23,7 @@
23#include <media/videobuf-vmalloc.h> 23#include <media/videobuf-vmalloc.h>
24 24
25#include "lgdt330x.h" 25#include "lgdt330x.h"
26#include "zl10353.h"
26 27
27MODULE_DESCRIPTION("driver for em28xx based DVB cards"); 28MODULE_DESCRIPTION("driver for em28xx based DVB cards");
28MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>"); 29MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>");
@@ -65,6 +66,13 @@ static struct lgdt330x_config em2880_lgdt3303_dev = {
65 .demod_chip = LGDT3303, 66 .demod_chip = LGDT3303,
66}; 67};
67 68
69static struct zl10353_config em28xx_zl10353_with_xc3028 = {
70 .demod_address = (0x1e >> 1),
71 .no_tuner = 1,
72 .parallel_ts = 1,
73 .if2 = 45600,
74};
75
68/* ------------------------------------------------------------------ */ 76/* ------------------------------------------------------------------ */
69 77
70static int attach_xc3028(u8 addr, struct em28xx *dev) 78static int attach_xc3028(u8 addr, struct em28xx *dev)
@@ -134,6 +142,16 @@ static int dvb_init(struct em28xx *dev)
134 if (attach_xc3028(0x61, dev) < 0) 142 if (attach_xc3028(0x61, dev) < 0)
135 return -EINVAL; 143 return -EINVAL;
136 break; 144 break;
145 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
146 /* Enable zl10353 */
147 dev->mode = EM28XX_DIGITAL_MODE;
148 em28xx_tuner_callback(dev, XC2028_TUNER_RESET, 0);
149 dev->dvb.frontend = dvb_attach(zl10353_attach,
150 &em28xx_zl10353_with_xc3028,
151 &dev->i2c_adap);
152 if (attach_xc3028(0x61, dev) < 0)
153 return -EINVAL;
154 break;
137 default: 155 default:
138 printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card" 156 printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card"
139 " isn't supported yet\n", 157 " isn't supported yet\n",