diff options
author | istvan_v@mailbox.hu <istvan_v@mailbox.hu> | 2011-06-07 12:16:56 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-07-27 16:53:05 -0400 |
commit | 8eb79c0b9ba602123279bcc0cd65458a0dfcecfc (patch) | |
tree | 78eef2e45a84121b8be632f72c6ef2b38c1c0549 /drivers/media/video/cx88/cx88-cards.c | |
parent | f271a3affae3529c3cb6dc66f3bf0a8aeaebf5d5 (diff) |
[media] cx88: added support for Leadtek WinFast DTV1800 H with XC4000 tuner
This patch implements support for the Leadtek WinFast DTV1800 H card with
XC4000 tuner (107d:6f38).
Signed-off-by: Istvan Varga <istvan_v@mailbox.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx88/cx88-cards.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index ca21da12b208..e2a736ef2a7d 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
@@ -2120,6 +2120,47 @@ static const struct cx88_board cx88_boards[] = { | |||
2120 | }, | 2120 | }, |
2121 | .mpeg = CX88_MPEG_DVB, | 2121 | .mpeg = CX88_MPEG_DVB, |
2122 | }, | 2122 | }, |
2123 | [CX88_BOARD_WINFAST_DTV1800H_XC4000] = { | ||
2124 | .name = "Leadtek WinFast DTV1800 H (XC4000)", | ||
2125 | .tuner_type = TUNER_XC4000, | ||
2126 | .radio_type = TUNER_XC4000, | ||
2127 | .tuner_addr = 0x61, | ||
2128 | .radio_addr = 0x61, | ||
2129 | /* | ||
2130 | * GPIO setting | ||
2131 | * | ||
2132 | * 2: mute (0=off,1=on) | ||
2133 | * 12: tuner reset pin | ||
2134 | * 13: audio source (0=tuner audio,1=line in) | ||
2135 | * 14: FM (0=on,1=off ???) | ||
2136 | */ | ||
2137 | .input = {{ | ||
2138 | .type = CX88_VMUX_TELEVISION, | ||
2139 | .vmux = 0, | ||
2140 | .gpio0 = 0x0400, /* pin 2 = 0 */ | ||
2141 | .gpio1 = 0x6040, /* pin 13 = 0, pin 14 = 1 */ | ||
2142 | .gpio2 = 0x0000, | ||
2143 | }, { | ||
2144 | .type = CX88_VMUX_COMPOSITE1, | ||
2145 | .vmux = 1, | ||
2146 | .gpio0 = 0x0400, /* pin 2 = 0 */ | ||
2147 | .gpio1 = 0x6060, /* pin 13 = 1, pin 14 = 1 */ | ||
2148 | .gpio2 = 0x0000, | ||
2149 | }, { | ||
2150 | .type = CX88_VMUX_SVIDEO, | ||
2151 | .vmux = 2, | ||
2152 | .gpio0 = 0x0400, /* pin 2 = 0 */ | ||
2153 | .gpio1 = 0x6060, /* pin 13 = 1, pin 14 = 1 */ | ||
2154 | .gpio2 = 0x0000, | ||
2155 | }}, | ||
2156 | .radio = { | ||
2157 | .type = CX88_RADIO, | ||
2158 | .gpio0 = 0x0400, /* pin 2 = 0 */ | ||
2159 | .gpio1 = 0x6000, /* pin 13 = 0, pin 14 = 0 */ | ||
2160 | .gpio2 = 0x0000, | ||
2161 | }, | ||
2162 | .mpeg = CX88_MPEG_DVB, | ||
2163 | }, | ||
2123 | [CX88_BOARD_WINFAST_DTV2000H_PLUS] = { | 2164 | [CX88_BOARD_WINFAST_DTV2000H_PLUS] = { |
2124 | .name = "Leadtek WinFast DTV2000 H PLUS", | 2165 | .name = "Leadtek WinFast DTV2000 H PLUS", |
2125 | .tuner_type = TUNER_XC4000, | 2166 | .tuner_type = TUNER_XC4000, |
@@ -2634,6 +2675,11 @@ static const struct cx88_subid cx88_subids[] = { | |||
2634 | .subdevice = 0x6654, | 2675 | .subdevice = 0x6654, |
2635 | .card = CX88_BOARD_WINFAST_DTV1800H, | 2676 | .card = CX88_BOARD_WINFAST_DTV1800H, |
2636 | }, { | 2677 | }, { |
2678 | /* WinFast DTV1800 H with XC4000 tuner */ | ||
2679 | .subvendor = 0x107d, | ||
2680 | .subdevice = 0x6f38, | ||
2681 | .card = CX88_BOARD_WINFAST_DTV1800H_XC4000, | ||
2682 | }, { | ||
2637 | .subvendor = 0x107d, | 2683 | .subvendor = 0x107d, |
2638 | .subdevice = 0x6f42, | 2684 | .subdevice = 0x6f42, |
2639 | .card = CX88_BOARD_WINFAST_DTV2000H_PLUS, | 2685 | .card = CX88_BOARD_WINFAST_DTV2000H_PLUS, |
@@ -3027,6 +3073,7 @@ static int cx88_xc4000_tuner_callback(struct cx88_core *core, | |||
3027 | { | 3073 | { |
3028 | /* Board-specific callbacks */ | 3074 | /* Board-specific callbacks */ |
3029 | switch (core->boardnr) { | 3075 | switch (core->boardnr) { |
3076 | case CX88_BOARD_WINFAST_DTV1800H_XC4000: | ||
3030 | case CX88_BOARD_WINFAST_DTV2000H_PLUS: | 3077 | case CX88_BOARD_WINFAST_DTV2000H_PLUS: |
3031 | return cx88_xc4000_winfast2000h_plus_callback(core, | 3078 | return cx88_xc4000_winfast2000h_plus_callback(core, |
3032 | command, arg); | 3079 | command, arg); |
@@ -3207,6 +3254,7 @@ static void cx88_card_setup_pre_i2c(struct cx88_core *core) | |||
3207 | mdelay(50); | 3254 | mdelay(50); |
3208 | break; | 3255 | break; |
3209 | 3256 | ||
3257 | case CX88_BOARD_WINFAST_DTV1800H_XC4000: | ||
3210 | case CX88_BOARD_WINFAST_DTV2000H_PLUS: | 3258 | case CX88_BOARD_WINFAST_DTV2000H_PLUS: |
3211 | cx88_xc4000_winfast2000h_plus_callback(core, | 3259 | cx88_xc4000_winfast2000h_plus_callback(core, |
3212 | XC4000_TUNER_RESET, 0); | 3260 | XC4000_TUNER_RESET, 0); |