aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx88/cx88-cards.c
diff options
context:
space:
mode:
authoristvan_v@mailbox.hu <istvan_v@mailbox.hu>2011-06-07 12:16:56 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-07-27 16:53:05 -0400
commit8eb79c0b9ba602123279bcc0cd65458a0dfcecfc (patch)
tree78eef2e45a84121b8be632f72c6ef2b38c1c0549 /drivers/media/video/cx88/cx88-cards.c
parentf271a3affae3529c3cb6dc66f3bf0a8aeaebf5d5 (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.c48
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);