diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2007-12-17 23:09:11 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:04:16 -0500 |
commit | 07b4a835d42d6d59e84cbafdc8b7090f97d7b67a (patch) | |
tree | 31a7dc5771357e860b0061f3ebaf314d95da8d61 /drivers/media/video/cx23885/cx23885-cards.c | |
parent | ef207feddf826f099562b239543c447e68991b84 (diff) |
V4L/DVB (6898): cx23885: add support for Hauppauge WinTV HVR-1500
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-cards.c')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index d40232cda462..e11fa10a13a6 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -117,7 +117,10 @@ struct cx23885_board cx23885_boards[] = { | |||
117 | .name = "Hauppauge WinTV-HVR1500Q", | 117 | .name = "Hauppauge WinTV-HVR1500Q", |
118 | .portc = CX23885_MPEG_DVB, | 118 | .portc = CX23885_MPEG_DVB, |
119 | }, | 119 | }, |
120 | 120 | [CX23885_BOARD_HAUPPAUGE_HVR1500] = { | |
121 | .name = "Hauppauge WinTV-HVR1500", | ||
122 | .portc = CX23885_MPEG_DVB, | ||
123 | }, | ||
121 | }; | 124 | }; |
122 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 125 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); |
123 | 126 | ||
@@ -153,6 +156,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
153 | .subvendor = 0x0070, | 156 | .subvendor = 0x0070, |
154 | .subdevice = 0x7797, | 157 | .subdevice = 0x7797, |
155 | .card = CX23885_BOARD_HAUPPAUGE_HVR1500Q, | 158 | .card = CX23885_BOARD_HAUPPAUGE_HVR1500Q, |
159 | },{ | ||
160 | .subvendor = 0x0070, | ||
161 | .subdevice = 0x7717, | ||
162 | .card = CX23885_BOARD_HAUPPAUGE_HVR1500, | ||
156 | }, | 163 | }, |
157 | }; | 164 | }; |
158 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 165 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); |
@@ -214,6 +221,18 @@ void cx23885_gpio_setup(struct cx23885_dev *dev) | |||
214 | /* GPIO-0 cx24227 demodulator reset */ | 221 | /* GPIO-0 cx24227 demodulator reset */ |
215 | cx_set(GP0_IO, 0x00010001); /* Bring the part out of reset */ | 222 | cx_set(GP0_IO, 0x00010001); /* Bring the part out of reset */ |
216 | break; | 223 | break; |
224 | case CX23885_BOARD_HAUPPAUGE_HVR1500: | ||
225 | /* GPIO-0 cx24227 demodulator */ | ||
226 | /* GPIO-2 xc3028 tuner */ | ||
227 | |||
228 | /* Put the parts into reset */ | ||
229 | cx_set(GP0_IO, 0x00050000); | ||
230 | cx_clear(GP0_IO, 0x00000005); | ||
231 | msleep(5); | ||
232 | |||
233 | /* Bring the parts out of reset */ | ||
234 | cx_set(GP0_IO, 0x00050005); | ||
235 | break; | ||
217 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: | 236 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: |
218 | /* GPIO-0 cx24227 demodulator reset */ | 237 | /* GPIO-0 cx24227 demodulator reset */ |
219 | /* GPIO-2 xc5000 tuner reset */ | 238 | /* GPIO-2 xc5000 tuner reset */ |
@@ -236,6 +255,7 @@ int cx23885_ir_init(struct cx23885_dev *dev) | |||
236 | { | 255 | { |
237 | switch (dev->board) { | 256 | switch (dev->board) { |
238 | case CX23885_BOARD_HAUPPAUGE_HVR1250: | 257 | case CX23885_BOARD_HAUPPAUGE_HVR1250: |
258 | case CX23885_BOARD_HAUPPAUGE_HVR1500: | ||
239 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: | 259 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: |
240 | case CX23885_BOARD_HAUPPAUGE_HVR1800: | 260 | case CX23885_BOARD_HAUPPAUGE_HVR1800: |
241 | /* FIXME: Implement me */ | 261 | /* FIXME: Implement me */ |
@@ -260,6 +280,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
260 | 280 | ||
261 | switch (dev->board) { | 281 | switch (dev->board) { |
262 | case CX23885_BOARD_HAUPPAUGE_HVR1250: | 282 | case CX23885_BOARD_HAUPPAUGE_HVR1250: |
283 | case CX23885_BOARD_HAUPPAUGE_HVR1500: | ||
263 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: | 284 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: |
264 | case CX23885_BOARD_HAUPPAUGE_HVR1800: | 285 | case CX23885_BOARD_HAUPPAUGE_HVR1800: |
265 | case CX23885_BOARD_HAUPPAUGE_HVR1800lp: | 286 | case CX23885_BOARD_HAUPPAUGE_HVR1800lp: |
@@ -275,6 +296,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
275 | ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; | 296 | ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; |
276 | break; | 297 | break; |
277 | case CX23885_BOARD_HAUPPAUGE_HVR1250: | 298 | case CX23885_BOARD_HAUPPAUGE_HVR1250: |
299 | case CX23885_BOARD_HAUPPAUGE_HVR1500: | ||
278 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: | 300 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: |
279 | case CX23885_BOARD_HAUPPAUGE_HVR1800: | 301 | case CX23885_BOARD_HAUPPAUGE_HVR1800: |
280 | case CX23885_BOARD_HAUPPAUGE_HVR1800lp: | 302 | case CX23885_BOARD_HAUPPAUGE_HVR1800lp: |