~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/staging/tm6000/tm6000-stds.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
#include "tm6000.h"
23
23
#include "tm6000-regs.h"
24
24
 
 
25
static unsigned int tm6010_a_mode = 0;
 
26
module_param(tm6010_a_mode, int, 0644);
 
27
MODULE_PARM_DESC(tm6010_a_mode, "set tm6010 sif audio mode");
 
28
 
25
29
struct tm6000_reg_settings {
26
30
        unsigned char req;
27
31
        unsigned char reg;
28
32
        unsigned char value;
29
33
};
30
34
 
31
 
enum tm6000_audio_std {
32
 
        BG_NICAM,
33
 
        BTSC,
34
 
        BG_A2,
35
 
        DK_NICAM,
36
 
        EIAJ,
37
 
        FM_RADIO,
38
 
        I_NICAM,
39
 
        KOREA_A2,
40
 
        L_NICAM,
41
 
};
42
 
 
43
 
struct tm6000_std_tv_settings {
44
 
        v4l2_std_id id;
45
 
        enum tm6000_audio_std audio_default_std;
46
 
 
47
 
        struct tm6000_reg_settings sif[12];
48
 
        struct tm6000_reg_settings nosif[12];
49
 
        struct tm6000_reg_settings common[26];
50
 
};
51
35
 
52
36
struct tm6000_std_settings {
53
37
        v4l2_std_id id;
54
 
        enum tm6000_audio_std audio_default_std;
55
 
        struct tm6000_reg_settings common[37];
56
 
};
57
 
 
58
 
static struct tm6000_std_tv_settings tv_stds[] = {
59
 
        {
60
 
                .id = V4L2_STD_PAL_M,
61
 
                .audio_default_std = BTSC,
62
 
                .sif = {
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},
74
 
                        {0, 0, 0},
75
 
                },
76
 
                .nosif = {
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},
88
 
                        {0, 0, 0},
89
 
                },
90
 
                .common = {
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},
112
 
 
113
 
                        {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
114
 
                        {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
115
 
 
116
 
                        {TM6010_REQ07_R3F_RESET, 0x00},
117
 
 
118
 
                        {0, 0, 0},
119
 
                },
120
 
        }, {
121
 
                .id = V4L2_STD_PAL_Nc,
122
 
                .audio_default_std = BTSC,
123
 
                .sif = {
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},
135
 
                        {0, 0, 0},
136
 
                },
137
 
                .nosif = {
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},
149
 
                        {0, 0, 0},
150
 
                },
151
 
                .common = {
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},
173
 
 
174
 
                        {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
175
 
                        {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
176
 
 
177
 
                        {TM6010_REQ07_R3F_RESET, 0x00},
178
 
 
179
 
                        {0, 0, 0},
180
 
                },
181
 
        }, {
182
 
                .id = V4L2_STD_PAL,
183
 
                .audio_default_std = BG_A2,
184
 
                .sif = {
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},
196
 
                        {0, 0, 0}
197
 
                },
198
 
                .nosif = {
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},
210
 
                        {0, 0, 0},
211
 
                },
212
 
                .common = {
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},
234
 
 
235
 
                        {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
236
 
                        {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
237
 
 
238
 
                        {TM6010_REQ07_R3F_RESET, 0x00},
239
 
 
240
 
                        {0, 0, 0},
241
 
                },
242
 
        }, {
243
 
                .id = V4L2_STD_SECAM_B | V4L2_STD_SECAM_G,
244
 
                .audio_default_std = BG_NICAM,
245
 
                .sif = {
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},
257
 
                        {0, 0, 0},
258
 
                },
259
 
                .nosif = {
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},
271
 
                        {0, 0, 0},
272
 
                },
273
 
                .common = {
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},
295
 
 
296
 
                        {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
297
 
 
298
 
                        {TM6010_REQ07_R3F_RESET, 0x00},
299
 
                        {0, 0, 0},
300
 
                },
301
 
        }, {
302
 
                .id = V4L2_STD_SECAM_DK,
303
 
                .audio_default_std = DK_NICAM,
304
 
                .sif = {
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},
316
 
                        {0, 0, 0},
317
 
                },
318
 
                .nosif = {
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},
330
 
                        {0, 0, 0},
331
 
                },
