diff options
author | Aidan Thornton <makosoft@googlemail.com> | 2008-04-17 20:40:03 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-24 13:09:41 -0400 |
commit | 7e6388a1b97cca57a1906df6104feb4001721576 (patch) | |
tree | 39605d0155820b172893a8d4d70e13ea208b0cba /drivers/media/video | |
parent | d2d9fbfd732f49999a2a94f2479934488fe3ea9d (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/Kconfig | 1 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 20 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 18 |
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 | ||
27 | MODULE_DESCRIPTION("driver for em28xx based DVB cards"); | 28 | MODULE_DESCRIPTION("driver for em28xx based DVB cards"); |
28 | MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>"); | 29 | MODULE_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 | ||
69 | static 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 | ||
70 | static int attach_xc3028(u8 addr, struct em28xx *dev) | 78 | static 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", |