2 * tm6000-stds.c - driver for TM5600/TM6000/TM6010 USB video capture devices
4 * Copyright (C) 2007 Mauro Carvalho Chehab <mchehab@redhat.com>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation version 2
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 #include <linux/module.h>
21 #include <linux/kernel.h>
23 #include "tm6000-regs.h"
25 struct tm6000_reg_settings
{
31 enum tm6000_audio_std
{
43 struct tm6000_std_tv_settings
{
45 enum tm6000_audio_std audio_default_std
;
47 struct tm6000_reg_settings sif
[12];
48 struct tm6000_reg_settings nosif
[12];
49 struct tm6000_reg_settings common
[26];
52 struct tm6000_std_settings
{
54 enum tm6000_audio_std audio_default_std
;
55 struct tm6000_reg_settings common
[37];
58 static struct tm6000_std_tv_settings tv_stds
[] = {
61 .audio_default_std
= BTSC
,
63 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf2},
64 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
65 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
66 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x08},
67 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
68 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
69 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
70 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
71 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x62},
72 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfe},
73 {TM6010_REQ07_RFE_POWER_DOWN
, 0xcb},
77 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
78 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
79 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
80 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
81 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
82 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
83 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
84 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
85 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x60},
86 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
87 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
91 {TM6010_REQ07_R3F_RESET
, 0x01},
92 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x04},
93 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
94 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
95 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x00},
96 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
97 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
98 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x83},
99 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x0a},
100 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xe0},
101 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
102 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
103 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
104 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
105 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x88},
106 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x20},
107 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0x61},
108 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
109 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
110 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
111 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
113 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
114 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
116 {TM6010_REQ07_R3F_RESET
, 0x00},
121 .id
= V4L2_STD_PAL_Nc
,
122 .audio_default_std
= BTSC
,
124 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf2},
125 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
126 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
127 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x08},
128 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
129 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
130 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
131 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
132 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x62},
133 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfe},
134 {TM6010_REQ07_RFE_POWER_DOWN
, 0xcb},
138 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
139 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
140 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
141 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
142 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
143 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
144 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
145 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
146 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x60},
147 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
148 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
152 {TM6010_REQ07_R3F_RESET
, 0x01},
153 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x36},
154 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
155 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
156 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x02},
157 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
158 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
159 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x91},
160 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x1f},
161 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0x0c},
162 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
163 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
164 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
165 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
166 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
167 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2c},
168 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
169 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
170 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
171 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
172 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
174 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
175 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
177 {TM6010_REQ07_R3F_RESET
, 0x00},
183 .audio_default_std
= BG_A2
,
185 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf2},
186 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
187 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
188 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x08},
189 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
190 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
191 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
192 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
193 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x62},
194 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfe},
195 {TM6010_REQ07_RFE_POWER_DOWN
, 0xcb},
199 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
200 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
201 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
202 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
203 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
204 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
205 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
206 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
207 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x60},
208 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
209 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
213 {TM6010_REQ07_R3F_RESET
, 0x01},
214 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x32},
215 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
216 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
217 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x02},
218 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
219 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x25},
220 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0xd5},
221 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x63},
222 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0x50},
223 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
224 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
225 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
226 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
227 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
228 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2c},
229 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
230 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
231 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
232 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
233 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
235 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
236 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
238 {TM6010_REQ07_R3F_RESET
, 0x00},
243 .id
= V4L2_STD_SECAM_B
| V4L2_STD_SECAM_G
,
244 .audio_default_std
= BG_NICAM
,
246 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf2},
247 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
248 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
249 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x08},
250 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
251 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
252 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
253 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
254 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x62},
255 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfe},
256 {TM6010_REQ07_RFE_POWER_DOWN
, 0xcb},
260 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
261 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
262 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
263 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
264 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
265 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
266 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
267 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
268 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x60},
269 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
270 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
274 {TM6010_REQ07_R3F_RESET
, 0x01},
275 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x38},
276 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
277 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
278 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x02},
279 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
280 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x24},
281 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x92},
282 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xe8},
283 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xed},
284 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
285 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
286 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
287 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
288 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
289 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2c},
290 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
291 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x2c},
292 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x18},
293 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
294 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0xFF},
296 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
298 {TM6010_REQ07_R3F_RESET
, 0x00},
302 .id
= V4L2_STD_SECAM_DK
,
303 .audio_default_std
= DK_NICAM
,
305 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf2},
306 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
307 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
308 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x08},
309 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
310 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
311 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
312 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
313 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x62},
314 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfe},
315 {TM6010_REQ07_RFE_POWER_DOWN
, 0xcb},
319 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
320 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
321 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
322 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
323 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
324 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
325 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
326 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
327 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x60},
328 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
329 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
333 {TM6010_REQ07_R3F_RESET
, 0x01},
334 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x38},
335 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
336 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
337 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x02},
338 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
339 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x24},
340 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x92},
341 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xe8},
342 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xed},
343 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
344 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
345 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
346 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
347 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
348 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2c},
349 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
350 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x2c},
351 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x18},
352 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
353 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0xFF},
355 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
357 {TM6010_REQ07_R3F_RESET
, 0x00},
362 .audio_default_std
= BTSC
,
364 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf2},
365 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
366 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
367 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x08},
368 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
369 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
370 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
371 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
372 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x62},
373 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfe},
374 {TM6010_REQ07_RFE_POWER_DOWN
, 0xcb},
378 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
379 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf8},
380 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
381 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
382 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
383 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
384 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
385 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
386 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x60},
387 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
388 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
392 {TM6010_REQ07_R3F_RESET
, 0x01},
393 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x00},
394 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0f},
395 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
396 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x00},
397 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
398 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
399 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x8b},
400 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xa2},
401 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xe9},
402 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
403 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
404 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
405 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
406 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x88},
407 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x22},
408 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0x61},
409 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x1c},
410 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
411 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
412 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
414 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdd},
415 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
417 {TM6010_REQ07_R3F_RESET
, 0x00},
424 static struct tm6000_std_settings composite_stds
[] = {
426 .id
= V4L2_STD_PAL_M
,
427 .audio_default_std
= BTSC
,
429 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
430 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf4},
431 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
432 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
433 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
434 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
435 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
436 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
437 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
438 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
439 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
441 {TM6010_REQ07_R3F_RESET
, 0x01},
442 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x04},
443 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
444 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
445 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x00},
446 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
447 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
448 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x83},
449 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x0a},
450 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xe0},
451 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
452 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
453 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
454 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
455 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x88},
456 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x20},
457 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0x61},
458 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
459 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
460 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
461 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
463 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
464 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
465 {TM6010_REQ07_R3F_RESET
, 0x00},
469 .id
= V4L2_STD_PAL_Nc
,
470 .audio_default_std
= BTSC
,
472 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
473 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf4},
474 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
475 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
476 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
477 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
478 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
479 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
480 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
481 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
482 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
484 {TM6010_REQ07_R3F_RESET
, 0x01},
485 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x36},
486 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
487 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
488 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x02},
489 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
490 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
491 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x91},
492 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x1f},
493 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0x0c},
494 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
495 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
496 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
497 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
498 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
499 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2c},
500 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
501 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
502 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
503 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
504 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
506 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
507 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
508 {TM6010_REQ07_R3F_RESET
, 0x00},
513 .audio_default_std
= BG_A2
,
515 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
516 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf4},
517 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
518 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
519 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
520 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
521 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
522 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
523 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
524 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
525 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
527 {TM6010_REQ07_R3F_RESET
, 0x01},
528 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x32},
529 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
530 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
531 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x02},
532 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
533 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x25},
534 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0xd5},
535 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x63},
536 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0x50},
537 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
538 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
539 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
540 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
541 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
542 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2c},
543 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
544 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
545 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
546 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
547 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
549 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
550 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
551 {TM6010_REQ07_R3F_RESET
, 0x00},
555 .id
= V4L2_STD_SECAM
,
556 .audio_default_std
= BG_NICAM
,
558 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
559 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf4},
560 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
561 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
562 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
563 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
564 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
565 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
566 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
567 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
568 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
570 {TM6010_REQ07_R3F_RESET
, 0x01},
571 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x38},
572 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
573 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
574 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x02},
575 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
576 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x24},
577 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x92},
578 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xe8},
579 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xed},
580 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
581 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
582 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
583 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
584 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
585 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2c},
586 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
587 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x2c},
588 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x18},
589 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
590 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0xFF},
592 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
593 {TM6010_REQ07_R3F_RESET
, 0x00},
597 .id
= V4L2_STD_SECAM_DK
,
598 .audio_default_std
= DK_NICAM
,
600 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
601 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf4},
602 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
603 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
604 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
605 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
606 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
607 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
608 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
609 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
610 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
612 {TM6010_REQ07_R3F_RESET
, 0x01},
613 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x38},
614 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
615 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
616 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x02},
617 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
618 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x24},
619 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x92},
620 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xe8},
621 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xed},
622 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
623 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
624 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
625 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
626 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
627 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2c},
628 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
629 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x2c},
630 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x18},
631 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
632 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0xFF},
634 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
635 {TM6010_REQ07_R3F_RESET
, 0x00},
640 .audio_default_std
= BTSC
,
642 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
643 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xf4},
644 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3},
645 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x0f},
646 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf1},
647 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xe0},
648 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
649 {TM6010_REQ08_RED_GAIN_SEL
, 0xe8},
650 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
651 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
652 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8b},
654 {TM6010_REQ07_R3F_RESET
, 0x01},
655 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x00},
656 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0f},
657 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
658 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x00},
659 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
660 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
661 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x8b},
662 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xa2},
663 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xe9},
664 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
665 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
666 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
667 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
668 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x88},
669 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x22},
670 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0x61},
671 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x1c},
672 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
673 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
674 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
676 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdd},
677 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
678 {TM6010_REQ07_R3F_RESET
, 0x00},
684 static struct tm6000_std_settings svideo_stds
[] = {
686 .id
= V4L2_STD_PAL_M
,
687 .audio_default_std
= BTSC
,
689 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
690 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xfc},
691 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf8},
692 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x00},
693 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf2},
694 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xf0},
695 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
696 {TM6010_REQ08_RED_GAIN_SEL
, 0xe0},
697 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
698 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
699 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8a},
701 {TM6010_REQ07_R3F_RESET
, 0x01},
702 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x05},
703 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
704 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
705 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x04},
706 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
707 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
708 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x83},
709 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x0a},
710 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xe0},
711 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
712 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
713 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
714 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
715 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x88},
716 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x22},
717 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0x61},
718 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
719 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
720 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
721 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
723 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
724 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
725 {TM6010_REQ07_R3F_RESET
, 0x00},
729 .id
= V4L2_STD_PAL_Nc
,
730 .audio_default_std
= BTSC
,
732 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
733 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xfc},
734 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf8},
735 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x00},
736 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf2},
737 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xf0},
738 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
739 {TM6010_REQ08_RED_GAIN_SEL
, 0xe0},
740 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
741 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
742 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8a},
744 {TM6010_REQ07_R3F_RESET
, 0x01},
745 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x37},
746 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
747 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
748 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x04},
749 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
750 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
751 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x91},
752 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x1f},
753 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0x0c},
754 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
755 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
756 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
757 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
758 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x88},
759 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x22},
760 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
761 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
762 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
763 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
764 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
766 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
767 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
768 {TM6010_REQ07_R3F_RESET
, 0x00},
773 .audio_default_std
= BG_A2
,
775 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
776 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xfc},
777 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf8},
778 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x00},
779 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf2},
780 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xf0},
781 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
782 {TM6010_REQ08_RED_GAIN_SEL
, 0xe0},
783 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
784 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
785 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8a},
787 {TM6010_REQ07_R3F_RESET
, 0x01},
788 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x33},
789 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
790 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
791 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x04},
792 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x30},
793 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x25},
794 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0xd5},
795 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0x63},
796 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0x50},
797 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
798 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
799 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
800 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
801 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
802 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2a},
803 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
804 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x0c},
805 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
806 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x52},
807 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
809 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdc},
810 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
811 {TM6010_REQ07_R3F_RESET
, 0x00},
815 .id
= V4L2_STD_SECAM
,
816 .audio_default_std
= BG_NICAM
,
818 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
819 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xfc},
820 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf8},
821 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x00},
822 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf2},
823 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xf0},
824 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
825 {TM6010_REQ08_RED_GAIN_SEL
, 0xe0},
826 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
827 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
828 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8a},
830 {TM6010_REQ07_R3F_RESET
, 0x01},
831 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x39},
832 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
833 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
834 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x03},
835 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
836 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x24},
837 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x92},
838 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xe8},
839 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xed},
840 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
841 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
842 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
843 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
844 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
845 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2a},
846 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
847 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x2c},
848 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x18},
849 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
850 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0xFF},
852 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
853 {TM6010_REQ07_R3F_RESET
, 0x00},
857 .id
= V4L2_STD_SECAM_DK
,
858 .audio_default_std
= DK_NICAM
,
860 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
861 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xfc},
862 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf8},
863 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x00},
864 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf2},
865 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xf0},
866 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
867 {TM6010_REQ08_RED_GAIN_SEL
, 0xe0},
868 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
869 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
870 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8a},
872 {TM6010_REQ07_R3F_RESET
, 0x01},
873 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x39},
874 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0e},
875 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
876 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x03},
877 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x31},
878 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x24},
879 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x92},
880 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xe8},
881 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xed},
882 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
883 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
884 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
885 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
886 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x8c},
887 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x2a},
888 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0xc1},
889 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x2c},
890 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x18},
891 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
892 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0xFF},
894 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
895 {TM6010_REQ07_R3F_RESET
, 0x00},
900 .audio_default_std
= BTSC
,
902 {TM6010_REQ08_RE2_POWER_DOWN_CTRL1
, 0xf0},
903 {TM6010_REQ08_RE3_ADC_IN1_SEL
, 0xfc},
904 {TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf8},
905 {TM6010_REQ08_RE6_POWER_DOWN_CTRL2
, 0x00},
906 {TM6010_REQ08_REA_BUFF_DRV_CTRL
, 0xf2},
907 {TM6010_REQ08_REB_SIF_GAIN_CTRL
, 0xf0},
908 {TM6010_REQ08_REC_REVERSE_YC_CTRL
, 0xc2},
909 {TM6010_REQ08_RED_GAIN_SEL
, 0xe0},
910 {TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG
, 0x68},
911 {TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc},
912 {TM6010_REQ07_RFE_POWER_DOWN
, 0x8a},
914 {TM6010_REQ07_R3F_RESET
, 0x01},
915 {TM6010_REQ07_R00_VIDEO_CONTROL0
, 0x01},
916 {TM6010_REQ07_R01_VIDEO_CONTROL1
, 0x0f},
917 {TM6010_REQ07_R02_VIDEO_CONTROL2
, 0x5f},
918 {TM6010_REQ07_R03_YC_SEP_CONTROL
, 0x03},
919 {TM6010_REQ07_R07_OUTPUT_CONTROL
, 0x30},
920 {TM6010_REQ07_R17_HLOOP_MAXSTATE
, 0x8b},
921 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3
, 0x1e},
922 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2
, 0x8b},
923 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1
, 0xa2},
924 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0
, 0xe9},
925 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3
, 0x1c},
926 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2
, 0xcc},
927 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1
, 0xcc},
928 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0
, 0xcd},
929 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART
, 0x88},
930 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART
, 0x22},
931 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT
, 0x61},
932 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX
, 0x1c},
933 {TM6010_REQ07_R35_VSYNC_AGC_MAX
, 0x1c},
934 {TM6010_REQ07_R82_COMB_FILTER_CONFIG
, 0x42},
935 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG
, 0x6F},
937 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL
, 0xdd},
938 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL
, 0x07},
939 {TM6010_REQ07_R3F_RESET
, 0x00},
946 static int tm6000_set_audio_std(struct tm6000_core
*dev
,
947 enum tm6000_audio_std std
)
949 uint8_t areg_02
= 0x04; /* GC1 Fixed gain 0dB */
950 uint8_t areg_05
= 0x09; /* Auto 4.5 = M Japan, Auto 6.5 = DK */
951 uint8_t areg_06
= 0x02; /* Auto de-emphasis, mannual channel mode */
952 uint8_t mono_flag
= 0; /* No mono */
953 uint8_t nicam_flag
= 0; /* No NICAM */
988 tm6000_set_reg(dev
, TM6010_REQ08_R01_A_INIT
, 0x00);
989 tm6000_set_reg(dev
, TM6010_REQ08_R02_A_FIX_GAIN_CTRL
, 0x04);
990 tm6000_set_reg(dev
, TM6010_REQ08_R03_A_AUTO_GAIN_CTRL
, 0x00);
991 tm6000_set_reg(dev
, TM6010_REQ08_R05_A_STANDARD_MOD
, 0x0c);
992 tm6000_set_reg(dev
, TM6010_REQ08_R06_A_SOUND_MOD
, 0x00);
993 tm6000_set_reg(dev
, TM6010_REQ08_R09_A_MAIN_VOL
, 0x18);
994 tm6000_set_reg(dev
, TM6010_REQ08_R0A_A_I2S_MOD
, 0x91);
995 tm6000_set_reg(dev
, TM6010_REQ08_R16_A_AGC_GAIN_MAX
, 0xfe);
996 tm6000_set_reg(dev
, TM6010_REQ08_R17_A_AGC_GAIN_MIN
, 0x01);
997 tm6000_set_reg(dev
, TM6010_REQ08_R1E_A_GAIN_DEEMPH_OUT
, 0x13);
998 tm6000_set_reg(dev
, TM6010_REQ08_R01_A_INIT
, 0x80);
1009 areg_02
= 0x02; /* GC1 Fixed gain +12dB */
1016 switch (tv_audio_mode
) {
1018 areg_06
= (nicam_flag
) ? 0x03 : 0x00;
1032 tm6000_set_reg(dev
, TM6010_REQ08_R01_A_INIT
, 0x00);
1033 tm6000_set_reg(dev
, TM6010_REQ08_R02_A_FIX_GAIN_CTRL
, areg_02
);
1034 tm6000_set_reg(dev
, TM6010_REQ08_R03_A_AUTO_GAIN_CTRL
, 0x00);
1035 tm6000_set_reg(dev
, TM6010_REQ08_R04_A_SIF_AMP_CTRL
, 0xa0);
1036 tm6000_set_reg(dev
, TM6010_REQ08_R05_A_STANDARD_MOD
, areg_05
);
1037 tm6000_set_reg(dev
, TM6010_REQ08_R06_A_SOUND_MOD
, areg_06
);
1038 tm6000_set_reg(dev
, TM6010_REQ08_R07_A_LEFT_VOL
, 0x00);
1039 tm6000_set_reg(dev
, TM6010_REQ08_R08_A_RIGHT_VOL
, 0x00);
1040 tm6000_set_reg(dev
, TM6010_REQ08_R09_A_MAIN_VOL
, 0x08);
1041 tm6000_set_reg(dev
, TM6010_REQ08_R0A_A_I2S_MOD
, 0x91);
1042 tm6000_set_reg(dev
, TM6010_REQ08_R0B_A_ASD_THRES1
, 0x20);
1043 tm6000_set_reg(dev
, TM6010_REQ08_R0C_A_ASD_THRES2
, 0x12);
1044 tm6000_set_reg(dev
, TM6010_REQ08_R0D_A_AMD_THRES
, 0x20);
1045 tm6000_set_reg(dev
, TM6010_REQ08_R0E_A_MONO_THRES1
, 0xf0);
1046 tm6000_set_reg(dev
, TM6010_REQ08_R0F_A_MONO_THRES2
, 0x80);
1047 tm6000_set_reg(dev
, TM6010_REQ08_R10_A_MUTE_THRES1
, 0xc0);
1048 tm6000_set_reg(dev
, TM6010_REQ08_R11_A_MUTE_THRES2
, 0x80);
1049 tm6000_set_reg(dev
, TM6010_REQ08_R12_A_AGC_U
, 0x12);
1050 tm6000_set_reg(dev
, TM6010_REQ08_R13_A_AGC_ERR_T
, 0xfe);
1051 tm6000_set_reg(dev
, TM6010_REQ08_R14_A_AGC_GAIN_INIT
, 0x20);
1052 tm6000_set_reg(dev
, TM6010_REQ08_R15_A_AGC_STEP_THR
, 0x14);
1053 tm6000_set_reg(dev
, TM6010_REQ08_R16_A_AGC_GAIN_MAX
, 0xfe);
1054 tm6000_set_reg(dev
, TM6010_REQ08_R17_A_AGC_GAIN_MIN
, 0x01);
1055 tm6000_set_reg(dev
, TM6010_REQ08_R18_A_TR_CTRL
, 0xa0);
1056 tm6000_set_reg(dev
, TM6010_REQ08_R19_A_FH_2FH_GAIN
, 0x32);
1057 tm6000_set_reg(dev
, TM6010_REQ08_R1A_A_NICAM_SER_MAX
, 0x64);
1058 tm6000_set_reg(dev
, TM6010_REQ08_R1B_A_NICAM_SER_MIN
, 0x20);
1059 tm6000_set_reg(dev
, REQ_08_SET_GET_AVREG_BIT
, 0x1c, 0x00);
1060 tm6000_set_reg(dev
, REQ_08_SET_GET_AVREG_BIT
, 0x1d, 0x00);
1061 tm6000_set_reg(dev
, TM6010_REQ08_R1E_A_GAIN_DEEMPH_OUT
, 0x13);
1062 tm6000_set_reg(dev
, TM6010_REQ08_R1F_A_TEST_INTF_SEL
, 0x00);
1063 tm6000_set_reg(dev
, TM6010_REQ08_R20_A_TEST_PIN_SEL
, 0x00);
1064 tm6000_set_reg(dev
, TM6010_REQ08_RE4_ADC_IN2_SEL
, 0xf3);
1065 tm6000_set_reg(dev
, TM6010_REQ08_R06_A_SOUND_MOD
, 0x00);
1066 tm6000_set_reg(dev
, TM6010_REQ08_RF1_AADC_POWER_DOWN
, 0xfc);
1067 tm6000_set_reg(dev
, TM6010_REQ08_R01_A_INIT
, 0x80);
1072 void tm6000_get_std_res(struct tm6000_core
*dev
)
1074 /* Currently, those are the only supported resoltions */
1075 if (dev
->norm
& V4L2_STD_525_60
)
1083 static int tm6000_load_std(struct tm6000_core
*dev
,
1084 struct tm6000_reg_settings
*set
, int max_size
)
1088 /* Load board's initialization table */
1089 for (i
= 0; max_size
; i
++) {
1093 if ((dev
->dev_type
!= TM6010
) &&
1094 (set
[i
].req
== REQ_08_SET_GET_AVREG_BIT
))
1097 rc
= tm6000_set_reg(dev
, set
[i
].req
, set
[i
].reg
, set
[i
].value
);
1099 printk(KERN_ERR
"Error %i while setting "
1100 "req %d, reg %d to value %d\n",
1101 rc
, set
[i
].req
, set
[i
].reg
, set
[i
].value
);
1109 static int tm6000_set_tv(struct tm6000_core
*dev
, int pos
)
1113 /* FIXME: This code is for tm6010 - not tested yet - doesn't work with
1117 /* FIXME: This is tuner-dependent */
1121 rc
= tm6000_load_std(dev
, tv_stds
[pos
].nosif
,
1122 sizeof(tv_stds
[pos
].nosif
));
1124 rc
= tm6000_load_std(dev
, tv_stds
[pos
].sif
,
1125 sizeof(tv_stds
[pos
].sif
));
1129 rc
= tm6000_load_std(dev
, tv_stds
[pos
].common
,
1130 sizeof(tv_stds
[pos
].common
));
1132 tm6000_set_audio_std(dev
, tv_stds
[pos
].audio_default_std
);
1137 int tm6000_set_standard(struct tm6000_core
*dev
, v4l2_std_id
* norm
)
1142 tm6000_get_std_res(dev
);
1144 switch (dev
->input
) {
1145 case TM6000_INPUT_TV
:
1146 for (i
= 0; i
< ARRAY_SIZE(tv_stds
); i
++) {
1147 if (*norm
& tv_stds
[i
].id
) {
1148 rc
= tm6000_set_tv(dev
, i
);
1153 case TM6000_INPUT_SVIDEO
:
1154 for (i
= 0; i
< ARRAY_SIZE(svideo_stds
); i
++) {
1155 if (*norm
& svideo_stds
[i
].id
) {
1156 rc
= tm6000_load_std(dev
, svideo_stds
[i
].common
,
1157 sizeof(svideo_stds
[i
].
1159 tm6000_set_audio_std(dev
, svideo_stds
[i
].audio_default_std
);
1165 case TM6000_INPUT_COMPOSITE
:
1166 for (i
= 0; i
< ARRAY_SIZE(composite_stds
); i
++) {
1167 if (*norm
& composite_stds
[i
].id
) {
1168 rc
= tm6000_load_std(dev
,
1169 composite_stds
[i
].common
,
1170 sizeof(composite_stds
[i
].
1172 tm6000_set_audio_std(dev
, composite_stds
[i
].audio_default_std
);