332
 
                .common = {
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},
354
 
 
355
 
                        {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
356
 
 
357
 
                        {TM6010_REQ07_R3F_RESET, 0x00},
358
 
                        {0, 0, 0},
359
 
                },
360
 
        }, {
361
 
                .id = V4L2_STD_NTSC,
362
 
                .audio_default_std = BTSC,
363
 
                .sif = {
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},
375
 
                        {0, 0, 0},
376
 
                },
377
 
                .nosif = {
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},
389
 
                        {0, 0, 0},
390
 
                },
391
 
                .common = {
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},
413
 
 
414
 
                        {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdd},
415
 
                        {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
416
 
 
417
 
                        {TM6010_REQ07_R3F_RESET, 0x00},
418
 
 
419
 
                        {0, 0, 0},
420
 
                },
421
 
        },
 
38
        struct tm6000_reg_settings common[27];
422
39
};
423
40
 
424
41
static struct tm6000_std_settings composite_stds[] = {
425
42
        {
426
43
                .id = V4L2_STD_PAL_M,
427
 
                .audio_default_std = BTSC,
428
44
                .common = {
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},
440
 
 
441
45
                        {TM6010_REQ07_R3F_RESET, 0x01},
442
46
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x04},
443
47
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
467
71
                },
468
72
         }, {
469
73
                .id = V4L2_STD_PAL_Nc,
470
 
                .audio_default_std = BTSC,
471
74
                .common = {
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},
483
 
 
484
75
                        {TM6010_REQ07_R3F_RESET, 0x01},
485
76
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x36},
486
77
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
510
101
                },
511
102
        }, {
512
103
                .id = V4L2_STD_PAL,
513
 
                .audio_default_std = BG_A2,
514
104
                .common = {
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},
526
 
 
527
105
                        {TM6010_REQ07_R3F_RESET, 0x01},
528
106
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x32},
529
107
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
553
131
                },
554
132
         }, {
555
133
                .id = V4L2_STD_SECAM,
556
 
                .audio_default_std = BG_NICAM,
557
 
                .common = {
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},
569
 
 
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},
591
 
 
592
 
                        {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
593
 
                        {TM6010_REQ07_R3F_RESET, 0x00},
594
 
                        {0, 0, 0},
595
 
                },
596
 
        }, {
597
 
                .id = V4L2_STD_SECAM_DK,
598
 
                .audio_default_std = DK_NICAM,
599
 
                .common = {
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},
611
 
 
 
134
                .common = {
612
135
                        {TM6010_REQ07_R3F_RESET, 0x01},
613
136
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x38},
614
137
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
637
160
                },
638
161
        }, {
639
162
                .id = V4L2_STD_NTSC,
640
 
                .audio_default_std = BTSC,
641
163
                .common = {
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},
653
 
 
654
164
                        {TM6010_REQ07_R3F_RESET, 0x01},
655
165
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x00},
656
166
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0f},
684
194
static struct tm6000_std_settings svideo_stds[] = {
685
195
        {
686
196
                .id = V4L2_STD_PAL_M,
687
 
                .audio_default_std = BTSC,
688
197
                .common = {
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},
700
 
 
701
198
                        {TM6010_REQ07_R3F_RESET, 0x01},
702
199
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x05},
703
200
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
727
224
                },
728
225
        }, {
729
226
                .id = V4L2_STD_PAL_Nc,
730
 
                .audio_default_std = BTSC,
731
227
                .common = {
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},
743
 
 
744
228
                        {TM6010_REQ07_R3F_RESET, 0x01},
745
229
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x37},
746
230
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
770
254
                },
771
255
        }, {
772
256
                .id = V4L2_STD_PAL,
773
 
                .audio_default_std = BG_A2,
774
257
                .common = {
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},
786
 
 
787
258
                        {TM6010_REQ07_R3F_RESET, 0x01},
788
259
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x33},
789
260
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
813
284
                },
814
285
         }, {
815
286
                .id = V4L2_STD_SECAM,
816
 
                .audio_default_std = BG_NICAM,
817
 
                .common = {
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},
829
 
 
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},
851
 
 
852
 
                        {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
853
 
                        {TM6010_REQ07_R3F_RESET, 0x00},
854
 
                        {0, 0, 0},
855
 
                },
