hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/video/rockchip/vehicle/vehicle_ad_nvp6324.c
....@@ -96,6 +96,848 @@
9696
9797 #define SENSOR_ID(_msb, _lsb) ((_msb) << 8 | (_lsb))
9898
99
+/* NTSC Preview resolution setting*/
100
+static struct rk_sensor_reg sensor_preview_data_ntsc_30hz[] = {
101
+ {0xff, 0x04},
102
+ {0xa0, 0x24},
103
+ {0xa1, 0x24},
104
+ {0xa2, 0x24},
105
+ {0xa3, 0x24},
106
+ {0xa4, 0x24},
107
+ {0xa5, 0x24},
108
+ {0xa6, 0x24},
109
+ {0xa7, 0x24},
110
+ {0xa8, 0x24},
111
+ {0xa9, 0x24},
112
+ {0xaa, 0x24},
113
+ {0xab, 0x24},
114
+ {0xac, 0x24},
115
+ {0xad, 0x24},
116
+ {0xae, 0x24},
117
+ {0xaf, 0x24},
118
+ {0xb0, 0x24},
119
+ {0xb1, 0x24},
120
+ {0xb2, 0x24},
121
+ {0xb3, 0x24},
122
+ {0xb4, 0x24},
123
+ {0xb5, 0x24},
124
+ {0xb6, 0x24},
125
+ {0xb7, 0x24},
126
+ {0xb8, 0x24},
127
+ {0xb9, 0x24},
128
+ {0xba, 0x24},
129
+ {0xbb, 0x24},
130
+ {0xbc, 0x24},
131
+ {0xbd, 0x24},
132
+ {0xbe, 0x24},
133
+ {0xbf, 0x24},
134
+ {0xc0, 0x24},
135
+ {0xc1, 0x24},
136
+ {0xc2, 0x24},
137
+ {0xc3, 0x24},
138
+ {0xff, 0x21},
139
+ {0x07, 0x80},
140
+ {0x07, 0x00},
141
+ {0xff, 0x0A},
142
+ {0x77, 0x8F},
143
+ {0xF7, 0x8F},
144
+ {0xff, 0x0B},
145
+ {0x77, 0x8F},
146
+ {0xF7, 0x8F},
147
+
148
+ {0xFF, 0x21},
149
+ {0x40, 0xAC},
150
+ {0x41, 0x10},
151
+ {0x42, 0x03},
152
+ {0x43, 0x43},
153
+ {0x11, 0x04},
154
+ {0x10, 0x0A},
155
+ {0x12, 0x06},
156
+ {0x13, 0x09},
157
+ {0x17, 0x01},
158
+ {0x18, 0x0D},
159
+ {0x15, 0x04},
160
+ {0x14, 0x16},
161
+ {0x16, 0x05},
162
+ {0x19, 0x05},
163
+ {0x1A, 0x0A},
164
+ {0x1B, 0x08},
165
+ {0x1C, 0x07},
166
+ {0x44, 0x00},
167
+ {0x49, 0xF3},
168
+ {0x49, 0xF0},
169
+ {0x44, 0x02},
170
+ {0x08, 0x40}, //0x40:non-continue;0x48:continuous
171
+ {0x0F, 0x01},
172
+ {0x38, 0x1E},
173
+ {0x39, 0x1E},
174
+ {0x3A, 0x1E},
175
+ {0x3B, 0x1E},
176
+ {0x07, 0x0f}, //0x07:2lane;0x0f:4lane
177
+ {0x2D, 0x01}, //0x00:2lane;0x01:4lane
178
+ {0x45, 0x02},
179
+ {0xFF, 0x13},
180
+ {0x30, 0x00},
181
+ {0x31, 0x00},
182
+ {0x32, 0x00},
183
+
184
+ {0xFF, 0x00},
185
+ {0x00, 0x00},
186
+ {0x01, 0x00},
187
+ {0x02, 0x00},
188
+ {0x03, 0x00},
189
+ {0x04, 0x0e}, //sd_mode
190
+ {0x05, 0x0e},
191
+ {0x06, 0x0e},
192
+ {0x07, 0x0e},
193
+ {0x08, 0x00}, //ahd_mode
194
+ {0x09, 0x00},
195
+ {0x0a, 0x00},
196
+ {0x0b, 0x00},
197
+ {0x0c, 0x00},
198
+ {0x0d, 0x00},
199
+ {0x0e, 0x00},
200
+ {0x0f, 0x00},
201
+ {0x10, 0xa0}, //video_format
202
+ {0x11, 0xa0},
203
+ {0x12, 0xa0},
204
+ {0x13, 0xa0},
205
+ {0x14, 0x00},
206
+ {0x15, 0x00},
207
+ {0x16, 0x00},
208
+ {0x17, 0x00},
209
+ {0x18, 0x13},
210
+ {0x19, 0x13},
211
+ {0x1a, 0x13},
212
+ {0x1b, 0x13},
213
+ {0x1c, 0x1a},
214
+ {0x1d, 0x1a},
215
+ {0x1e, 0x1a},
216
+ {0x1f, 0x1a},
217
+ {0x20, 0x00},
218
+ {0x21, 0x00},
219
+ {0x22, 0x00},
220
+ {0x23, 0x00},
221
+ {0x24, 0x90}, //contrast
222
+ {0x25, 0x90},
223
+ {0x26, 0x90},
224
+ {0x27, 0x90},
225
+ {0x28, 0x90}, //black_level
226
+ {0x29, 0x90},
227
+ {0x2a, 0x90},
228
+ {0x2b, 0x90},
229
+ {0x30, 0x00}, //y_peaking_mode
230
+ {0x31, 0x00},
231
+ {0x32, 0x00},
232
+ {0x33, 0x00},
233
+ {0x34, 0x08}, //y_fir_mode
234
+ {0x35, 0x08},
235
+ {0x36, 0x08},
236
+ {0x37, 0x08},
237
+ {0x40, 0x00},
238
+ {0x41, 0x00},
239
+ {0x42, 0x00},
240
+ {0x43, 0x00},
241
+ {0x44, 0x00},
242
+ {0x45, 0x00},
243
+ {0x46, 0x00},
244
+ {0x47, 0x00},
245
+ {0x48, 0x00},
246
+ {0x49, 0x00},
247
+ {0x4a, 0x00},
248
+ {0x4b, 0x00},
249
+ {0x4c, 0xfe},
250
+ {0x4d, 0xfe},
251
+ {0x4e, 0xfe},
252
+ {0x4f, 0xfe},
253
+ {0x50, 0xfb},
254
+ {0x51, 0xfb},
255
+ {0x52, 0xfb},
256
+ {0x53, 0xfb},
257
+ {0x58, 0x80},
258
+ {0x59, 0x80},
259
+ {0x5a, 0x80},
260
+ {0x5b, 0x80},
261
+ {0x5c, 0x82}, //pal_cm_off
262
+ {0x5d, 0x82},
263
+ {0x5e, 0x82},
264
+ {0x5f, 0x82},
265
+ {0x60, 0x10},
266
+ {0x61, 0x10},
267
+ {0x62, 0x10},
268
+ {0x63, 0x10},
269
+ {0x64, 0x18}, //y_delay
270
+ {0x65, 0x18},
271
+ {0x66, 0x18},
272
+ {0x67, 0x18},
273
+ {0x68, 0x70}, //h_delay_a //h_delay_lsb
274
+ {0x69, 0x70},
275
+ {0x6a, 0x70},
276
+ {0x6b, 0x70},
277
+ {0x6c, 0x00},
278
+ {0x6d, 0x00},
279
+ {0x6e, 0x00},
280
+ {0x6f, 0x00},
281
+ {0x70, 0x9e}, //v_crop_start
282
+ {0x71, 0x9e},
283
+ {0x72, 0x9e},
284
+ {0x73, 0x9e},
285
+ {0x78, 0xc0},
286
+ {0x79, 0xc0},
287
+ {0x7a, 0xc0},
288
+ {0x7b, 0xc0},
289
+
290
+ {0xFF, 0x01},
291
+ {0x7C, 0x00},
292
+ {0x84, 0x04},
293
+ {0x85, 0x04},
294
+ {0x86, 0x04},
295
+ {0x87, 0x04},
296
+ {0x88, 0x01},
297
+ {0x89, 0x01},
298
+ {0x8a, 0x01},
299
+ {0x8b, 0x01},
300
+ {0x8c, 0x02},
301
+ {0x8d, 0x02},
302
+ {0x8e, 0x02},
303
+ {0x8f, 0x02},
304
+ {0xEC, 0x00},
305
+ {0xED, 0x00},
306
+ {0xEE, 0x00},
307
+ {0xEF, 0x00},
308
+
309
+ {0xFF, 0x05},
310
+ {0x00, 0xd0},
311
+ {0x01, 0x2c},
312
+ {0x05, 0x20}, //d_agc_option
313
+ {0x1d, 0x0c},
314
+ {0x21, 0x20}, //sub contrast
315
+ {0x24, 0x2a},
316
+ {0x25, 0xdc}, //fsc_lock_mode
317
+ {0x26, 0x40},
318
+ {0x27, 0x57},
319
+ {0x28, 0x80}, //s_point
320
+ {0x2b, 0xc0}, //saturation_b
321
+ {0x31, 0x82},
322
+ {0x32, 0x10},
323
+ {0x38, 0x00},
324
+ {0x47, 0x04},
325
+ {0x50, 0x84},
326
+ {0x53, 0x04},
327
+ {0x57, 0x00},
328
+ {0x58, 0x77},
329
+ {0x59, 0x00},
330
+ {0x5C, 0x78},
331
+ {0x5F, 0x00},
332
+ {0x62, 0x20},
333
+ {0x64, 0x01},
334
+ {0x65, 0x00},
335
+ {0x69, 0x00},
336
+ {0x6E, 0x00}, //VBLK_EXT_EN
337
+ {0x6F, 0x00}, //VBLK_EXT_[7:0]
338
+ {0x90, 0x01}, //comb_mode
339
+ {0x92, 0x00},
340
+ {0x94, 0x00},
341
+ {0x95, 0x00},
342
+ {0xa9, 0x00},
343
+ {0xb5, 0x00},
344
+ {0xb7, 0xfc},
345
+ {0xb8, 0xb8},
346
+ {0xb9, 0x72},
347
+ {0xbb, 0x0f},
348
+ {0xd1, 0x30}, //burst_dec_c
349
+ {0xd5, 0x80},
350
+
351
+ {0xFF, 0x09},
352
+ {0x40, 0x00},
353
+ {0x41, 0x00},
354
+ {0x42, 0x00},
355
+ {0x43, 0x00},
356
+ {0x44, 0x00},
357
+ {0x45, 0x00},
358
+ {0x46, 0x00},
359
+ {0x47, 0x00},
360
+ {0x50, 0x30},
361
+ {0x51, 0x6f},
362
+ {0x52, 0x67},
363
+ {0x53, 0x48},
364
+ {0x54, 0x30},
365
+ {0x55, 0x6f},
366
+ {0x56, 0x67},
367
+ {0x57, 0x48},
368
+ {0x58, 0x30},
369
+ {0x59, 0x6f},
370
+ {0x5a, 0x67},
371
+ {0x5b, 0x48},
372
+ {0x5c, 0x30},
373
+ {0x5d, 0x6f},
374
+ {0x5e, 0x67},
375
+ {0x5f, 0x48},
376
+ {0x96, 0x10},
377
+ {0x97, 0x10},
378
+ {0x98, 0x00},
379
+ {0x99, 0x00},
380
+ {0x9a, 0x00},
381
+ {0x9b, 0x00},
382
+ {0x9c, 0x00},
383
+ {0x9d, 0x00},
384
+ {0x9e, 0x00},
385
+ {0xb6, 0x10},
386
+ {0xb7, 0x10},
387
+ {0xb8, 0x00},
388
+ {0xb9, 0x00},
389
+ {0xba, 0x00},
390
+ {0xbb, 0x00},
391
+ {0xbc, 0x00},
392
+ {0xbd, 0x00},
393
+ {0xbe, 0x00},
394
+ {0xd6, 0x10},
395
+ {0xd7, 0x10},
396
+ {0xd8, 0x00},
397
+ {0xd9, 0x00},
398
+ {0xda, 0x00},
399
+ {0xdb, 0x00},
400
+ {0xdc, 0x00},
401
+ {0xdd, 0x00},
402
+ {0xde, 0x00},
403
+ {0xf6, 0x10},
404
+ {0xf7, 0x10},
405
+ {0xf8, 0x00},
406
+ {0xf9, 0x00},
407
+ {0xfa, 0x00},
408
+ {0xfb, 0x00},
409
+ {0xfc, 0x00},
410
+ {0xfd, 0x00},
411
+ {0xfe, 0x00},
412
+
413
+ {0xff, 0x0a},
414
+ {0x3d, 0x00},
415
+ {0x3c, 0x00},
416
+ {0x30, 0xac},
417
+ {0x31, 0x78},
418
+ {0x32, 0x17},
419
+ {0x33, 0xc1},
420
+ {0x34, 0x40},
421
+ {0x35, 0x00},
422
+ {0x36, 0xc3},
423
+ {0x37, 0x0a},
424
+ {0x38, 0x00},
425
+ {0x39, 0x02},
426
+ {0x3a, 0x00},
427
+ {0x3b, 0xb2},
428
+ {0x25, 0x10},
429
+ {0x27, 0x1e},
430
+ {0xbd, 0x00},
431
+ {0xbc, 0x00},
432
+ {0xb0, 0xac},
433
+ {0xb1, 0x78},
434
+ {0xb2, 0x17},
435
+ {0xb3, 0xc1},
436
+ {0xb4, 0x40},
437
+ {0xb5, 0x00},
438
+ {0xb6, 0xc3},
439
+ {0xb7, 0x0a},
440
+ {0xb8, 0x00},
441
+ {0xb9, 0x02},
442
+ {0xba, 0x00},
443
+ {0xbb, 0xb2},
444
+ {0xa5, 0x10},
445
+ {0xa7, 0x1e},
446
+
447
+ {0xff, 0x0b},
448
+ {0x3d, 0x00},
449
+ {0x3c, 0x00},
450
+ {0x30, 0xac},
451
+ {0x31, 0x78},
452
+ {0x32, 0x17},
453
+ {0x33, 0xc1},
454
+ {0x34, 0x40},
455
+ {0x35, 0x00},
456
+ {0x36, 0xc3},
457
+ {0x37, 0x0a},
458
+ {0x38, 0x00},
459
+ {0x39, 0x02},
460
+ {0x3a, 0x00},
461
+ {0x3b, 0xb2},
462
+ {0x25, 0x10},
463
+ {0x27, 0x1e},
464
+ {0xbd, 0x00},
465
+ {0xbc, 0x00},
466
+ {0xb0, 0xac},
467
+ {0xb1, 0x78},
468
+ {0xb2, 0x17},
469
+ {0xb3, 0xc1},
470
+ {0xb4, 0x40},
471
+ {0xb5, 0x00},
472
+ {0xb6, 0xc3},
473
+ {0xb7, 0x0a},
474
+ {0xb8, 0x00},
475
+ {0xb9, 0x02},
476
+ {0xba, 0x00},
477
+ {0xbb, 0xb2},
478
+ {0xa5, 0x10},
479
+ {0xa7, 0x1e},
480
+
481
+ {0xFF, 0x21},
482
+ {0x3E, 0x00},
483
+ {0x3F, 0x00},
484
+ {0xFF, 0x20},
485
+ {0x01, 0xaa}, //0x00:1/1;0x55:1/2;0xaa:1/4
486
+ {0x00, 0x00},
487
+ {0x40, 0x01},
488
+ {0x0F, 0x00},
489
+ {0x0D, 0x01}, //0x01:4lane;0x00:2lane
490
+ {0x40, 0x00},
491
+ {0x00, 0xff}, //0xff:ch1/2/3/4 0x33:ch1/2 0x11:ch1
492
+
493
+ {0xFF, 0x01},
494
+ {0xC8, 0x00},
495
+ {0xC9, 0x00},
496
+ {0xCA, 0x00},
497
+ {0xCB, 0x00},
498
+
499
+ //pattern enabled
500
+ {0xFF, 0x00},
501
+ {0x1C, 0x1A},
502
+ {0x1D, 0x1A},
503
+ {0x1E, 0x1A},
504
+ {0x1F, 0x1A},
505
+
506
+ {0xFF, 0x05},
507
+ {0x6A, 0x80},
508
+ {0xFF, 0x06},
509
+ {0x6A, 0x80},
510
+ {0xFF, 0x07},
511
+ {0x6A, 0x80},
512
+ {0xFF, 0x08},
513
+ {0x6A, 0x80},
514
+ {0xFF, 0x21}, //add frame num
515
+ {0x3E, 0x11}, //1 : Fix to 1 for Odd Field, 2 for Even Field
516
+ {0x3F, 0x11}, //1 : Fix to 1 for Odd Field, 2 for Even Field
517
+ SensorEnd
518
+};
519
+
520
+/* Pal Preview resolution setting*/
521
+static struct rk_sensor_reg sensor_preview_data_pal_25hz[] = {
522
+ {0xff, 0x04},
523
+ {0xa0, 0x24},
524
+ {0xa1, 0x24},
525
+ {0xa2, 0x24},
526
+ {0xa3, 0x24},
527
+ {0xa4, 0x24},
528
+ {0xa5, 0x24},
529
+ {0xa6, 0x24},
530
+ {0xa7, 0x24},
531
+ {0xa8, 0x24},
532
+ {0xa9, 0x24},
533
+ {0xaa, 0x24},
534
+ {0xab, 0x24},
535
+ {0xac, 0x24},
536
+ {0xad, 0x24},
537
+ {0xae, 0x24},
538
+ {0xaf, 0x24},
539
+ {0xb0, 0x24},
540
+ {0xb1, 0x24},
541
+ {0xb2, 0x24},
542
+ {0xb3, 0x24},
543
+ {0xb4, 0x24},
544
+ {0xb5, 0x24},
545
+ {0xb6, 0x24},
546
+ {0xb7, 0x24},
547
+ {0xb8, 0x24},
548
+ {0xb9, 0x24},
549
+ {0xba, 0x24},
550
+ {0xbb, 0x24},
551
+ {0xbc, 0x24},
552
+ {0xbd, 0x24},
553
+ {0xbe, 0x24},
554
+ {0xbf, 0x24},
555
+ {0xc0, 0x24},
556
+ {0xc1, 0x24},
557
+ {0xc2, 0x24},
558
+ {0xc3, 0x24},
559
+ {0xff, 0x21},
560
+ {0x07, 0x80},
561
+ {0x07, 0x00},
562
+ {0xff, 0x0A},
563
+ {0x77, 0x8F},
564
+ {0xF7, 0x8F},
565
+ {0xff, 0x0B},
566
+ {0x77, 0x8F},
567
+ {0xF7, 0x8F},
568
+
569
+ {0xFF, 0x21},
570
+ {0x40, 0xAC},
571
+ {0x41, 0x10},
572
+ {0x42, 0x03},
573
+ {0x43, 0x43},
574
+ {0x11, 0x04},
575
+ {0x10, 0x0A},
576
+ {0x12, 0x06},
577
+ {0x13, 0x09},
578
+ {0x17, 0x01},
579
+ {0x18, 0x0D},
580
+ {0x15, 0x04},
581
+ {0x14, 0x16},
582
+ {0x16, 0x05},
583
+ {0x19, 0x05},
584
+ {0x1A, 0x0A},
585
+ {0x1B, 0x08},
586
+ {0x1C, 0x07},
587
+ {0x44, 0x00},
588
+ {0x49, 0xF3},
589
+ {0x49, 0xF0},
590
+ {0x44, 0x02},
591
+ {0x08, 0x40}, //0x40:non-continue;0x48:continuous
592
+ {0x0F, 0x01},
593
+ {0x38, 0x1E},
594
+ {0x39, 0x1E},
595
+ {0x3A, 0x1E},
596
+ {0x3B, 0x1E},
597
+ {0x07, 0x0f}, //0x07:2lane;0x0f:4lane
598
+ {0x2D, 0x01}, //0x00:2lane;0x01:4lane
599
+ {0x45, 0x02},
600
+ {0xFF, 0x13},
601
+ {0x30, 0x00},
602
+ {0x31, 0x00},
603
+ {0x32, 0x00},
604
+
605
+ {0xFF, 0x00},
606
+ {0x00, 0x00},
607
+ {0x01, 0x00},
608
+ {0x02, 0x00},
609
+ {0x03, 0x00},
610
+ {0x04, 0x0f}, //sd_mode
611
+ {0x05, 0x0f},
612
+ {0x06, 0x0f},
613
+ {0x07, 0x0f},
614
+ {0x08, 0x00}, //ahd_mode
615
+ {0x09, 0x00},
616
+ {0x0a, 0x00},
617
+ {0x0b, 0x00},
618
+ {0x0c, 0x00},
619
+ {0x0d, 0x00},
620
+ {0x0e, 0x00},
621
+ {0x0f, 0x00},
622
+ {0x10, 0xdd}, //video_format
623
+ {0x11, 0xdd},
624
+ {0x12, 0xdd},
625
+ {0x13, 0xdd},
626
+ {0x14, 0x00},
627
+ {0x15, 0x00},
628
+ {0x16, 0x00},
629
+ {0x17, 0x00},
630
+ {0x18, 0x13},
631
+ {0x19, 0x13},
632
+ {0x1a, 0x13},
633
+ {0x1b, 0x13},
634
+ {0x1c, 0x1a},
635
+ {0x1d, 0x1a},
636
+ {0x1e, 0x1a},
637
+ {0x1f, 0x1a},
638
+ {0x20, 0x00},
639
+ {0x21, 0x00},
640
+ {0x22, 0x00},
641
+ {0x23, 0x00},
642
+ {0x24, 0x90}, //contrast
643
+ {0x25, 0x90},
644
+ {0x26, 0x90},
645
+ {0x27, 0x90},
646
+ {0x28, 0x90}, //black_level
647
+ {0x29, 0x90},
648
+ {0x2a, 0x90},
649
+ {0x2b, 0x90},
650
+ {0x30, 0x00}, //y_peaking_mode
651
+ {0x31, 0x00},
652
+ {0x32, 0x00},
653
+ {0x33, 0x00},
654
+ {0x34, 0x08}, //y_fir_mode
655
+ {0x35, 0x08},
656
+ {0x36, 0x08},
657
+ {0x37, 0x08},
658
+ {0x40, 0x00},
659
+ {0x41, 0x00},
660
+ {0x42, 0x00},
661
+ {0x43, 0x00},
662
+ {0x44, 0x00},
663
+ {0x45, 0x00},
664
+ {0x46, 0x00},
665
+ {0x47, 0x00},
666
+ {0x48, 0x00},
667
+ {0x49, 0x00},
668
+ {0x4a, 0x00},
669
+ {0x4b, 0x00},
670
+ {0x4c, 0xfe},
671
+ {0x4d, 0xfe},
672
+ {0x4e, 0xfe},
673
+ {0x4f, 0xfe},
674
+ {0x50, 0xfb},
675
+ {0x51, 0xfb},
676
+ {0x52, 0xfb},
677
+ {0x53, 0xfb},
678
+ {0x58, 0x80},
679
+ {0x59, 0x80},
680
+ {0x5a, 0x80},
681
+ {0x5b, 0x80},
682
+ {0x5c, 0x82}, //pal_cm_off
683
+ {0x5d, 0x82},
684
+ {0x5e, 0x82},
685
+ {0x5f, 0x82},
686
+ {0x60, 0x10},
687
+ {0x61, 0x10},
688
+ {0x62, 0x10},
689
+ {0x63, 0x10},
690
+ {0x64, 0x07}, //y_delay
691
+ {0x65, 0x07},
692
+ {0x66, 0x07},
693
+ {0x67, 0x07},
694
+ {0x68, 0x68}, //h_delay_a //h_delay_lsb
695
+ {0x69, 0x68},
696
+ {0x6a, 0x68},
697
+ {0x6b, 0x68},
698
+ {0x6c, 0x00},
699
+ {0x6d, 0x00},
700
+ {0x6e, 0x00},
701
+ {0x6f, 0x00},
702
+ {0x70, 0x3f}, //v_crop_start
703
+ {0x71, 0x3f},
704
+ {0x72, 0x3f},
705
+ {0x73, 0x3f},
706
+ {0x78, 0x21},
707
+ {0x79, 0x21},
708
+ {0x7a, 0x21},
709
+ {0x7b, 0x21},
710
+
711
+ {0xFF, 0x01},
712
+ {0x7C, 0x00},
713
+ {0x84, 0x04},
714
+ {0x85, 0x04},
715
+ {0x86, 0x04},
716
+ {0x87, 0x04},
717
+ {0x88, 0x01},
718
+ {0x89, 0x01},
719
+ {0x8a, 0x01},
720
+ {0x8b, 0x01},
721
+ {0x8c, 0x02},
722
+ {0x8d, 0x02},
723
+ {0x8e, 0x02},
724
+ {0x8f, 0x02},
725
+ {0xEC, 0x00},
726
+ {0xED, 0x00},
727
+ {0xEE, 0x00},
728
+ {0xEF, 0x00},
729
+
730
+ {0xFF, 0x05},
731
+ {0x00, 0xd0},
732
+ {0x01, 0x2c},
733
+ {0x05, 0x20}, //d_agc_option
734
+ {0x1d, 0x0c},
735
+ {0x21, 0x20}, //sub contrast
736
+ {0x24, 0x2a},
737
+ {0x25, 0xcc}, //fsc_lock_mode
738
+ {0x26, 0x40},
739
+ {0x27, 0x57},
740
+ {0x28, 0x80}, //s_point
741
+ {0x2b, 0xc0}, //saturation_b
742
+ {0x31, 0x02},
743
+ {0x32, 0x10},
744
+ {0x38, 0x00},
745
+ {0x47, 0xEE},
746
+ {0x50, 0xc6},
747
+ {0x53, 0x04},
748
+ {0x57, 0x00},
749
+ {0x58, 0x77},
750
+ {0x59, 0x00},
751
+ {0x5C, 0x78},
752
+ {0x5F, 0x00},
753
+ {0x62, 0x20},
754
+ {0x64, 0x01},
755
+ {0x65, 0x00},
756
+ {0x69, 0x00},
757
+ {0x6E, 0x00}, //VBLK_EXT_EN
758
+ {0x6F, 0x00}, //VBLK_EXT_[7:0]
759
+ {0x90, 0x0d}, //comb_mode
760
+ {0x92, 0x00},
761
+ {0x94, 0x00},
762
+ {0x95, 0x00},
763
+ {0xa9, 0x00},
764
+ {0xb5, 0x00},
765
+ {0xb7, 0xfc},
766
+ {0xb8, 0xb8},
767
+ {0xb9, 0x72},
768
+ {0xbb, 0x0f},
769
+ {0xd1, 0x30}, //burst_dec_c
770
+ {0xd5, 0x80},
771
+
772
+ {0xFF, 0x09},
773
+ {0x40, 0x00},
774
+ {0x41, 0x00},
775
+ {0x42, 0x00},
776
+ {0x43, 0x00},
777
+ {0x44, 0x00},
778
+ {0x45, 0x00},
779
+ {0x46, 0x00},
780
+ {0x47, 0x00},
781
+ {0x50, 0x30},
782
+ {0x51, 0x6f},
783
+ {0x52, 0x67},
784
+ {0x53, 0x48},
785
+ {0x54, 0x30},
786
+ {0x55, 0x6f},
787
+ {0x56, 0x67},
788
+ {0x57, 0x48},
789
+ {0x58, 0x30},
790
+ {0x59, 0x6f},
791
+ {0x5a, 0x67},
792
+ {0x5b, 0x48},
793
+ {0x5c, 0x30},
794
+ {0x5d, 0x6f},
795
+ {0x5e, 0x67},
796
+ {0x5f, 0x48},
797
+ {0x96, 0x10},
798
+ {0x97, 0x10},
799
+ {0x98, 0x00},
800
+ {0x99, 0x00},
801
+ {0x9a, 0x00},
802
+ {0x9b, 0x00},
803
+ {0x9c, 0x00},
804
+ {0x9d, 0x00},
805
+ {0x9e, 0x00},
806
+ {0xb6, 0x10},
807
+ {0xb7, 0x10},
808
+ {0xb8, 0x00},
809
+ {0xb9, 0x00},
810
+ {0xba, 0x00},
811
+ {0xbb, 0x00},
812
+ {0xbc, 0x00},
813
+ {0xbd, 0x00},
814
+ {0xbe, 0x00},
815
+ {0xd6, 0x10},
816
+ {0xd7, 0x10},
817
+ {0xd8, 0x00},
818
+ {0xd9, 0x00},
819
+ {0xda, 0x00},
820
+ {0xdb, 0x00},
821
+ {0xdc, 0x00},
822
+ {0xdd, 0x00},
823
+ {0xde, 0x00},
824
+ {0xf6, 0x10},
825
+ {0xf7, 0x10},
826
+ {0xf8, 0x00},
827
+ {0xf9, 0x00},
828
+ {0xfa, 0x00},
829
+ {0xfb, 0x00},
830
+ {0xfc, 0x00},
831
+ {0xfd, 0x00},
832
+ {0xfe, 0x00},
833
+
834
+ {0xff, 0x0a},
835
+ {0x3d, 0x00},
836
+ {0x3c, 0x00},
837
+ {0x30, 0xac},
838
+ {0x31, 0x78},
839
+ {0x32, 0x17},
840
+ {0x33, 0xc1},
841
+ {0x34, 0x40},
842
+ {0x35, 0x00},
843
+ {0x36, 0xc3},
844
+ {0x37, 0x0a},
845
+ {0x38, 0x00},
846
+ {0x39, 0x02},
847
+ {0x3a, 0x00},
848
+ {0x3b, 0xb2},
849
+ {0x25, 0x10},
850
+ {0x27, 0x1e},
851
+ {0xbd, 0x00},
852
+ {0xbc, 0x00},
853
+ {0xb0, 0xac},
854
+ {0xb1, 0x78},
855
+ {0xb2, 0x17},
856
+ {0xb3, 0xc1},
857
+ {0xb4, 0x40},
858
+ {0xb5, 0x00},
859
+ {0xb6, 0xc3},
860
+ {0xb7, 0x0a},
861
+ {0xb8, 0x00},
862
+ {0xb9, 0x02},
863
+ {0xba, 0x00},
864
+ {0xbb, 0xb2},
865
+ {0xa5, 0x10},
866
+ {0xa7, 0x1e},
867
+
868
+ {0xff, 0x0b},
869
+ {0x3d, 0x00},
870
+ {0x3c, 0x00},
871
+ {0x30, 0xac},
872
+ {0x31, 0x78},
873
+ {0x32, 0x17},
874
+ {0x33, 0xc1},
875
+ {0x34, 0x40},
876
+ {0x35, 0x00},
877
+ {0x36, 0xc3},
878
+ {0x37, 0x0a},
879
+ {0x38, 0x00},
880
+ {0x39, 0x02},
881
+ {0x3a, 0x00},
882
+ {0x3b, 0xb2},
883
+ {0x25, 0x10},
884
+ {0x27, 0x1e},
885
+ {0xbd, 0x00},
886
+ {0xbc, 0x00},
887
+ {0xb0, 0xac},
888
+ {0xb1, 0x78},
889
+ {0xb2, 0x17},
890
+ {0xb3, 0xc1},
891
+ {0xb4, 0x40},
892
+ {0xb5, 0x00},
893
+ {0xb6, 0xc3},
894
+ {0xb7, 0x0a},
895
+ {0xb8, 0x00},
896
+ {0xb9, 0x02},
897
+ {0xba, 0x00},
898
+ {0xbb, 0xb2},
899
+ {0xa5, 0x10},
900
+ {0xa7, 0x1e},
901
+
902
+ {0xFF, 0x21},
903
+ {0x3E, 0x00},
904
+ {0x3F, 0x00},
905
+ {0xFF, 0x20},
906
+ {0x01, 0xaa}, //0x00:1/1;0x55:1/2;0xaa:1/4
907
+ {0x00, 0x00},
908
+ {0x40, 0x01},
909
+ {0x0F, 0x00},
910
+ {0x0D, 0x01}, //0x01:4lane;0x00:2lane
911
+ {0x40, 0x00},
912
+ {0x00, 0xff}, //0xff:ch1/2/3/4 0x33:ch1/2 0x11:ch1
913
+
914
+ {0xFF, 0x01},
915
+ {0xC8, 0x00},
916
+ {0xC9, 0x00},
917
+ {0xCA, 0x00},
918
+ {0xCB, 0x00},
919
+
920
+ //pattern enabled
921
+ {0xFF, 0x00},
922
+ {0x1C, 0x1A},
923
+ {0x1D, 0x1A},
924
+ {0x1E, 0x1A},
925
+ {0x1F, 0x1A},
926
+
927
+ {0xFF, 0x05},
928
+ {0x6A, 0x80},
929
+ {0xFF, 0x06},
930
+ {0x6A, 0x80},
931
+ {0xFF, 0x07},
932
+ {0x6A, 0x80},
933
+ {0xFF, 0x08},
934
+ {0x6A, 0x80},
935
+ {0xFF, 0x21}, //add frame num
936
+ {0x3E, 0x11}, //1 : Fix to 1 for Odd Field, 2 for Even Field
937
+ {0x3F, 0x11}, //1 : Fix to 1 for Odd Field, 2 for Even Field
938
+ SensorEnd
939
+};
940
+
99941 /* 720p Preview resolution setting*/
100942 static struct rk_sensor_reg sensor_preview_data_720p_25hz[] = {
101943 {0xff, 0x04},
....@@ -923,6 +1765,34 @@
9231765 int i = 0;
9241766
9251767 switch (cvstd) {
1768
+ case CVSTD_PAL:
1769
+ ad->cfg.width = FORCE_PAL_WIDTH;
1770
+ ad->cfg.height = FORCE_PAL_HEIGHT;
1771
+ ad->cfg.start_x = 0;
1772
+ ad->cfg.start_y = 0;
1773
+ ad->cfg.input_format = CIF_INPUT_FORMAT_PAL;
1774
+ ad->cfg.output_format = FORCE_CIF_OUTPUT_FORMAT;
1775
+ ad->cfg.field_order = 1;
1776
+ ad->cfg.yuv_order = 0;/*00 - UYVY*/
1777
+ ad->cfg.href = 0;
1778
+ ad->cfg.vsync = 0;
1779
+ ad->cfg.frame_rate = 25;//25 30
1780
+ ad->cfg.mipi_freq = JAGUAR1_LINK_FREQ_320M;
1781
+ break;
1782
+ case CVSTD_NTSC:
1783
+ ad->cfg.width = FORCE_NTSC_WIDTH;
1784
+ ad->cfg.height = FORCE_NTSC_HEIGHT;
1785
+ ad->cfg.start_x = 0;
1786
+ ad->cfg.start_y = 0;
1787
+ ad->cfg.input_format = CIF_INPUT_FORMAT_NTSC;
1788
+ ad->cfg.output_format = FORCE_CIF_OUTPUT_FORMAT;
1789
+ ad->cfg.field_order = 1;
1790
+ ad->cfg.yuv_order = 0;/*00 - UYVY*/
1791
+ ad->cfg.href = 0;
1792
+ ad->cfg.vsync = 0;
1793
+ ad->cfg.frame_rate = 30;//25 30
1794
+ ad->cfg.mipi_freq = JAGUAR1_LINK_FREQ_320M;
1795
+ break;
9261796 case CVSTD_720P25:
9271797 ad->cfg.width = 1280;
9281798 ad->cfg.height = 720;
....@@ -1009,6 +1879,14 @@
10091879 int i;
10101880
10111881 switch (cvstd) {
1882
+ case CVSTD_NTSC:
1883
+ VEHICLE_DG("%s, init CVSTD_NTSC mode", __func__);
1884
+ sensor = sensor_preview_data_ntsc_30hz;
1885
+ break;
1886
+ case CVSTD_PAL:
1887
+ VEHICLE_DG("%s, init CVSTD_PAL mode", __func__);
1888
+ sensor = sensor_preview_data_pal_25hz;
1889
+ break;
10121890 case CVSTD_720P25:
10131891 VEHICLE_DG("%s, init CVSTD_720P25 mode)", __func__);
10141892 sensor = sensor_preview_data_720p_25hz;
....@@ -1072,6 +1950,7 @@
10721950 }
10731951
10741952 nvp6324_g_addev->cfg.ad_ready = true;
1953
+ nvp6324_g_addev->cfg.drop_frames = nvp6324_g_addev->drop_frames;
10751954
10761955 *cfg = &nvp6324_g_addev->cfg;
10771956
....@@ -1167,10 +2046,10 @@
11672046 VEHICLE_DG("%s(%d): 1080P25", __func__, __LINE__);
11682047 } else if (cvstd == 0x00) {
11692048 cvstd_mode = CVSTD_NTSC;
1170
- VEHICLE_DG("%s(%d): 720H NTSC\n", __func__, __LINE__);
2049
+ VEHICLE_DG("%s(%d): 960H NTSC\n", __func__, __LINE__);
11712050 } else if (cvstd == 0x10) {
11722051 cvstd_mode = CVSTD_PAL;
1173
- VEHICLE_DG("%s(%d): 720H PAL\n", __func__, __LINE__);
2052
+ VEHICLE_DG("%s(%d): 960H PAL\n", __func__, __LINE__);
11742053 } else if (cvstd == 0xff) {
11752054 cvstd_mode = cvstd_old;
11762055 VEHICLE_DG("%s(%d): no ahd plugin!\n", __func__, __LINE__);