Lines Matching +full:0 +full:x39
7 * V0.0X01.0X01 add poweron function.
8 * V0.0X01.0X02 fix mclk issue when probe multiple camera.
9 * V0.0X01.0X03 fix gain range.
10 * V0.0X01.0X04 add enum_frame_interval function.
11 * V0.0X01.0X05 fix gain reg, add otp and dpc.
12 * V0.0X01.0X06 add set dpc cfg.
13 * V0.0X01.0X07 support enum sensor fmt
14 * V0.0X01.0X08 support mirror and flip
15 * V0.0X01.0X09 add quick stream on/off
37 #define DRIVER_VERSION KERNEL_VERSION(0, 0x01, 0x09)
53 #define CHIP_ID 0x46c3
54 #define GC4C33_REG_CHIP_ID_H 0x03f0
55 #define GC4C33_REG_CHIP_ID_L 0x03f1
57 #define GC4C33_REG_CTRL_MODE 0x0100
58 #define GC4C33_MODE_SW_STANDBY 0x00
59 #define GC4C33_MODE_STREAMING 0x09
61 #define GC4C33_REG_EXPOSURE_H 0x0202
62 #define GC4C33_REG_EXPOSURE_L 0x0203
65 #define GC4C33_VTS_MAX 0x7fff
68 #define GC4C33_GAIN_MAX 0xffff
72 #define GC4C33_REG_TEST_PATTERN 0x008c
73 #define GC4C33_TEST_PATTERN_ENABLE 0x11
74 #define GC4C33_TEST_PATTERN_DISABLE 0x0
76 #define GC4C33_REG_VTS_H 0x0340
77 #define GC4C33_REG_VTS_L 0x0341
79 #define GC4C33_REG_DPCC_ENABLE 0x00aa
80 #define GC4C33_REG_DPCC_SINGLE 0x00a1
81 #define GC4C33_REG_DPCC_DOUBLE 0x00a2
83 #define GC4C33_FLIP_MIRROR_REG 0x0101
84 #define GC4C33_MIRROR_BIT_MASK BIT(0)
87 #define REG_NULL 0xFFFF
169 {REG_NULL, 0x00},
173 {0x00, 0x39, 0x00, 0x39, 0x00, 0x00, 0x01, 0x00, 0x20},
174 {0x00, 0x39, 0x00, 0x39, 0x08, 0x00, 0x01, 0x0B, 0x20},
175 {0x00, 0x39, 0x00, 0x39, 0x01, 0x00, 0x01, 0x1B, 0x1e},
176 {0x00, 0x39, 0x00, 0x39, 0x09, 0x00, 0x01, 0x2A, 0x1c},
177 {0x00, 0x39, 0x00, 0x39, 0x10, 0x00, 0x01, 0x3E, 0x1a},
178 {0x00, 0x39, 0x00, 0x39, 0x18, 0x00, 0x02, 0x13, 0x18},
179 {0x00, 0x39, 0x00, 0x39, 0x11, 0x00, 0x02, 0x33, 0x18},
180 {0x00, 0x39, 0x00, 0x39, 0x19, 0x00, 0x03, 0x11, 0x16},
181 {0x00, 0x39, 0x00, 0x39, 0x30, 0x00, 0x03, 0x3B, 0x16},
182 {0x00, 0x39, 0x00, 0x39, 0x38, 0x00, 0x04, 0x26, 0x14},
183 {0x00, 0x39, 0x00, 0x39, 0x31, 0x00, 0x05, 0x24, 0x14},
184 {0x00, 0x39, 0x00, 0x39, 0x39, 0x00, 0x06, 0x21, 0x12},
185 {0x00, 0x39, 0x00, 0x39, 0x32, 0x00, 0x07, 0x28, 0x12},
186 {0x00, 0x39, 0x00, 0x39, 0x3a, 0x00, 0x08, 0x3C, 0x12},
187 {0x00, 0x39, 0x00, 0x39, 0x33, 0x00, 0x0A, 0x3F, 0x10},
188 {0x00, 0x39, 0x00, 0x39, 0x3b, 0x00, 0x0C, 0x38, 0x10},
189 {0x00, 0x39, 0x00, 0x39, 0x34, 0x00, 0x0F, 0x17, 0x0e},
190 {0x00, 0x39, 0x00, 0x39, 0x3c, 0x00, 0x11, 0x3F, 0x0c},
191 {0x00, 0x39, 0x00, 0x39, 0xb4, 0x00, 0x15, 0x34, 0x0a},
192 {0x00, 0x39, 0x00, 0x39, 0xbc, 0x00, 0x19, 0x22, 0x08},
193 {0x00, 0x39, 0x00, 0x39, 0x34, 0x01, 0x1E, 0x09, 0x06},
194 {0x00, 0x39, 0x00, 0x39, 0x3c, 0x11, 0x1A, 0x31, 0x14},
195 {0x00, 0x32, 0x00, 0x32, 0x3c, 0x11, 0x20, 0x12, 0x13},
196 {0x00, 0x3a, 0x00, 0x3a, 0x3c, 0x11, 0x25, 0x28, 0x12},
197 {0x00, 0x33, 0x00, 0x33, 0x3c, 0x11, 0x2D, 0x28, 0x11},
198 {0x00, 0x3b, 0x00, 0x3b, 0x3c, 0x11, 0x35, 0x0A, 0x10},
199 {0x00, 0x34, 0x00, 0x34, 0x3c, 0x11, 0x3F, 0x22, 0x0e},
200 {0x00, 0x3c, 0x00, 0x3c, 0x3c, 0x11, 0x4A, 0x02, 0x0c},
201 {0x00, 0xb4, 0x00, 0xb4, 0x3c, 0x11, 0x5A, 0x36, 0x0a},
202 {0x00, 0xbc, 0x00, 0xbc, 0x3c, 0x11, 0x69, 0x37, 0x0a},
203 {0x01, 0x34, 0x10, 0x34, 0x3c, 0x11, 0x7E, 0x13, 0x08},
204 {0x01, 0x3c, 0x10, 0x3c, 0x3c, 0x11, 0x93, 0x0B, 0x06},
205 {0x01, 0xb4, 0x10, 0xb4, 0x3c, 0x11, 0xB4, 0x19, 0x04},
206 {0x01, 0xbc, 0x10, 0xbc, 0x3c, 0x11, 0xD2, 0x0E, 0x02},
207 {0x02, 0x34, 0x20, 0x34, 0x3c, 0x11, 0xFC, 0x0B, 0x02},
208 {0x02, 0x3c, 0x20, 0x3c, 0x3c, 0x11, 0xff, 0xff, 0x02},
209 {0x01, 0xf4, 0x10, 0xf4, 0x3c, 0x11, 0xff, 0xff, 0x02},
210 {0x01, 0xfc, 0x10, 0xfc, 0x3c, 0x11, 0xff, 0xff, 0x02},
211 {0x02, 0x74, 0x20, 0x74, 0x3c, 0x11, 0xff, 0xff, 0x02},
212 {0x02, 0x7c, 0x20, 0x7c, 0x3c, 0x11, 0xff, 0xff, 0x02},
213 {0x02, 0x75, 0x20, 0x75, 0x3c, 0x11, 0xff, 0xff, 0x02},
214 {0x02, 0x7d, 0x20, 0x7d, 0x3c, 0x11, 0xff, 0xff, 0x02},
215 {0x02, 0xf5, 0x20, 0xf5, 0x3c, 0x11, 0xff, 0xff, 0x02},
262 0xffffffff
266 {0x00, 0x00, 0x01, 0x00, 0x20},
267 {0x08, 0x00, 0x01, 0x0A, 0x20},
268 {0x01, 0x00, 0x01, 0x19, 0x1E},
269 {0x09, 0x00, 0x01, 0x26, 0x1C},
270 {0x10, 0x00, 0x01, 0x3F, 0x1A},
271 {0x18, 0x00, 0x02, 0x13, 0x18},
272 {0x11, 0x00, 0x02, 0x31, 0x18},
273 {0x19, 0x00, 0x03, 0x0B, 0x16},
274 {0x30, 0x00, 0x04, 0x04, 0x16},
275 {0x38, 0x00, 0x04, 0x2C, 0x14},
276 {0x31, 0x00, 0x05, 0x29, 0x13},
277 {0x39, 0x00, 0x06, 0x1F, 0x12},
278 {0x32, 0x00, 0x07, 0x38, 0x12},
279 {0x3a, 0x00, 0x09, 0x05, 0x12},
280 {0x33, 0x00, 0x0B, 0x12, 0x10},
281 {0x3b, 0x00, 0x0D, 0x00, 0x10},
282 {0x34, 0x00, 0x10, 0x03, 0x0e},
283 {0x3c, 0x00, 0x12, 0x1E, 0x0c},
284 {0xb4, 0x00, 0x16, 0x00, 0x0a},
285 {0xbc, 0x00, 0x19, 0x15, 0x08},
286 {0x34, 0x01, 0x1F, 0x06, 0x06},
287 {0x3c, 0x01, 0x23, 0x33, 0x04},
288 {0xb4, 0x01, 0x2C, 0x22, 0x02},
289 {0xbc, 0x01, 0x33, 0x12, 0x02},
290 {0x34, 0x02, 0x3F, 0x10, 0x02},
291 {0x3c, 0x02, 0x48, 0x34, 0x02},
292 {0xf4, 0x01, 0x5F, 0x06, 0x02},
293 {0xfc, 0x01, 0x6D, 0x1E, 0x02},
294 {0x74, 0x02, 0x87, 0x00, 0x02},
295 {0x7c, 0x02, 0x9B, 0x19, 0x02},
296 {0x75, 0x02, 0xC7, 0x07, 0x02},
297 {0x7d, 0x02, 0xE5, 0x0B, 0x02},
341 {0x03fe, 0xf0},
342 {0x03fe, 0xf0},
343 {0x03fe, 0xf0},
344 {0x03fe, 0xf0},
345 {0x03fe, 0x00},
346 {0x03fe, 0x00},
347 {0x03fe, 0x00},
348 {0x03fe, 0x00},
349 {0x031c, 0x01},
350 {0x0317, 0x24},
351 {0x0320, 0x77},
352 {0x0106, 0x78},
353 {0x0324, 0x84},
354 {0x0327, 0x05},
355 {0x0325, 0x08},
356 {0x0326, 0x2d},
357 {0x031a, 0x00},
358 {0x0314, 0x30},
359 {0x0315, 0x23},
360 {0x0334, 0x00},
361 {0x0337, 0x02},
362 {0x0335, 0x02},
363 {0x0336, 0x1f},
364 {0x0324, 0xc4},
365 {0x0334, 0x40},
366 {0x031c, 0x03},
367 {0x031c, 0xd2},
368 {0x0180, 0x26},
369 {0x031c, 0xd6},
370 {0x0287, 0x18},
371 {0x02ee, 0x70},
372 {0x0202, 0x05},
373 {0x0203, 0xd0},
374 {0x0213, 0x1c},
375 {0x0214, 0x04},
376 {0x0290, 0x00},
377 {0x029d, 0x08},
378 {0x0340, 0x05},
379 {0x0341, 0xdc},
380 {0x0342, 0x01},
381 {0x0343, 0xfe},
382 {0x00f2, 0x04},
383 {0x00f1, 0x0a},
384 {0x00f0, 0xa0},
385 {0x00c1, 0x05},
386 {0x00c2, 0xa0},
387 {0x00c3, 0x0a},
388 {0x00c4, 0x00},
389 {0x00da, 0x05},
390 {0x00db, 0xa0},//1440
391 {0x00d8, 0x0a},
392 {0x00d9, 0x00},//2560
393 {0x00c5, 0x0a},
394 {0x00c6, 0xa0},
395 {0x00bf, 0x17},
396 {0x00ce, 0x0a},
397 {0x00cd, 0x01},
398 {0x00cf, 0x89},
399 {0x023c, 0x06},
400 {0x02d1, 0xc2},
401 {0x027d, 0xcc},
402 {0x0238, 0xa4},
403 {0x02ce, 0x1f},
404 {0x02f9, 0x00},
405 {0x0227, 0x74},
406 {0x0232, 0xc8},
407 {0x0245, 0xa8},
408 {0x027d, 0xcc},
409 {0x02fa, 0xb0},
410 {0x02e7, 0x23},
411 {0x02e8, 0x50},
412 {0x021d, 0x03},
413 {0x0220, 0x43},
414 {0x0228, 0x10},
415 {0x022c, 0x2c},
416 {0x024b, 0x11},
417 {0x024e, 0x11},
418 {0x024d, 0x11},
419 {0x0255, 0x11},
420 {0x025b, 0x11},
421 {0x0262, 0x01},
422 {0x02d4, 0x10},
423 {0x0540, 0x10},
424 {0x0239, 0x00},
425 {0x0231, 0xc4},
426 {0x024f, 0x11},
427 {0x028c, 0x1a},
428 {0x02d3, 0x01},
429 {0x02da, 0x35},
430 {0x02db, 0xd0},
431 {0x02e6, 0x30},
432 {0x0512, 0x00},
433 {0x0513, 0x00},
434 {0x0515, 0x20},
435 {0x0518, 0x00},
436 {0x0519, 0x00},
437 {0x051d, 0x50},
438 {0x0211, 0x00},
439 {0x0216, 0x00},
440 {0x0221, 0x50},
441 {0x0223, 0xcc},
442 {0x0225, 0x07},
443 {0x0229, 0x36},
444 {0x022b, 0x0c},
445 {0x022e, 0x0c},
446 {0x0230, 0x03},
447 {0x023a, 0x38},
448 {0x027b, 0x3c},
449 {0x027c, 0x0c},
450 {0x0298, 0x13},
451 {0x02a4, 0x07},
452 {0x02ab, 0x00},
453 {0x02ac, 0x00},
454 {0x02ad, 0x07},
455 {0x02af, 0x01},
456 {0x02cd, 0x3c},
457 {0x02d2, 0xe8},
458 {0x02e4, 0x00},
459 {0x0530, 0x04},
460 {0x0531, 0x04},
461 {0x0243, 0x36},
462 {0x0219, 0x07},
463 {0x02e5, 0x28},
464 {0x0338, 0xaa},
465 {0x0339, 0xaa},
466 {0x033a, 0x02},
467 {0x023b, 0x20},
468 {0x0212, 0x48},
469 {0x0523, 0x02},
470 {0x0347, 0x06},
471 {0x0348, 0x0a},
472 {0x0349, 0x10},
473 {0x034a, 0x05},
474 {0x034b, 0xb4},
475 {0x0097, 0x0a},
476 {0x0098, 0x10},
477 {0x0099, 0x05},
478 {0x009a, 0xb0},
479 {0x034c, 0x0a},
480 {0x034d, 0x00},
481 {0x034e, 0x05},
482 {0x034f, 0xa0},
483 {0x0354, 0x03},
484 {0x0352, 0x02},
485 {0x0295, 0xff},
486 {0x0296, 0xff},
487 {0x02f0, 0x22},
488 {0x02f1, 0x22},
489 {0x02f2, 0xff},
490 {0x02f4, 0x32},
491 {0x02f5, 0x20},
492 {0x02f6, 0x1c},
493 {0x02f7, 0x1f},
494 {0x02f8, 0x00},
495 {0x0291, 0x04},
496 {0x0292, 0x22},
497 {0x0297, 0x22},
498 {0x02d5, 0xfe},
499 {0x02d6, 0xd0},
500 {0x02d7, 0x35},
501 {0x0268, 0x3b},
502 {0x0269, 0x3b},
503 {0x0272, 0x80},
504 {0x0273, 0x80},
505 {0x0274, 0x80},
506 {0x0275, 0x80},
507 {0x0276, 0x80},
508 {0x0277, 0x80},
509 {0x0278, 0x80},
510 {0x0279, 0x80},
511 {0x0555, 0x50},
512 {0x0556, 0x23},
513 {0x0557, 0x50},
514 {0x0558, 0x23},
515 {0x0559, 0x50},
516 {0x055a, 0x23},
517 {0x055b, 0x50},
518 {0x055c, 0x23},
519 {0x055d, 0x50},
520 {0x055e, 0x23},
521 {0x0550, 0x28},
522 {0x0551, 0x28},
523 {0x0552, 0x28},
524 {0x0553, 0x28},
525 {0x0554, 0x28},
526 {0x0220, 0x43},
527 {0x021f, 0x03},
528 {0x0233, 0x01},
529 {0x0234, 0x80},
530 {0x02be, 0x81},
531 {0x00a0, 0x5d},
532 {0x00c7, 0x94},
533 {0x00c8, 0x15},
534 {0x00df, 0x0a},
535 {0x00de, 0xfe},
536 {0x00c0, 0x0a},
537 {0x031c, 0x80},
538 {0x031f, 0x10},
539 {0x031f, 0x00},
540 {0x031c, 0xd2},
541 {0x031c, 0xd2},
542 {0x031c, 0xd2},
543 {0x031c, 0xd2},
544 {0x031c, 0x80},
545 {0x031f, 0x10},
546 {0x031f, 0x00},
547 {0x031c, 0xd6},
548 {0x0053, 0x00},
549 {0x008e, 0x55},
550 {0x0205, 0xc0},
551 {0x02b0, 0xe0},
552 {0x02b1, 0xe0},
553 {0x02b3, 0x00},
554 {0x02b4, 0x00},
555 {0x02fc, 0x00},
556 {0x02fd, 0x00},
557 {0x0263, 0x00},
558 {0x0267, 0x00},
559 {0x0451, 0x21},
560 {0x0455, 0x05},
561 {0x0452, 0xE6},
562 {0x0456, 0x04},
563 {0x0450, 0xAB},
564 {0x0454, 0x02},
565 {0x0453, 0xAB},
566 {0x0457, 0x02},
567 {0x0226, 0x30},
568 {0x0042, 0x20},
569 {0x0458, 0x01},
570 {0x0459, 0x01},
571 {0x045a, 0x01},
572 {0x045b, 0x01},
573 {0x044c, 0x80},
574 {0x044d, 0x80},
575 {0x044e, 0x80},
576 {0x044f, 0x80},
577 {0x0060, 0x40},
578 {0x00e1, 0x81},
579 {0x00e2, 0x1c},
580 {0x00e4, 0x01},
581 {0x00e5, 0x01},
582 {0x00e6, 0x01},
583 {0x00e7, 0x00},
584 {0x00e8, 0x00},
585 {0x00e9, 0x00},
586 {0x00ea, 0xf0},
587 {0x00ef, 0x04},
588 {0x00a9, 0x20},
589 {0x00b3, 0x00},
590 {0x00b4, 0x10},
591 {0x00b5, 0x20},
592 {0x00b6, 0x30},
593 {0x00b7, 0x40},
594 {0x00d1, 0x06},
595 {0x00d2, 0x04},
596 {0x00d4, 0x02},
597 {0x00d5, 0x04},
598 {0x0089, 0x03},
599 {0x008c, 0x10},
600 {0x0080, 0x04},
601 {0x0180, 0x66},
602 {0x0181, 0x30},
603 {0x0182, 0x55},
604 {0x0185, 0x01},
605 {0x0114, 0x01},
606 {0x0115, 0x12},
607 {0x0103, 0x00},
608 {0x0104, 0x20},
609 {0x00aa, 0x38},
610 {0x00a7, 0x18},
611 {0x00a8, 0x10},
612 {0x00a1, 0xFF},
613 {0x00a2, 0xFF},
614 {REG_NULL, 0x00},
623 {0x031c, 0x01},
624 {0x0317, 0x24},
625 {0x0320, 0x77},
626 {0x0106, 0x78},
627 {0x0324, 0x04},
628 {0x0327, 0x03},
629 {0x0325, 0x00},
630 {0x0326, 0x20},
631 {0x031a, 0x00},
632 {0x0314, 0x30},
633 {0x0315, 0x32},
634 {0x0334, 0x40},
635 {0x0337, 0x03},
636 {0x0335, 0x05},
637 {0x0336, 0x3a},
638 {0x0324, 0x44},
639 {0x0334, 0x40},
640 {0x031c, 0x03},
641 {0x031c, 0xd2},
642 {0x0180, 0x26},
643 {0x031c, 0xd6},
644 {0x0287, 0x18},
645 {0x02ee, 0x70},
646 {0x0202, 0x02},
647 {0x0203, 0xa6},
648 {0x0213, 0x1c},
649 {0x0214, 0x04},
650 {0x0290, 0x00},
651 {0x029d, 0x08},
652 {0x0340, 0x05},
653 {0x0341, 0xdc},
654 {0x0342, 0x03},
655 {0x0343, 0x20},
656 {0x023c, 0x06},
657 {0x02d1, 0xe2},
658 {0x027d, 0xcc},
659 {0x0238, 0xa4},
660 {0x02ce, 0x1f},
661 {0x02f9, 0x00},
662 {0x0227, 0x74},
663 {0x0232, 0xc8},
664 {0x0245, 0xa8},
665 {0x027d, 0xcc},
666 {0x02fa, 0xb0},
667 {0x02e7, 0x23},
668 {0x02e8, 0x50},
669 {0x021d, 0x13},
670 {0x0220, 0x43},
671 {0x0228, 0x10},
672 {0x022c, 0x2c},
673 {0x02c0, 0x11},
674 {0x024b, 0x11},
675 {0x024e, 0x11},
676 {0x024d, 0x11},
677 {0x0255, 0x11},
678 {0x025b, 0x11},
679 {0x0262, 0x01},
680 {0x02d4, 0x10},
681 {0x0540, 0x10},
682 {0x0239, 0x00},
683 {0x0231, 0xc4},
684 {0x024f, 0x11},
685 {0x028c, 0x1a},
686 {0x02d3, 0x01},
687 {0x02da, 0x35},
688 {0x02db, 0xd0},
689 {0x02e6, 0x30},
690 {0x0512, 0x00},
691 {0x0513, 0x00},
692 {0x0515, 0x20},
693 {0x0518, 0x00},
694 {0x0519, 0x00},
695 {0x051d, 0x50},
696 {0x0211, 0x00},
697 {0x0216, 0x00},
698 {0x0221, 0x20},
699 {0x0223, 0xcc},
700 {0x0225, 0x07},
701 {0x0229, 0x36},
702 {0x022b, 0x0c},
703 {0x022e, 0x0c},
704 {0x0230, 0x03},
705 {0x023a, 0x38},
706 {0x027b, 0x3c},
707 {0x027c, 0x0c},
708 {0x0298, 0x13},
709 {0x02a4, 0x07},
710 {0x02ab, 0x00},
711 {0x02ac, 0x00},
712 {0x02ad, 0x07},
713 {0x02af, 0x01},
714 {0x02cd, 0x3c},
715 {0x02d2, 0xe8},
716 {0x02e4, 0x00},
717 {0x0530, 0x04},
718 {0x0531, 0x04},
719 {0x0243, 0x36},
720 {0x0219, 0x07},
721 {0x02e5, 0x28},
722 {0x0338, 0xaa},
723 {0x0339, 0xaa},
724 {0x033a, 0x02},
725 {0x023b, 0x20},
726 {0x0212, 0x48},
727 {0x0523, 0x02},
728 {0x0347, 0x06},
729 {0x0348, 0x0a},
730 {0x0349, 0x10},
731 {0x034a, 0x05},
732 {0x034b, 0xb0},
733 {0x034c, 0x05},
734 {0x034d, 0x00},
735 {0x034e, 0x02},
736 {0x034f, 0xd0},
737 {0x0354, 0x01},
738 {0x0295, 0xff},
739 {0x0296, 0xff},
740 {0x02f0, 0x22},
741 {0x02f1, 0x22},
742 {0x02f2, 0xff},
743 {0x02f4, 0x32},
744 {0x02f5, 0x20},
745 {0x02f6, 0x1c},
746 {0x02f7, 0x1f},
747 {0x02f8, 0x00},
748 {0x0291, 0x04},
749 {0x0292, 0x22},
750 {0x0297, 0x22},
751 {0x02d5, 0xfe},
752 {0x02d6, 0xd0},
753 {0x02d7, 0x35},
754 {0x021f, 0x10},
755 {0x0233, 0x01},
756 {0x0234, 0x03},
757 {0x0224, 0x01},
758 {0x031c, 0x80},
759 {0x031f, 0x10},
760 {0x031f, 0x00},
761 {0x031c, 0xd2},
762 {0x031c, 0xd2},
763 {0x031c, 0xd2},
764 {0x031c, 0xd2},
765 {0x031c, 0x80},
766 {0x031f, 0x10},
767 {0x031f, 0x00},
768 {0x031c, 0xd6},
769 {0x0053, 0x00},
770 {0x008e, 0x55},
771 {0x0205, 0xc0},
772 {0x02b0, 0xf2},
773 {0x02b1, 0xf2},
774 {0x02b3, 0x00},
775 {0x02b4, 0x00},
776 {0x0451, 0x21},
777 {0x0455, 0x05},
778 {0x0452, 0xE6},
779 {0x0456, 0x04},
780 {0x0450, 0xAB},
781 {0x0454, 0x02},
782 {0x0453, 0xAB},
783 {0x0457, 0x02},
784 {0x0226, 0x30},
785 {0x0042, 0x20},
786 {0x0458, 0x01},
787 {0x0459, 0x01},
788 {0x045a, 0x01},
789 {0x045b, 0x01},
790 {0x044c, 0x80},
791 {0x044d, 0x80},
792 {0x044e, 0x80},
793 {0x044f, 0x80},
794 {0x0060, 0x40},
795 {0x00a0, 0x15},
796 {0x00c7, 0x90},
797 {0x00c8, 0x15},
798 {0x00e1, 0x81},
799 {0x00e2, 0x1c},
800 {0x00e4, 0x01},
801 {0x00e5, 0x01},
802 {0x00e6, 0x01},
803 {0x00e7, 0x00},
804 {0x00e8, 0x00},
805 {0x00e9, 0x00},
806 {0x00ea, 0xf0},
807 {0x00ef, 0x04},
808 {0x0089, 0x03},
809 {0x008c, 0x10},
810 {0x0080, 0x04},
811 {0x0180, 0x66},
812 {0x0181, 0x30},
813 {0x0182, 0x55},
814 {0x0185, 0x01},
815 {0x0114, 0x01},
816 {0x0115, 0x12},
817 {0x0103, 0x00},
818 {0x0104, 0x20},
819 {0x00aa, 0x3a},
820 {0x00a7, 0x18},
821 {0x00a8, 0x10},
822 {0x00a1, 0xFF},
823 {0x00a2, 0xFF},
824 {REG_NULL, 0x00},
833 {0x031c, 0x01},
834 {0x0317, 0x24},
835 {0x0320, 0x77},
836 {0x0106, 0x78},
837 {0x0324, 0x84},
838 {0x0327, 0x30},
839 {0x0325, 0x04},
840 {0x0326, 0x22},
841 {0x031a, 0x00},
842 {0x0314, 0x30},
843 {0x0315, 0x23},
844 {0x0334, 0x00},
845 {0x0337, 0x03},
846 {0x0335, 0x01},
847 {0x0336, 0x46},
848 {0x0324, 0xc4},
849 {0x0334, 0x40},
850 {0x031c, 0x03},
851 {0x031c, 0xd2},
852 {0x0180, 0x26},
853 {0x031c, 0xd6},
854 {0x0287, 0x18},
855 {0x02ee, 0x70},
856 {0x0202, 0x05},
857 {0x0203, 0xd0},
858 {0x0213, 0x1c},
859 {0x0214, 0x04},
860 {0x0290, 0x00},
861 {0x029d, 0x08},
862 {0x0340, 0x05},
863 {0x0341, 0xdc},
864 {0x0342, 0x01},
865 {0x0343, 0xfe},
866 {0x00f2, 0x03},
867 {0x00f1, 0x0e},
868 {0x00f0, 0x2c},
869 {0x00c5, 0x0e},
870 {0x00c6, 0x2a},
871 {0x00bf, 0x16},
872 {0x00ce, 0x00},
873 {0x00cd, 0x01},
874 {0x00cf, 0xe9},
875 {0x023c, 0x06},
876 {0x02d1, 0xc2},
877 {0x027d, 0xcc},
878 {0x0238, 0xa4},
879 {0x02ce, 0x1f},
880 {0x02f9, 0x00},
881 {0x0227, 0x74},
882 {0x0232, 0xc8},
883 {0x0245, 0xa8},
884 {0x027d, 0xcc},
885 {0x02fa, 0xb0},
886 {0x02e7, 0x23},
887 {0x02e8, 0x50},
888 {0x021d, 0x03},
889 {0x0220, 0x43},
890 {0x0228, 0x10},
891 {0x022c, 0x2c},
892 {0x024b, 0x11},
893 {0x024e, 0x11},
894 {0x024d, 0x11},
895 {0x0255, 0x11},
896 {0x025b, 0x11},
897 {0x0262, 0x01},
898 {0x02d4, 0x10},
899 {0x0540, 0x10},
900 {0x0239, 0x00},
901 {0x0231, 0xc4},
902 {0x024f, 0x11},
903 {0x028c, 0x1a},
904 {0x02d3, 0x01},
905 {0x02da, 0x35},
906 {0x02db, 0xd0},
907 {0x02e6, 0x30},
908 {0x0512, 0x00},
909 {0x0513, 0x00},
910 {0x0515, 0x02},
911 {0x0518, 0x00},
912 {0x0519, 0x00},
913 {0x051d, 0x50},
914 {0x0211, 0x00},
915 {0x0216, 0x00},
916 {0x0221, 0x50},
917 {0x0223, 0xcc},
918 {0x0225, 0x07},
919 {0x0229, 0x36},
920 {0x022b, 0x0c},
921 {0x022e, 0x0c},
922 {0x0230, 0x03},
923 {0x023a, 0x38},
924 {0x027b, 0x3c},
925 {0x027c, 0x0c},
926 {0x0298, 0x13},
927 {0x02a4, 0x07},
928 {0x02ab, 0x00},
929 {0x02ac, 0x00},
930 {0x02ad, 0x07},
931 {0x02af, 0x01},
932 {0x02cd, 0x3c},
933 {0x02d2, 0xe8},
934 {0x02e4, 0x00},
935 {0x0530, 0x04},
936 {0x0531, 0x04},
937 {0x0243, 0x36},
938 {0x0219, 0x07},
939 {0x02e5, 0x28},
940 {0x0338, 0xaa},
941 {0x0339, 0xaa},
942 {0x033a, 0x02},
943 {0x023b, 0x20},
944 {0x0212, 0x48},
945 {0x0523, 0x02},
946 {0x0347, 0x06},
947 {0x0348, 0x0a},
948 {0x0349, 0x10},
949 {0x034a, 0x05},
950 {0x034b, 0xb0},
951 {0x034c, 0x07},
952 {0x034d, 0x80},
953 {0x034e, 0x04},
954 {0x034f, 0x38},
955 {0x0354, 0x01},
956 {0x0295, 0xff},
957 {0x0296, 0xff},
958 {0x02f0, 0x22},
959 {0x02f1, 0x22},
960 {0x02f2, 0xff},
961 {0x02f4, 0x32},
962 {0x02f5, 0x20},
963 {0x02f6, 0x1c},
964 {0x02f7, 0x1f},
965 {0x02f8, 0x00},
966 {0x0291, 0x04},
967 {0x0292, 0x22},
968 {0x0297, 0x22},
969 {0x02d5, 0xfe},
970 {0x02d6, 0xd0},
971 {0x02d7, 0x35},
972 {0x0268, 0x3b},
973 {0x0269, 0x3b},
974 {0x0272, 0x80},
975 {0x0273, 0x80},
976 {0x0274, 0x80},
977 {0x0275, 0x80},
978 {0x0276, 0x80},
979 {0x0277, 0x80},
980 {0x0278, 0x80},
981 {0x0279, 0x80},
982 {0x0555, 0x50},
983 {0x0556, 0x23},
984 {0x0557, 0x50},
985 {0x0558, 0x23},
986 {0x0559, 0x50},
987 {0x055a, 0x23},
988 {0x055b, 0x50},
989 {0x055c, 0x23},
990 {0x055d, 0x50},
991 {0x055e, 0x23},
992 {0x0550, 0x28},
993 {0x0551, 0x28},
994 {0x0552, 0x28},
995 {0x0553, 0x28},
996 {0x0554, 0x28},
997 {0x0220, 0x43},
998 {0x021f, 0x03},
999 {0x0233, 0x01},
1000 {0x0234, 0x80},
1001 {0x02be, 0x81},
1002 {0x00a0, 0x5d},
1003 {0x00c7, 0x12},
1004 {0x00c8, 0x15},
1005 {0x00df, 0x0a},
1006 {0x00de, 0xfe},
1007 {0x00aa, 0x3a},
1008 {0x00c0, 0x0a},
1009 {0x00c1, 0x04},
1010 {0x00c2, 0x38},
1011 {0x00c3, 0x07},
1012 {0x00c4, 0x80},
1013 {0x031c, 0x80},
1014 {0x031f, 0x10},
1015 {0x031f, 0x00},
1016 {0x031c, 0xd2},
1017 {0x031c, 0xd2},
1018 {0x031c, 0xd2},
1019 {0x031c, 0xd2},
1020 {0x031c, 0x80},
1021 {0x031f, 0x10},
1022 {0x031f, 0x00},
1023 {0x031c, 0xd6},
1024 {0x0053, 0x00},
1025 {0x008e, 0x55},
1026 {0x0205, 0xc0},
1027 {0x02b0, 0xe0},
1028 {0x02b1, 0xe0},
1029 {0x02b3, 0x00},
1030 {0x02b4, 0x00},
1031 {0x02fc, 0x00},
1032 {0x02fd, 0x00},
1033 {0x0263, 0x00},
1034 {0x0267, 0x00},
1035 {0x0451, 0x00},
1036 {0x0455, 0x04},
1037 {0x0452, 0x00},
1038 {0x0456, 0x04},
1039 {0x0450, 0x00},
1040 {0x0454, 0x04},
1041 {0x0453, 0x20},
1042 {0x0457, 0x04},
1043 {0x0226, 0x30},
1044 {0x0042, 0x20},
1045 {0x0458, 0x01},
1046 {0x0459, 0x01},
1047 {0x045a, 0x01},
1048 {0x045b, 0x01},
1049 {0x044c, 0x80},
1050 {0x044d, 0x80},
1051 {0x044e, 0x80},
1052 {0x044f, 0x80},
1053 {0x0060, 0x40},
1054 {0x00e1, 0x81},
1055 {0x00e2, 0x1c},
1056 {0x00e4, 0x01},
1057 {0x00e5, 0x01},
1058 {0x00e6, 0x01},
1059 {0x00e7, 0x00},
1060 {0x00e8, 0x00},
1061 {0x00e9, 0x00},
1062 {0x00ea, 0xf0},
1063 {0x00ef, 0x04},
1064 {0x00a1, 0x05},
1065 {0x00a2, 0x05},
1066 {0x00a7, 0x00},
1067 {0x00a8, 0x20},
1068 {0x00a9, 0x20},
1069 {0x00b3, 0x00},
1070 {0x00b4, 0x10},
1071 {0x00b5, 0x20},
1072 {0x00b6, 0x30},
1073 {0x00b7, 0x40},
1074 {0x00d1, 0x06},
1075 {0x00d2, 0x04},
1076 {0x00d4, 0x02},
1077 {0x00d5, 0x04},
1078 {0x0089, 0x03},
1079 {0x008c, 0x10},
1080 {0x0080, 0x04},
1081 {0x0180, 0x66},
1082 {0x0181, 0x30},
1083 {0x0182, 0x55},
1084 {0x0185, 0x01},
1085 {0x0114, 0x01},
1086 {0x0115, 0x12},
1087 {0x0103, 0x00},
1088 {0x0104, 0x20},
1089 {0x00aa, 0x3a},
1090 {0x00a7, 0x18},
1091 {0x00a8, 0x10},
1092 {0x00a1, 0xFF},
1093 {0x00a2, 0xFF},
1094 {REG_NULL, 0x00},
1105 .exp_def = 0x0100,
1106 .hts_def = 0x0AA0,
1107 .vts_def = 0x05DC,
1119 .exp_def = 0x0400,
1120 .hts_def = 0x0E2B,
1121 .vts_def = 0x0465,
1133 .exp_def = 0x0200,
1134 .hts_def = 0x0855,
1135 .vts_def = 0x02EE,
1167 buf[0] = reg >> 8; in gc4c33_write_reg()
1168 buf[1] = reg & 0xff; in gc4c33_write_reg()
1181 return 0; in gc4c33_write_reg()
1188 int ret = 0; in gc4c33_write_array()
1190 for (i = 0; ret == 0 && regs[i].addr != REG_NULL; i++) in gc4c33_write_array()
1203 __be32 data_be = 0; in gc4c33_read_reg()
1212 msgs[0].addr = client->addr; in gc4c33_read_reg()
1213 msgs[0].flags = 0; in gc4c33_read_reg()
1214 msgs[0].len = 2; in gc4c33_read_reg()
1215 msgs[0].buf = (u8 *)®_addr_be; in gc4c33_read_reg()
1229 return 0; in gc4c33_read_reg()
1244 int cur_best_fit = 0; in gc4c33_find_best_fit()
1248 for (i = 0; i < gc4c33->cfg_num; i++) { in gc4c33_find_best_fit()
1294 return 0; in gc4c33_set_fmt()
1320 return 0; in gc4c33_get_fmt()
1329 if (code->index != 0) in gc4c33_enum_mbus_code()
1333 return 0; in gc4c33_enum_mbus_code()
1345 if (fse->code != supported_modes[0].bus_fmt) in gc4c33_enum_frame_sizes()
1353 return 0; in gc4c33_enum_frame_sizes()
1373 u32 tol_dig_gain = 0; in gc4c33_set_gain_reg()
1378 for (i = 0; i < total; i++) { in gc4c33_set_gain_reg()
1386 gc4c33_write_reg(gc4c33->client, 0x31d, GC4C33_REG_VALUE_08BIT, 0x2a); in gc4c33_set_gain_reg()
1387 gc4c33_write_reg(gc4c33->client, 0x2fd, in gc4c33_set_gain_reg()
1388 GC4C33_REG_VALUE_08BIT, reg_val_table[i][0]); in gc4c33_set_gain_reg()
1389 gc4c33_write_reg(gc4c33->client, 0x2fc, in gc4c33_set_gain_reg()
1391 gc4c33_write_reg(gc4c33->client, 0x263, in gc4c33_set_gain_reg()
1393 gc4c33_write_reg(gc4c33->client, 0x267, in gc4c33_set_gain_reg()
1396 gc4c33_write_reg(gc4c33->client, 0x31d, GC4C33_REG_VALUE_08BIT, 0x28); in gc4c33_set_gain_reg()
1398 gc4c33_write_reg(gc4c33->client, 0x2b3, in gc4c33_set_gain_reg()
1400 gc4c33_write_reg(gc4c33->client, 0x2b4, in gc4c33_set_gain_reg()
1402 gc4c33_write_reg(gc4c33->client, 0x2b8, in gc4c33_set_gain_reg()
1404 gc4c33_write_reg(gc4c33->client, 0x2b9, in gc4c33_set_gain_reg()
1406 gc4c33_write_reg(gc4c33->client, 0x515, in gc4c33_set_gain_reg()
1409 gc4c33_write_reg(gc4c33->client, 0x20e, in gc4c33_set_gain_reg()
1411 gc4c33_write_reg(gc4c33->client, 0x20f, in gc4c33_set_gain_reg()
1412 GC4C33_REG_VALUE_08BIT, ((tol_dig_gain & 0x3f) << 2)); in gc4c33_set_gain_reg()
1413 return 0; in gc4c33_set_gain_reg()
1420 u32 tol_dig_gain = 0; in gc4c33_set_gain_reg_720P()
1423 for (i = 0; i < total; i++) { in gc4c33_set_gain_reg_720P()
1431 gc4c33_write_reg(gc4c33->client, 0x2b3, in gc4c33_set_gain_reg_720P()
1432 GC4C33_REG_VALUE_08BIT, reg_Val_Table_720P[i][0]); in gc4c33_set_gain_reg_720P()
1433 gc4c33_write_reg(gc4c33->client, 0x2b4, in gc4c33_set_gain_reg_720P()
1435 gc4c33_write_reg(gc4c33->client, 0x2b8, in gc4c33_set_gain_reg_720P()
1437 gc4c33_write_reg(gc4c33->client, 0x2b9, in gc4c33_set_gain_reg_720P()
1439 gc4c33_write_reg(gc4c33->client, 0x515, in gc4c33_set_gain_reg_720P()
1441 gc4c33_write_reg(gc4c33->client, 0x20e, in gc4c33_set_gain_reg_720P()
1443 gc4c33_write_reg(gc4c33->client, 0x20f, in gc4c33_set_gain_reg_720P()
1444 GC4C33_REG_VALUE_08BIT, ((tol_dig_gain & 0x3f) << 2)); in gc4c33_set_gain_reg_720P()
1445 return 0; in gc4c33_set_gain_reg_720P()
1451 int ret = 0; in gc4c33_set_dpcc_cfg()
1458 0x38 | (dpcc->enable & 0x03)); in gc4c33_set_dpcc_cfg()
1475 0x38); in gc4c33_set_dpcc_cfg()
1480 0xff); in gc4c33_set_dpcc_cfg()
1485 0xff); in gc4c33_set_dpcc_cfg()
1491 0x38); in gc4c33_set_dpcc_cfg()
1496 0xff); in gc4c33_set_dpcc_cfg()
1501 0xff); in gc4c33_set_dpcc_cfg()
1515 return 0; in gc4c33_g_frame_interval()
1535 return 0; in gc4c33_g_mbus_config()
1541 memset(inf, 0, sizeof(*inf)); in gc4c33_get_module_inf()
1556 return 0; in gc4c33_get_channel_info()
1565 long ret = 0; in gc4c33_ioctl()
1566 u32 stream = 0; in gc4c33_ioctl()
1582 for (i = 0; i < gc4c33->cfg_num; i++) { in gc4c33_ioctl()
1614 nr_switch->direct = 0; in gc4c33_ioctl()
1618 ret = 0; in gc4c33_ioctl()
1653 u32 stream = 0; in gc4c33_compat_ioctl32()
1792 u32 num = 0; in gc4c33_sensor_dpc_otp_dd()
1795 ret = gc4c33_write_reg(gc4c33->client, 0x0a70, in gc4c33_sensor_dpc_otp_dd()
1796 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1797 ret |= gc4c33_write_reg(gc4c33->client, 0x0317, in gc4c33_sensor_dpc_otp_dd()
1798 GC4C33_REG_VALUE_08BIT, 0x2c); in gc4c33_sensor_dpc_otp_dd()
1799 ret |= gc4c33_write_reg(gc4c33->client, 0x0a67, in gc4c33_sensor_dpc_otp_dd()
1800 GC4C33_REG_VALUE_08BIT, 0x80); in gc4c33_sensor_dpc_otp_dd()
1801 ret |= gc4c33_write_reg(gc4c33->client, 0x0a4f, in gc4c33_sensor_dpc_otp_dd()
1802 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1803 ret |= gc4c33_write_reg(gc4c33->client, 0x0a54, in gc4c33_sensor_dpc_otp_dd()
1804 GC4C33_REG_VALUE_08BIT, 0x80); in gc4c33_sensor_dpc_otp_dd()
1805 ret |= gc4c33_write_reg(gc4c33->client, 0x0a66, in gc4c33_sensor_dpc_otp_dd()
1806 GC4C33_REG_VALUE_08BIT, 0x03); in gc4c33_sensor_dpc_otp_dd()
1807 ret |= gc4c33_write_reg(gc4c33->client, 0x0a69, in gc4c33_sensor_dpc_otp_dd()
1808 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1809 ret |= gc4c33_write_reg(gc4c33->client, 0x0a6a, in gc4c33_sensor_dpc_otp_dd()
1810 GC4C33_REG_VALUE_08BIT, 0x70); in gc4c33_sensor_dpc_otp_dd()
1811 ret |= gc4c33_write_reg(gc4c33->client, 0x0313, in gc4c33_sensor_dpc_otp_dd()
1812 GC4C33_REG_VALUE_08BIT, 0x20); in gc4c33_sensor_dpc_otp_dd()
1813 ret |= gc4c33_read_reg(gc4c33->client, 0x0a6c, in gc4c33_sensor_dpc_otp_dd()
1815 ret |= gc4c33_write_reg(gc4c33->client, 0x0a69, in gc4c33_sensor_dpc_otp_dd()
1816 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1817 ret |= gc4c33_write_reg(gc4c33->client, 0x0a6a, in gc4c33_sensor_dpc_otp_dd()
1818 GC4C33_REG_VALUE_08BIT, 0x10); in gc4c33_sensor_dpc_otp_dd()
1819 ret |= gc4c33_write_reg(gc4c33->client, 0x0313, in gc4c33_sensor_dpc_otp_dd()
1820 GC4C33_REG_VALUE_08BIT, 0x20); in gc4c33_sensor_dpc_otp_dd()
1822 if (num != 0) { in gc4c33_sensor_dpc_otp_dd()
1823 ret |= gc4c33_write_reg(gc4c33->client, 0x0317, in gc4c33_sensor_dpc_otp_dd()
1824 GC4C33_REG_VALUE_08BIT, 0x2c); in gc4c33_sensor_dpc_otp_dd()
1825 ret |= gc4c33_write_reg(gc4c33->client, 0x0a67, in gc4c33_sensor_dpc_otp_dd()
1826 GC4C33_REG_VALUE_08BIT, 0x80); in gc4c33_sensor_dpc_otp_dd()
1827 ret |= gc4c33_write_reg(gc4c33->client, 0x0a66, in gc4c33_sensor_dpc_otp_dd()
1828 GC4C33_REG_VALUE_08BIT, 0x03); in gc4c33_sensor_dpc_otp_dd()
1829 ret |= gc4c33_write_reg(gc4c33->client, 0x0a70, in gc4c33_sensor_dpc_otp_dd()
1830 GC4C33_REG_VALUE_08BIT, 0x05); in gc4c33_sensor_dpc_otp_dd()
1831 ret |= gc4c33_write_reg(gc4c33->client, 0x0a71, in gc4c33_sensor_dpc_otp_dd()
1832 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1833 ret |= gc4c33_write_reg(gc4c33->client, 0x0a72, in gc4c33_sensor_dpc_otp_dd()
1834 GC4C33_REG_VALUE_08BIT, 0x08); in gc4c33_sensor_dpc_otp_dd()
1835 ret |= gc4c33_write_reg(gc4c33->client, 0x0a73, in gc4c33_sensor_dpc_otp_dd()
1837 ret |= gc4c33_write_reg(gc4c33->client, 0x0a74, in gc4c33_sensor_dpc_otp_dd()
1838 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1839 ret |= gc4c33_write_reg(gc4c33->client, 0x0a75, in gc4c33_sensor_dpc_otp_dd()
1840 GC4C33_REG_VALUE_08BIT, 0x80); in gc4c33_sensor_dpc_otp_dd()
1841 ret |= gc4c33_write_reg(gc4c33->client, 0x05be, in gc4c33_sensor_dpc_otp_dd()
1842 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1843 ret |= gc4c33_write_reg(gc4c33->client, 0x05a9, in gc4c33_sensor_dpc_otp_dd()
1844 GC4C33_REG_VALUE_08BIT, 0x01); in gc4c33_sensor_dpc_otp_dd()
1846 ret |= gc4c33_write_reg(gc4c33->client, 0x0313, in gc4c33_sensor_dpc_otp_dd()
1847 GC4C33_REG_VALUE_08BIT, 0x80); in gc4c33_sensor_dpc_otp_dd()
1850 ret |= gc4c33_write_reg(gc4c33->client, 0x0080, in gc4c33_sensor_dpc_otp_dd()
1851 GC4C33_REG_VALUE_08BIT, 0x06); in gc4c33_sensor_dpc_otp_dd()
1852 ret |= gc4c33_write_reg(gc4c33->client, 0x05be, in gc4c33_sensor_dpc_otp_dd()
1853 GC4C33_REG_VALUE_08BIT, 0x01); in gc4c33_sensor_dpc_otp_dd()
1854 ret |= gc4c33_write_reg(gc4c33->client, 0x0a70, in gc4c33_sensor_dpc_otp_dd()
1855 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1856 ret |= gc4c33_write_reg(gc4c33->client, 0x0a69, in gc4c33_sensor_dpc_otp_dd()
1857 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1858 ret |= gc4c33_write_reg(gc4c33->client, 0x0a6a, in gc4c33_sensor_dpc_otp_dd()
1859 GC4C33_REG_VALUE_08BIT, 0x10); in gc4c33_sensor_dpc_otp_dd()
1860 ret |= gc4c33_write_reg(gc4c33->client, 0x0313, in gc4c33_sensor_dpc_otp_dd()
1861 GC4C33_REG_VALUE_08BIT, 0x20); in gc4c33_sensor_dpc_otp_dd()
1863 ret |= gc4c33_write_reg(gc4c33->client, 0x0317, in gc4c33_sensor_dpc_otp_dd()
1864 GC4C33_REG_VALUE_08BIT, 0x2c); in gc4c33_sensor_dpc_otp_dd()
1865 ret |= gc4c33_write_reg(gc4c33->client, 0x0a67, in gc4c33_sensor_dpc_otp_dd()
1866 GC4C33_REG_VALUE_08BIT, 0x80); in gc4c33_sensor_dpc_otp_dd()
1867 ret |= gc4c33_write_reg(gc4c33->client, 0x0a4f, in gc4c33_sensor_dpc_otp_dd()
1868 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1869 ret |= gc4c33_write_reg(gc4c33->client, 0x0a54, in gc4c33_sensor_dpc_otp_dd()
1870 GC4C33_REG_VALUE_08BIT, 0x80); in gc4c33_sensor_dpc_otp_dd()
1871 ret |= gc4c33_write_reg(gc4c33->client, 0x0a66, in gc4c33_sensor_dpc_otp_dd()
1872 GC4C33_REG_VALUE_08BIT, 0x03); in gc4c33_sensor_dpc_otp_dd()
1873 ret |= gc4c33_write_reg(gc4c33->client, 0x0a69, in gc4c33_sensor_dpc_otp_dd()
1874 GC4C33_REG_VALUE_08BIT, 0x00); in gc4c33_sensor_dpc_otp_dd()
1875 ret |= gc4c33_write_reg(gc4c33->client, 0x0a6a, in gc4c33_sensor_dpc_otp_dd()
1876 GC4C33_REG_VALUE_08BIT, 0x10); in gc4c33_sensor_dpc_otp_dd()
1877 ret |= gc4c33_write_reg(gc4c33->client, 0x0313, in gc4c33_sensor_dpc_otp_dd()
1878 GC4C33_REG_VALUE_08BIT, 0x20); in gc4c33_sensor_dpc_otp_dd()
1882 ret |= gc4c33_write_reg(gc4c33->client, 0x0080, in gc4c33_sensor_dpc_otp_dd()
1883 GC4C33_REG_VALUE_08BIT, 0x04); in gc4c33_sensor_dpc_otp_dd()
1884 ret |= gc4c33_write_reg(gc4c33->client, 0x0090, in gc4c33_sensor_dpc_otp_dd()
1885 GC4C33_REG_VALUE_08BIT, 0x49); in gc4c33_sensor_dpc_otp_dd()
1886 ret |= gc4c33_write_reg(gc4c33->client, 0x05be, in gc4c33_sensor_dpc_otp_dd()
1887 GC4C33_REG_VALUE_08BIT, 0x01); in gc4c33_sensor_dpc_otp_dd()
1929 int ret = 0; in gc4c33_s_stream()
1938 if (ret < 0) { in gc4c33_s_stream()
1966 int ret = 0; in gc4c33_s_power()
1976 if (ret < 0) { in gc4c33_s_power()
2015 if (ret < 0) in __gc4c33_power_on()
2019 if (ret < 0) in __gc4c33_power_on()
2024 if (ret < 0) { in __gc4c33_power_on()
2029 gpiod_set_value_cansleep(gc4c33->reset_gpio, 0); in __gc4c33_power_on()
2032 gpiod_set_value_cansleep(gc4c33->pwdn_gpio, 0); in __gc4c33_power_on()
2037 if (ret < 0) { in __gc4c33_power_on()
2056 return 0; in __gc4c33_power_on()
2070 gpiod_set_value_cansleep(gc4c33->pwdn_gpio, 0); in __gc4c33_power_off()
2073 gpiod_set_value_cansleep(gc4c33->reset_gpio, 0); in __gc4c33_power_off()
2077 if (ret < 0) in __gc4c33_power_off()
2082 gpiod_set_value_cansleep(gc4c33->pwren_gpio, 0); in __gc4c33_power_off()
2102 return 0; in gc4c33_runtime_suspend()
2110 v4l2_subdev_get_try_format(sd, fh->pad, 0); in gc4c33_open()
2111 const struct gc4c33_mode *def_mode = &supported_modes[0]; in gc4c33_open()
2123 return 0; in gc4c33_open()
2140 fie->reserved[0] = supported_modes[fie->index].hdr_mode; in gc4c33_enum_frame_interval()
2141 return 0; in gc4c33_enum_frame_interval()
2189 int ret = 0; in gc4c33_set_ctrl()
2190 u32 val = 0; in gc4c33_set_ctrl()
2206 return 0; in gc4c33_set_ctrl()
2216 ctrl->val & 0xfe); in gc4c33_set_ctrl()
2232 & 0xff); in gc4c33_set_ctrl()
2243 if (ret == 0) in gc4c33_set_ctrl()
2255 if (ret == 0) in gc4c33_set_ctrl()
2262 dev_warn(&client->dev, "%s Unhandled id:0x%x, val:0x%x\n", in gc4c33_set_ctrl()
2293 0, 0, link_freq_menu_items); in gc4c33_initialize_controls()
2298 0, GC4C33_PIXEL_RATE, 1, GC4C33_PIXEL_RATE); in gc4c33_initialize_controls()
2332 0, 0, gc4c33_test_pattern_menu); in gc4c33_initialize_controls()
2334 V4L2_CID_HFLIP, 0, 1, 1, 0); in gc4c33_initialize_controls()
2337 V4L2_CID_VFLIP, 0, 1, 1, 0); in gc4c33_initialize_controls()
2338 gc4c33->flip = 0; in gc4c33_initialize_controls()
2349 return 0; in gc4c33_initialize_controls()
2361 u16 id = 0; in gc4c33_check_sensor_id()
2362 u32 reg_H = 0; in gc4c33_check_sensor_id()
2363 u32 reg_L = 0; in gc4c33_check_sensor_id()
2370 id = ((reg_H << 8) & 0xff00) | (reg_L & 0xff); in gc4c33_check_sensor_id()
2371 if (!(reg_H == (CHIP_ID >> 8) || reg_L == (CHIP_ID & 0xff))) { in gc4c33_check_sensor_id()
2376 return 0; in gc4c33_check_sensor_id()
2383 for (i = 0; i < GC4C33_NUM_SUPPLIES; i++) in gc4c33_configure_regulators()
2400 u32 i, hdr_mode = 0; in gc4c33_probe()
2404 (DRIVER_VERSION & 0xff00) >> 8, in gc4c33_probe()
2405 DRIVER_VERSION & 0x00ff); in gc4c33_probe()
2427 for (i = 0; i < gc4c33->cfg_num; i++) { in gc4c33_probe()
2434 gc4c33->cur_mode = &supported_modes[0]; in gc4c33_probe()
2502 if (ret < 0) in gc4c33_probe()
2506 memset(facing, 0, sizeof(facing)); in gc4c33_probe()
2507 if (strcmp(gc4c33->module_facing, "back") == 0) in gc4c33_probe()
2508 facing[0] = 'b'; in gc4c33_probe()
2510 facing[0] = 'f'; in gc4c33_probe()
2525 return 0; in gc4c33_probe()
2558 return 0; in gc4c33_remove()
2570 { "galaxycore,gc4c33", 0 },