diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-09-03 15:46:36 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-09-03 17:36:19 -0400 |
commit | 8e8bd229eef385ab420d4fa51c611d4ddc7cb0c8 (patch) | |
tree | 2166b68220863441317f0027b9912397fbfa8d5b | |
parent | 2e7acd75cba3b7afa4007f20f22a86dbbdb21753 (diff) |
V4L/DVB (8556): au0828: add support for Hauppauge Woodbury
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | Documentation/video4linux/CARDLIST.au0828 | 1 | ||||
-rw-r--r-- | drivers/media/video/au0828/Kconfig | 1 | ||||
-rw-r--r-- | drivers/media/video/au0828/au0828-cards.c | 7 | ||||
-rw-r--r-- | drivers/media/video/au0828/au0828-cards.h | 1 | ||||
-rw-r--r-- | drivers/media/video/au0828/au0828-dvb.c | 21 |
5 files changed, 31 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.au0828 b/Documentation/video4linux/CARDLIST.au0828 index eedc399e8deb..aa05e5bb22fb 100644 --- a/Documentation/video4linux/CARDLIST.au0828 +++ b/Documentation/video4linux/CARDLIST.au0828 | |||
@@ -3,3 +3,4 @@ | |||
3 | 2 -> Hauppauge HVR850 (au0828) [2040:7240] | 3 | 2 -> Hauppauge HVR850 (au0828) [2040:7240] |
4 | 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620] | 4 | 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620] |
5 | 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281] | 5 | 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281] |
6 | 5 -> Hauppauge Woodbury (au0828) [2040:8200] | ||
diff --git a/drivers/media/video/au0828/Kconfig b/drivers/media/video/au0828/Kconfig index ed9a50f189fc..018f72b8e3e2 100644 --- a/drivers/media/video/au0828/Kconfig +++ b/drivers/media/video/au0828/Kconfig | |||
@@ -7,6 +7,7 @@ config VIDEO_AU0828 | |||
7 | select DVB_AU8522 if !DVB_FE_CUSTOMIZE | 7 | select DVB_AU8522 if !DVB_FE_CUSTOMIZE |
8 | select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE | 8 | select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE |
9 | select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE | 9 | select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE |
10 | select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE | ||
10 | ---help--- | 11 | ---help--- |
11 | This is a video4linux driver for Auvitek's USB device. | 12 | This is a video4linux driver for Auvitek's USB device. |
12 | 13 | ||
diff --git a/drivers/media/video/au0828/au0828-cards.c b/drivers/media/video/au0828/au0828-cards.c index 443e59009762..14b9fc9bb62e 100644 --- a/drivers/media/video/au0828/au0828-cards.c +++ b/drivers/media/video/au0828/au0828-cards.c | |||
@@ -38,6 +38,9 @@ struct au0828_board au0828_boards[] = { | |||
38 | [AU0828_BOARD_DVICO_FUSIONHDTV7] = { | 38 | [AU0828_BOARD_DVICO_FUSIONHDTV7] = { |
39 | .name = "DViCO FusionHDTV USB", | 39 | .name = "DViCO FusionHDTV USB", |
40 | }, | 40 | }, |
41 | [AU0828_BOARD_HAUPPAUGE_WOODBURY] = { | ||
42 | .name = "Hauppauge Woodbury", | ||
43 | }, | ||
41 | }; | 44 | }; |
42 | 45 | ||
43 | /* Tuner callback function for au0828 boards. Currently only needed | 46 | /* Tuner callback function for au0828 boards. Currently only needed |
@@ -115,6 +118,7 @@ void au0828_card_setup(struct au0828_dev *dev) | |||
115 | case AU0828_BOARD_HAUPPAUGE_HVR850: | 118 | case AU0828_BOARD_HAUPPAUGE_HVR850: |
116 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: | 119 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: |
117 | case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: | 120 | case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: |
121 | case AU0828_BOARD_HAUPPAUGE_WOODBURY: | ||
118 | if (dev->i2c_rc == 0) | 122 | if (dev->i2c_rc == 0) |
119 | hauppauge_eeprom(dev, eeprom+0xa0); | 123 | hauppauge_eeprom(dev, eeprom+0xa0); |
120 | break; | 124 | break; |
@@ -134,6 +138,7 @@ void au0828_gpio_setup(struct au0828_dev *dev) | |||
134 | case AU0828_BOARD_HAUPPAUGE_HVR850: | 138 | case AU0828_BOARD_HAUPPAUGE_HVR850: |
135 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: | 139 | case AU0828_BOARD_HAUPPAUGE_HVR950Q: |
136 | case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: | 140 | case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: |
141 | case AU0828_BOARD_HAUPPAUGE_WOODBURY: | ||
137 | /* GPIO's | 142 | /* GPIO's |
138 | * 4 - CS5340 | 143 | * 4 - CS5340 |
139 | * 5 - AU8522 Demodulator | 144 | * 5 - AU8522 Demodulator |
@@ -205,6 +210,8 @@ struct usb_device_id au0828_usb_id_table [] = { | |||
205 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, | 210 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, |
206 | { USB_DEVICE(0x2040, 0x7281), | 211 | { USB_DEVICE(0x2040, 0x7281), |
207 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, | 212 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, |
213 | { USB_DEVICE(0x2040, 0x8200), | ||
214 | .driver_info = AU0828_BOARD_HAUPPAUGE_WOODBURY }, | ||
208 | { }, | 215 | { }, |
209 | }; | 216 | }; |
210 | 217 | ||
diff --git a/drivers/media/video/au0828/au0828-cards.h b/drivers/media/video/au0828/au0828-cards.h index c37f5fd0fa80..102ed03dc6bc 100644 --- a/drivers/media/video/au0828/au0828-cards.h +++ b/drivers/media/video/au0828/au0828-cards.h | |||
@@ -24,3 +24,4 @@ | |||
24 | #define AU0828_BOARD_HAUPPAUGE_HVR850 2 | 24 | #define AU0828_BOARD_HAUPPAUGE_HVR850 2 |
25 | #define AU0828_BOARD_DVICO_FUSIONHDTV7 3 | 25 | #define AU0828_BOARD_DVICO_FUSIONHDTV7 3 |
26 | #define AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL 4 | 26 | #define AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL 4 |
27 | #define AU0828_BOARD_HAUPPAUGE_WOODBURY 5 | ||
diff --git a/drivers/media/video/au0828/au0828-dvb.c b/drivers/media/video/au0828/au0828-dvb.c index 584a83a94a2a..c862f9e4d2fd 100644 --- a/drivers/media/video/au0828/au0828-dvb.c +++ b/drivers/media/video/au0828/au0828-dvb.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include "au8522.h" | 29 | #include "au8522.h" |
30 | #include "xc5000.h" | 30 | #include "xc5000.h" |
31 | #include "mxl5007t.h" | 31 | #include "mxl5007t.h" |
32 | #include "tda18271.h" | ||
32 | 33 | ||
33 | DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); | 34 | DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); |
34 | 35 | ||
@@ -40,6 +41,13 @@ static struct au8522_config hauppauge_hvr950q_config = { | |||
40 | .status_mode = AU8522_DEMODLOCKING, | 41 | .status_mode = AU8522_DEMODLOCKING, |
41 | }; | 42 | }; |
42 | 43 | ||
44 | static struct au8522_config hauppauge_woodbury_config = { | ||
45 | .demod_address = 0x8e >> 1, | ||
46 | .status_mode = AU8522_DEMODLOCKING, | ||
47 | .qam_if = AU8522_IF_4MHZ, | ||
48 | .vsb_if = AU8522_IF_3_25MHZ, | ||
49 | }; | ||
50 | |||
43 | static struct xc5000_config hauppauge_hvr950q_tunerconfig = { | 51 | static struct xc5000_config hauppauge_hvr950q_tunerconfig = { |
44 | .i2c_address = 0x61, | 52 | .i2c_address = 0x61, |
45 | .if_khz = 6000, | 53 | .if_khz = 6000, |
@@ -51,6 +59,10 @@ static struct mxl5007t_config mxl5007t_hvr950q_config = { | |||
51 | .if_freq_hz = MxL_IF_6_MHZ, | 59 | .if_freq_hz = MxL_IF_6_MHZ, |
52 | }; | 60 | }; |
53 | 61 | ||
62 | static struct tda18271_config hauppauge_woodbury_tunerconfig = { | ||
63 | .gate = TDA18271_GATE_DIGITAL, | ||
64 | }; | ||
65 | |||
54 | /*-------------------------------------------------------------------*/ | 66 | /*-------------------------------------------------------------------*/ |
55 | static void urb_completion(struct urb *purb) | 67 | static void urb_completion(struct urb *purb) |
56 | { | 68 | { |
@@ -357,6 +369,15 @@ int au0828_dvb_register(struct au0828_dev *dev) | |||
357 | &dev->i2c_adap, 0x60, | 369 | &dev->i2c_adap, 0x60, |
358 | &mxl5007t_hvr950q_config); | 370 | &mxl5007t_hvr950q_config); |
359 | break; | 371 | break; |
372 | case AU0828_BOARD_HAUPPAUGE_WOODBURY: | ||
373 | dvb->frontend = dvb_attach(au8522_attach, | ||
374 | &hauppauge_woodbury_config, | ||
375 | &dev->i2c_adap); | ||
376 | if (dvb->frontend != NULL) | ||
377 | dvb_attach(tda18271_attach, dvb->frontend, | ||
378 | 0x60, &dev->i2c_adap, | ||
379 | &hauppauge_woodbury_tunerconfig); | ||
380 | break; | ||
360 | default: | 381 | default: |
361 | printk(KERN_WARNING "The frontend of your DVB/ATSC card " | 382 | printk(KERN_WARNING "The frontend of your DVB/ATSC card " |
362 | "isn't supported yet\n"); | 383 | "isn't supported yet\n"); |