diff options
author | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
---|---|---|
committer | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
commit | 871480933a1c28f8a9fed4c4d34d06c439a7a422 (patch) | |
tree | 8718f573808810c2a1e8cb8fb6ac469093ca2784 /drivers/media/video/wmt_v4l2/sensors/gc2035 | |
parent | 9d40ac5867b9aefe0722bc1f110b965ff294d30d (diff) | |
download | FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.gz FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.bz2 FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.zip |
Moved, renamed, and deleted files
The original directory structure was scattered and unorganized.
Changes are basically to make it look like kernel structure.
Diffstat (limited to 'drivers/media/video/wmt_v4l2/sensors/gc2035')
20 files changed, 19366 insertions, 0 deletions
diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-3nod.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-3nod.h new file mode 100755 index 00000000..b8057c96 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-3nod.h @@ -0,0 +1,1024 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x75,//78 cyrille + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xc0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x75,//y_target 84 + 0xfe,0x00, + +#if 0 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0xe0, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x05,//level2 + 0x2c,0xdc, + 0x2d,0x05,//6e8//level3 + 0x2e,0xdc, + 0x2f,0x09,//level4 + 0x30,0xc4, + + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x38,//saturation_cb//34 cyrille + 0xd2,0x38,//saturation_Cr//34 cyrille + 0xd3,0x40,//contrast ? + 0xd4,0x80,//contrast center + 0xd5,0x00,//luma_offset + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x1f,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x45,// edge effect + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-781a.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-781a.h new file mode 100755 index 00000000..c6fbc88f --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-781a.h @@ -0,0 +1,1027 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xc0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x78,//y_target 84 + 0xfe,0x00, + +#if 0 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0xe0, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x05,//level1 + 0x2a,0xdc, + 0x2b,0x05,//level2 + 0x2c,0xdc, + 0x2d,0x06,//6e8//level3 + 0x2e,0x59, + 0x2f,0x09,//level4 + 0x30,0xc4, + + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x3d, //Green_cc for d//40 ary + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x34,//saturation_cb + 0xd2,0x34,//saturation_Cr + 0xd3,0x3e,//contrast ? {{0xd4},{0x80}},//contrast center //40 ary + 0xd5,0xf6,//luma_offset //f8 ary + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x1f,//dn_b_base//1c ary + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x45,// edge effect + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + + 0xad,0x7d,//ary + 0xae,0x80, + 0xaf,0x80, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-8335c.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-8335c.h new file mode 100755 index 00000000..8fe749eb --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-8335c.h @@ -0,0 +1,899 @@ +#ifndef GC2035_H +#define GC2035_H + +#define GC2035_I2C_ADDR 0x3c + +#define gc2035_read_reg(r) wmt_vid_i2c_read(GC2035_I2C_ADDR, r) + +#define gc2035_write_reg(r, d) wmt_vid_i2c_write(GC2035_I2C_ADDR, r, d) + +#define gc2035_write_array(a) \ +do { \ + cmos_init_8bit_addr(a, ARRAY_SIZE(a), GC2035_I2C_ADDR); \ +} while (0) + + +// Scene Mode +unsigned char gc2035_scene_mode_auto[] = { +0xfe,0x01, +0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin +0xfe,0x00, +}; + +unsigned char gc2035_scene_mode_night[] = { +0xfe, 0x01, +0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin +0xfe, 0x00, +}; + + +// White Balance +unsigned char gc2035_wb_auto [] = { +0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, +0x82, 0xfe, +}; + +unsigned char gc2035_wb_incandescent [] = { +0xfe, 0x00, +0x82, 0xfc, +0xb3, 0x50, +0xb4, 0x40, +0xb5, 0xa8, +}; + +unsigned char gc2035_wb_fluorescent [] = { +0xfe, 0x00, +0x82, 0xfc, +0xb3, 0xa0, +0xb4, 0x45, +0xb5, 0x40, +}; + +unsigned char gc2035_wb_daylight [] = { +0xfe, 0x00, +0x82, 0xfc, +0xb3, 0x78, +0xb4, 0x40, +0xb5, 0x50, +}; + +unsigned char gc2035_wb_cloudy [] = { +0xfe, 0x00, +0x82, 0xfc, +0xb3, 0x58, +0xb4, 0x40, +0xb5, 0x50, +}; + + +// Exposure +unsigned char gc2035_exposure_neg6[] = { +0xfe, 0x01, +0x13, 0x68, +0xfe, 0x02, +0xd5, 0xe0, +0xfe, 0x00, +}; + +unsigned char gc2035_exposure_neg3[] = { +0xfe, 0x01, +0x13, 0x70, +0xfe, 0x02, +0xd5, 0xf0, +0xfe, 0x00, +}; + +unsigned char gc2035_exposure_zero[] = { +0xfe, 0x01, +0x13, 0x78, +0xfe, 0x02, +0xd5, 0x00, +0xfe, 0x00, +}; + +unsigned char gc2035_exposure_pos3[] = { +0xfe, 0x01, +0x13, 0x80, +0xfe, 0x02, +0xd5, 0x10, +0xfe, 0x00, +}; + +unsigned char gc2035_exposure_pos6[] = { +0xfe, 0x01, +0x13, 0x88, +0xfe, 0x02, +0xd5, 0x20, +0xfe, 0x00, +}; + + +// Resolution +unsigned char gc2035_1600x1200_key[]={ +0xfe,0x00, +0x0c,0x02, + +0x0d,0x04, +0x0e,0xc0, +0x0f,0x06, +0x10,0x58, + +0x90,0x01, +0x99,0x11, +0x95,0x04, +0x96,0xb0, +0x97,0x06, +0x98,0x40, +0x99,0x11, + +0xc8,0x00, +0xfa,0x11, +0xfe,0x03, +0x42,0x80, +0x43,0x06, +0x41,0x00, +0x40,0x00, +0x17,0x01, +0xfe,0x00, +0xc8,0x00, +}; + +unsigned char gc2035_640x480_key[]={ +0xfe,0x00, +0x0c,0x00, +0x0d,0x04, +0x0e,0xc0, +0x0f,0x06, +0x10,0x58, + +0x90,0x01, +0x99,0x11, +0x95,0x01, +0x96,0xe0, +0x97,0x02, +0x98,0x80, +0xc8,0x15, +0xfa,0x00, +0xfe,0x03, +0x42,0x00, +0x43,0x05, +0x41,0x02, +0x40,0x40, +0x17,0x00, +0xfe,0x00, +0xc8,0x55, +0xb6,0x03, +}; + +unsigned char gc2035_640x480[]={ +0xfe,0x80, +0xfe,0x80, +0xfe,0x80, +0xfc,0x06, +0xf9,0xfe, +0xfa,0x00, +0xf6,0x00, +0xf7,0x17, +0xf8,0x00, +0xfe,0x00, +0x82,0x00, +0xb3,0x60, +0xb4,0x40, +0xb5,0x60, +0x03,0x05, +0x04,0x08, +0xfe,0x00, +0xec,0x04, +0xed,0x04, +0xee,0x60, +0xef,0x90, +0x0c,0x00, +0x0d,0x04, +0x0e,0xc0, +0x0f,0x06, +0x10,0x58, +0x17,0x14, +0x18,0x0a, +0x19,0x0a, +0x1a,0x01, +0x1b,0x8b, +0x1c,0x05, +0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias +0x1f,0x08, //[3] tx-low en// +0x20,0x05, //[0]adclk mode,0x[1]rowclk_MODE [2]rsthigh_en +0x21,0x0f, //[6:4]rsg +0x22,0xd0, //[3:0]vref +0x23,0xc3, //f3//ADC_r +0x24,0x17, //pad drive 16 + + //AEC +0xfe,0x01, +0x11,0x20,//AEC_out_slope,0x +0x1f,0xc0,//max_post_gain +0x20,0x60,//max_pre_gain +0x47,0x30,//AEC_outdoor_th +0x0b,0x10,// +0x13,0x75,//y_target +0xfe,0x00, + + +0x05,0x01,//hb +0x06,0x11, +0x07,0x00,//vb +0x08,0x50, +0xfe,0x01, +0x27,0x00,//step +0x28,0xa0, +0x29,0x05,//level1 +0x2a,0x00, +0x2b,0x05,//level2 +0x2c,0x00, +0x2d,0x06,//6e8//level3 +0x2e,0xe0, +0x2f,0x0b,//level4 +0x30,0x40, +0x3e,0x40, +0xfe,0x00, +0xb6,0x03, +0xfe,0x00, +0x3f,0x00, +0x40,0x77, +0x42,0x7f, +0x43,0x30, +0x5c,0x08, +0x5e,0x20, +0x5f,0x20, +0x60,0x20, +0x61,0x20, +0x62,0x20, +0x63,0x20, +0x64,0x20, +0x65,0x20, +0x66,0x20, +0x67,0x20, +0x68,0x20, +0x69,0x20, +0x90,0x01, +0x95,0x04, +0x96,0xb0, +0x97,0x06, +0x98,0x40, +0xfe,0x03, +0x42,0x80, +0x43,0x06, +0x41,0x00, +0x40,0x00, +0x17,0x01, +0xfe,0x00, +0x80,0xff, +0x81,0x26, +0x03,0x05, +0x04,0x2e, +0x84,0x02, +0x86,0x02, +0x87,0x80, +0x8b,0xbc, +0xa7,0x80, +0xa8,0x80, +0xb0,0x80, +0xc0,0x40, +//LSC +0xfe,0x01, +0xc2,0x38, +0xc3,0x25, +0xc4,0x21, +0xc8,0x19, +0xc9,0x12, +0xca,0x0e, +0xbc,0x43, +0xbd,0x18, +0xbe,0x1b, +0xb6,0x40, +0xb7,0x2e, +0xb8,0x26, +0xc5,0x05, +0xc6,0x03, +0xc7,0x04, +0xcb,0x00, +0xcc,0x00, +0xcd,0x00, +0xbf,0x14, +0xc0,0x22, +0xc1,0x1b, +0xb9,0x00, +0xba,0x05, +0xbb,0x05, +0xaa,0x35, +0xab,0x33, +0xac,0x33, +0xad,0x25, +0xae,0x22, +0xaf,0x27, +0xb0,0x1d, +0xb1,0x20, +0xb2,0x22, +0xb3,0x14, +0xb4,0x15, +0xb5,0x16, +0xd0,0x00, +0xd2,0x07, +0xd3,0x08, +0xd8,0x00, +0xda,0x13, +0xdb,0x17, +0xdc,0x00, +0xde,0x0a, +0xdf,0x08, +0xd4,0x00, +0xd6,0x00, +0xd7,0x0c, +0xa4,0x00, +0xa5,0x00, +0xa6,0x00, +0xa7,0x00, +0xa8,0x00, +0xa9,0x00, +0xa1,0x80, +0xa2,0x80, + + //=================================cc +0xfe,0x02, +0xc0,0x01, +0xc1,0x40, //Green_cc for d +0xc2,0xfc, +0xc3,0x05, +0xc4,0xec, +0xc5,0x42, +0xc6,0xf8, +0xc7,0x40,//for cwf +0xc8,0xf8, +0xc9,0x06, +0xca,0xfd, +0xcb,0x3e, +0xcc,0xf3, +0xcd,0x36,//for A +0xce,0xf6, +0xcf,0x04, +0xe3,0x0c, +0xe4,0x44, +0xe5,0xe5, +0xfe,0x00, + +//==============================awb + //AWB clear +0xfe,0x01, +0x4f,0x00, +0x4d,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x10, // 10 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x20, // 20 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x30, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, // 30 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x40, // 40 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x50, // 50 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x60, // 60 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x70, // 70 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x80, // 80 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0x90, // 90 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0xa0, // a0 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0xb0, // b0 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0xc0, // c0 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4d,0xd0, // d0 +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4e,0x00, +0x4f,0x01, + /////// awb value//////// +0xfe,0x01, +0x4f,0x00, +0x4d,0x30, +0x4e,0x00, +0x4e,0x80, +0x4e,0x80, +0x4e,0x02, +0x4e,0x02, +0x4d,0x40, +0x4e,0x00, +0x4e,0x80, +0x4e,0x80, +0x4e,0x02, +0x4e,0x02, +0x4e,0x02, +0x4d,0x53, +0x4e,0x08, +0x4e,0x04, +0x4d,0x62, +0x4e,0x10, +0x4d,0x72, +0x4e,0x20, +0x4f,0x01, + +/////awb//// +0xfe,0x01, +0x50,0x88,//c0//[6]green mode +0x52,0x40, +0x54,0x60, +0x56,0x06, +0x57,0x20, //pre adjust +0x58,0x01, +0x5b,0x02, //AWB_gain_delta +0x61,0xaa,//R/G stand +0x62,0xaa,//R/G stand +0x71,0x00, +0x74,0x10,//AWB_C_max +0x77,0x08, // 0x//AWB_p2_x +0x78,0xfd, //AWB_p2_y +0x86,0x30, +0x87,0x00, +0x88,0x04,//06,[1]dark mode +0x8a,0xc0,//awb move mode +0x89,0x75, +0x84,0x08,//auto_window +0x8b,0x00, // 0x//awb compare luma +0x8d,0x70, //awb gain limit R +0x8e,0x70,//G +0x8f,0xf4,//B +0xfe,0x00, +0x82,0x02,//awb_en + +0xfe,0x01, +0x21,0xbf, +0xfe,0x02, +0xa4,0x00,// +0xa5,0x40, //lsc_th +0xa2,0xa0, //lsc_dec_slope +0xa6,0x80, //dd_th +0xa7,0x80, //ot_th +0xab,0x31, // +0xa9,0x6f, // +0xb0,0x99, //0x//edge effect slope low +0xb1,0x34,//edge effect slope low +0xb3,0x80, //saturation dec slope +0xde,0xb6, // +0x38,0x0f, // +0x39,0x60, // +0xfe,0x00, +0x81,0x26, +0xfe,0x02, +0x83,0x00,// +0x84,0x45,// + ////////////YCP////////// +0xd1,0x40,//saturation_cb +0xd2,0x40,//saturation_Cr +0xd3,0x40,//contrast ? +0xd4,0x80,//contrast center +0xd5,0x00,//luma_offset +0xdc,0x30, +0xdd,0xb8, +0xfe,0x00, +//gamma +0xfe,0x02, +0x88,0x15,//dn_b_base +0x8c,0xf6, //[2]b_in_dark_inc +0x89,0x03, //dn_c_weight + ////////EE /////////// +0xfe,0x02, +0x90,0x6c,// EEINTP mode1 +0x97,0x45,// edge effect + ////==============RGB Gamma +0xfe,0x02, +0x15,0x0a, +0x16,0x12, +0x17,0x19, +0x18,0x1f, +0x19,0x2c, +0x1a,0x38, +0x1b,0x42, +0x1c,0x4e, +0x1d,0x63, +0x1e,0x76, +0x1f,0x87, +0x20,0x96, +0x21,0xa2, +0x22,0xb8, +0x23,0xca, +0x24,0xd8, +0x25,0xe3, +0x26,0xf0, +0x27,0xf8, +0x28,0xfd, +0x29,0xff, + + ///=================y gamma +0xfe,0x02, +0x2b,0x00, +0x2c,0x04, +0x2d,0x09, +0x2e,0x18, +0x2f,0x27, +0x30,0x37, +0x31,0x49, +0x32,0x5c, +0x33,0x7e, +0x34,0xa0, +0x35,0xc0, +0x36,0xe0, +0x37,0xff, +0xfe,0x00, + +0xfe,0x00, +0x82,0xfe, +0xf2,0x70, +0xf3,0xff, +0xf4,0x00, +0xf5,0x30, + +0xfe,0x00, +0x90,0x01, +0x95,0x01, +0x96,0xe0, +0x97,0x02, +0x98,0x80, +0xc8,0x14, +0xf7,0x11, +0xf8,0x85, +0xfa,0x00, +0x05,0x01, +0x06,0x0a, +0x07,0x00, +0x08,0x58, +0xfe,0x01, +0x27,0x00, +0x28,0xa1, +0x29,0x05, +0x2a,0x08, +0x2b,0x05, +0x2c,0x08, +0x2d,0x06, +0x2e,0xeb, +0x3e,0x40, +0xfe,0x03, +0x42,0x04, +0x43,0x05, +0x41,0x02, +0x40,0x40, +0x17,0x00, +0xfe,0x00, +0xc8,0x55, +}; + +unsigned char gc2035_1280x720[]={ +0xfe,0x00, +0x0a,0xf0, +0x0c,0xa0, +0x0d,0x02, +0x0e,0xd8, +0x0f,0x05, +0x10,0x18, +0xfe,0x00, +0xec,0x04, +0xed,0x04, +0xee,0x50, +0xef,0x58, +0x05,0x01, +0x06,0xaa, +0x07,0x00, +0x08,0xf6, +0xfe,0x01, +0x27,0x00, +0x28,0xa1, +0x29,0x03, +0x2a,0xc6, +0x2b,0x04, +0x2c,0x67, +0x2d,0x06, +0x2e,0x4a, +0x2f,0x07, +0x30,0x8c, +0x3e,0x40, +0xfe,0x00, +0xb6,0x03, +0xec,0x04, +0xed,0x04, +0xee,0x50, +0xef,0x58, +0x99,0x11, +0x90,0x01, +0x95,0x02, +0x96,0xd0, +0x97,0x05, +0x98,0x00, +0xfe,0x03, +0x42,0x80, +0x43,0x06, +0x41,0x00, +0x40,0x00, +0x17,0x01, +0xfe,0x00, +0xc8,0x00, +0xfa,0x11, +}; + +unsigned char gc2035_320x240[]={ +0xfe,0x00, + + +0x99,0x22, +0x9b,0x00, +0x9f,0x00, + + +0x90,0x01, + +0x95,0x00, +0x96,0xf2,//600 +0x97,0x01, +0x98,0x40,//800 + +0xc8,0x15, +0xf7,0x11, +0xfe,0x03, +0x42,0x80, +0x43,0x02, +0x41,0x02, +0x40,0x40, +0x17,0x00, +0xfe,0x00, +0xc8,0x54, +}; + +unsigned char gc2035_176x144[]={ +0xfe,0x00, + + +0x99,0x33, +0x9b,0x00, +0x9f,0x00, +0x90,0x01, + + + +0x95,0x00, +0x96,0x92,//600 +0x97,0x00, +0x98,0xb0,//800 + + + + +0xc8,0x15, +0xf7,0x11, + + +0xfe,0x03, +0x42,0x60, +0x43,0x01, +0x41,0x02, +0x40,0x40, +0x17,0x00, +0xfe,0x00, +0xc8,0x54, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-forfun-v91.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-forfun-v91.h new file mode 100755 index 00000000..42e399ad --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-forfun-v91.h @@ -0,0 +1,1105 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_auto[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_50hz[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, + + +}; + +uint8_t gc2035_antibanding_60hz[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_off[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xc0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x78,//y_target 84 + 0xfe,0x00, + +#if 0 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0xe0, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x05,//level2 + 0x2c,0xdc, + 0x2d,0x05,//6e8//level3 + 0x2e,0xdc, + 0x2f,0x09,//level4 + 0x30,0xc4, + + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x40,//saturation_cb//34 cyrille + 0xd2,0x40,//saturation_Cr//34 cyrille + 0xd3,0x44,//contrast ? //40 cyrille + 0xd5,0xf8,//luma_offset + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x1c,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x67,// edge effect//45 cyrille + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-htr_t75v.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-htr_t75v.h new file mode 100755 index 00000000..0a01437f --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-htr_t75v.h @@ -0,0 +1,1040 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, + 0xf7,0x15, + 0xf8,0x85, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, + 0xf7,0x15, + 0xf8,0x85, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, + 0xf7,0x15, + 0xf8,0x84, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xf7,0x15, + 0xf8,0x85, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, + 0xf7,0x15, + 0xf8,0x85, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + 0xf7,0x15, + 0xf8,0x85, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x85,//84 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, +#if 0 // max fr: 10fps + 0x03,0x02, + 0x04,0x71, +#endif +#if 1 // max fr: 12.5fps + 0x03,0x02, + 0x04,0x80, +#endif + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xc0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x78,//y_target 84 + 0xfe,0x00, + +#if 1 // max fr: 12.5fps + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0x40, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif +#if 0 // max fr: 10fps + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x05,//level2 + 0x2c,0xdc, + 0x2d,0x05,//6e8//level3 + 0x2e,0xdc, + 0x2f,0x09,//level4 + 0x30,0xc4, +#endif + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x34,//saturation_cb + 0xd2,0x34,//saturation_Cr + 0xd3,0x40,//contrast ? {{0xd4},{0x80}},//contrast center + 0xd5,0xf8,//luma_offset + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x1c,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x45,// edge effect + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-jmt781.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-jmt781.h new file mode 100755 index 00000000..3a513bf1 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-jmt781.h @@ -0,0 +1,954 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x60, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x8a, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x90, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf9,0xfe, + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x17, + 0xf8,0x00, + 0xfe,0x00, + 0x82,0x00, + //0xb3,0x60,//close manual WB 2013.0723 + //0xb4,0x40, + //0xb5,0x60, + 0x03,0x05, + 0x04,0x08, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x60, + 0xef,0x90, + 0x0c,0x00, + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + 0x17,0x14, + 0x18,0x0a, + 0x19,0x0a, + 0x1a,0x01, + 0x1b,0x8b, + 0x1c,0x05, + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode,0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xd0, //[3:0]vref + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + //AEC + 0xfe,0x01, + 0x0c,0x01, + 0x11,0x20,//AEC_out_slope,0x + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x88,//y_target + 0xfe,0x00, + + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x05,//6e8//level3 + 0x2e,0x00, + 0x2f,0x0b,//level4 + 0x30,0x40, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xfe,0x00, + 0x3f,0x00, + 0x40,0x77, + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + 0x66,0x20, + 0x67,0x20, + 0x68,0x20, + 0x69,0x20, + 0x90,0x01, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0x80,0xff, + 0x81,0x26, + 0x03,0x05, + 0x04,0x2e, + 0x84,0x02, + 0x86,0x02, + 0x87,0x80, + 0x8b,0xbc, + 0xa7,0x80, + 0xa8,0x80, + 0xb0,0x80, + 0xc0,0x40, + //LSC + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + //=================================cc + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + //==============================awb + //AWB clear + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + /////// awb value//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + /////awb//// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10,//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06,[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08,//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + + 0xfe,0x01, + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x24, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////////////YCP////////// + 0xd1,0x40,// 40 saturation_cb + 0xd2,0x40,//40 saturation_Cr + + 0xaf,0x7e, + + + 0xd3,0x40,//3ccontrast ? 40 2013-7-22 dustin + 0xd4,0x80,//contrast center + 0xd5,0xf8,//luma_offset + 0xdc,0x30, + 0xdd,0xb8, + 0xfe,0x00, + //gamma + 0xfe,0x02, + 0x88,0x1f,//dn_b_base 15 2013-7-22 dustin + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x02, //dn_c_weight 03 2013-7-22 dustin + ////////EE /////////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x9a,//78 edge effect + ////==============RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + ///=================y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + 0xfe,0x00, + + 0xfe,0x00, + 0x82,0xfe, + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + 0xfe,0x00, + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + 0xc8,0x14, + 0xf7,0x11, + 0xf8,0x85, + 0xfa,0x00, + 0x05,0x01, + 0x06,0x0a, + 0x07,0x00, + 0x08,0x58, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x05, + 0x2a,0x08, + 0x2b,0x05, + 0x2c,0x08, + 0x2d,0x05, + 0x2e,0x08, + + 0x2f,0x05, + 0x30,0x08, + + 0x3e,0x40, + 0xfe,0x03, + 0x42,0x04, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + + +#if 0 + //////// re zao/// + 0xfe,0x00, + 0x22,0xd0, + 0xfe,0x01, + 0x21,0xff, + 0xfe,0x02, + 0x8a,0x33, + 0x8c,0x76, + 0x8d,0x85, + 0xa6,0xf0, + 0xae,0x9f, + 0xa2,0x90, + 0xa5,0x40, + 0xa7,0x30, + 0xb0,0x88, + 0x38,0x0b, + 0x39,0x30, + 0xfe,0x00, + 0x87,0xb0, + + /// small RGB gamma//// + + + ///dark sun///// + 0xfe , 0x02, + 0x40 , 0x06, + 0x41 , 0x23, + 0x42 , 0x3f, + 0x43 , 0x06, + 0x44 , 0x00, + 0x45 , 0x00, + 0x46 , 0x14, + 0x47 , 0x09, + 0xfe,0x00, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-kyt110_v7.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-kyt110_v7.h new file mode 100755 index 00000000..522ad251 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-kyt110_v7.h @@ -0,0 +1,1042 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0xa0, + 0xb4, 0x45, + 0xb5, 0x40, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x17, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + 0xf7,0x15, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf9,0xfe, + 0xfa,0x00, + 0xf6,0x00, +#if 0 + 0xf7,0x17, + 0xf8,0x00, +#endif + 0xf7,0x15, + 0xf8,0x84, + 0xfe,0x00, + 0x82,0x00, + //0xb3,0x60,//close manual wb 2013.07.23 + //0xb4,0x40, + //0xb5,0x60, + 0x03,0x01, + 0x04,0xf4, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x60, + 0xef,0x90, + 0x0c,0x00, + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + 0x17,0x14, + 0x18,0x0a, + 0x19,0x0a, + 0x1a,0x01, + 0x1b,0x8b, + 0x1c,0x05, + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode,0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xd0, //[3:0]vref + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + //AEC + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope,0x + 0x1f,0xc0,//max_post_gain + 0x20,0x60,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x80,//y_target//75 + 0xfe,0x00, +#if 0 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x05,//6e8//level3 + 0x2e,0x00, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif + 0x05,0x01,//hb 15c + 0x06,0x58, + 0x07,0x00,//vb + 0x08,0x22, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x04,//level2 + 0x2c,0xe2, + 0x2d,0x05,//6e8//level3 + 0x2e,0xdc, + 0x2f,0x09,//level4 + 0x30,0xc4, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xfe,0x00, + 0x3f,0x00, + 0x40,0x77, + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + 0x66,0x20, + 0x67,0x20, + 0x68,0x20, + 0x69,0x20, + 0x90,0x01, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0x80,0xff, + 0x81,0x26, +#if 0 + 0x03,0x05,// + 0x04,0x2e, +#endif + 0x03,0x01,// + 0x04,0xf4, + 0x84,0x02, + 0x86,0x02, + 0x87,0x80, + 0x8b,0xbc, + 0xa7,0x80, + 0xa8,0x80, + 0xb0,0x80, + 0xc0,0x40, + //LSC + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x22,// 43 + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x2e,// 40 + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + //=================================cc + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + //==============================awb + //AWB clear + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + /////// awb value//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x00,//08 + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + /////awb//// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10,//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06,[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08,//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + + 0xfe,0x01, + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////////////YCP////////// + 0xd1,0x38,//saturation_cb//40 + 0xd2,0x38,//40 saturation_Cr//46 + + 0xaf,0x7e, + + + 0xd3,0x42,//contrast ? + 0xd4,0x80,//contrast center + 0xd5,0x00,//luma_offset + 0xdc,0x30, + 0xdd,0xb8, + 0xfe,0x00, + //gamma + 0xfe,0x02, + 0x88,0x15,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////////EE /////////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x56,// edge effect//78 + ////==============RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + ///=================y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + 0xfe,0x00, + + 0xfe,0x00, + 0x82,0xfe, + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + 0xfe,0x00, + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + 0xc8,0x14, +#if 0 + 0xf7,0x11, + 0xf8,0x85, +#endif + 0xf7,0x15, + 0xfa,0x00, + 0x05,0x01, + 0x06,0x58, + 0x07,0x00, + 0x08,0x22, + 0xfe,0x01, + 0x27,0x00, + 0x28,0x7d, + 0x29,0x04, + 0x2a,0xe2, + 0x2b,0x04, + 0x2c,0xe2, + 0x2d,0x05, + 0x2e,0xdc, + + 0x2f,0x09, + 0x30,0xc4, + + 0x3e,0x40, + 0xfe,0x03, + 0x42,0x04, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + +#if 1 +0xfe,0x00, +0x22,0xd0, +0xfe,0x01, +0x21,0xff, +0xfe,0x02, +0x8a,0x33, +0x8c,0x76, +0x8d,0x85, +0xa6,0xf0, +0xae,0x9f, +0xa2,0x90, +0xa5,0x40, +0xa7,0x30, +0xb0,0x88, +0x38,0x0b, +0x39,0x30, + +0xfe,0x00, +0x87,0xb0, + +0xfe,0x02, +0x40,0x06, +0x41,0x23, +0x42,0x3f, +0x43,0x06, +0x44,0x00, +0x45,0x00, +0x46,0x14, +0x47,0x09, + + +0xfe,0x00, +0x18,0x0a, +0x40,0x73,///use ndark +0x41,0x0b,///BLK row select +0x5e,0x14, +0x5f,0x14, +0x60,0x14, +0x61,0x14, + +0x62,0x14, +0x63,0x14, +0x64,0x14, +0x65,0x14, + +0x66,0x1d, +0x67,0x1d, +0x68,0x1d, +0x69,0x1d, +#endif + +#if 0 +///////////////20130628////////// +0xfe,0x00, +0x18,0x0a, +0x40,0x73,///use ndark +0x41,0x0b,///BLK row select +0x5e,0x14, +0x5f,0x14, +0x60,0x14, +0x61,0x14, + +0x62,0x14, +0x63,0x14, +0x64,0x14, +0x65,0x14, + +0x66,0x1d, +0x67,0x1d, +0x68,0x1d, +0x69,0x1d, + + +/////////RGB gamma///////// +0xfe,0x02, +0x15,0x0b, +0x16,0x0e, +0x17,0x10, +0x18,0x12, +0x19,0x19, +0x1a,0x21, +0x1b,0x29, +0x1c,0x31, +0x1d,0x41, +0x1e,0x50, +0x1f,0x5f, +0x20,0x6d, +0x21,0x79, +0x22,0x91, +0x23,0xa5, +0x24,0xb9, +0x25,0xc9, +0x26,0xe1, +0x27,0xee, +0x28,0xf7, +0x29,0xff, +0xfe,0x00, +#endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-mid8-wms8368.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-mid8-wms8368.h new file mode 100755 index 00000000..e75394ac --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-mid8-wms8368.h @@ -0,0 +1,1025 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78,// 78 cyrille + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80,///80 cyrille + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x90, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xc0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x0c,0x21,// cyrille + 0x13,0x78,//y_target 84//78 cyrille + 0xfe,0x00, + +#if 0 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0xe0, + 0x2f,0x0a,//level4 + 0x30,0x00, +#else + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x05,//level2 + 0x2c,0xdc, + 0x2d,0x06,//6e8//level3 + 0x2e,0x59, + 0x2f,0x09,//level4 + 0x30,0xc4, +#endif + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x44, //Green_cc for d//40 cyrille + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x00,//04 cyrille + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x39,//saturation_cb + 0xd2,0x39,//saturation_Cr + 0xd3,0x42,//contrast ? + 0xd4,0x80,//contrast center + 0xd5,0x00,//luma_offset + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x15,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x56,// edge effect//45 cyrille + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 0 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-rb352a_v7.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-rb352a_v7.h new file mode 100755 index 00000000..f338be3c --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-rb352a_v7.h @@ -0,0 +1,914 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0xa0, + 0xb4, 0x45, + 0xb5, 0x40, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x17, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf9,0xfe, + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x17, + 0xf8,0x00, + 0xfe,0x00, + 0x82,0x00, + //0xb3,0x60,//close manual wb 2013.07.23 + //0xb4,0x40, + //0xb5,0x60, + 0x03,0x05, + 0x04,0x08, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x60, + 0xef,0x90, + 0x0c,0x00, + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + 0x17,0x14, + 0x18,0x0a, + 0x19,0x0a, + 0x1a,0x01, + 0x1b,0x8b, + 0x1c,0x05, + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode,0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xd0, //[3:0]vref + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + //AEC + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope,0x + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x75,//y_target + 0xfe,0x00, + + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x05,//6e8//level3 + 0x2e,0x00, + 0x2f,0x0b,//level4 + 0x30,0x40, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xfe,0x00, + 0x3f,0x00, + 0x40,0x77, + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + 0x66,0x20, + 0x67,0x20, + 0x68,0x20, + 0x69,0x20, + 0x90,0x01, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0x80,0xff, + 0x81,0x26, + 0x03,0x05, + 0x04,0x2e, + 0x84,0x02, + 0x86,0x02, + 0x87,0x80, + 0x8b,0xbc, + 0xa7,0x80, + 0xa8,0x80, + 0xb0,0x80, + 0xc0,0x40, + //LSC + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + //=================================cc + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + //==============================awb + //AWB clear + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + /////// awb value//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + /////awb//// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10,//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06,[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08,//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + + 0xfe,0x01, + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////////////YCP////////// + 0xd1,0x40,//saturation_cb + 0xd2,0x46,//40 saturation_Cr + + 0xaf,0x7e, + + + 0xd3,0x48,//contrast ? 40 2013-7-22 dustin + 0xd4,0x80,//contrast center + 0xd5,0x00,//luma_offset + 0xdc,0x30, + 0xdd,0xb8, + 0xfe,0x00, + //gamma + 0xfe,0x02, + 0x88,0x1f,//dn_b_base 15 2013-7-22 dustin + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x02, //dn_c_weight 03 2013-7-22 dustin + ////////EE /////////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x78,// edge effect + ////==============RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + ///=================y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + 0xfe,0x00, + + 0xfe,0x00, + 0x82,0xfe, + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + 0xfe,0x00, + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + 0xc8,0x14, + 0xf7,0x11, + 0xf8,0x85, + 0xfa,0x00, + 0x05,0x01, + 0x06,0x0a, + 0x07,0x00, + 0x08,0x58, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x05, + 0x2a,0x08, + 0x2b,0x05, + 0x2c,0x08, + 0x2d,0x05, + 0x2e,0x08, + + 0x2f,0x05, + 0x30,0x08, + + 0x3e,0x40, + 0xfe,0x03, + 0x42,0x04, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-rb357a_v7.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-rb357a_v7.h new file mode 100755 index 00000000..eb5759f7 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-rb357a_v7.h @@ -0,0 +1,914 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0xa0, + 0xb4, 0x45, + 0xb5, 0x40, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x17, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf9,0xfe, + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x17, + 0xf8,0x00, + 0xfe,0x00, + 0x82,0x00, + //0xb3,0x60,////close manual wb 2013.07.23 + //0xb4,0x40, + //0xb5,0x60, + 0x03,0x05, + 0x04,0x08, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x60, + 0xef,0x90, + 0x0c,0x00, + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + 0x17,0x14, + 0x18,0x0a, + 0x19,0x0a, + 0x1a,0x01, + 0x1b,0x8b, + 0x1c,0x05, + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode,0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xd0, //[3:0]vref + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + //AEC + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope,0x + 0x1f,0xc0,//max_post_gain + 0x20,0x60,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x75,//y_target + 0xfe,0x00, + + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x05,//6e8//level3 + 0x2e,0x00, + 0x2f,0x0b,//level4 + 0x30,0x40, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xfe,0x00, + 0x3f,0x00, + 0x40,0x77, + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + 0x66,0x20, + 0x67,0x20, + 0x68,0x20, + 0x69,0x20, + 0x90,0x01, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0x80,0xff, + 0x81,0x26, + 0x03,0x05, + 0x04,0x2e, + 0x84,0x02, + 0x86,0x02, + 0x87,0x80, + 0x8b,0xbc, + 0xa7,0x80, + 0xa8,0x80, + 0xb0,0x80, + 0xc0,0x40, + //LSC + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + //=================================cc + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + //==============================awb + //AWB clear + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + /////// awb value//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + /////awb//// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10,//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06,[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08,//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + + 0xfe,0x01, + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////////////YCP////////// + 0xd1,0x40,//saturation_cb + 0xd2,0x46,//40 saturation_Cr + + 0xaf,0x7e, + + + 0xd3,0x40,//contrast ? + 0xd4,0x80,//contrast center + 0xd5,0x00,//luma_offset + 0xdc,0x30, + 0xdd,0xb8, + 0xfe,0x00, + //gamma + 0xfe,0x02, + 0x88,0x15,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////////EE /////////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x78,// edge effect + ////==============RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + ///=================y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + 0xfe,0x00, + + 0xfe,0x00, + 0x82,0xfe, + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + 0xfe,0x00, + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + 0xc8,0x14, + 0xf7,0x11, + 0xf8,0x85, + 0xfa,0x00, + 0x05,0x01, + 0x06,0x0a, + 0x07,0x00, + 0x08,0x58, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x05, + 0x2a,0x08, + 0x2b,0x05, + 0x2c,0x08, + 0x2d,0x05, + 0x2e,0x08, + + 0x2f,0x05, + 0x30,0x08, + + 0x3e,0x40, + 0xfe,0x03, + 0x42,0x04, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-shutter.c b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-shutter.c new file mode 100755 index 00000000..c3c11719 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-shutter.c @@ -0,0 +1,441 @@ + +#include "../cmos-subdev.h" +#include "../../wmt-vid.h" +#include "gc2035.h" + +#define sensor_write_array(sd, arr, sz) \ + cmos_init_8bit_addr(arr, sz, (sd)->i2c_addr) + +#define sensor_read(sd, reg) \ + wmt_vid_i2c_read(sd->i2c_addr, reg) + +#define sensor_write(sd, reg, val) \ + wmt_vid_i2c_write(sd->i2c_addr, reg, val) + +struct cmos_win_size { + char *name; + int width; + int height; + uint8_t *regs; + size_t size; +}; + +#define CMOS_WIN_SIZE(n, w, h, r) \ + {.name = n, .width = w , .height = h, .regs = r, .size = ARRAY_SIZE(r) } + +#define FILP_REG_INIT_VALUE 0x14 +#define DELAY_INTERVAL 50 +#define RETRY_TIMES 10 +static uint32_t Preview_Shutter = 0; +static uint32_t Capture_Shutter = 0; + +static const struct cmos_win_size cmos_supported_win_sizes[] = { + //CMOS_WIN_SIZE("QVGA", 320, 240, gc2035_320_240_regs), + CMOS_WIN_SIZE("VGA", 640, 480, gc2035_640_480_regs), + //CMOS_WIN_SIZE("SVGA", 800, 600, gc2035_800_600_regs), + //CMOS_WIN_SIZE("720p", 1280, 720, gc2035_1280_720_regs), + CMOS_WIN_SIZE("UXGA", 1600, 1200, gc2035_1600_1200_regs), +}; + +static const struct cmos_win_size *cmos_select_win(u32 *width, u32 *height) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(cmos_supported_win_sizes); i++) { + if (cmos_supported_win_sizes[i].width == *width && + cmos_supported_win_sizes[i].height == *height) { + *width = cmos_supported_win_sizes[i].width; + *height = cmos_supported_win_sizes[i].height; + return &cmos_supported_win_sizes[i]; + } + } + return NULL; +} + +static int sensor_s_wb(struct cmos_subdev *sd, enum v4l2_wb_mode value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case WHITE_BALANCE_AUTO: + regs = gc2035_wb_auto; + size = ARRAY_SIZE(gc2035_wb_auto); + break; + case WHITE_BALANCE_INCANDESCENCE: + regs = gc2035_wb_incandescent; + size = ARRAY_SIZE(gc2035_wb_incandescent); + break; + case WHITE_BALANCE_DAYLIGHT: + regs = gc2035_wb_daylight; + size = ARRAY_SIZE(gc2035_wb_daylight); + break; + case WHITE_BALANCE_CLOUDY: + regs = gc2035_wb_cloudy; + size = ARRAY_SIZE(gc2035_wb_cloudy); + break; + case WHITE_BALANCE_FLUORESCENT: + regs = gc2035_wb_fluorescent; + size = ARRAY_SIZE(gc2035_wb_fluorescent); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + return 0; +} + +static int sensor_s_scenemode(struct cmos_subdev *sd, enum v4l2_scene_mode value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case SCENE_MODE_AUTO: + regs = gc2035_scene_mode_auto; + size = ARRAY_SIZE(gc2035_scene_mode_auto); + break; + case SCENE_MODE_NIGHTSHOT: + regs = gc2035_scene_mode_night; + size = ARRAY_SIZE(gc2035_scene_mode_night); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + return 0; +} + +static int sensor_s_exposure(struct cmos_subdev *sd, enum v4l2_exposure_mode value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case -2: + regs = gc2035_exposure_neg6; + size = ARRAY_SIZE(gc2035_exposure_neg6); + break; + case -1: + regs = gc2035_exposure_neg3; + size = ARRAY_SIZE(gc2035_exposure_neg3); + break; + case 0: + regs = gc2035_exposure_zero; + size = ARRAY_SIZE(gc2035_exposure_zero); + break; + case 1: + regs = gc2035_exposure_pos3; + size = ARRAY_SIZE(gc2035_exposure_pos3); + break; + case 2: + regs = gc2035_exposure_pos6; + size = ARRAY_SIZE(gc2035_exposure_pos6); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + return 0; +} + +static int sensor_s_antibanding(struct cmos_subdev *sd, int value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case 0: + regs = gc2035_antibanding_auto; + size = ARRAY_SIZE(gc2035_antibanding_auto); + break; + case 1: + regs = gc2035_antibanding_50hz; + size = ARRAY_SIZE(gc2035_antibanding_50hz); + break; + case 2: + regs = gc2035_antibanding_60hz; + size = ARRAY_SIZE(gc2035_antibanding_60hz); + break; + case 3: + regs = gc2035_antibanding_off; + size = ARRAY_SIZE(gc2035_antibanding_off); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + + return 0; +} + +static int sensor_s_hflip(struct cmos_subdev *sd, int value) +{ + uint8_t data,tmp=0 ; + uint8_t retry_times=0; + + sensor_write(sd, 0xfe, 0x00); // set page0 + data=sensor_read(sd, 0x17); + + switch (value) { + case 0: + data &= ~0x01; + break; + case 1: + data |= 0x01; + break; + default: + return -EINVAL; + } + + tmp=data | FILP_REG_INIT_VALUE; + for(retry_times=0;retry_times<RETRY_TIMES;retry_times++){ + sensor_write(sd, 0x17, tmp); + msleep(50+retry_times*DELAY_INTERVAL); + if(sensor_read(sd, 0x17)==tmp) + break; + } + + return 0; +} + +static int sensor_s_vflip(struct cmos_subdev *sd, int value) +{ + uint8_t data,tmp=0; + uint8_t retry_times=0; + + sensor_write(sd, 0xfe, 0x00); // set page0 + data=sensor_read(sd, 0x17); + + switch (value) { + case 0: + data &= ~0x02; + break; + case 1: + data |= 0x02; + break; + default: + return -EINVAL; + } + + tmp=data | FILP_REG_INIT_VALUE; + for(retry_times=0;retry_times<RETRY_TIMES;retry_times++){ + sensor_write(sd, 0x17, tmp); + msleep(50+retry_times*DELAY_INTERVAL); + if(sensor_read(sd, 0x17)==tmp) + break; + } + return 0; +} + +static int sensor_queryctrl(struct cmos_subdev *sd, struct v4l2_queryctrl *qc) +{ + switch (qc->id) { + case V4L2_CID_VFLIP: + case V4L2_CID_HFLIP: + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); + case V4L2_CID_CAMERA_SCENE_MODE: + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); + case V4L2_CID_DO_WHITE_BALANCE: + return v4l2_ctrl_query_fill(qc, 0, 3, 1, 0); + case V4L2_CID_EXPOSURE: + return v4l2_ctrl_query_fill(qc, -2, 2, 1, 0); + } + return -EINVAL; +} + +static int sensor_s_ctrl(struct cmos_subdev *sd, struct v4l2_control *ctrl) +{ + switch (ctrl->id) { + case V4L2_CID_CAMERA_SCENE_MODE: + return sensor_s_scenemode(sd, ctrl->value); + case V4L2_CID_DO_WHITE_BALANCE: + return sensor_s_wb(sd, ctrl->value); + case V4L2_CID_EXPOSURE: + return sensor_s_exposure(sd, ctrl->value); + case V4L2_CID_HFLIP: + return sensor_s_hflip(sd, ctrl->value); + case V4L2_CID_VFLIP: + return sensor_s_vflip(sd, ctrl->value); + case V4L2_CID_CAMERA_ANTI_BANDING: + return sensor_s_antibanding(sd, ctrl->value); + default: + case WMT_V4L2_CID_CAMERA_ANTIBANDING: + return -EINVAL; + } + return -EINVAL; +} + +static int sensor_g_mbus_fmt(struct cmos_subdev *sd, + struct v4l2_mbus_framefmt *mf) +{ + return -EINVAL; +} + +uint32_t sensor_read_shutter(struct cmos_subdev *sd) +{ + return (sensor_read(sd,0x03) << 8)|sensor_read(sd,0x04) ; +} + + +static void sensor_write_shutter(struct cmos_subdev *sd,uint32_t shutter) +{ + + if(shutter < 1) + return; + + sensor_write(sd,0x03, (shutter >> 8) & 0xff); + sensor_write(sd,0x04, shutter & 0xff); +} + + +static void sensor_set_ae_mode(struct cmos_subdev *sd,bool AE_enable) +{ + sensor_write(sd,0xfe, 0x00); + if (AE_enable == true) + { + // turn on AEC/AGC + sensor_write(sd,0xb6, 0x03); + } + else + { + // turn off AEC/AGC + sensor_write(sd,0xb6, 0x00); + } +} + + +static int sensor_s_mbus_fmt(struct cmos_subdev *sd, + struct v4l2_mbus_framefmt *mf) +{ + const struct cmos_win_size *win; + uint32_t shutter = 0; + + printk(KERN_DEBUG "%s, s_mbus_fmt width %d, height %d\n", + sd->name, mf->width, mf->height); + + win = cmos_select_win(&mf->width, &mf->height); + if (!win) { + pr_err("%s, s_mbus_fmt failed, width %d, height %d\n", + sd->name, mf->width, mf->height); + return -EINVAL; + } + + sensor_write_array(sd, win->regs, win->size); + if(mf->width == 640 && mf->height ==480){ + sensor_write_shutter(sd,Preview_Shutter); + sensor_set_ae_mode(sd,true); + }else if(mf->width == 1600 && mf->height ==1200){ + sensor_set_ae_mode(sd,false); + shutter = sensor_read_shutter(sd); + Preview_Shutter = shutter; + shutter = shutter /2; + Capture_Shutter = shutter; + sensor_write_shutter(sd,Capture_Shutter); + + + } + + msleep(400); + //msleep(500); + return 0; +} + +static int sensor_try_mbus_fmt(struct cmos_subdev *sd, + struct v4l2_mbus_framefmt *mf) +{ + return 0; +} + +static int sensor_enum_framesizes(struct cmos_subdev *sd, + struct v4l2_frmsizeenum *fsize) +{ + int i; + int num_valid = -1; + __u32 index = fsize->index; + + for (i = 0; i < ARRAY_SIZE(cmos_supported_win_sizes); i++) { + const struct cmos_win_size *win = &cmos_supported_win_sizes[index]; + if (index == ++num_valid) { + fsize->type = V4L2_FRMSIZE_TYPE_DISCRETE; + fsize->discrete.width = win->width; + fsize->discrete.height = win->height; + return 0; + } + } + + return -EINVAL; +} + +static int sensor_identify(struct cmos_subdev *sd) +{ + uint32_t data = 0; + + data |= (sensor_read(sd, 0xf0) & 0xff) << 8; + data |= (sensor_read(sd, 0xf1) & 0xff); + + return (data == sd->id) ? 0 : -EINVAL; +} + +static int sensor_init(struct cmos_subdev *sd) +{ + if (sensor_identify(sd)) { + return -1; + } + + sensor_write_array(sd, gc2035_default_regs_init, + ARRAY_SIZE(gc2035_default_regs_init)); + + msleep(100); + Preview_Shutter =sensor_read_shutter(sd); + return 0; +} + +static int sensor_exit(struct cmos_subdev *sd) +{ + sensor_write_array(sd, gc2035_default_regs_exit, + ARRAY_SIZE(gc2035_default_regs_exit)); + return 0; +} + +static struct cmos_subdev_ops gc2035_ops = { + .identify = sensor_identify, + .init = sensor_init, + .exit = sensor_exit, + .queryctrl = sensor_queryctrl, + .s_ctrl = sensor_s_ctrl, + .s_mbus_fmt = sensor_s_mbus_fmt, + .g_mbus_fmt = sensor_g_mbus_fmt, + .try_mbus_fmt = sensor_try_mbus_fmt, + .enum_framesizes = sensor_enum_framesizes, +}; + +struct cmos_subdev gc2035 = { + .name = "gc2035", + .i2c_addr = 0x3c, + .id = 0x2035, + .max_width = 1600, + .max_height = 1200, + .ops = &gc2035_ops, +}; + +#if 0 +static int __init gc2035_init(void) +{ + return cmos_register_sudbdev(&gc2035); +} + +static void __exit gc2035_exit(void) +{ + return cmos_unregister_subdev(&gc2035); +} + +module_init(gc2035_init); +module_exit(gc2035_exit); + +MODULE_LICENSE("GPL"); +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-tvboxh2-ori.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-tvboxh2-ori.h new file mode 100755 index 00000000..39bd4d4e --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-tvboxh2-ori.h @@ -0,0 +1,1064 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x05, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_auto[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_50hz[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x06,// level 1 10 + 0x2c , 0xa4, + 0x2d , 0x08,// level 2 7.5 + 0x2e , 0xa2, + 0x2f , 0x0b,// level 3 + 0x30 , 0x4a, + 0xfe , 0x00, + + +}; + +uint8_t gc2035_antibanding_60hz[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_off[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x06,// level 1 10 + 0x2c , 0xa4, + 0x2d , 0x08,// level 2 7.5 + 0x2e , 0xa2, + 0x2f , 0x0b,// level 3 + 0x30 , 0x4a, + 0xfe , 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xb0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x78,//y_target 84 + 0xfe,0x00, + + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x05,//level2 5dc + 0x2c,0xdc, + 0x2d,0x06,//6e8//level3 + 0x2e,0xd6, + 0x2f,0x09,//level4 + 0x30,0xc4, + + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x25, + 0xc3,0x09, + 0xc4,0x02, + 0xc8,0x12, + 0xc9,0x04, + 0xca,0x00, + 0xbc,0x3b, + 0xbd,0x11, + 0xbe,0x10, + 0xb6,0x5a, + 0xb7,0x27, + 0xb8,0x1e, + 0xc5,0x00, + 0xc6,0x00, + 0xc7,0x00, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x00, + 0xc0,0x00, + 0xc1,0x00, + 0xb9,0x00, + 0xba,0x09, + 0xbb,0x09, + 0xaa,0x4a, + 0xab,0x3d, + 0xac,0x3c, + 0xad,0x26, + 0xae,0x1f, + 0xaf,0x22, + 0xb0,0x3c, + 0xb1,0x31, + 0xb2,0x29, + 0xb3,0x3f, + 0xb4,0x30, + 0xb5,0x36, + 0xd0,0x00, + 0xd2,0x00, + 0xd3,0x00, + 0xd8,0x00, + 0xda,0x14, + 0xdb,0x24, + 0xdc,0x00, + 0xde,0x00, + 0xdf,0x1c, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x00, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x3e, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xea, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x20,//saturation_cb + 0xd2,0x20,//saturation_Cr + 0xd3,0x42,//contrast ? {{0xd4},{0x80}},//contrast center + 0xd5,0x00,//luma_offset + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x1c,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x75,// edge effect + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + 0xad,0x7d,////////////////////////////////////////////////////////R-ratio + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + + /* //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-v7_maz7z233.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-v7_maz7z233.h new file mode 100755 index 00000000..7d7d4f27 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-v7_maz7z233.h @@ -0,0 +1,1105 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_auto[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_50hz[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x07,// level 1 13.75 // 4a6 + 0x2c , 0xf8, + 0x2d , 0x07,// level 2 10 // 6a4 + 0x2e , 0xf8, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, + + +}; + +uint8_t gc2035_antibanding_60hz[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_off[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xb8,//max_post_gain + 0x20,0x50,//max_pre_gain // 48 + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x78,//y_target 84 + 0xfe,0x00, + +#if 1 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0xe0, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x05,//level2 + 0x2c,0xdc, + 0x2d,0x05,//6e8//level3 + 0x2e,0xdc, + 0x2f,0x09,//level4 + 0x30,0xc4, + + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x34,//saturation_cb + 0xd2,0x34,//saturation_Cr + 0xd3,0x45,//contrast ? {{0xd4},{0x80}},//contrast center // 40 + 0xd5,0xfa,//luma_offset // f8 + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x08,//dn_b_base // 1c + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x78,// edge effect // 45 + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff,*/ + + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-xhb_gbeffz2743l.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-xhb_gbeffz2743l.h new file mode 100755 index 00000000..afb142a6 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-xhb_gbeffz2743l.h @@ -0,0 +1,1023 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x60, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x84, + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x90, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xc0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x84,//y_target + 0xfe,0x00, + +#if 0 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0xe0, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x05,//level1 + 0x2a,0xdc, + 0x2b,0x06,//level2 + 0x2c,0x59, + 0x2d,0x06,//6e8//level3 + 0x2e,0xd6, + 0x2f,0x09,//level4 + 0x30,0xc4, + + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x34,//saturation_cb + 0xd2,0x34,//saturation_Cr + 0xd3,0x40,//contrast ? {{0xd4},{0x80}},//contrast center + 0xd5,0xf8,//luma_offset + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x1c,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x45,// edge effect + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-zh1426.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-zh1426.h new file mode 100755 index 00000000..63ac5b1a --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-zh1426.h @@ -0,0 +1,954 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x60, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xfd, /// 00 + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x90, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf9,0xfe, + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x17, + 0xf8,0x00, + 0xfe,0x00, + 0x82,0x00, + //0xb3,0x60,//close manual WB 2013.0723 + //0xb4,0x40, + //0xb5,0x60, + 0x03,0x05, + 0x04,0x08, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x60, + 0xef,0x90, + 0x0c,0x00, + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + 0x17,0x14, + 0x18,0x0a, + 0x19,0x0a, + 0x1a,0x01, + 0x1b,0x8b, + 0x1c,0x05, + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode,0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xd0, //[3:0]vref + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + //AEC + 0xfe,0x01, + 0x0c,0x01, + 0x11,0x20,//AEC_out_slope,0x + 0x1f,0xb0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x60,//max_pre_gain 60 2013-7-22 dustin + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x7a,//y_target + 0xfe,0x00, + + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0x40, + 0x2f,0x0b,//level4 + 0x30,0x40, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xfe,0x00, + 0x3f,0x00, + 0x40,0x77, + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + 0x66,0x20, + 0x67,0x20, + 0x68,0x20, + 0x69,0x20, + 0x90,0x01, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0x80,0xff, + 0x81,0x26, + 0x03,0x05, + 0x04,0x2e, + 0x84,0x02, + 0x86,0x02, + 0x87,0x80, + 0x8b,0xbc, + 0xa7,0x80, + 0xa8,0x80, + 0xb0,0x80, + 0xc0,0x40, + //LSC + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + //=================================cc + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + //==============================awb + //AWB clear + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + /////// awb value//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + /////awb//// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10,//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06,[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08,//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + + 0xfe,0x01, + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x60, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x24, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////////////YCP////////// + 0xd1,0x40,// 40 saturation_cb + 0xd2,0x40,//40 saturation_Cr + + 0xaf,0x7e, + + + 0xd3,0x40,// + 0xd4,0x80,//contrast center + 0xd5,0xf8,//luma_offset + 0xdc,0x30, + 0xdd,0xb8, + 0xfe,0x00, + //gamma + 0xfe,0x02, + 0x88,0x1f,//dn_b_base 15 2013-7-22 dustin + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x02, //dn_c_weight 03 2013-7-22 dustin + ////////EE /////////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x9a,//78 edge effect + ////==============RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + ///=================y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x06, /// 04 + 0x2d,0x0a, // 09 + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + 0xfe,0x00, + + 0xfe,0x00, + 0x82,0xfe, + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + 0xfe,0x00, + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + 0xc8,0x14, + 0xf7,0x11, + 0xf8,0x85, + 0xfa,0x00, + 0x05,0x01, + 0x06,0x0a, + 0x07,0x00, + 0x08,0x58, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x05, + 0x2a,0x08, + 0x2b,0x05, + 0x2c,0x08, + 0x2d,0x06, + 0x2e,0x4a, + + 0x2f,0x05, + 0x30,0x08, + + 0x3e,0x40, + 0xfe,0x03, + 0x42,0x04, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + + +#if 0 + //////// re zao/// + 0xfe,0x00, + 0x22,0xd0, + 0xfe,0x01, + 0x21,0xff, + 0xfe,0x02, + 0x8a,0x33, + 0x8c,0x76, + 0x8d,0x85, + 0xa6,0xf0, + 0xae,0x9f, + 0xa2,0x90, + 0xa5,0x40, + 0xa7,0x30, + 0xb0,0x88, + 0x38,0x0b, + 0x39,0x30, + 0xfe,0x00, + 0x87,0xb0, + + /// small RGB gamma//// + + + ///dark sun///// + 0xfe , 0x02, + 0x40 , 0x06, + 0x41 , 0x23, + 0x42 , 0x3f, + 0x43 , 0x06, + 0x44 , 0x00, + 0x45 , 0x00, + 0x46 , 0x14, + 0x47 , 0x09, + 0xfe,0x00, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-zh1547a-tp785.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-zh1547a-tp785.h new file mode 100755 index 00000000..875dec12 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035-zh1547a-tp785.h @@ -0,0 +1,1030 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xc0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x78,//y_target 84 + 0xfe,0x00, + +#if 0 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0xe0, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x04,//level2 + 0x2c,0xe2, + 0x2d,0x04,//6e8//level3 + 0x2e,0xe2, + 0x2f,0x07,//level4 + 0x30,0x53, + + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + 0xad,0x7d, + 0xae,0x81, + 0xaf,0x7e, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x52, + 0x4e,0x08, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x38,//saturation_cb + 0xd2,0x38,//saturation_Cr + 0xd3,0x40,//contrast ? {{0xd4},{0x80}},//contrast center + 0xd5,0xf8,//luma_offset + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x1c,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x45,// edge effect + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035.c b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035.c new file mode 100755 index 00000000..b655582c --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035.c @@ -0,0 +1,390 @@ + +#include "../cmos-subdev.h" +#include "../../wmt-vid.h" +#include "gc2035.h" + +#define sensor_write_array(sd, arr, sz) \ + cmos_init_8bit_addr(arr, sz, (sd)->i2c_addr) + +#define sensor_read(sd, reg) \ + wmt_vid_i2c_read(sd->i2c_addr, reg) + +#define sensor_write(sd, reg, val) \ + wmt_vid_i2c_write(sd->i2c_addr, reg, val) + +struct cmos_win_size { + char *name; + int width; + int height; + uint8_t *regs; + size_t size; +}; + +#define CMOS_WIN_SIZE(n, w, h, r) \ + {.name = n, .width = w , .height = h, .regs = r, .size = ARRAY_SIZE(r) } + +#define FILP_REG_INIT_VALUE 0x14 +#define DELAY_INTERVAL 50 +#define RETRY_TIMES 10 + +static const struct cmos_win_size cmos_supported_win_sizes[] = { + //CMOS_WIN_SIZE("QVGA", 320, 240, gc2035_320_240_regs), + CMOS_WIN_SIZE("VGA", 640, 480, gc2035_640_480_regs), + //CMOS_WIN_SIZE("SVGA", 800, 600, gc2035_800_600_regs), + //CMOS_WIN_SIZE("720p", 1280, 720, gc2035_1280_720_regs), + CMOS_WIN_SIZE("UXGA", 1600, 1200, gc2035_1600_1200_regs), +}; + +static const struct cmos_win_size *cmos_select_win(u32 *width, u32 *height) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(cmos_supported_win_sizes); i++) { + if (cmos_supported_win_sizes[i].width == *width && + cmos_supported_win_sizes[i].height == *height) { + *width = cmos_supported_win_sizes[i].width; + *height = cmos_supported_win_sizes[i].height; + return &cmos_supported_win_sizes[i]; + } + } + return NULL; +} + +static int sensor_s_wb(struct cmos_subdev *sd, enum v4l2_wb_mode value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case WHITE_BALANCE_AUTO: + regs = gc2035_wb_auto; + size = ARRAY_SIZE(gc2035_wb_auto); + break; + case WHITE_BALANCE_INCANDESCENCE: + regs = gc2035_wb_incandescent; + size = ARRAY_SIZE(gc2035_wb_incandescent); + break; + case WHITE_BALANCE_DAYLIGHT: + regs = gc2035_wb_daylight; + size = ARRAY_SIZE(gc2035_wb_daylight); + break; + case WHITE_BALANCE_CLOUDY: + regs = gc2035_wb_cloudy; + size = ARRAY_SIZE(gc2035_wb_cloudy); + break; + case WHITE_BALANCE_FLUORESCENT: + regs = gc2035_wb_fluorescent; + size = ARRAY_SIZE(gc2035_wb_fluorescent); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + return 0; +} + +static int sensor_s_scenemode(struct cmos_subdev *sd, enum v4l2_scene_mode value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case SCENE_MODE_AUTO: + regs = gc2035_scene_mode_auto; + size = ARRAY_SIZE(gc2035_scene_mode_auto); + break; + case SCENE_MODE_NIGHTSHOT: + regs = gc2035_scene_mode_night; + size = ARRAY_SIZE(gc2035_scene_mode_night); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + return 0; +} + +static int sensor_s_exposure(struct cmos_subdev *sd, enum v4l2_exposure_mode value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case -2: + regs = gc2035_exposure_neg6; + size = ARRAY_SIZE(gc2035_exposure_neg6); + break; + case -1: + regs = gc2035_exposure_neg3; + size = ARRAY_SIZE(gc2035_exposure_neg3); + break; + case 0: + regs = gc2035_exposure_zero; + size = ARRAY_SIZE(gc2035_exposure_zero); + break; + case 1: + regs = gc2035_exposure_pos3; + size = ARRAY_SIZE(gc2035_exposure_pos3); + break; + case 2: + regs = gc2035_exposure_pos6; + size = ARRAY_SIZE(gc2035_exposure_pos6); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + return 0; +} + +static int sensor_s_antibanding(struct cmos_subdev *sd, int value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case 0: + regs = gc2035_antibanding_auto; + size = ARRAY_SIZE(gc2035_antibanding_auto); + break; + case 1: + regs = gc2035_antibanding_50hz; + size = ARRAY_SIZE(gc2035_antibanding_50hz); + break; + case 2: + regs = gc2035_antibanding_60hz; + size = ARRAY_SIZE(gc2035_antibanding_60hz); + break; + case 3: + regs = gc2035_antibanding_off; + size = ARRAY_SIZE(gc2035_antibanding_off); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + + return 0; +} + +static int sensor_s_hflip(struct cmos_subdev *sd, int value) +{ + uint8_t data,tmp=0 ; + uint8_t retry_times=0; + + sensor_write(sd, 0xfe, 0x00); // set page0 + data=sensor_read(sd, 0x17); + + switch (value) { + case 0: + data &= ~0x01; + break; + case 1: + data |= 0x01; + break; + default: + return -EINVAL; + } + + tmp=data | FILP_REG_INIT_VALUE; + for(retry_times=0;retry_times<RETRY_TIMES;retry_times++){ + sensor_write(sd, 0x17, tmp); + msleep(50+retry_times*DELAY_INTERVAL); + if(sensor_read(sd, 0x17)==tmp) + break; + } + + return 0; +} + +static int sensor_s_vflip(struct cmos_subdev *sd, int value) +{ + uint8_t data,tmp=0; + uint8_t retry_times=0; + + sensor_write(sd, 0xfe, 0x00); // set page0 + data=sensor_read(sd, 0x17); + + switch (value) { + case 0: + data &= ~0x02; + break; + case 1: + data |= 0x02; + break; + default: + return -EINVAL; + } + + tmp=data | FILP_REG_INIT_VALUE; + for(retry_times=0;retry_times<RETRY_TIMES;retry_times++){ + sensor_write(sd, 0x17, tmp); + msleep(50+retry_times*DELAY_INTERVAL); + if(sensor_read(sd, 0x17)==tmp) + break; + } + return 0; +} + +static int sensor_queryctrl(struct cmos_subdev *sd, struct v4l2_queryctrl *qc) +{ + switch (qc->id) { + case V4L2_CID_VFLIP: + case V4L2_CID_HFLIP: + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); + case V4L2_CID_CAMERA_SCENE_MODE: + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); + case V4L2_CID_DO_WHITE_BALANCE: + return v4l2_ctrl_query_fill(qc, 0, 3, 1, 0); + case V4L2_CID_EXPOSURE: + return v4l2_ctrl_query_fill(qc, -2, 2, 1, 0); + } + return -EINVAL; +} + +static int sensor_s_ctrl(struct cmos_subdev *sd, struct v4l2_control *ctrl) +{ + switch (ctrl->id) { + case V4L2_CID_CAMERA_SCENE_MODE: + return sensor_s_scenemode(sd, ctrl->value); + case V4L2_CID_DO_WHITE_BALANCE: + return sensor_s_wb(sd, ctrl->value); + case V4L2_CID_EXPOSURE: + return sensor_s_exposure(sd, ctrl->value); + case V4L2_CID_HFLIP: + return sensor_s_hflip(sd, ctrl->value); + case V4L2_CID_VFLIP: + return sensor_s_vflip(sd, ctrl->value); + case V4L2_CID_CAMERA_ANTI_BANDING: + return sensor_s_antibanding(sd, ctrl->value); + default: + case WMT_V4L2_CID_CAMERA_ANTIBANDING: + return -EINVAL; + } + return -EINVAL; +} + +static int sensor_g_mbus_fmt(struct cmos_subdev *sd, + struct v4l2_mbus_framefmt *mf) +{ + return -EINVAL; +} + +static int sensor_s_mbus_fmt(struct cmos_subdev *sd, + struct v4l2_mbus_framefmt *mf) +{ + const struct cmos_win_size *win; + + printk(KERN_DEBUG "%s, s_mbus_fmt width %d, height %d\n", + sd->name, mf->width, mf->height); + + win = cmos_select_win(&mf->width, &mf->height); + if (!win) { + pr_err("%s, s_mbus_fmt failed, width %d, height %d\n", + sd->name, mf->width, mf->height); + return -EINVAL; + } + + sensor_write_array(sd, win->regs, win->size); + msleep(150); + //msleep(500); + return 0; +} + +static int sensor_try_mbus_fmt(struct cmos_subdev *sd, + struct v4l2_mbus_framefmt *mf) +{ + return 0; +} + +static int sensor_enum_framesizes(struct cmos_subdev *sd, + struct v4l2_frmsizeenum *fsize) +{ + int i; + int num_valid = -1; + __u32 index = fsize->index; + + for (i = 0; i < ARRAY_SIZE(cmos_supported_win_sizes); i++) { + const struct cmos_win_size *win = &cmos_supported_win_sizes[index]; + if (index == ++num_valid) { + fsize->type = V4L2_FRMSIZE_TYPE_DISCRETE; + fsize->discrete.width = win->width; + fsize->discrete.height = win->height; + return 0; + } + } + + return -EINVAL; +} + +static int sensor_identify(struct cmos_subdev *sd) +{ + uint32_t data = 0; + + data |= (sensor_read(sd, 0xf0) & 0xff) << 8; + data |= (sensor_read(sd, 0xf1) & 0xff); + + return (data == sd->id) ? 0 : -EINVAL; +} + +static int sensor_init(struct cmos_subdev *sd) +{ + if (sensor_identify(sd)) { + return -1; + } + + sensor_write_array(sd, gc2035_default_regs_init, + ARRAY_SIZE(gc2035_default_regs_init)); + + msleep(100); + return 0; +} + +static int sensor_exit(struct cmos_subdev *sd) +{ + sensor_write_array(sd, gc2035_default_regs_exit, + ARRAY_SIZE(gc2035_default_regs_exit)); + return 0; +} + +static struct cmos_subdev_ops gc2035_ops = { + .identify = sensor_identify, + .init = sensor_init, + .exit = sensor_exit, + .queryctrl = sensor_queryctrl, + .s_ctrl = sensor_s_ctrl, + .s_mbus_fmt = sensor_s_mbus_fmt, + .g_mbus_fmt = sensor_g_mbus_fmt, + .try_mbus_fmt = sensor_try_mbus_fmt, + .enum_framesizes = sensor_enum_framesizes, +}; + +struct cmos_subdev gc2035 = { + .name = "gc2035", + .i2c_addr = 0x3c, + .id = 0x2035, + .max_width = 1600, + .max_height = 1200, + .ops = &gc2035_ops, +}; + +#if 0 +static int __init gc2035_init(void) +{ + return cmos_register_sudbdev(&gc2035); +} + +static void __exit gc2035_exit(void) +{ + return cmos_unregister_subdev(&gc2035); +} + +module_init(gc2035_init); +module_exit(gc2035_exit); + +MODULE_LICENSE("GPL"); +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035.h new file mode 100755 index 00000000..99ee760d --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035.h @@ -0,0 +1,1105 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, + +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78, + 0xfe, 0x02, + 0xd5, 0xf8, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, + + +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88, + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_auto[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_50hz[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, + + +}; + +uint8_t gc2035_antibanding_60hz[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_off[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]={ + 0xfe,0x00, + 0x0c,0x02, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x04, + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xc8,0x00, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + 0xfe,0x80, + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x06, + 0xf2,0x00, + 0xf3,0x00, + 0xf4,0x00, + 0xf5,0x00, + 0xf9,0xfe, //[0] pll enable + 0xfa,0x00, + 0xf6,0x00, + 0xf7,0x15, //pll enable + + 0xf8,0x84,//85 + 0xfe,0x00, + 0x82,0x00, + 0xb3,0x60, + 0xb4,0x40, + 0xb5,0x60, + + 0x03,0x02, + 0x04,0x71, + + ////,/meare window /////////// + 0xfe,0x00, + 0xec,0x06,//04 + 0xed,0x06,//04 + 0xee,0x62,//60 + 0xef,0x92,//90 + + ////,//anog///////////// + 0x0a,0x00, //row start + 0x0c,0x00, //col start + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, //Window setting + 0x10,0x58, + 0x17,0x14, //[0]mirror [1]flip + 0x18,0x0a, //0a 2012.10.26 + 0x19,0x0a, //AD pipe number + 0x1a,0x01, //CISCTL mode4 + 0x1b,0x8b, + 0x1c,0x05,//add by lanking 20130403 + 0x1e,0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f,0x08, //[3] tx-low en// + 0x20,0x05, //[0]adclk mode},{0x[1]rowclk_MODE [2]rsthigh_en + 0x21,0x0f, //[6:4]rsg + 0x22,0xf0, //[3:0]vref 20130403 + 0x23,0xc3, //f3//ADC_r + 0x24,0x17, //pad drive 16 + + + 0xfe,0x01, + 0x11,0x20,//AEC_out_slope},{0x + 0x1f,0xc0,//max_post_gain + 0x20,0x48,//max_pre_gain + 0x47,0x30,//AEC_outdoor_th + 0x0b,0x10,// + 0x13,0x78,//y_target 84 + 0xfe,0x00, + +#if 0 + 0x05,0x01,//hb + 0x06,0x11, + 0x07,0x00,//vb + 0x08,0x50, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0xa0, + 0x29,0x05,//level1 + 0x2a,0x00, + 0x2b,0x05,//level2 + 0x2c,0x00, + 0x2d,0x06,//6e8//level3 + 0x2e,0xe0, + 0x2f,0x0a,//level4 + 0x30,0x00, +#endif + 0x05,0x01,//hb + 0x06,0x5c, + 0x07,0x00,//vb + 0x08,0x32, + 0xfe,0x01, + 0x27,0x00,//step + 0x28,0x7d, + 0x29,0x04,//level1 + 0x2a,0xe2, + 0x2b,0x05,//level2 + 0x2c,0xdc, + 0x2d,0x05,//6e8//level3 + 0x2e,0xdc, + 0x2f,0x09,//level4 + 0x30,0xc4, + + 0x3e,0x40, + 0xfe,0x00, + 0xfe,0x00, //0x},{0x},{0x},{0x},{0x + 0xb6,0x03, //AEC enable + 0xfe,0x00, + + ////,BLK//// + 0x3f,0x00, //prc close + 0x40,0x77,// + 0x42,0x7f, + 0x43,0x30, + 0x5c,0x08, + 0x5e,0x20, + 0x5f,0x20, + 0x60,0x20, + 0x61,0x20, + 0x62,0x20, + 0x63,0x20, + 0x64,0x20, + 0x65,0x20, + + //blo,///////// + 0x80,0xff, + 0x81,0x26,//38},{0x//skin_Y 8c_debug + 0x87,0x90, //[7]middle gamma + 0x84,0x02, //output put foramat + 0x86,0x02, //02 //sync plority + 0x8b,0xbc, + 0xb0,0x80, //globle gain + 0xc0,0x40,//Yuv bypass + + ////lsc/////////// + 0xfe,0x01, + 0xc2,0x38, + 0xc3,0x25, + 0xc4,0x21, + 0xc8,0x19, + 0xc9,0x12, + 0xca,0x0e, + 0xbc,0x43, + 0xbd,0x18, + 0xbe,0x1b, + 0xb6,0x40, + 0xb7,0x2e, + 0xb8,0x26, + 0xc5,0x05, + 0xc6,0x03, + 0xc7,0x04, + 0xcb,0x00, + 0xcc,0x00, + 0xcd,0x00, + 0xbf,0x14, + 0xc0,0x22, + 0xc1,0x1b, + 0xb9,0x00, + 0xba,0x05, + 0xbb,0x05, + 0xaa,0x35, + 0xab,0x33, + 0xac,0x33, + 0xad,0x25, + 0xae,0x22, + 0xaf,0x27, + 0xb0,0x1d, + 0xb1,0x20, + 0xb2,0x22, + 0xb3,0x14, + 0xb4,0x15, + 0xb5,0x16, + 0xd0,0x00, + 0xd2,0x07, + 0xd3,0x08, + 0xd8,0x00, + 0xda,0x13, + 0xdb,0x17, + 0xdc,0x00, + 0xde,0x0a, + 0xdf,0x08, + 0xd4,0x00, + 0xd6,0x00, + 0xd7,0x0c, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + 0xa8,0x00, + 0xa9,0x00, + 0xa1,0x80, + 0xa2,0x80, + + ////,/cc//////////// + 0xfe,0x02, + 0xc0,0x01, + 0xc1,0x40, //Green_cc for d + 0xc2,0xfc, + 0xc3,0x05, + 0xc4,0xec, + 0xc5,0x42, + 0xc6,0xf8, + 0xc7,0x40,//for cwf + 0xc8,0xf8, + 0xc9,0x06, + 0xca,0xfd, + 0xcb,0x3e, + 0xcc,0xf3, + 0xcd,0x36,//for A + 0xce,0xf6, + 0xcf,0x04, + 0xe3,0x0c, + 0xe4,0x44, + 0xe5,0xe5, + 0xfe,0x00, + + ////,b stt ////////////////AWB ,ar + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x10, // 10 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x20, // 20 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, // 30 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x40, // 40 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x50, // 50 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x60, // 60 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x70, // 70 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x80, // 80 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0x90, // 90 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xa0, // a0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xb0, // b0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xc0, // c0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4d,0xd0, // d0 + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4e,0x00, + 0x4f,0x01, + ////,wb vue//////// + 0xfe,0x01, + 0x4f,0x00, + 0x4d,0x30, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x40, + 0x4e,0x00, + 0x4e,0x80, + 0x4e,0x80, + 0x4e,0x02, + 0x4e,0x02, + 0x4e,0x02, + 0x4d,0x53, + 0x4e,0x08, + 0x4e,0x04, + 0x4d,0x62, + 0x4e,0x10, + 0x4d,0x72, + 0x4e,0x20, + 0x4f,0x01, + + ///a,/// + 0xfe,0x01, + 0x50,0x88,//c0//[6]green mode + 0x52,0x40, + 0x54,0x60, + 0x56,0x06, + 0x57,0x20, //pre adjust + 0x58,0x01, + 0x5b,0x02, //AWB_gain_delta + 0x61,0xaa,//R/G stand + 0x62,0xaa,//R/G stand + 0x71,0x00, + 0x74,0x10, //0x//AWB_C_max + 0x77,0x08, // 0x//AWB_p2_x + 0x78,0xfd, //AWB_p2_y + 0x86,0x30, + 0x87,0x00, + 0x88,0x04,//06},{0x//[1]dark mode + 0x8a,0xc0,//awb move mode + 0x89,0x75, + 0x84,0x08, //0x//auto_window + 0x8b,0x00, // 0x//awb compare luma + 0x8d,0x70, //awb gain limit R + 0x8e,0x70,//G + 0x8f,0xf4,//B + 0xfe,0x00, + 0x82,0x02,//awb_en + ////wb end ///////////// + + //===,====de + 0xfe,0x01, + + 0x9c,0x04,//00 + + 0x21,0xbf, + 0xfe,0x02, + 0xa4,0x00,// + 0xa5,0x40, //lsc_th + 0xa2,0xa0, //lsc_dec_slope + 0xa6,0x80, //dd_th + 0xa7,0x80, //ot_th + 0xab,0x31, // + 0xa9,0x6f, // + 0xb0,0x99, //0x//edge effect slope low + 0xb1,0x34,//edge effect slope low + 0xb3,0x80, //saturation dec slope + 0xde,0xb6, // + 0x38,0x0f, // + 0x39,0x60, // + 0xfe,0x00, + 0x81,0x26, + 0xfe,0x02, + 0x83,0x00,// + 0x84,0x45,// + ////,///Y////////// + 0xd1,0x34,//saturation_cb + 0xd2,0x34,//saturation_Cr + 0xd3,0x40,//contrast ? {{0xd4},{0x80}},//contrast center + 0xd5,0xf8,//luma_offset + 0xdc,0x30, + 0xdd,0xb8,//edge_sa_g,b + 0xfe,0x00, + ////,dd///////// + 0xfe,0x02, + 0x88,0x1c,//dn_b_base + 0x8c,0xf6, //[2]b_in_dark_inc + 0x89,0x03, //dn_c_weight + ////,E ///////// + 0xfe,0x02, + 0x90,0x6c,// EEINTP mode1 + 0x97,0x45,// edge effect + //==,=======RGB Gamma + 0xfe,0x02, + 0x15,0x0a, + 0x16,0x12, + 0x17,0x19, + 0x18,0x1f, + 0x19,0x2c, + 0x1a,0x38, + 0x1b,0x42, + 0x1c,0x4e, + 0x1d,0x63, + 0x1e,0x76, + 0x1f,0x87, + 0x20,0x96, + 0x21,0xa2, + 0x22,0xb8, + 0x23,0xca, + 0x24,0xd8, + 0x25,0xe3, + 0x26,0xf0, + 0x27,0xf8, + 0x28,0xfd, + 0x29,0xff, + + //===,=========y gamma + 0xfe,0x02, + 0x2b,0x00, + 0x2c,0x04, + 0x2d,0x09, + 0x2e,0x18, + 0x2f,0x27, + 0x30,0x37, + 0x31,0x49, + 0x32,0x5c, + 0x33,0x7e, + 0x34,0xa0, + 0x35,0xc0, + 0x36,0xe0, + 0x37,0xff, + ///1,x120ize// + 0xfe,0x00,// + 0x90,0x01, //0x//crop enable + 0x95,0x04, //0x//1600x1200 + 0x96,0xb0, + 0x97,0x06, + 0x98,0x40, + + 0xfe,0x03, + 0x42,0x40, + 0x43,0x06, //output buf width + 0x41,0x02, // Pclk_polarity + 0x40,0x40, //00 + 0x17,0x00, //widv + 0xfe,0x00, + //ou,t DV//// + + 0xfe,0x00, + 0x82,0xfe, // fe + 0xf2,0x70, + 0xf3,0xff, + 0xf4,0x00, + 0xf5,0x30, + + #if 0 + //,///ssumple 640X4800////// + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + + 0x90,0x01, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + #endif + + + 0xfe,0x00, + 0x0c,0x00, + + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, + +#if 1 + //// re zao/// + 0xfe ,0x00, + 0x22 ,0xf0, + 0xfe ,0x01, + 0x21 ,0xff, + 0xfe ,0x02, + 0x8a ,0x33, + 0x8c ,0x76, + 0x8d ,0x85, + 0xa6 ,0xf0, + 0xae ,0x9f, + 0xa2 ,0x90, + 0xa5 ,0x40, + 0xa7 ,0x30, + 0xb0 ,0x88, + 0x38 ,0x0b, + 0x39 ,0x30, + 0xfe ,0x00, + 0x87 ,0xb0, + + + /* + //, sma RGB gamma//// + 0xfe,0x02, + 0x15,0x0b, + 0x16,0x0e, + 0x17,0x10, + 0x18,0x12, + 0x19,0x19, + 0x1a,0x21, + 0x1b,0x29, + 0x1c,0x31, + 0x1d,0x41, + 0x1e,0x50, + 0x1f,0x5f, + 0x20,0x6d, + 0x21,0x79, + 0x22,0x91, + 0x23,0xa5, + 0x24,0xb9, + 0x25,0xc9, + 0x26,0xe1, + 0x27,0xee, + 0x28,0xf7, + 0x29,0xff, + */ + //da,sun/// + 0xfe,0x02, + 0x40,0x06, + 0x41,0x23, + 0x42,0x3f, + 0x43,0x06, + 0x44,0x00, + 0x45,0x00, + 0x46,0x14, + 0x47,0x09, + + #endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035_pid10_hl_pc1089.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035_pid10_hl_pc1089.h new file mode 100755 index 00000000..45a63cdf --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035_pid10_hl_pc1089.h @@ -0,0 +1,1158 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xd0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x78,//78 + 0xfe, 0x02, + 0xd5, 0xf8,//00 + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x80,//80 + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0x88,//88 + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_auto[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_50hz[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, + + +}; + +uint8_t gc2035_antibanding_60hz[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_off[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]= { + 0xfe , 0x00, + 0xfa , 0x11, + 0xc8 , 0x00, + + 0x90 , 0x01, + 0x95 , 0x04, + 0x96 , 0xb0, + 0x97 , 0x06, + 0x98 , 0x40, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + 0xfa,0x00, + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + + 0xfe , 0x80, + 0xfe , 0x80, + 0xfe , 0x80, + 0xfc , 0x06, + 0xf2 , 0x00, + 0xf3 , 0x00, + 0xf4 , 0x00, + 0xf5 , 0x00, + 0xf9 , 0xfe, //[0] pll enable + 0xfa , 0x00, + 0xf6 , 0x00, + 0xf7 , 0x15, //pll enable + 0xf8 , 0x85, + 0xfe , 0x00, + 0x82 , 0x00, + 0xb3 , 0x60, + 0xb4 , 0x40, + 0xb5 , 0x60, + + 0x03 , 0x02, + 0x04 , 0xa8, + + //////////measure window /////////// + 0xfe , 0x00, + 0xec , 0x06,//04 + 0xed , 0x06,//04 + 0xee , 0x62,//60 + 0xef , 0x92,//90 + + ///////////analog///////////// + 0x0a , 0x00, //row start + 0x0c , 0x00, //col start + 0x0d , 0x04, + 0x0e , 0xc0, + 0x0f , 0x06, //Window setting + 0x10 , 0x58, + 0x17 , 0x14, //[0]mirror [1]flip + 0x18 , 0x0e, //0a 2012.10.26 + 0x19 , 0x0c, //AD pipe number + 0x1a , 0x01, //CISCTL mode4 + 0x1b , 0x8b, + 0x1c , 0x05,//add by lanking 20130403 + 0x1e , 0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f , 0x08, //[3] tx-low en// + 0x20 , 0x05, //[0]adclk mode , 0x[1]rowclk_MODE [2]rsthigh_en + 0x21 , 0x0f, //[6:4]rsg + 0x22 , 0xf0, //[3:0]vref d0 20130628 + 0x23 , 0xc3, //f3//ADC_r + 0x24 , 0x17, //pad drive 16 + + //AWB_gray + 0xfe , 0x01, + 0x4f , 0x00, + 0x4d , 0x32, // 30 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x42, // 40 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x52, // 50 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x62, // 60 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x72, // 70 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x82, // 80 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x92, // 90 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4f , 0x01, + 0x50 , 0x88, + 0xfe , 0x00, + 0x82 , 0xfe, + + ///////awb start //////////////// + 0xfe , 0x01, + 0x50 , 0x88,//c0//[6]green mode + 0x52 , 0x40, + 0x54 , 0x60, + 0x56 , 0x06, + 0x57 , 0x20,//pre adjust + 0x58 , 0x01, + 0x5b , 0x02,//AWB_gain_delta + 0x61 , 0xaa,//R/G stand + 0x62 , 0xaa,//R/G stand + 0x71 , 0x00, + 0x74 , 0x10,//AWB_C_max + 0x77 , 0x08,//AWB_p2_x + 0x78 , 0xfd,//AWB_p2_y + 0x86 , 0x30, + 0x87 , 0x00, + 0x88 , 0x04,//[1]dark mode + 0x8a , 0xc0,//awb move mode + 0x89 , 0x75, + 0x84 , 0x08,//auto_window + 0x8b , 0x00,//awb compare luma + 0x8d , 0x70,//awb gain limit R + 0x8e , 0x70,//G + 0x8f , 0xf4,//B + /////////awb end ///////////// + + //AEC + 0xfe , 0x01, + 0x11 , 0x20,//AEC_out_slope , 0x + 0x1f , 0xc0,//max_post_gain + 0x20 , 0x60,//max_pre_gain + 0x47 , 0x30,//AEC_outdoor_th + 0x0b , 0x10,// + 0x13 , 0x78,//y_target 75 + + + 0xfe , 0x00, + 0x05 , 0x01, + 0x06 , 0x23, + 0x07 , 0x00, + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00, + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00,// + 0xb6 , 0x03,//AEC enable + 0xfe , 0x00, + + /////////BLK////// + 0x3f , 0x00,//prc close + 0x40 , 0x77,// + 0x42 , 0x7f, + 0x43 , 0x30, + 0x5c , 0x08, + 0x5e , 0x20, + 0x5f , 0x20, + 0x60 , 0x20, + 0x61 , 0x20, + 0x62 , 0x20, + 0x63 , 0x20, + 0x64 , 0x20, + 0x65 , 0x20, + + ///block//////////// + 0x80 , 0xff, + 0x81 , 0x26,//38 //skin_Y 8c_debug + 0x87 , 0x90,//[7]middle gamma + 0x84 , 0x02,//output put foramat + 0x86 , 0x06,//02 //sync plority lanking + 0x8b , 0xbc, + 0xb0 , 0x80,//globle gain + 0xc0 , 0x40,//Yuv bypass + + //////lsc///////////// +#if 0 + 0xfe , 0x01, + 0xc2 , 0x38, + 0xc3 , 0x25, + 0xc4 , 0x21, + 0xc8 , 0x19, + 0xc9 , 0x12, + 0xca , 0x0e, + 0xbc , 0x43, + 0xbd , 0x18, + 0xbe , 0x1b, + 0xb6 , 0x40, + 0xb7 , 0x2e, + 0xb8 , 0x26, + 0xc5 , 0x05, + 0xc6 , 0x03, + 0xc7 , 0x04, + 0xcb , 0x00, + 0xcc , 0x00, + 0xcd , 0x00, + 0xbf , 0x14, + 0xc0 , 0x22, + 0xc1 , 0x1b, + 0xb9 , 0x00, + 0xba , 0x05, + 0xbb , 0x05, + 0xaa , 0x35, + 0xab , 0x33, + 0xac , 0x33, + 0xad , 0x25, + 0xae , 0x22, + 0xaf , 0x27, + 0xb0 , 0x1d, + 0xb1 , 0x20, + 0xb2 , 0x22, + 0xb3 , 0x14, + 0xb4 , 0x15, + 0xb5 , 0x16, + 0xd0 , 0x00, + 0xd2 , 0x07, + 0xd3 , 0x08, + 0xd8 , 0x00, + 0xda , 0x13, + 0xdb , 0x17, + 0xdc , 0x00, + 0xde , 0x0a, + 0xdf , 0x08, + 0xd4 , 0x00, + 0xd6 , 0x00, + 0xd7 , 0x0c, + 0xa4 , 0x00, + 0xa5 , 0x00, + 0xa6 , 0x00, + 0xa7 , 0x00, + 0xa8 , 0x00, + 0xa9 , 0x00, + 0xa1 , 0x80, + 0xa2 , 0x80, +#endif + 0xfe,0x01, + 0xa1,0x80, // center_row + 0xa2,0x80, // center_col + 0xa4,0x07, // sign of b1 + 0xa5,0x00, // sign of b1 + 0xa6,0x00, // sign of b4 + 0xa7,0x00, // sign of b4 + 0xa8,0x00, // sign of b22 + 0xa9,0x07, // sign of b22 + 0xaa,0x1e, // Q1_b1 of R + 0xab,0x49, // Q1_b1 of G + 0xac,0x1e, // Q1_b1 of B + 0xad,0x30, // Q2_b1 of R + 0xae,0x1c, // Q2_b1 of G + 0xaf,0x1b, // Q2_b1 of B + 0xb0,0x56, // Q3_b1 of R + 0xb1,0x88, // Q3_b1 of G + 0xb2,0x53, // Q3_b1 of B + 0xb3,0xff, // Q4_b1 of R + 0xb4,0xf8, // Q4_b1 of G + 0xb5,0xcb, // Q4_b1 of B + 0xb6,0x62, // right_b2 of R + 0xb7,0x19, // right_b2 of G + 0xb8,0x00, // right_b2 of B + 0xb9,0xff, // right_b4 of R + 0xba,0xff, // right_b4 of G + 0xbb,0xff, // right_b4 of B + 0xbc,0x67, // left_b2 of R + 0xbd,0x3a, // left_b2 of G + 0xbe,0x25, // left_b2 of B + 0xbf,0x65, // left_b4 of R + 0xc0,0x49, // left_b4 of G + 0xc1,0x60, // left_b4 of B + 0xc2,0x3f, // up_b2 of R + 0xc3,0x1b, // up_b2 of G + 0xc4,0x19, // up_b2 of B + 0xc5,0x45, // up_b4 of R + 0xc6,0x39, // up_b4 of G + 0xc7,0x19, // up_b4 of B + 0xc8,0x12, // down_b2 of R + 0xc9,0x02, // down_b2 of G + 0xca,0x00, // down_b2 of B + 0xcb,0xff, // down_b4 of R + 0xcc,0xff, // down_b4 of G + 0xcd,0xf3, // down_b4 of B + 0xd0,0xff, // right_up_b22 of R + 0xd2,0x3b, // right_up_b22 of G + 0xd3,0x7d, // right_up_b22 of B + 0xd4,0xff, // right_down_b22 of R + 0xd6,0xff, // right_down_b22 of G + 0xd7,0xff, // right_down_b22 of B + 0xd8,0xff, // left_up_b22 of R + 0xda,0x89, // left_up_b22 of G + 0xdb,0xa3, // left_up_b22 of B + 0xdc,0x1c, // left_down_b22 of R + 0xde,0x99, // left_down_b22 of G + 0xdf,0x27, // left_down_b22 of B + 0xfe,0x00, + + //////////cc////////////// + 0xfe , 0x02, + 0xc0 , 0x01, + 0xc1 , 0x38,//Green_cc for d 40 + 0xc2 , 0xfc, + 0xc3 , 0x05, + 0xc4 , 0xec, + 0xc5 , 0x42, + 0xc6 , 0xf8, + 0xc7 , 0x40,//for cwf + 0xc8 , 0xf8, + 0xc9 , 0x06, + 0xca , 0xfd, + 0xcb , 0x3e, + 0xcc , 0xf3, + 0xcd , 0x36,//for A + 0xce , 0xf6, + 0xcf , 0x04, + 0xe3 , 0x0c, + 0xe4 , 0x44, + 0xe5 , 0xe5, + 0xfe , 0x00, + + ///==========asde + 0xfe , 0x01, + 0x21 , 0xbf, + 0xfe , 0x02, + 0xa4 , 0x00, + 0xa5 , 0x40,//lsc_th + 0xa2 , 0xa0,//lsc_dec_slope + 0xa6 , 0x80,//dd_th + 0xa7 , 0x80,//ot_th + 0xab , 0x31, + 0xa9 , 0x6f, + 0xb0 , 0x99,//edge effect slope low + 0xb1 , 0x34,//edge effect slope low + 0xb3 , 0x80,//saturation dec slope + 0xde , 0xb6, + 0x38 , 0x0f, + 0x39 , 0x60, + 0xfe , 0x00, + 0x81 , 0x26, + 0xfe , 0x02, + 0x83 , 0x00, + 0x84 , 0x45, + ////////////YCP////////// + 0xd1 , 0x38,//saturation_cb + 0xd2 , 0x34,//saturation_Cr 38 + 0xd3 , 0x40,//contrast + 0xd4 , 0x80,//contrast center + 0xd5 , 0xf8,//luma_offset + 0xdc , 0x30, + 0xdd , 0xb8,//edge_sa_g,b + 0xfe , 0x00, + //////////dndd/////////// + 0xfe , 0x02, + 0x88 , 0x15,//dn_b_base + 0x8c , 0xf6,//[2]b_in_dark_inc + 0x89 , 0x03,//dn_c_weight + //////////EE /////////// + 0xfe , 0x02, + 0x90 , 0x6c,// EEINTP mode1 + 0x97 , 0x45,// edge effect + ////==============RGB Gamma //// + 0xfe , 0x02, + 0x15 , 0x0a, + 0x16 , 0x12, + 0x17 , 0x19, + 0x18 , 0x1f, + 0x19 , 0x2c, + 0x1a , 0x38, + 0x1b , 0x42, + 0x1c , 0x4e, + 0x1d , 0x63, + 0x1e , 0x76, + 0x1f , 0x87, + 0x20 , 0x96, + 0x21 , 0xa2, + 0x22 , 0xb8, + 0x23 , 0xca, + 0x24 , 0xd8, + 0x25 , 0xe3, + 0x26 , 0xf0, + 0x27 , 0xf8, + 0x28 , 0xfd, + 0x29 , 0xff, + //// small RGB gamma//// + /* + 0xfe , 0x02, + 0x15 , 0x0b, + 0x16 , 0x0e, + 0x17 , 0x10, + 0x18 , 0x12, + 0x19 , 0x19, + 0x1a , 0x21, + 0x1b , 0x29, + 0x1c , 0x31, + 0x1d , 0x41, + 0x1e , 0x50, + 0x1f , 0x5f, + 0x20 , 0x6d, + 0x21 , 0x79, + 0x22 , 0x91, + 0x23 , 0xa5, + 0x24 , 0xb9, + 0x25 , 0xc9, + 0x26 , 0xe1, + 0x27 , 0xee, + 0x28 , 0xf7, + 0x29 , 0xff, + */ + + ///=================y gamma + 0xfe , 0x02, + 0x2b , 0x00, + 0x2c , 0x04, + 0x2d , 0x09, + 0x2e , 0x18, + 0x2f , 0x27, + 0x30 , 0x37, + 0x31 , 0x49, + 0x32 , 0x5c, + 0x33 , 0x7e, + 0x34 , 0xa0, + 0x35 , 0xc0, + 0x36 , 0xe0, + 0x37 , 0xff, + + + //AWB clear + 0xfe , 0x01, + 0x4f , 0x00, + 0x4d , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x10, // 10 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x20, // 20 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x30, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, // 30 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x40, // 40 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x50, // 50 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x60, // 60 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x70, // 70 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x80, // 80 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x90, // 90 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0xa0, // a0 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0xb0, // b0 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0xc0, // c0 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0xd0, // d0 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4f , 0x01, + /////// awb value//////// + 0xfe , 0x01, + 0x4f , 0x00, + 0x4d , 0x30, + 0x4e , 0x00, + 0x4e , 0x80, + 0x4e , 0x80, + 0x4e , 0x02, + 0x4e , 0x02, + 0x4d , 0x40, + 0x4e , 0x00, + 0x4e , 0x80, + 0x4e , 0x80, + 0x4e , 0x02, + 0x4e , 0x02, + 0x4e , 0x02, + 0x4d , 0x53, + 0x4e , 0x08, + 0x4e , 0x04, + 0x4d , 0x62, + 0x4e , 0x10, + 0x4d , 0x72, + 0x4e , 0x20, + 0x4f , 0x01, + + /////1600x1200size// + 0xfe , 0x00,// + 0x90 , 0x01, ////crop enable + 0x95 , 0x04, ////1600x1200 + 0x96 , 0xb0, + 0x97 , 0x06, + 0x98 , 0x40, + + 0xfe , 0x03, + 0x17 , 0x00, //widv + 0x40 , 0x40, //00 + 0x41 , 0x02, // Pclk_polarity + 0x42 , 0x40, + 0x43 , 0x06, //output buf width + + 0xfe , 0x00, + 0xad , 0x7c, + 0xae , 0x81, + 0xaf , 0x80, + + + ////output DVP///// + 0xfe , 0x00, + 0x82 , 0xfe, + 0xf2 , 0x70, + 0xf3 , 0xff, + 0xf4 , 0x00, + 0xf5 , 0x30, +#if 0 + 0xfe , 0x00 , + 0x80 , 0x08 , + 0x81 , 0x00 , + 0x82 , 0x00 , + 0xa3 , 0x80 , + 0xa4 , 0x80 , + 0xa5 , 0x80 , + 0xa6 , 0x80 , + 0xa7 , 0x80 , + 0xa8 , 0x80 , + 0xa9 , 0x80 , + 0xaa , 0x80 , + 0xad , 0x80 , + 0xae , 0x80 , + 0xaf , 0x80 , + 0xb3 , 0x40 , + 0xb4 , 0x40 , + 0xb5 , 0x40 , + 0xfe , 0x01 , + 0x0a , 0x40 , + 0x13 , 0x48 , + 0x9f , 0x40 , + 0xfe , 0x02 , + 0xd0 , 0x40 , + 0xd1 , 0x20 , + 0xd2 , 0x20 , + 0xd3 , 0x40 , + 0xd5 , 0x00 , + 0xdd , 0x00 , + 0xfe , 0x00 , +#endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035_pid13_hl_pc1388.h b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035_pid13_hl_pc1388.h new file mode 100755 index 00000000..a7f149f7 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc2035/gc2035_pid13_hl_pc1388.h @@ -0,0 +1,1152 @@ +#ifndef GC2035_H +#define GC2035_H + + +// Scene Mode +uint8_t gc2035_scene_mode_auto[] = { + 0xfe,0x01, + 0x3e,0x40, + 0x1f,0xa0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x50,//max_pre_gain 60 2013-7-22 dustin + 0xfe,0x00, +}; + +uint8_t gc2035_scene_mode_night[] = { + 0xfe, 0x01, + 0x3e, 0x60, + 0x1f,0xe0,//max_post_gain c0 2013-7-22 dustin + 0x20,0x80,//max_pre_gain 60 2013-7-22 dustin + 0xfe, 0x00, +}; + + +// White Balance +uint8_t gc2035_wb_auto [] = { + 0xfe, 0x00, +// 0xb3, 0x61, //2013-8-16 dustin +// 0xb4, 0x40, +// 0xb5, 0x61, + 0x82, 0xfe, +}; + +uint8_t gc2035_wb_incandescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0xa8, +}; + +uint8_t gc2035_wb_fluorescent [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x50, + 0xb4, 0x40, + 0xb5, 0x78, +}; + +uint8_t gc2035_wb_daylight [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x78, + 0xb4, 0x40, + 0xb5, 0x50, +}; + +uint8_t gc2035_wb_cloudy [] = { + 0xfe, 0x00, + 0x82, 0xfc, + 0xb3, 0x58, + 0xb4, 0x40, + 0xb5, 0x50, +}; + + +// Exposure +uint8_t gc2035_exposure_neg6[] = { + 0xfe, 0x01, + 0x13, 0x68, + 0xfe, 0x02, + 0xd5, 0xe0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_neg3[] = { + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x02, + 0xd5, 0xf0, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_zero[] = { + 0xfe, 0x01, + 0x13, 0x88,//78 + 0xfe, 0x02, + 0xd5, 0x04,//00 + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos3[] = { + 0xfe, 0x01, + 0x13, 0x98,//80 + 0xfe, 0x02, + 0xd5, 0x10, + 0xfe, 0x00, +}; + +uint8_t gc2035_exposure_pos6[] = { + 0xfe, 0x01, + 0x13, 0xa8,//88 + 0xfe, 0x02, + 0xd5, 0x20, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_auto[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_50hz[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, + + +}; + +uint8_t gc2035_antibanding_60hz[] = { + 0xfe, 0x00, + 0x05, 0x01, + 0x06, 0x39, + 0x07, 0x00, + 0x08, 0x14, + 0xfe, 0x01, + 0x27, 0x00, + 0x28, 0x8b, + 0x29, 0x04, + 0x2a, 0x58, + 0x2b, 0x04, + 0x2c, 0x58, + 0x2d, 0x06, + 0x2e, 0x84, + 0x2f, 0x08, + 0x30, 0xb0, + 0xfe, 0x00, +}; + +uint8_t gc2035_antibanding_off[] = { + 0xfe , 0x00, + 0x05 , 0x01,// HB + 0x06 , 0x23, + 0x07 , 0x00,// VB + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00,// step + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00, +}; + +uint8_t gc2035_176_144_regs[]={ + 0xfe,0x00, + + 0x99,0x33, + 0x9b,0x00, + 0x9f,0x00, + 0x90,0x01, + + 0x95,0x00, + 0x96,0x92,//600 + 0x97,0x00, + 0x98,0xb0,//800 + + 0xc8,0x15, + 0xf7,0x11, + + 0xfe,0x03, + 0x42,0x60, + 0x43,0x01, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_320_240_regs[]={ + 0xfe,0x00, + + 0x99,0x22, + 0x9b,0x00, + 0x9f,0x00, + + 0x90,0x01, + + 0x95,0x00, + 0x96,0xf2,//600 + 0x97,0x01, + 0x98,0x40,//800 + + 0xc8,0x15, + 0xf7,0x11, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x02, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x54, +}; + +uint8_t gc2035_1280_720_regs[]={ + 0xfe,0x00, + 0x0a,0xf0, + 0x0c,0xa0, + 0x0d,0x02, + 0x0e,0xd8, + 0x0f,0x05, + 0x10,0x18, + 0xfe,0x00, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x05,0x01, + 0x06,0xaa, + 0x07,0x00, + 0x08,0xf6, + 0xfe,0x01, + 0x27,0x00, + 0x28,0xa1, + 0x29,0x03, + 0x2a,0xc6, + 0x2b,0x04, + 0x2c,0x67, + 0x2d,0x06, + 0x2e,0x4a, + 0x2f,0x07, + 0x30,0x8c, + 0x3e,0x40, + 0xfe,0x00, + 0xb6,0x03, + 0xec,0x04, + 0xed,0x04, + 0xee,0x50, + 0xef,0x58, + 0x99,0x11, + 0x90,0x01, + 0x95,0x02, + 0x96,0xd0, + 0x97,0x05, + 0x98,0x00, + 0xfe,0x03, + 0x42,0x80, + 0x43,0x06, + 0x41,0x00, + 0x40,0x00, + 0x17,0x01, + 0xfe,0x00, + 0xc8,0x00, + 0xfa,0x11, +}; + +uint8_t gc2035_1600_1200_regs[]= { + 0xfe , 0x00, + 0xfa , 0x11, + 0xc8 , 0x00, + + 0x90 , 0x01, + 0x95 , 0x04, + 0x96 , 0xb0, + 0x97 , 0x06, + 0x98 , 0x40, +}; + +uint8_t gc2035_800_600_regs[]={ + 0xfe,0x00, + 0xfa,0x00, + 0xc8,0x00, + + 0x99,0x22, + 0x9a,0x07, + 0x9b,0x00, + 0x9c,0x00, + 0x9d,0x00, + 0x9e,0x00, + 0x9f,0x00, + 0xa0,0x00, + 0xa1,0x00, + 0xa2,0x00, + + 0x90,0x01, + 0x95,0x02, + 0x96,0x58, + 0x97,0x03, + 0x98,0x20, +}; + +uint8_t gc2035_640_480_regs[]={ + 0xfe,0x00, + 0x0c,0x00, + 0xfa,0x00, + 0x0d,0x04, + 0x0e,0xc0, + 0x0f,0x06, + 0x10,0x58, + + 0x90,0x01, + 0x99,0x11, + 0x95,0x01, + 0x96,0xe0, + 0x97,0x02, + 0x98,0x80, + + 0xc8,0x15, + 0xf7,0x15, + 0xfe,0x03, + 0x42,0x00, + 0x43,0x05, + 0x41,0x02, + 0x40,0x40, + 0x17,0x00, + 0xfe,0x00, + 0xc8,0x55, + 0xb6,0x03, +}; + +uint8_t gc2035_default_regs_init[]={ + + 0xfe , 0x80, + 0xfe , 0x80, + 0xfe , 0x80, + 0xfc , 0x06, + 0xf2 , 0x00, + 0xf3 , 0x00, + 0xf4 , 0x00, + 0xf5 , 0x00, + 0xf9 , 0xfe, //[0] pll enable + 0xfa , 0x00, + 0xf6 , 0x00, + 0xf7 , 0x15, //pll enable + 0xf8 , 0x85, + 0xfe , 0x00, + 0x82 , 0x00, + 0xb3 , 0x60, + 0xb4 , 0x40, + 0xb5 , 0x60, + + 0x03 , 0x02, + 0x04 , 0xa8, + + //////////measure window /////////// + 0xfe , 0x00, + 0xec , 0x06,//04 + 0xed , 0x06,//04 + 0xee , 0x62,//60 + 0xef , 0x92,//90 + + ///////////analog///////////// + 0x0a , 0x00, //row start + 0x0c , 0x00, //col start + 0x0d , 0x04, + 0x0e , 0xc0, + 0x0f , 0x06, //Window setting + 0x10 , 0x58, + 0x17 , 0x14, //[0]mirror [1]flip + 0x18 , 0x0e, //0a 2012.10.26 + 0x19 , 0x0c, //AD pipe number + 0x1a , 0x01, //CISCTL mode4 + 0x1b , 0x8b, + 0x1c , 0x05,//add by lanking 20130403 + 0x1e , 0x88, //analog mode1 [7] tx-high en [5:3]COL_bias + 0x1f , 0x08, //[3] tx-low en// + 0x20 , 0x05, //[0]adclk mode , 0x[1]rowclk_MODE [2]rsthigh_en + 0x21 , 0x0f, //[6:4]rsg + 0x22 , 0xf0, //[3:0]vref d0 20130628 + 0x23 , 0xc3, //f3//ADC_r + 0x24 , 0x17, //pad drive 16 + + //AWB_gray + 0xfe , 0x01, + 0x4f , 0x00, + 0x4d , 0x32, // 30 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x42, // 40 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x52, // 50 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x62, // 60 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x72, // 70 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x82, // 80 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4d , 0x92, // 90 + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4e , 0x04, + 0x4f , 0x01, + 0x50 , 0x88, + 0xfe , 0x00, + 0x82 , 0xfe, + + ///////awb start //////////////// + 0xfe , 0x01, + 0x50 , 0x88,//c0//[6]green mode + 0x52 , 0x40, + 0x54 , 0x60, + 0x56 , 0x06, + 0x57 , 0x20,//pre adjust + 0x58 , 0x01, + 0x5b , 0x02,//AWB_gain_delta + 0x61 , 0xaa,//R/G stand + 0x62 , 0xaa,//R/G stand + 0x71 , 0x00, + 0x74 , 0x10,//AWB_C_max + 0x77 , 0x08,//AWB_p2_x + 0x78 , 0xfd,//AWB_p2_y + 0x86 , 0x30, + 0x87 , 0x00, + 0x88 , 0x04,//[1]dark mode + 0x8a , 0xc0,//awb move mode + 0x89 , 0x75, + 0x84 , 0x08,//auto_window + 0x8b , 0x00,//awb compare luma + 0x8d , 0x70,//awb gain limit R + 0x8e , 0x70,//G + 0x8f , 0xf4,//B + /////////awb end ///////////// + + //AEC + 0xfe , 0x01, + 0x11 , 0x20,//AEC_out_slope , 0x + 0x1f , 0xc0,//max_post_gain + 0x20 , 0x60,//max_pre_gain + 0x47 , 0x30,//AEC_outdoor_th + 0x0b , 0x10,// + 0x13 , 0x88,//y_target 75 + + + 0xfe , 0x00, + 0x05 , 0x01, + 0x06 , 0x23, + 0x07 , 0x00, + 0x08 , 0x14, + 0xfe , 0x01, + 0x27 , 0x00, + 0x28 , 0xaa, + 0x29 , 0x04,// level 0 13.75 + 0x2a , 0xa6, + 0x2b , 0x04,// level 1 13.75 + 0x2c , 0xa6, + 0x2d , 0x06,// level 2 10 + 0x2e , 0xa4, + 0x2f , 0x08,// level 3 7.5 + 0x30 , 0xa2, + 0xfe , 0x00,// + 0xb6 , 0x03,//AEC enable + 0xfe , 0x00, + + /////////BLK////// + 0x3f , 0x00,//prc close + 0x40 , 0x77,// + 0x42 , 0x7f, + 0x43 , 0x30, + 0x5c , 0x08, + 0x5e , 0x20, + 0x5f , 0x20, + 0x60 , 0x20, + 0x61 , 0x20, + 0x62 , 0x20, + 0x63 , 0x20, + 0x64 , 0x20, + 0x65 , 0x20, + + ///block//////////// + 0x80 , 0xff, + 0x81 , 0x26,//38 //skin_Y 8c_debug + 0x87 , 0x90,//[7]middle gamma + 0x84 , 0x02,//output put foramat + 0x86 , 0x06,//02 //sync plority lanking + 0x8b , 0xbc, + 0xb0 , 0x80,//globle gain + 0xc0 , 0x40,//Yuv bypass + + //////lsc///////////// +#if 0 + 0xfe , 0x01, + 0xc2 , 0x38, + 0xc3 , 0x25, + 0xc4 , 0x21, + 0xc8 , 0x19, + 0xc9 , 0x12, + 0xca , 0x0e, + 0xbc , 0x43, + 0xbd , 0x18, + 0xbe , 0x1b, + 0xb6 , 0x40, + 0xb7 , 0x2e, + 0xb8 , 0x26, + 0xc5 , 0x05, + 0xc6 , 0x03, + 0xc7 , 0x04, + 0xcb , 0x00, + 0xcc , 0x00, + 0xcd , 0x00, + 0xbf , 0x14, + 0xc0 , 0x22, + 0xc1 , 0x1b, + 0xb9 , 0x00, + 0xba , 0x05, + 0xbb , 0x05, + 0xaa , 0x35, + 0xab , 0x33, + 0xac , 0x33, + 0xad , 0x25, + 0xae , 0x22, + 0xaf , 0x27, + 0xb0 , 0x1d, + 0xb1 , 0x20, + 0xb2 , 0x22, + 0xb3 , 0x14, + 0xb4 , 0x15, + 0xb5 , 0x16, + 0xd0 , 0x00, + 0xd2 , 0x07, + 0xd3 , 0x08, + 0xd8 , 0x00, + 0xda , 0x13, + 0xdb , 0x17, + 0xdc , 0x00, + 0xde , 0x0a, + 0xdf , 0x08, + 0xd4 , 0x00, + 0xd6 , 0x00, + 0xd7 , 0x0c, + 0xa4 , 0x00, + 0xa5 , 0x00, + 0xa6 , 0x00, + 0xa7 , 0x00, + 0xa8 , 0x00, + 0xa9 , 0x00, + 0xa1 , 0x80, + 0xa2 , 0x80, +#endif + 0xfe,0x01, + 0xa1,0x80, // center_row + 0xa2,0x80, // center_col + 0xa4,0x07, // sign of b1 + 0xa5,0x00, // sign of b1 + 0xa6,0x00, // sign of b4 + 0xa7,0x00, // sign of b4 + 0xa8,0x00, // sign of b22 + 0xa9,0x07, // sign of b22 + 0xaa,0x1e, // Q1_b1 of R + 0xab,0x49, // Q1_b1 of G + 0xac,0x1e, // Q1_b1 of B + 0xad,0x30, // Q2_b1 of R + 0xae,0x1c, // Q2_b1 of G + 0xaf,0x1b, // Q2_b1 of B + 0xb0,0x56, // Q3_b1 of R + 0xb1,0x88, // Q3_b1 of G + 0xb2,0x53, // Q3_b1 of B + 0xb3,0xff, // Q4_b1 of R + 0xb4,0xf8, // Q4_b1 of G + 0xb5,0xcb, // Q4_b1 of B + 0xb6,0x62, // right_b2 of R + 0xb7,0x19, // right_b2 of G + 0xb8,0x00, // right_b2 of B + 0xb9,0xff, // right_b4 of R + 0xba,0xff, // right_b4 of G + 0xbb,0xff, // right_b4 of B + 0xbc,0x67, // left_b2 of R + 0xbd,0x3a, // left_b2 of G + 0xbe,0x25, // left_b2 of B + 0xbf,0x65, // left_b4 of R + 0xc0,0x49, // left_b4 of G + 0xc1,0x60, // left_b4 of B + 0xc2,0x3f, // up_b2 of R + 0xc3,0x1b, // up_b2 of G + 0xc4,0x19, // up_b2 of B + 0xc5,0x45, // up_b4 of R + 0xc6,0x39, // up_b4 of G + 0xc7,0x19, // up_b4 of B + 0xc8,0x12, // down_b2 of R + 0xc9,0x02, // down_b2 of G + 0xca,0x00, // down_b2 of B + 0xcb,0xff, // down_b4 of R + 0xcc,0xff, // down_b4 of G + 0xcd,0xf3, // down_b4 of B + 0xd0,0xff, // right_up_b22 of R + 0xd2,0x3b, // right_up_b22 of G + 0xd3,0x7d, // right_up_b22 of B + 0xd4,0xff, // right_down_b22 of R + 0xd6,0xff, // right_down_b22 of G + 0xd7,0xff, // right_down_b22 of B + 0xd8,0xff, // left_up_b22 of R + 0xda,0x89, // left_up_b22 of G + 0xdb,0xa3, // left_up_b22 of B + 0xdc,0x1c, // left_down_b22 of R + 0xde,0x99, // left_down_b22 of G + 0xdf,0x27, // left_down_b22 of B + 0xfe,0x00, + + //////////cc////////////// + 0xfe , 0x02, + 0xc0 , 0x01, + 0xc1 , 0x40,//Green_cc for d + 0xc2 , 0xfc, + 0xc3 , 0x05, + 0xc4 , 0xec, + 0xc5 , 0x42, + 0xc6 , 0xf8, + 0xc7 , 0x40,//for cwf + 0xc8 , 0xf8, + 0xc9 , 0x06, + 0xca , 0xfd, + 0xcb , 0x3e, + 0xcc , 0xf3, + 0xcd , 0x36,//for A + 0xce , 0xf6, + 0xcf , 0x04, + 0xe3 , 0x0c, + 0xe4 , 0x44, + 0xe5 , 0xe5, + 0xfe , 0x00, + + ///==========asde + 0xfe , 0x01, + 0x21 , 0xbf, + 0xfe , 0x02, + 0xa4 , 0x00, + 0xa5 , 0x40,//lsc_th + 0xa2 , 0xa0,//lsc_dec_slope + 0xa6 , 0x80,//dd_th + 0xa7 , 0x80,//ot_th + 0xab , 0x31, + 0xa9 , 0x6f, + 0xb0 , 0x99,//edge effect slope low + 0xb1 , 0x34,//edge effect slope low + 0xb3 , 0x80,//saturation dec slope + 0xde , 0xb6, + 0x38 , 0x0f, + 0x39 , 0x60, + 0xfe , 0x00, + 0x81 , 0x26, + 0xfe , 0x02, + 0x83 , 0x00, + 0x84 , 0x45, + ////////////YCP////////// + 0xd1 , 0x38,//saturation_cb + 0xd2 , 0x38,//saturation_Cr + 0xd3 , 0x40,//contrast + 0xd4 , 0x80,//contrast center + 0xd5 , 0x00,//luma_offset + 0xdc , 0x30, + 0xdd , 0xb8,//edge_sa_g,b + 0xfe , 0x00, + //////////dndd/////////// + 0xfe , 0x02, + 0x88 , 0x15,//dn_b_base + 0x8c , 0xf6,//[2]b_in_dark_inc + 0x89 , 0x03,//dn_c_weight + //////////EE /////////// + 0xfe , 0x02, + 0x90 , 0x6c,// EEINTP mode1 + 0x97 , 0x45,// edge effect + ////==============RGB Gamma //// + 0xfe , 0x02, + 0x15 , 0x0a, + 0x16 , 0x12, + 0x17 , 0x19, + 0x18 , 0x1f, + 0x19 , 0x2c, + 0x1a , 0x38, + 0x1b , 0x42, + 0x1c , 0x4e, + 0x1d , 0x63, + 0x1e , 0x76, + 0x1f , 0x87, + 0x20 , 0x96, + 0x21 , 0xa2, + 0x22 , 0xb8, + 0x23 , 0xca, + 0x24 , 0xd8, + 0x25 , 0xe3, + 0x26 , 0xf0, + 0x27 , 0xf8, + 0x28 , 0xfd, + 0x29 , 0xff, + //// small RGB gamma//// + /* + 0xfe , 0x02, + 0x15 , 0x0b, + 0x16 , 0x0e, + 0x17 , 0x10, + 0x18 , 0x12, + 0x19 , 0x19, + 0x1a , 0x21, + 0x1b , 0x29, + 0x1c , 0x31, + 0x1d , 0x41, + 0x1e , 0x50, + 0x1f , 0x5f, + 0x20 , 0x6d, + 0x21 , 0x79, + 0x22 , 0x91, + 0x23 , 0xa5, + 0x24 , 0xb9, + 0x25 , 0xc9, + 0x26 , 0xe1, + 0x27 , 0xee, + 0x28 , 0xf7, + 0x29 , 0xff, + */ + + ///=================y gamma + 0xfe , 0x02, + 0x2b , 0x00, + 0x2c , 0x04, + 0x2d , 0x09, + 0x2e , 0x18, + 0x2f , 0x27, + 0x30 , 0x37, + 0x31 , 0x49, + 0x32 , 0x5c, + 0x33 , 0x7e, + 0x34 , 0xa0, + 0x35 , 0xc0, + 0x36 , 0xe0, + 0x37 , 0xff, + + + //AWB clear + 0xfe , 0x01, + 0x4f , 0x00, + 0x4d , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x10, // 10 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x20, // 20 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x30, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, // 30 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x40, // 40 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x50, // 50 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x60, // 60 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x70, // 70 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x80, // 80 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0x90, // 90 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0xa0, // a0 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0xb0, // b0 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0xc0, // c0 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4d , 0xd0, // d0 + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4e , 0x00, + 0x4f , 0x01, + /////// awb value//////// + 0xfe , 0x01, + 0x4f , 0x00, + 0x4d , 0x30, + 0x4e , 0x00, + 0x4e , 0x80, + 0x4e , 0x80, + 0x4e , 0x02, + 0x4e , 0x02, + 0x4d , 0x40, + 0x4e , 0x00, + 0x4e , 0x80, + 0x4e , 0x80, + 0x4e , 0x02, + 0x4e , 0x02, + 0x4e , 0x02, + 0x4d , 0x53, + 0x4e , 0x08, + 0x4e , 0x04, + 0x4d , 0x62, + 0x4e , 0x10, + 0x4d , 0x72, + 0x4e , 0x20, + 0x4f , 0x01, + + /////1600x1200size// + 0xfe , 0x00,// + 0x90 , 0x01, ////crop enable + 0x95 , 0x04, ////1600x1200 + 0x96 , 0xb0, + 0x97 , 0x06, + 0x98 , 0x40, + + 0xfe , 0x03, + 0x17 , 0x00, //widv + 0x40 , 0x40, //00 + 0x41 , 0x02, // Pclk_polarity + 0x42 , 0x40, + 0x43 , 0x06, //output buf width + + ////output DVP///// + 0xfe , 0x00, + 0x82 , 0xfe, + 0xf2 , 0x70, + 0xf3 , 0xff, + 0xf4 , 0x00, + 0xf5 , 0x30, +#if 0 + 0xfe , 0x00 , + 0x80 , 0x08 , + 0x81 , 0x00 , + 0x82 , 0x00 , + 0xa3 , 0x80 , + 0xa4 , 0x80 , + 0xa5 , 0x80 , + 0xa6 , 0x80 , + 0xa7 , 0x80 , + 0xa8 , 0x80 , + 0xa9 , 0x80 , + 0xaa , 0x80 , + 0xad , 0x80 , + 0xae , 0x80 , + 0xaf , 0x80 , + 0xb3 , 0x40 , + 0xb4 , 0x40 , + 0xb5 , 0x40 , + 0xfe , 0x01 , + 0x0a , 0x40 , + 0x13 , 0x48 , + 0x9f , 0x40 , + 0xfe , 0x02 , + 0xd0 , 0x40 , + 0xd1 , 0x20 , + 0xd2 , 0x20 , + 0xd3 , 0x40 , + 0xd5 , 0x00 , + 0xdd , 0x00 , + 0xfe , 0x00 , +#endif +}; + +uint8_t gc2035_default_regs_exit[]={ + 0xfe, 0x00, + 0xf1, 0x00, + 0xf2, 0x00, +}; + +#endif |