856
 
        }, {
857
 
                .id = V4L2_STD_SECAM_DK,
858
 
                .audio_default_std = DK_NICAM,
859
 
                .common = {
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},
871
 
 
 
287
                .common = {
872
288
                        {TM6010_REQ07_R3F_RESET, 0x01},
873
289
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x39},
874
290
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
897
313
                },
898
314
        }, {
899
315
                .id = V4L2_STD_NTSC,
900
 
                .audio_default_std = BTSC,
901
316
                .common = {
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},
913
 
 
914
317
                        {TM6010_REQ07_R3F_RESET, 0x01},
915
318
                        {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x01},
916
319
                        {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0f},
943
346
};
944
347
 
945
348
 
946
 
static int tm6000_set_audio_std(struct tm6000_core *dev,
947
 
                                enum tm6000_audio_std std)
 
349
static int tm6000_set_audio_std(struct tm6000_core *dev)
948
350
{
949
351
        uint8_t areg_02 = 0x04; /* GC1 Fixed gain 0dB */
950
 
        uint8_t areg_05 = 0x09; /* Auto 4.5 = M Japan, Auto 6.5 = DK */
 
352
        uint8_t areg_05 = 0x01; /* Auto 4.5 = M Japan, Auto 6.5 = DK */
951
353
        uint8_t areg_06 = 0x02; /* Auto de-emphasis, mannual channel mode */
952
 
        uint8_t mono_flag = 0;  /* No mono */
953
354
        uint8_t nicam_flag = 0; /* No NICAM */
954
355
 
955
 
        switch (std) {
956
 
#if 0
957
 
        case DK_MONO:
958
 
                mono_flag = 1;
959
 
                break;
960
 
        case DK_A2_1:
961
 
                break;
962
 
        case DK_A2_3:
963
 
                areg_05 = 0x0b;
964
 
                break;
965
 
        case BG_MONO:
966
 
                mono_flag = 1;
967
 
                areg_05 = 0x05;
968
 
                break;
969
 
#endif
970
 
        case BG_NICAM:
971
 
                areg_05 = 0x07;
972
 
                nicam_flag = 1;
973
 
                break;
974
 
        case BTSC:
975
 
                areg_05 = 0x02;
976
 
                break;
977
 
        case BG_A2:
978
 
                areg_05 = 0x05;
979
 
                break;
980
 
        case DK_NICAM:
981
 
                areg_05 = 0x06;
982
 
                nicam_flag = 1;
983
 
                break;
984
 
        case EIAJ:
985
 
                areg_05 = 0x02;
986
 
                break;
987
 
        case FM_RADIO:
 
356
        if (dev->radio) {
988
357
                tm6000_set_reg(dev, TM6010_REQ08_R01_A_INIT, 0x00);
989
358
                tm6000_set_reg(dev, TM6010_REQ08_R02_A_FIX_GAIN_CTRL, 0x04);
990
359
                tm6000_set_reg(dev, TM6010_REQ08_R03_A_AUTO_GAIN_CTRL, 0x00);
 
360
                tm6000_set_reg(dev, TM6010_REQ08_R04_A_SIF_AMP_CTRL, 0x80);
991
361
                tm6000_set_reg(dev, TM6010_REQ08_R05_A_STANDARD_MOD, 0x0c);
992
 
                tm6000_set_reg(dev, TM6010_REQ08_R06_A_SOUND_MOD, 0x00);
 
362
                /* set mono or stereo */
 
363
                if (dev->amode == V4L2_TUNER_MODE_MONO)
 
364
                        tm6000_set_reg(dev, TM6010_REQ08_R06_A_SOUND_MOD, 0x00);
 
365
                else if (dev->amode == V4L2_TUNER_MODE_STEREO)
 
366
                        tm6000_set_reg(dev, TM6010_REQ08_R06_A_SOUND_MOD, 0x02);
993
367
                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);
 
368
                tm6000_set_reg(dev, TM6010_REQ08_R0C_A_ASD_THRES2, 0x0a);
 
369
                tm6000_set_reg(dev, TM6010_REQ08_R0D_A_AMD_THRES, 0x40);
 
370
                tm6000_set_reg(dev, TM6010_REQ08_RF1_AADC_POWER_DOWN, 0xfe);
997
371
                tm6000_set_reg(dev, TM6010_REQ08_R1E_A_GAIN_DEEMPH_OUT, 0x13);
998
372
                tm6000_set_reg(dev, TM6010_REQ08_R01_A_INIT, 0x80);
999
373
                return 0;
1000
 
                break;
1001
 
        case I_NICAM:
1002
 
                areg_05 = 0x08;
1003
 
                nicam_flag = 1;
1004
 
                break;
1005
 
        case KOREA_A2:
1006
 
                areg_05 = 0x04;
1007
 
                break;
1008
 
        case L_NICAM:
1009
 
                areg_02 = 0x02; /* GC1 Fixed gain +12dB */
1010
 
                areg_05 = 0x0a;
1011
 
                nicam_flag = 1;
1012
 
                break;
1013
 
        }
1014
 
 
1015
 
#if 0
1016
 
        switch (tv_audio_mode) {
1017
 
        case TV_MONO:
1018
 
                areg_06 = (nicam_flag) ? 0x03 : 0x00;
1019
 
                break;
1020
 
        case TV_LANG_A:
1021
 
                areg_06 = 0x00;
1022
 
                break;
1023
 
        case TV_LANG_B:
1024
 
                areg_06 = 0x01;
1025
 
                break;
1026
 
        }
1027
 
#endif
1028
 
 
1029
 
        if (mono_flag)
1030
 
                areg_06 = 0x00;
 
374
        }
 
375
 
 
376
        switch (tm6010_a_mode) {
 
377
        /* auto */
 
378
        case 0:
 
379
                switch (dev->norm) {
 
380
                case V4L2_STD_NTSC_M_KR:
 
381
                        areg_05 |= 0x00;
 
382
                        break;
 
383
                case V4L2_STD_NTSC_M_JP:
 
384
                        areg_05 |= 0x40;
 
385
                        break;
 
386
                case V4L2_STD_NTSC_M:
 
387
                case V4L2_STD_PAL_M:
 
388
                case V4L2_STD_PAL_N:
 
389
                        areg_05 |= 0x20;
 
390
                        break;
 
391
                case V4L2_STD_PAL_Nc:
 
392
                        areg_05 |= 0x60;
 
393
                        break;
 
394
                case V4L2_STD_SECAM_L:
 
395
                        areg_05 |= 0x00;
 
396
                        break;
 
397
                case V4L2_STD_DK:
 
398
                        areg_05 |= 0x10;
 
399
                        break;
 
400
                }
 
401
                break;
 
402
        /* A2 */
 
403
        case 1:
 
404
                switch (dev->norm) {
 
405
                case V4L2_STD_B:
 
406
                case V4L2_STD_GH:
 
407
                        areg_05 = 0x05;
 
408
                        break;
 
409
                case V4L2_STD_DK:
 
410
                        areg_05 = 0x09;
 
411
                        break;
 
412
                }
 
413
                break;
 
414
        /* NICAM */
 
415
        case 2:
 
416
                switch (dev->norm) {
 
417
                case V4L2_STD_B:
 
418
                case V4L2_STD_GH:
 
419
                        areg_05 = 0x07;
 
420
                        break;
 
421
                case V4L2_STD_DK:
 
422
                        areg_05 = 0x06;
 
423
                        break;
 
424
                case V4L2_STD_PAL_I:
 
425
                        areg_05 = 0x08;
 
426
                        break;
 
427
                case V4L2_STD_SECAM_L:
 
428
                        areg_05 = 0x0a;
 
429
                        areg_02 = 0x02;
 
430
                        break;
 
431
                }
 
432
                nicam_flag = 1;
 
433
                break;
 
434
        /* other */
 
435
        case 3:
 
436
                switch (dev->norm) {
 
437
                /* DK3_A2 */
 
438
                case V4L2_STD_DK:
 
439
                        areg_05 = 0x0b;
 
440
                        break;
 
441
                /* Korea */
 
442
                case V4L2_STD_NTSC_M_KR:
 
443
                        areg_05 = 0x04;
 
444
                        break;
 
445
                /* EIAJ */
 
446
                case V4L2_STD_NTSC_M_JP:
 
447
                        areg_05 = 0x03;
 
448
                        break;
 
449
                default:
 
450
                        areg_05 = 0x02;
 
451
                        break;
 
452
                }
 
453
                break;
 
454
        }
1031
455
 
1032
456
        tm6000_set_reg(dev, TM6010_REQ08_R01_A_INIT, 0x00);
1033
457
        tm6000_set_reg(dev, TM6010_REQ08_R02_A_FIX_GAIN_CTRL, areg_02);
1061
485
        tm6000_set_reg(dev, TM6010_REQ08_R1E_A_GAIN_DEEMPH_OUT, 0x13);
1062
486
        tm6000_set_reg(dev, TM6010_REQ08_R1F_A_TEST_INTF_SEL, 0x00);
1063
487
        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
488
        tm6000_set_reg(dev, TM6010_REQ08_R01_A_INIT, 0x80);
1068
489
 
1069
490
        return 0;
1090
511
                if (!set[i].req)
1091
512
                        return 0;
1092
513
 
1093
 
                if ((dev->dev_type != TM6010) &&
1094
 
                    (set[i].req == REQ_08_SET_GET_AVREG_BIT))
1095
 
                                continue;
1096
 
 
1097
514
                rc = tm6000_set_reg(dev, set[i].req, set[i].reg, set[i].value);
1098
515
                if (rc < 0) {
1099
516
                        printk(KERN_ERR "Error %i while setting "
1106
523
        return 0;
1107
524
}
1108
525
 
1109
 
static int tm6000_set_tv(struct tm6000_core *dev, int pos)
1110
 
{
1111
 
        int rc;
1112
 
 
1113
 
        /* FIXME: This code is for tm6010 - not tested yet - doesn't work with
1114
 
           tm5600
1115
 
         */
1116
 
 
1117
 
        /* FIXME: This is tuner-dependent */
1118
 
        int nosif = 0;
1119
 
 
1120
 
        if (nosif) {
1121
 
                rc = tm6000_load_std(dev, tv_stds[pos].nosif,
1122
 
                                     sizeof(tv_stds[pos].nosif));
1123
 
        } else {
1124
 
                rc = tm6000_load_std(dev, tv_stds[pos].sif,
1125
 
                                     sizeof(tv_stds[pos].sif));
1126
 
        }
1127
 
        if (rc < 0)
1128
 
                return rc;
1129
 
        rc = tm6000_load_std(dev, tv_stds[pos].common,
1130
 
                             sizeof(tv_stds[pos].common));
1131
 
 
1132
 
        tm6000_set_audio_std(dev, tv_stds[pos].audio_default_std);
1133
 
 
1134
 
        return rc;
1135
 
}
1136
 
 
1137
 
int tm6000_set_standard(struct tm6000_core *dev, v4l2_std_id * norm)
 
526
int tm6000_set_standard(struct tm6000_core *dev)
1138
527
{
1139
528
        int i, rc = 0;
 
529
        u8 reg_07_fe = 0x8a;
 
530
        u8 reg_08_f1 = 0xfc;
 
531
        u8 reg_08_e2 = 0xf0;
 
532
        u8 reg_08_e6 = 0x0f;
1140
533
 
1141
 
        dev->norm = *norm;
1142
534
        tm6000_get_std_res(dev);
1143
535
 
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);
1149
 
                                goto ret;
1150
 
                        }
1151
 
                }
1152
 
                return -EINVAL;
1153
 
        case TM6000_INPUT_SVIDEO:
 
536
        if (dev->radio) {
 
537
                /* todo */
 
538
        }
 
539
 
 
540
        if (dev->dev_type == TM6010) {
 
541
                switch (dev->vinput[dev->input].vmux) {
 
542
                case TM6000_VMUX_VIDEO_A:
 
543
                        tm6000_set_reg(dev, TM6010_REQ08_RE3_ADC_IN1_SEL, 0xf4);
 
544
                        tm6000_set_reg(dev, TM6010_REQ08_REA_BUFF_DRV_CTRL, 0xf1);
 
545
                        tm6000_set_reg(dev, TM6010_REQ08_REB_SIF_GAIN_CTRL, 0xe0);
 
546
                        tm6000_set_reg(dev, TM6010_REQ08_REC_REVERSE_YC_CTRL, 0xc2);
 
547
                        tm6000_set_reg(dev, TM6010_REQ08_RED_GAIN_SEL, 0xe8);
 
548
                        reg_07_fe |= 0x01;
 
549
                        break;
 
550
                case TM6000_VMUX_VIDEO_B:
 
551
                        tm6000_set_reg(dev, TM6010_REQ08_RE3_ADC_IN1_SEL, 0xf8);
 
552
                        tm6000_set_reg(dev, TM6010_REQ08_REA_BUFF_DRV_CTRL, 0xf1);
 
553
                        tm6000_set_reg(dev, TM6010_REQ08_REB_SIF_GAIN_CTRL, 0xe0);
 
554
                        tm6000_set_reg(dev, TM6010_REQ08_REC_REVERSE_YC_CTRL, 0xc2);
 
555
                        tm6000_set_reg(dev, TM6010_REQ08_RED_GAIN_SEL, 0xe8);
 
556
                        reg_07_fe |= 0x01;
 
557
                        break;
 
558
                case TM6000_VMUX_VIDEO_AB:
 
559
                        tm6000_set_reg(dev, TM6010_REQ08_RE3_ADC_IN1_SEL, 0xfc);
 
560
                        tm6000_set_reg(dev, TM6010_REQ08_RE4_ADC_IN2_SEL, 0xf8);
 
561
                        reg_08_e6 = 0x00;
 
562
                        tm6000_set_reg(dev, TM6010_REQ08_REA_BUFF_DRV_CTRL, 0xf2);
 
563
                        tm6000_set_reg(dev, TM6010_REQ08_REB_SIF_GAIN_CTRL, 0xf0);
 
564
                        tm6000_set_reg(dev, TM6010_REQ08_REC_REVERSE_YC_CTRL, 0xc2);
 
565
                        tm6000_set_reg(dev, TM6010_REQ08_RED_GAIN_SEL, 0xe0);
 
566
                        break;
 
567
                default:
 
568
                        break;
 
569
                }
 
570
                switch (dev->vinput[dev->input].amux) {
 
571
                case TM6000_AMUX_ADC1:
 
572
                        tm6000_set_reg_mask(dev, TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG,
 
573
                                0x00, 0x0f);
 
574
                        break;
 
575
                case TM6000_AMUX_ADC2:
 
576
                        tm6000_set_reg_mask(dev, TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG,
 
577
                                0x08, 0x0f);
 
578
                        break;
 
579
                case TM6000_AMUX_SIF1:
 
580
                        reg_08_e2 |= 0x02;
 
581
                        reg_08_e6 = 0x08;
 
582
                        reg_07_fe |= 0x40;
 
583
                        reg_08_f1 |= 0x02;
 
584
                        tm6000_set_reg(dev, TM6010_REQ08_RE4_ADC_IN2_SEL, 0xf3);
 
585
                        tm6000_set_reg_mask(dev, TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG,
 
586
                                0x02, 0x0f);
 
587
                        break;
 
588
                case TM6000_AMUX_SIF2:
 
589
                        reg_08_e2 |= 0x02;
 
590
                        reg_08_e6 = 0x08;
 
591
                        reg_07_fe |= 0x40;
 
592
                        reg_08_f1 |= 0x02;
 
593
                        tm6000_set_reg(dev, TM6010_REQ08_RE4_ADC_IN2_SEL, 0xf7);
 
594
                        tm6000_set_reg_mask(dev, TM6010_REQ08_RF0_DAUDIO_INPUT_CONFIG,
 
595
                                0x02, 0x0f);
 
596
                        break;
 
597
                default:
 
598
                        break;
 
599
                }
 
600
                tm6000_set_reg(dev, TM6010_REQ08_RE2_POWER_DOWN_CTRL1, reg_08_e2);
 
601
                tm6000_set_reg(dev, TM6010_REQ08_RE6_POWER_DOWN_CTRL2, reg_08_e6);
 
602
                tm6000_set_reg(dev, TM6010_REQ08_RF1_AADC_POWER_DOWN, reg_08_f1);
 
603
                tm6000_set_reg(dev, TM6010_REQ07_RFE_POWER_DOWN, reg_07_fe);
 
604
        } else {
 
605
                switch (dev->vinput[dev->input].vmux) {
 
606
                case TM6000_VMUX_VIDEO_A:
 
607
                        tm6000_set_reg(dev, TM6000_REQ07_RE3_VADC_INP_LPF_SEL1, 0x10);
 
608
                        tm6000_set_reg(dev, TM6000_REQ07_RE5_VADC_INP_LPF_SEL2, 0x00);
 
609
                        tm6000_set_reg(dev, TM6000_REQ07_RE8_VADC_PWDOWN_CTL, 0x0f);
 
610
                        tm6000_set_reg(dev,
 
611
                            REQ_03_SET_GET_MCU_PIN, dev->vinput[dev->input].v_gpio, 0);
 
612
                        break;
 
613
                case TM6000_VMUX_VIDEO_B:
 
614
                        tm6000_set_reg(dev, TM6000_REQ07_RE3_VADC_INP_LPF_SEL1, 0x00);
 
615
                        tm6000_set_reg(dev, TM6000_REQ07_RE5_VADC_INP_LPF_SEL2, 0x00);
 
616
                        tm6000_set_reg(dev, TM6000_REQ07_RE8_VADC_PWDOWN_CTL, 0x0f);
 
617
                        tm6000_set_reg(dev,
 
618
                            REQ_03_SET_GET_MCU_PIN, dev->vinput[dev->input].v_gpio, 0);
 
619
                        break;
 
620
                case TM6000_VMUX_VIDEO_AB:
 
621
                        tm6000_set_reg(dev, TM6000_REQ07_RE3_VADC_INP_LPF_SEL1, 0x10);
 
622
                        tm6000_set_reg(dev, TM6000_REQ07_RE5_VADC_INP_LPF_SEL2, 0x10);
 
623
                        tm6000_set_reg(dev, TM6000_REQ07_RE8_VADC_PWDOWN_CTL, 0x00);
 
624
                        tm6000_set_reg(dev,
 
625
                            REQ_03_SET_GET_MCU_PIN, dev->vinput[dev->input].v_gpio, 1);
 
626
                        break;
 
627
                default:
 
628
                        break;
 
629
                }
 
630
                switch (dev->vinput[dev->input].amux) {
 
631
                case TM6000_AMUX_ADC1:
 
632
                        tm6000_set_reg_mask(dev,
 
633
                                TM6000_REQ07_REB_VADC_AADC_MODE, 0x00, 0x0f);
 
634
                        break;
 
635
                case TM6000_AMUX_ADC2:
 
636
                        tm6000_set_reg_mask(dev,
 
637
                                TM6000_REQ07_REB_VADC_AADC_MODE, 0x04, 0x0f);
 
638
                        break;
 
639
                default:
 
640
                        break;
 
641
                }
 
642
        }
 
643
        if (dev->vinput[dev->input].type == TM6000_INPUT_SVIDEO) {
1154
644
                for (i = 0; i < ARRAY_SIZE(svideo_stds); i++) {
1155
 
                        if (*norm & svideo_stds[i].id) {
 
645
                        if (dev->norm & svideo_stds[i].id) {
1156
646
                                rc = tm6000_load_std(dev, svideo_stds[i].common,
1157
647
                                                     sizeof(svideo_stds[i].
1158
648
                                                            common));
1159
 
                                tm6000_set_audio_std(dev, svideo_stds[i].audio_default_std);
1160
 
 
1161
649
                                goto ret;
1162
650
                        }
1163
651
                }
1164
652
                return -EINVAL;
1165
 
        case TM6000_INPUT_COMPOSITE:
 
653
        } else {
1166
654
                for (i = 0; i < ARRAY_SIZE(composite_stds); i++) {
1167
 
                        if (*norm & composite_stds[i].id) {
 
655
                        if (dev->norm & composite_stds[i].id) {
1168
656
                                rc = tm6000_load_std(dev,
1169
657
                                                     composite_stds[i].common,
1170
658
                                                     sizeof(composite_stds[i].
1171
659
                                                            common));
1172
 
                                tm6000_set_audio_std(dev, composite_stds[i].audio_default_std);
1173
660
                                goto ret;
1174
661
                        }
1175
662
                }
1180
667
        if (rc < 0)
1181
668
                return rc;
1182
669
 
 
670
        if ((dev->dev_type == TM6010) &&
 
671
            ((dev->vinput[dev->input].amux == TM6000_AMUX_SIF1) ||
 
672
            (dev->vinput[dev->input].amux == TM6000_AMUX_SIF2)))
 
673
                tm6000_set_audio_std(dev);
 
674
 
1183
675
        msleep(40);
1184
676
 
1185
677