diff options
Diffstat (limited to 'drivers/media/video/wmt_v4l2/sensors/gc0329')
9 files changed, 5093 insertions, 0 deletions
diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-3nod.h b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-3nod.h new file mode 100755 index 00000000..148f403c --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-3nod.h @@ -0,0 +1,550 @@ +#ifndef GC0329_H +#define GC0329_H + + +// Scene Mode +uint8_t gc0329_scene_mode_auto[] = { +}; + +uint8_t gc0329_scene_mode_night[] = { +}; + + +// White Balance +uint8_t gc0329_wb_auto [] = { + 0xfe, 0x00, + 0x77, 0x57, + 0x78, 0x4d, + 0x79, 0x45, + 0x42, 0xfe, //AWB on +}; + +uint8_t gc0329_wb_incandescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x48, + 0x78, 0x40, + 0x79, 0x5c, + +}; + +uint8_t gc0329_wb_fluorescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x42, + 0x79, 0x50, + +}; + +uint8_t gc0329_wb_daylight [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x74, + 0x78, 0x52, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_cloudy [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x8c, + 0x78, 0x50, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_tungsten [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x54, + 0x79, 0x70, + +}; + + +// Exposure +uint8_t gc0329_exposure_neg6[] = { + 0xfe, 0x00, + 0xd5, 0xe0, + 0xfe, 0x01, + 0x13, 0x40, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_neg3[] = { + 0xfe, 0x00, + 0xd5, 0xf0, + 0xfe, 0x01, + 0x13, 0x48, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_zero[] = { + 0xfe, 0x00, + 0xd5, 0x00, /// 00 + 0xfe, 0x01, + 0x13, 0x56,//6a cyrille + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos3[] = { + + 0xfe, 0x00, + 0xd5, 0x10, + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos6[] = { + 0xfe, 0x00, + 0xd5, 0x20, + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x00, + +}; + + +// Color Effect +uint8_t gc0329_colorfx_none[] = { + 0xfe, 0x00, + 0x43 , 0x00, +}; + +uint8_t gc0329_colorfx_bw[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x00, + 0xdb , 0x00, + +}; + +uint8_t gc0329_colorfx_sepia[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xd0, + 0xdb , 0x28, + +}; + +uint8_t gc0329_colorfx_negative[] = { + 0xfe, 0x00, + 0x43 , 0x01, +}; + +uint8_t gc0329_colorfx_emboss[] = { +}; + +uint8_t gc0329_colorfx_sketch[] = { + +}; + +uint8_t gc0329_colorfx_sky_blue[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x50, + 0xdb , 0xe0, + +}; + +uint8_t gc0329_colorfx_grass_green[] = { + + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xc0, + 0xdb , 0xc0, + +}; + +uint8_t gc0329_colorfx_skin_whiten[] = { +}; + +uint8_t gc0329_colorfx_vivid[] = { +}; + +// Brightness +uint8_t gc0329_brightness_neg4[] = { +}; + +uint8_t gc0329_brightness_neg3[] = { +}; + +uint8_t gc0329_brightness_neg2[] = { +}; + +uint8_t gc0329_brightness_neg1[] = { +}; + +uint8_t gc0329_brightness_zero[] = { +}; + +uint8_t gc0329_brightness_pos1[] = { +}; + +uint8_t gc0329_brightness_pos2[] = { +}; + +uint8_t gc0329_brightness_pos3[] = { +}; + +uint8_t gc0329_brightness_pos4[] = { +}; + +// Contrast +uint8_t gc0329_contrast_neg4[] = { +}; + +uint8_t gc0329_contrast_neg3[] = { +}; + +uint8_t gc0329_contrast_neg2[] = { +}; + +uint8_t gc0329_contrast_neg1[] = { +}; + +uint8_t gc0329_contrast_zero[] = { +}; + +uint8_t gc0329_contrast_pos1[] = { +}; + +uint8_t gc0329_contrast_pos2[] = { +}; + +uint8_t gc0329_contrast_pos3[] = { +}; + +uint8_t gc0329_contrast_pos4[] = { +}; + +// Saturation +uint8_t gc0329_saturation_neg4[] = { +}; + +uint8_t gc0329_saturation_neg3[] = { +}; + +uint8_t gc0329_saturation_neg2[] = { +}; + +uint8_t gc0329_saturation_neg1[] = { +}; + +uint8_t gc0329_saturation_zero[] = { +}; + +uint8_t gc0329_saturation_pos1[] = { +}; + +uint8_t gc0329_saturation_pos2[] = { +}; + +uint8_t gc0329_saturation_pos3[] = { +}; + +uint8_t gc0329_saturation_pos4[] = { +}; + + +// Resolution + +// QCIF +uint8_t gc0329_176x144[]={ +}; + +uint8_t gc0329_320x240[]={ + 0x59, 0x22, +}; + +uint8_t gc0329_640x480[]={ + 0x59, 0x11, +}; + + +// Initiliztion +uint8_t gc0329_default_regs_init[] = { + 0xfe, 0x80, + 0xfc, 0x12, + 0xfc, 0x12, + 0xfe, 0x00, + + 0xfa, 0x11, + + 0xf0, 0x07, + 0xf1, 0x01, + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + 0xfc, 0x16, + + 0x05, 0x01, + 0x06, 0x32, + 0x07, 0x00, + 0x08, 0x70, + 0xfe, 0x01, + 0x29, 0x00, + 0x2a, 0x3c, + 0x2b, 0x02, + 0x2c, 0x58, + 0x2d, 0x02, + + 0x2e, 0xd0, + 0x2f, 0x03, + 0x30, 0x48, + 0x31, 0x04, + 0x32, 0x38, + 0x33, 0x20, + 0xfe, 0x00, + + + + + + 0x0a, 0x00, + 0x0c, 0x00, + 0x17, 0x14, + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x00, + 0x1f, 0xc8, + 0x20, 0x00, + 0x21, 0x48, + 0x23, 0x22, + 0x24, 0x16, + + + 0x26, 0xf7, + 0x28, 0x7f, + 0x29, 0x00, + 0x32, 0x00, + 0x33, 0x20, + 0x34, 0x20, + 0x35, 0x20, + 0x36, 0x20, + 0x3b, 0x04, + 0x3c, 0x04, + 0x3d, 0x04, + 0x3e, 0x04, + + 0x40, 0xff, + 0x41, 0x00, + 0x42, 0xfe, + 0x46, 0x02, + 0x4b, 0xcb, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + 0x80, 0xe7, + 0x82, 0x55, + 0x87, 0x4a, + 0xfe, 0x01, + 0x18, 0x22, + 0xfe, 0x00, + 0x9c, 0x0a, + 0xa4, 0x50, + 0xa5, 0x21, + 0xa7, 0x35, + 0xdd, 0x54, + 0x95, 0x35, + 0xfe, 0x00, + ///gamma + /* + 0xbf, 0x06, + 0xc0, 0x14, + 0xc1, 0x27, + 0xc2, 0x3b, + 0xc3, 0x4f, + 0xc4, 0x62, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc9, + 0xca, 0xd6, + 0xcb, 0xe0, + 0xcc, 0xe8, + 0xcd, 0xf4, + 0xce, 0xfc, + 0xcf, 0xff, + */ + + 0xBF, 0x0B, + 0xc0, 0x16, + 0xc1, 0x29, + 0xc2, 0x3C, + 0xc3, 0x4F, + 0xc4, 0x5F, + 0xc5, 0x6F, + 0xc6, 0x8A, + 0xc7, 0x9F, + 0xc8, 0xB4, + 0xc9, 0xC6, + 0xcA, 0xD3, + 0xcB, 0xDD, + 0xcC, 0xE5, + 0xcD, 0xF1, + 0xcE, 0xFA, + 0xcF, 0xFF, + /*0xBF, 0x14, + 0xc0, 0x28, + 0xc1, 0x44, + 0xc2, 0x5D, + 0xc3, 0x72, + 0xc4, 0x86, + 0xc5, 0x95, + 0xc6, 0xB1, + 0xc7, 0xC6, + 0xc8, 0xD5, + 0xc9, 0xE1, + 0xcA, 0xEA, + 0xcB, 0xF1, + 0xcC, 0xF5, + 0xcD, 0xFB, + 0xcE, 0xFE, + 0xcF, 0xFF,*/ + + + 0xfe, 0x00, + 0xb3, 0x40,//44 cyrille + 0xb4, 0xfd, + 0xb5, 0x02, + 0xb6, 0xfa, + 0xb7, 0x48, + 0xb8, 0xf0, + 0x50, 0x01, + 0x19, 0x05, + 0x20, 0x01, + 0x22, 0xba, + 0x21, 0x48, + 0xfe, 0x00, + 0xd1, 0x28,// 34 cyrille + 0xd2, 0x26,//34 cyrille + 0x7a, 0x7d,// cyrille + 0x7b, 0x81,// cyrille + 0x7c, 0x80,// cyrille + 0xfe, 0x01, + 0x10, 0x40, + 0x12, 0x27,//17 cyrille + 0x13, 0x56,//60 cyrille + 0x17, 0x88, + 0x21, 0x80,//b0 cyrille + 0x22, 0x40,//60 cyrille + 0x3c, 0x82, + 0x3d, 0x55, + 0x3e, 0x48, + 0xfe, 0x01, + 0x06, 0x08, + 0x07, 0x06, + 0x08, 0xa6, + 0x09, 0xee, + 0x6a, 0x40, + 0x6b, 0x39, + 0xd0, 0x00, + 0xd2, 0x2c, + 0xd3, 0x80, + 0x9c, 0x00, + 0x9d, 0x10, + 0x9e, 0xc0, + 0x9f, 0x40, + 0xfe, 0x01, + 0xa0, 0x00, + 0xa1, 0x3c, + 0xa2, 0x50, + 0xa3, 0x00, + 0xa8, 0x0f, + 0xa9, 0x08, + 0xaa, 0x00, + 0xab, 0x04, + 0xac, 0x00, + 0xad, 0x07, + 0xae, 0x0e, + 0xaf, 0x00, + 0xb0, 0x00, + 0xb1, 0x09, + 0xb2, 0x00, + 0xb3, 0x00, + 0xb4, 0x31, + 0xb5, 0x19, + 0xb6, 0x24, + 0xba, 0x3a, + 0xbb, 0x24, + 0xbc, 0x2a, + 0xc0, 0x17, + 0xc1, 0x13, + 0xc2, 0x17, + 0xc6, 0x21, + 0xc7, 0x1c, + 0xc8, 0x1c, + 0xb7, 0x00, + 0xb8, 0x00, + 0xb9, 0x00, + 0xbd, 0x00, + 0xbe, 0x00, + 0xbf, 0x00, + 0xc3, 0x00, + 0xc4, 0x00, + 0xc5, 0x00, + 0xc9, 0x00, + 0xca, 0x00, + 0xcb, 0x00, + 0xa4, 0x00, + 0xa5, 0x00, + 0xa6, 0x00, + 0xa7, 0x00, + 0xfe, 0x00, + + 0xfe,0x01, + 0x18,0x22, + 0x21,0x80,//c0 cyrille + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x28, //34 cyrille + 0xd2,0x26, //34 cyrille + 0xd3,0x40,// 3b cyrille + 0xd5,0x00,//0c cyrille + 0xfe,0x00, + + 0xa0, 0xaf, + 0xa2, 0xff, + 0x44, 0xa2, +}; + +uint8_t gc0329_default_regs_exit[] = { +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-3nod_TL070VA5.h b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-3nod_TL070VA5.h new file mode 100755 index 00000000..eabe66b7 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-3nod_TL070VA5.h @@ -0,0 +1,560 @@ +#ifndef GC0329_H +#define GC0329_H + + +// Scene Mode +uint8_t gc0329_scene_mode_auto[] = { +}; + +uint8_t gc0329_scene_mode_night[] = { +}; + + +// White Balance +uint8_t gc0329_wb_auto [] = { + 0xfe, 0x00, + 0x77, 0x57, + 0x78, 0x4d, + 0x79, 0x45, + 0x42, 0xfe, //AWB on +}; + +uint8_t gc0329_wb_incandescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x48, + 0x78, 0x40, + 0x79, 0x5c, + +}; + +uint8_t gc0329_wb_fluorescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x42, + 0x79, 0x50, + +}; + +uint8_t gc0329_wb_daylight [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x74, + 0x78, 0x52, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_cloudy [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x8c, + 0x78, 0x50, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_tungsten [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x54, + 0x79, 0x70, + +}; + + +// Exposure +uint8_t gc0329_exposure_neg6[] = { + 0xfe, 0x00, + 0xd5, 0xe0, + 0xfe, 0x01, + 0x13, 0x40, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_neg3[] = { + 0xfe, 0x00, + 0xd5, 0xf0, + 0xfe, 0x01, + 0x13, 0x48, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_zero[] = { + 0xfe, 0x00, + 0xd5, 0x00, /// 00 + 0xfe, 0x01, + 0x13, 0x56,//6a cyrille + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos3[] = { + + 0xfe, 0x00, + 0xd5, 0x10, + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos6[] = { + 0xfe, 0x00, + 0xd5, 0x20, + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x00, + +}; + + +// Color Effect +uint8_t gc0329_colorfx_none[] = { + 0xfe, 0x00, + 0x43 , 0x00, +}; + +uint8_t gc0329_colorfx_bw[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x00, + 0xdb , 0x00, + +}; + +uint8_t gc0329_colorfx_sepia[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xd0, + 0xdb , 0x28, + +}; + +uint8_t gc0329_colorfx_negative[] = { + 0xfe, 0x00, + 0x43 , 0x01, +}; + +uint8_t gc0329_colorfx_emboss[] = { +}; + +uint8_t gc0329_colorfx_sketch[] = { + +}; + +uint8_t gc0329_colorfx_sky_blue[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x50, + 0xdb , 0xe0, + +}; + +uint8_t gc0329_colorfx_grass_green[] = { + + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xc0, + 0xdb , 0xc0, + +}; + +uint8_t gc0329_colorfx_skin_whiten[] = { +}; + +uint8_t gc0329_colorfx_vivid[] = { +}; + +// Brightness +uint8_t gc0329_brightness_neg4[] = { +}; + +uint8_t gc0329_brightness_neg3[] = { +}; + +uint8_t gc0329_brightness_neg2[] = { +}; + +uint8_t gc0329_brightness_neg1[] = { +}; + +uint8_t gc0329_brightness_zero[] = { +}; + +uint8_t gc0329_brightness_pos1[] = { +}; + +uint8_t gc0329_brightness_pos2[] = { +}; + +uint8_t gc0329_brightness_pos3[] = { +}; + +uint8_t gc0329_brightness_pos4[] = { +}; + +// Contrast +uint8_t gc0329_contrast_neg4[] = { +}; + +uint8_t gc0329_contrast_neg3[] = { +}; + +uint8_t gc0329_contrast_neg2[] = { +}; + +uint8_t gc0329_contrast_neg1[] = { +}; + +uint8_t gc0329_contrast_zero[] = { +}; + +uint8_t gc0329_contrast_pos1[] = { +}; + +uint8_t gc0329_contrast_pos2[] = { +}; + +uint8_t gc0329_contrast_pos3[] = { +}; + +uint8_t gc0329_contrast_pos4[] = { +}; + +// Saturation +uint8_t gc0329_saturation_neg4[] = { +}; + +uint8_t gc0329_saturation_neg3[] = { +}; + +uint8_t gc0329_saturation_neg2[] = { +}; + +uint8_t gc0329_saturation_neg1[] = { +}; + +uint8_t gc0329_saturation_zero[] = { +}; + +uint8_t gc0329_saturation_pos1[] = { +}; + +uint8_t gc0329_saturation_pos2[] = { +}; + +uint8_t gc0329_saturation_pos3[] = { +}; + +uint8_t gc0329_saturation_pos4[] = { +}; + + +// Resolution + +// QCIF +uint8_t gc0329_176x144[]={ +}; + +uint8_t gc0329_320x240[]={ + 0x59, 0x22, +}; + +uint8_t gc0329_640x480[]={ + 0x59, 0x11, +}; + + +// Initiliztion +uint8_t gc0329_default_regs_init[] = { + 0xfe, 0x80, + 0xfc, 0x12, + 0xfc, 0x12, + 0xfe, 0x00, + + 0xfa, 0x11, + + 0xf0, 0x07, + 0xf1, 0x01, + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + 0xfc, 0x16, + + 0x05, 0x01, + 0x06, 0x32, + 0x07, 0x00, + 0x08, 0x70, + 0xfe, 0x01, + 0x29, 0x00, + 0x2a, 0x3c, + /* + 0x2b, 0x02, + 0x2c, 0x58, + 0x2d, 0x02, + + 0x2e, 0xd0, + 0x2f, 0x03, + 0x30, 0x48, + 0x31, 0x04, + 0x32, 0x38,*/ + 0x2b, 0x02, + 0x2c, 0xd0, + 0x2d, 0x03, + + 0x2e, 0x48, + 0x2f, 0x03, + 0x30, 0x84, + 0x31, 0x04, + 0x32, 0x38, + 0x33, 0x20, + 0xfe, 0x00, + + + + + + 0x0a, 0x00, + 0x0c, 0x00, + 0x17, 0x14, //14 + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x00, + 0x1f, 0xc8, + 0x20, 0x00, + 0x21, 0x48, + 0x23, 0x22, + 0x24, 0x13,//0x16 + + + 0x26, 0xf7, + 0x28, 0x7f, + 0x29, 0x00, + 0x32, 0x00, + 0x33, 0x20, + 0x34, 0x20, + 0x35, 0x20, + 0x36, 0x20, + 0x3b, 0x04, + 0x3c, 0x04, + 0x3d, 0x04, + 0x3e, 0x04, + + 0x40, 0xff, + 0x41, 0x00, + 0x42, 0xfe, + 0x46, 0x02, + 0x4b, 0xcb, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + 0x80, 0xe7, + 0x82, 0x60,//0x55 + 0x87, 0x4a, + 0xfe, 0x01, + 0x18, 0x22, + 0xfe, 0x00, + 0x9c, 0x0a, + 0xa4, 0x50, + 0xa5, 0x21, + 0xa7, 0x35, + 0xdd, 0x54, + 0x95, 0x45,//0x35 + 0xfe, 0x00, + ///gamma + /* + 0xbf, 0x06, + 0xc0, 0x14, + 0xc1, 0x27, + 0xc2, 0x3b, + 0xc3, 0x4f, + 0xc4, 0x62, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc9, + 0xca, 0xd6, + 0xcb, 0xe0, + 0xcc, 0xe8, + 0xcd, 0xf4, + 0xce, 0xfc, + 0xcf, 0xff, + */ + + 0xBF, 0x0B, + 0xc0, 0x16, + 0xc1, 0x29, + 0xc2, 0x3C, + 0xc3, 0x4F, + 0xc4, 0x5F, + 0xc5, 0x6F, + 0xc6, 0x8A, + 0xc7, 0x9F, + 0xc8, 0xB4, + 0xc9, 0xC6, + 0xcA, 0xD3, + 0xcB, 0xDD, + 0xcC, 0xE5, + 0xcD, 0xF1, + 0xcE, 0xFA, + 0xcF, 0xFF, + /*0xBF, 0x14, + 0xc0, 0x28, + 0xc1, 0x44, + 0xc2, 0x5D, + 0xc3, 0x72, + 0xc4, 0x86, + 0xc5, 0x95, + 0xc6, 0xB1, + 0xc7, 0xC6, + 0xc8, 0xD5, + 0xc9, 0xE1, + 0xcA, 0xEA, + 0xcB, 0xF1, + 0xcC, 0xF5, + 0xcD, 0xFB, + 0xcE, 0xFE, + 0xcF, 0xFF,*/ + + + 0xfe, 0x00, + 0xb3, 0x38,//44 cyrille 40 + 0xb4, 0xfd, + 0xb5, 0x02, + 0xb6, 0xfa, + 0xb7, 0x48, + 0xb8, 0xf0, + 0x50, 0x01, + 0x19, 0x05, + 0x20, 0x01, + 0x22, 0xba, + 0x21, 0x48, + 0xfe, 0x00, + 0xd1, 0x28,// 34 cyrille + 0xd2, 0x26,//34 cyrille + 0x7a, 0x7a,// cyrille 7d + 0x7b, 0x81,// cyrille + 0x7c, 0x80,// cyrille + 0xfe, 0x01, + 0x10, 0x40, + 0x12, 0x27,//17 cyrille + 0x13, 0x56,//60 cyrille + 0x17, 0x88, + 0x21, 0x80,//b0 cyrille + 0x22, 0x40,//60 cyrille + 0x3c, 0x82, + 0x3d, 0x55, + 0x3e, 0x48, + 0xfe, 0x01, + 0x06, 0x08, + 0x07, 0x06, + 0x08, 0xa6, + 0x09, 0xee, + 0x6a, 0x40, + 0x6b, 0x39, + 0xd0, 0x00, + 0xd2, 0x2c, + 0xd3, 0x80, + 0x9c, 0x00, + 0x9d, 0x10, + 0x9e, 0xc0, + 0x9f, 0x40, + 0xfe, 0x01, + 0xa0, 0x00, + 0xa1, 0x3c, + 0xa2, 0x50, + 0xa3, 0x00, + 0xa8, 0x0f, + 0xa9, 0x08, + 0xaa, 0x00, + 0xab, 0x04, + 0xac, 0x00, + 0xad, 0x07, + 0xae, 0x0e, + 0xaf, 0x00, + 0xb0, 0x00, + 0xb1, 0x09, + 0xb2, 0x00, + 0xb3, 0x00, + 0xb4, 0x31, + 0xb5, 0x19, + 0xb6, 0x24, + 0xba, 0x3a, + 0xbb, 0x24, + 0xbc, 0x2a, + 0xc0, 0x17, + 0xc1, 0x13, + 0xc2, 0x17, + 0xc6, 0x21, + 0xc7, 0x1c, + 0xc8, 0x1c, + 0xb7, 0x00, + 0xb8, 0x00, + 0xb9, 0x00, + 0xbd, 0x00, + 0xbe, 0x00, + 0xbf, 0x00, + 0xc3, 0x00, + 0xc4, 0x00, + 0xc5, 0x00, + 0xc9, 0x00, + 0xca, 0x00, + 0xcb, 0x00, + 0xa4, 0x00, + 0xa5, 0x00, + 0xa6, 0x00, + 0xa7, 0x00, + 0xfe, 0x00, + + 0xfe,0x01, + 0x18,0x22, + 0x21,0x80,//c0 cyrille + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x28, //34 cyrille + 0xd2,0x26, //34 cyrille + 0xd3,0x40,// 3b cyrille + 0xd5,0x00,//0c cyrille + 0xfe,0x00, + + 0xa0, 0xaf, + 0xa2, 0xff, + 0x44, 0xa2, +}; + +uint8_t gc0329_default_regs_exit[] = { +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-jmt781.h b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-jmt781.h new file mode 100755 index 00000000..0dbf462f --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-jmt781.h @@ -0,0 +1,496 @@ +#ifndef GC0329_H +#define GC0329_H + + +// Scene Mode +uint8_t gc0329_scene_mode_auto[] = { +}; + +uint8_t gc0329_scene_mode_night[] = { +}; + + +// White Balance +uint8_t gc0329_wb_auto [] = { + 0xfe, 0x00, + 0x77, 0x57, + 0x78, 0x4d, + 0x79, 0x45, + 0x42, 0xfe, //AWB on +}; + +uint8_t gc0329_wb_incandescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x48, + 0x78, 0x40, + 0x79, 0x5c, + +}; + +uint8_t gc0329_wb_fluorescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x42, + 0x79, 0x50, + +}; + +uint8_t gc0329_wb_daylight [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x74, + 0x78, 0x52, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_cloudy [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x8c, + 0x78, 0x50, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_tungsten [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x54, + 0x79, 0x70, + +}; + + +// Exposure +uint8_t gc0329_exposure_neg6[] = { + 0xfe, 0x00, + 0xd5, 0xe0, + 0xfe, 0x01, + 0x13, 0x40, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_neg3[] = { + 0xfe, 0x00, + 0xd5, 0xf0, + 0xfe, 0x01, + 0x13, 0x48, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_zero[] = { + 0xfe, 0x00, + 0xd5, 0x00, + 0xfe, 0x01, + 0x13, 0x60, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos3[] = { + + 0xfe, 0x00, + 0xd5, 0x10, + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos6[] = { + 0xfe, 0x00, + 0xd5, 0x20, + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x00, + +}; + + +// Color Effect +uint8_t gc0329_colorfx_none[] = { + 0xfe, 0x00, + 0x43 , 0x00, +}; + +uint8_t gc0329_colorfx_bw[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x00, + 0xdb , 0x00, + +}; + +uint8_t gc0329_colorfx_sepia[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xd0, + 0xdb , 0x28, + +}; + +uint8_t gc0329_colorfx_negative[] = { + 0xfe, 0x00, + 0x43 , 0x01, +}; + +uint8_t gc0329_colorfx_emboss[] = { +}; + +uint8_t gc0329_colorfx_sketch[] = { + +}; + +uint8_t gc0329_colorfx_sky_blue[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x50, + 0xdb , 0xe0, + +}; + +uint8_t gc0329_colorfx_grass_green[] = { + + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xc0, + 0xdb , 0xc0, + +}; + +uint8_t gc0329_colorfx_skin_whiten[] = { +}; + +uint8_t gc0329_colorfx_vivid[] = { +}; + +// Brightness +uint8_t gc0329_brightness_neg4[] = { +}; + +uint8_t gc0329_brightness_neg3[] = { +}; + +uint8_t gc0329_brightness_neg2[] = { +}; + +uint8_t gc0329_brightness_neg1[] = { +}; + +uint8_t gc0329_brightness_zero[] = { +}; + +uint8_t gc0329_brightness_pos1[] = { +}; + +uint8_t gc0329_brightness_pos2[] = { +}; + +uint8_t gc0329_brightness_pos3[] = { +}; + +uint8_t gc0329_brightness_pos4[] = { +}; + +// Contrast +uint8_t gc0329_contrast_neg4[] = { +}; + +uint8_t gc0329_contrast_neg3[] = { +}; + +uint8_t gc0329_contrast_neg2[] = { +}; + +uint8_t gc0329_contrast_neg1[] = { +}; + +uint8_t gc0329_contrast_zero[] = { +}; + +uint8_t gc0329_contrast_pos1[] = { +}; + +uint8_t gc0329_contrast_pos2[] = { +}; + +uint8_t gc0329_contrast_pos3[] = { +}; + +uint8_t gc0329_contrast_pos4[] = { +}; + +// Saturation +uint8_t gc0329_saturation_neg4[] = { +}; + +uint8_t gc0329_saturation_neg3[] = { +}; + +uint8_t gc0329_saturation_neg2[] = { +}; + +uint8_t gc0329_saturation_neg1[] = { +}; + +uint8_t gc0329_saturation_zero[] = { +}; + +uint8_t gc0329_saturation_pos1[] = { +}; + +uint8_t gc0329_saturation_pos2[] = { +}; + +uint8_t gc0329_saturation_pos3[] = { +}; + +uint8_t gc0329_saturation_pos4[] = { +}; + + +// Resolution + +// QCIF +uint8_t gc0329_176x144[]={ +}; + +uint8_t gc0329_320x240[]={ + 0x59, 0x22, +}; + +uint8_t gc0329_640x480[]={ + 0x59, 0x11, +}; + + +// Initiliztion +uint8_t gc0329_default_regs_init[] = { + 0xfe, 0x80, + 0xfc, 0x12, + 0xfc, 0x12, + 0xfe, 0x00, + + 0xfa, 0x11, + + 0xf0, 0x07, + 0xf1, 0x01, + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + 0xfc, 0x16, + + 0x05, 0x01, + 0x06, 0x32, + 0x07, 0x00, + 0x08, 0x70, + 0xfe, 0x01, + 0x29, 0x00, + 0x2a, 0x3c, + 0x2b, 0x02, + 0x2c, 0x58, + 0x2d, 0x03, + + 0x2e, 0x48, + 0x2f, 0x03, + 0x30, 0x48, + 0x31, 0x05, + 0x32, 0xa0, + 0x33, 0x20, + 0xfe, 0x00, + + + + + + 0x0a, 0x00, + 0x0c, 0x00, + 0x17, 0x14, + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x00, + 0x1f, 0xc8, + 0x20, 0x00, + 0x21, 0x48, + 0x23, 0x22, + 0x24, 0x16, + 0x26, 0xf7, + 0x32, 0x04, + 0x33, 0x20, + 0x34, 0x20, + 0x35, 0x20, + 0x36, 0x20, + 0x40, 0xff, + 0x41, 0x00, + 0x42, 0xfe, + 0x46, 0x02, + 0x4b, 0xcb, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + 0x80, 0xe7, + 0x82, 0x55, + 0x87, 0x4a, + 0xfe, 0x01, + 0x18, 0x22, + 0xfe, 0x00, + 0x9c, 0x0a, + 0xa4, 0x50, + 0xa5, 0x21, + 0xa7, 0x35, + 0xdd, 0x54, + 0x95, 0x35, + 0xfe, 0x00, + 0xbf, 0x06, + 0xc0, 0x14, + 0xc1, 0x27, + 0xc2, 0x3b, + 0xc3, 0x4f, + 0xc4, 0x62, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc9, + 0xca, 0xd6, + 0xcb, 0xe0, + 0xcc, 0xe8, + 0xcd, 0xf4, + 0xce, 0xfc, + 0xcf, 0xff, + 0xfe, 0x00, + + 0xb3, 0x40,// 44 + 0xb4, 0xfd, + 0xb5, 0x02, + 0xb6, 0xf0,// fa + 0xb7, 0x48, + 0xb8, 0xf0, + + 0x50, 0x01, + 0x19, 0x05, + 0x20, 0x01, + 0x22, 0xba, + 0x21, 0x48, + 0xfe, 0x00, + 0xd1, 0x34, + 0xd2, 0x34, + 0xfe, 0x01, + 0x10, 0x40, + 0x12, 0x07, + 0x13, 0x60, + 0x17, 0x88, + 0x21, 0xb0, + 0x22, 0x48, + 0x3c, 0x95, + 0x3d, 0x50, + 0x3e, 0x48, + 0xfe, 0x01, + 0x06, 0x08, + 0x07, 0x06, + 0x08, 0xa6, + 0x09, 0xee, + 0x6a, 0x40, + 0x6b, 0x39, + 0xd0, 0x00, + 0xd2, 0x2c, + 0xd3, 0x80, + 0x9c, 0x02, + 0x9d, 0x10, + 0xfe, 0x01, + 0xa0, 0x00, + 0xa1, 0x3c, + 0xa2, 0x50, + 0xa3, 0x00, + 0xa8, 0x0f, + 0xa9, 0x08, + 0xaa, 0x00, + 0xab, 0x04, + 0xac, 0x00, + 0xad, 0x07, + 0xae, 0x0e, + 0xaf, 0x00, + 0xb0, 0x00, + 0xb1, 0x09, + 0xb2, 0x00, + 0xb3, 0x00, + 0xb4, 0x31, + 0xb5, 0x19, + 0xb6, 0x24, + 0xba, 0x3a, + 0xbb, 0x24, + 0xbc, 0x2a, + 0xc0, 0x17, + 0xc1, 0x13, + 0xc2, 0x17, + 0xc6, 0x21, + 0xc7, 0x1c, + 0xc8, 0x1c, + 0xb7, 0x00, + 0xb8, 0x00, + 0xb9, 0x00, + 0xbd, 0x00, + 0xbe, 0x00, + 0xbf, 0x00, + 0xc3, 0x00, + 0xc4, 0x00, + 0xc5, 0x00, + 0xc9, 0x00, + 0xca, 0x00, + 0xcb, 0x00, + 0xa4, 0x00, + 0xa5, 0x00, + 0xa6, 0x00, + 0xa7, 0x00, + 0xfe, 0x00, + + 0xfe,0x01, + 0x18,0x22, + 0x21,0xc0, + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x34, + 0xd2,0x34, + 0xfe,0x00, + + 0xa0, 0xaf, + 0xa2, 0xff, + 0x44, 0xa2, +}; + +uint8_t gc0329_default_regs_exit[] = { +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-kyt-174-v7.h b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-kyt-174-v7.h new file mode 100755 index 00000000..dfa6527f --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-kyt-174-v7.h @@ -0,0 +1,992 @@ +#ifndef GC0329_H +#define GC0329_H + + +// Scene Mode +uint8_t gc0329_scene_mode_auto[] = { +}; + +uint8_t gc0329_scene_mode_night[] = { +}; + + +// White Balance +uint8_t gc0329_wb_auto [] = { + 0xfe, 0x00, +// 0x77, 0x57, +// 0x78, 0x4d, +// 0x79, 0x45, + 0x42, 0xfe, //AWB on +}; + +uint8_t gc0329_wb_incandescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x48, + 0x78, 0x40, + 0x79, 0x5c, + +}; + +uint8_t gc0329_wb_fluorescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x42, + 0x79, 0x50, + +}; + +uint8_t gc0329_wb_daylight [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x74, + 0x78, 0x52, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_cloudy [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x8c, + 0x78, 0x50, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_tungsten [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x54, + 0x79, 0x70, + +}; + + +// Exposure +uint8_t gc0329_exposure_neg6[] = { + 0xfe, 0x00, + 0xd5, 0xe0, + 0xfe, 0x01, + 0x13, 0x48, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_neg3[] = { + 0xfe, 0x00, + 0xd5, 0xf0, + 0xfe, 0x01, + 0x13, 0x75, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_zero[] = { + 0xfe, 0x00, + 0xd5, 0x00, + 0xfe, 0x01, + 0x13, 0x96, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos3[] = { + + 0xfe, 0x00, + 0xd5, 0x10, + 0xfe, 0x01, + 0x13, 0x98, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos6[] = { + 0xfe, 0x00, + 0xd5, 0x20, + 0xfe, 0x01, + 0x13, 0x9c, + 0xfe, 0x00, + +}; + + +// Color Effect +uint8_t gc0329_colorfx_none[] = { + 0xfe, 0x00, + 0x43 , 0x00, +}; + +uint8_t gc0329_colorfx_bw[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x00, + 0xdb , 0x00, + +}; + +uint8_t gc0329_colorfx_sepia[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xd0, + 0xdb , 0x28, + +}; + +uint8_t gc0329_colorfx_negative[] = { + 0xfe, 0x00, + 0x43 , 0x01, +}; + +uint8_t gc0329_colorfx_emboss[] = { +}; + +uint8_t gc0329_colorfx_sketch[] = { + +}; + +uint8_t gc0329_colorfx_sky_blue[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x50, + 0xdb , 0xe0, + +}; + +uint8_t gc0329_colorfx_grass_green[] = { + + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xc0, + 0xdb , 0xc0, + +}; + +uint8_t gc0329_colorfx_skin_whiten[] = { +}; + +uint8_t gc0329_colorfx_vivid[] = { +}; + +// Brightness +uint8_t gc0329_brightness_neg4[] = { +}; + +uint8_t gc0329_brightness_neg3[] = { +}; + +uint8_t gc0329_brightness_neg2[] = { +}; + +uint8_t gc0329_brightness_neg1[] = { +}; + +uint8_t gc0329_brightness_zero[] = { +}; + +uint8_t gc0329_brightness_pos1[] = { +}; + +uint8_t gc0329_brightness_pos2[] = { +}; + +uint8_t gc0329_brightness_pos3[] = { +}; + +uint8_t gc0329_brightness_pos4[] = { +}; + +// Contrast +uint8_t gc0329_contrast_neg4[] = { +}; + +uint8_t gc0329_contrast_neg3[] = { +}; + +uint8_t gc0329_contrast_neg2[] = { +}; + +uint8_t gc0329_contrast_neg1[] = { +}; + +uint8_t gc0329_contrast_zero[] = { +}; + +uint8_t gc0329_contrast_pos1[] = { +}; + +uint8_t gc0329_contrast_pos2[] = { +}; + +uint8_t gc0329_contrast_pos3[] = { +}; + +uint8_t gc0329_contrast_pos4[] = { +}; + +// Saturation +uint8_t gc0329_saturation_neg4[] = { +}; + +uint8_t gc0329_saturation_neg3[] = { +}; + +uint8_t gc0329_saturation_neg2[] = { +}; + +uint8_t gc0329_saturation_neg1[] = { +}; + +uint8_t gc0329_saturation_zero[] = { +}; + +uint8_t gc0329_saturation_pos1[] = { +}; + +uint8_t gc0329_saturation_pos2[] = { +}; + +uint8_t gc0329_saturation_pos3[] = { +}; + +uint8_t gc0329_saturation_pos4[] = { +}; + + +// Resolution + +// QCIF +uint8_t gc0329_176x144[]={ +}; + +uint8_t gc0329_320x240[]={ + 0x59, 0x22, +}; + +uint8_t gc0329_640x480[]={ + 0x59, 0x11, +}; + + +// Initiliztion +uint8_t gc0329_default_regs_init[] = { +#if 1 + 0xfe, 0x80, + 0xfc, 0x12, + 0xfc, 0x12, + 0xfe, 0x00, + 0xf0, 0x07, + 0xf1, 0x01, + +//20131009 50hz anti fliker + 0xfa, 0x11, //0x00 clk_div + 0x05, 0x01, + 0x06, 0x32, + 0x07, 0x00, + 0x08, 0x70, + + 0xfe, 0x01, + 0x29, 0x00, //anti-flicker step [11:8] + 0x2a, 0x3c, //anti-flicker step [7:0] + + 0x2b, 0x02, //exp level 0 14.28fps + 0x2c, 0x58, + 0x2d, 0x02, //exp level 1 12.50fps + 0x2e, 0xd0, + 0x2f, 0x03, //exp level 2 10.00fps + 0x30, 0x48, + 0x31, 0x04, //exp level 3 7.14fps + 0x32, 0x38, + 0x33, 0x20, + 0xfe, 0x00, +// + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + 0xfc, 0x16, + 0x0a, 0x02, + 0x0c, 0x02, + 0x17, 0x14, + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x00, + 0x1f, 0xc0, + 0x20, 0x00, + 0x21, 0x48, + 0x23, 0x22, + 0x24, 0x16, + 0x26, 0xf7, + 0x32, 0x04, + 0x33, 0x20, + 0x34, 0x20, + 0x35, 0x20, + 0x36, 0x20, + 0x40, 0xff, + 0x41, 0x00, + 0x42, 0xfe, + 0x46, 0x02, + 0x4b, 0xcb, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + 0x80, 0xe7, + 0x82, 0x25,//55 + 0x83, 0x01,//03 + 0x87, 0x4a, + 0xfe, 0x01, + 0x18, 0x22, + 0xfe, 0x00, + 0x9c, 0x0a, + 0xa4, 0x50, + 0xa5, 0x21, + 0xa7, 0x35, + 0xdd, 0x04,//54 + 0x95, 0x35, + 0xfe, 0x00, + 0xbf, 0x06, + 0xc0, 0x14, + 0xc1, 0x27, + 0xc2, 0x3b, + 0xc3, 0x4f, + 0xc4, 0x62, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc9, + 0xca, 0xd6, + 0xcb, 0xe0, + 0xcc, 0xe8, + 0xcd, 0xf4, + 0xce, 0xfc, + 0xcf, 0xff, + 0xfe, 0x00, + 0xb3, 0x38, + 0xb4, 0xfd, + 0xb5, 0x02, + 0xb6, 0xfa, + 0xb7, 0x48, + 0xb8, 0xf0, + 0x50, 0x01, + 0x19, 0x05, + 0x20, 0x01, + 0x22, 0xba, + 0x21, 0x48, + 0xfe, 0x00, + 0xd1, 0x28, + 0xd2, 0x28, + 0xd3, 0x32,//40 + 0xfe, 0x01, + 0x10, 0x40, + 0x12, 0x07, + 0x13, 0x96, + 0x17, 0x88, + 0x21, 0xb0, + 0x22, 0x48, + 0x3c, 0x95, + 0x3d, 0x50, + 0x3e, 0x48, + 0xfe, 0x01, + 0x06, 0x08, + 0x07, 0x06, + 0x08, 0xa6, + 0x09, 0xee, + 0x6a, 0x40, + 0x6b, 0x39, + 0xd0, 0x00, + 0xd2, 0x2c, + 0xd3, 0x80, + 0x9c, 0x02, + 0x9d, 0x10, + 0xfe, 0x01, + 0xa0, 0x00, + 0xa1, 0x3c, + 0xa2, 0x50, + 0xa3, 0x00, + 0xa8, 0x0f, + 0xa9, 0x08, + 0xaa, 0x00, + 0xab, 0x04, + 0xac, 0x00, + 0xad, 0x07, + 0xae, 0x0e, + 0xaf, 0x00, + 0xb0, 0x00, + 0xb1, 0x09, + 0xb2, 0x00, + 0xb3, 0x00, + 0xb4, 0x31, + 0xb5, 0x19, + 0xb6, 0x24, + 0xba, 0x3a, + 0xbb, 0x24, + 0xbc, 0x2a, + 0xc0, 0x17, + 0xc1, 0x13, + 0xc2, 0x17, + 0xc6, 0x21, + 0xc7, 0x1c, + 0xc8, 0x1c, + 0xb7, 0x00, + 0xb8, 0x00, + 0xb9, 0x00, + 0xbd, 0x00, + 0xbe, 0x00, + 0xbf, 0x00, + 0xc3, 0x00, + 0xc4, 0x00, + 0xc5, 0x00, + 0xc9, 0x00, + 0xca, 0x00, + 0xcb, 0x00, + 0xa4, 0x00, + 0xa5, 0x00, + 0xa6, 0x00, + 0xa7, 0x00, + 0xfe, 0x00, + + 0xfe,0x01, + 0x18,0x22, + 0x21,0xc0, + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x34, + 0xd2,0x34, + 0xfe,0x00, + + 0xa0, 0xaf, + 0xa2, 0xff, + 0x44, 0xa2, +#else + 0xfe,0x80, + 0xfe,0x80, + 0xfc,0x16, + 0xfc,0x16, + 0xfc,0x16, + 0xfc,0x16, + 0xfe,0x00, + 0xf0,0x07, + 0xf1,0x01, + + 0xfa,0x11, //0x00 clk_div + + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + + 0x42, 0x00, + 0x77, 0x57, + 0x78, 0x4d, + 0x79, 0x45, + //0x42, 0xfc, + +#if 1 //12M clk + 0x05, 0x01, + 0x06, 0x32, + 0x07, 0x00, + 0x08, 0x70, + + 0xfe, 0x01, + 0x29, 0x00, //anti-flicker step [11:8] + 0x2a, 0x3c, //anti-flicker step [7:0] + + 0x2b, 0x02, //exp level 0 14.28fps + 0x2c, 0x58, + 0x2d, 0x02, //exp level 1 12.50fps + 0x2e, 0xd0, + 0x2f, 0x03, //exp level 2 10.00fps + 0x30, 0x48, + 0x31, 0x04, //exp level 3 7.14fps + 0x32, 0x38, + 0x33, 0x20, + 0xfe, 0x00, +#else //24M clk + 0x05, 0x02, + 0x06, 0x2c, + 0x07, 0x00, + 0x08, 0xb8, + + 0xfe, 0x01, + 0x29, 0x00, //anti-flicker step [11:8] + 0x2a, 0x60, //anti-flicker step [7:0] + + 0x2b, 0x02, //exp level 0 14.28fps + 0x2c, 0xa0, + 0x2d, 0x03, //exp level 1 12.50fps + 0x2e, 0x00, + 0x2f, 0x03, //exp level 2 10.00fps + 0x30, 0xc0, + 0x31, 0x05, //exp level 3 7.14fps + 0x32, 0x40, + 0x33, 0x20, + 0xfe, 0x00, +#endif + ////////////////////analog//////////////////// + 0x0a, 0x02, + 0x0c, 0x02, + 0x17, 0x14, + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x08, + 0x1f, 0xc8, // c0 20120720 + 0x20, 0x00, + 0x21, 0x48, + 0x22, 0xba, + 0x23, 0x22, + 0x24, 0x16, + + ////////////////////blk//////////////////// + 0x26,0xf7, + 0x28,0x7f,// 20130819 lanking + 0x29,0x80, + 0x32,0x04, + 0x33,0x20, + 0x34,0x20, + 0x35,0x20, + 0x36,0x20, + + ////////////////////ISP BLOCK ENABL//////////////////// + 0x40, 0xff, + 0x41, 0x44, + 0x42, 0x7e, + 0x44, 0xa2, ///yuv order + 0x46, 0x03, // vsync + 0x4b, 0xca, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + + //0xb0,0x00, + //0xbc,0x00, + //0xbd,0x00, + //0xbe,0x00, + ////////////////////DNDD//////////////////// + 0x80, 0xe7, + 0x82, 0x55, + 0x83, 0x03, + 0x87, 0x4a, + + ////////////////////INTPEE//////////////////// + 0x95,0x45, + + ////////////////////ASDE//////////////////// + //0xfe,0x01, + //0x18,0x22, + //0xfe,0x00, + //0x9c,0x0a, + //0xa0,0xaf, + //0xa2,0xff, + //0xa4,0x50, + //0xa5,0x21, + //0xa7,0x35, + + ////////////////////RGB gamma//////////////////// + //RGB gamma m4' + 0xbf, 0x06, + 0xc0, 0x14, + 0xc1, 0x27, + 0xc2, 0x3b, + 0xc3, 0x4f, + 0xc4, 0x62, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc9, + 0xcA, 0xd6, + 0xcB, 0xe0, + 0xcC, 0xe8, + 0xcD, 0xf4, + 0xcE, 0xFc, + 0xcF, 0xFF, +#if 0 + case GC0329_RGB_Gamma_m1: //smallest gamma curve + 0xfe, 0x00, + 0xbf, 0x06, + 0xc0, 0x12, + 0xc1, 0x22, + 0xc2, 0x35, + 0xc3, 0x4b, + 0xc4, 0x5f, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc8, + 0xca, 0xd4, + 0xcb, 0xde, + 0xcc, 0xe6, + 0xcd, 0xf1, + 0xce, 0xf8, + 0xcf, 0xfd, + + case GC0329_RGB_Gamma_m2: + 0xBF, 0x08, + 0xc0, 0x0F, + 0xc1, 0x21, + 0xc2, 0x32, + 0xc3, 0x43, + 0xc4, 0x50, + 0xc5, 0x5E, + 0xc6, 0x78, + 0xc7, 0x90, + 0xc8, 0xA6, + 0xc9, 0xB9, + 0xcA, 0xC9, + 0xcB, 0xD6, + 0xcC, 0xE0, + 0xcD, 0xEE, + 0xcE, 0xF8, + 0xcF, 0xFF, + + case GC0329_RGB_Gamma_m3: + 0xBF, 0x0B, + 0xc0, 0x16, + 0xc1, 0x29, + 0xc2, 0x3C, + 0xc3, 0x4F, + 0xc4, 0x5F, + 0xc5, 0x6F, + 0xc6, 0x8A, + 0xc7, 0x9F, + 0xc8, 0xB4, + 0xc9, 0xC6, + 0xcA, 0xD3, + 0xcB, 0xDD, + 0xcC, 0xE5, + 0xcD, 0xF1, + 0xcE, 0xFA, + 0xcF, 0xFF, + + case GC0329_RGB_Gamma_m4: + 0xBF, 0x0E, + 0xc0, 0x1C, + 0xc1, 0x34, + 0xc2, 0x48, + 0xc3, 0x5A, + 0xc4, 0x6B, + 0xc5, 0x7B, + 0xc6, 0x95, + 0xc7, 0xAB, + 0xc8, 0xBF, + 0xc9, 0xCE, + 0xcA, 0xD9, + 0xcB, 0xE4, + 0xcC, 0xEC, + 0xcD, 0xF7, + 0xcE, 0xFD, + 0xcF, 0xFF, + + case GC0329_RGB_Gamma_m5: + 0xBF, 0x10, + 0xc0, 0x20, + 0xc1, 0x38, + 0xc2, 0x4E, + 0xc3, 0x63, + 0xc4, 0x76, + 0xc5, 0x87, + 0xc6, 0xA2, + 0xc7, 0xB8, + 0xc8, 0xCA, + 0xc9, 0xD8, + 0xcA, 0xE3, + 0xcB, 0xEB, + 0xcC, 0xF0, + 0xcD, 0xF8, + 0xcE, 0xFD, + 0xcF, 0xFF, + + case GC0329_RGB_Gamma_m6: // largest gamma curve + 0xBF, 0x14, + 0xc0, 0x28, + 0xc1, 0x44, + 0xc2, 0x5D, + 0xc3, 0x72, + 0xc4, 0x86, + 0xc5, 0x95, + 0xc6, 0xB1, + 0xc7, 0xC6, + 0xc8, 0xD5, + 0xc9, 0xE1, + 0xcA, 0xEA, + 0xcB, 0xF1, + 0xcC, 0xF5, + 0xcD, 0xFB, + 0xcE, 0xFE, + 0xcF, 0xFF, + + case GC0329_RGB_Gamma_night: //Gamma for night mode + 0xBF, 0x0B, + 0xc0, 0x16, + 0xc1, 0x29, + 0xc2, 0x3C, + 0xc3, 0x4F, + 0xc4, 0x5F, + 0xc5, 0x6F, + 0xc6, 0x8A, + 0xc7, 0x9F, + 0xc8, 0xB4, + 0xc9, 0xC6, + 0xcA, 0xD3, + 0xcB, 0xDD, + 0xcC, 0xE5, + 0xcD, 0xF1, + 0xcE, 0xFA, + 0xcF, 0xFF, + + //GC0329_RGB_Gamma_m1 default + 0xfe, 0x00, + 0xbf, 0x06, + 0xc0, 0x12, + 0xc1, 0x22, + 0xc2, 0x35, + 0xc3, 0x4b, + 0xc4, 0x5f, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc8, + 0xca, 0xd4, + 0xcb, 0xde, + 0xcc, 0xe6, + 0xcd, 0xf1, + 0xce, 0xf8, + 0xcf, 0xfd, +#endif + + //////////////////CC/////////////////// + 0xfe,0x00, + + 0xb3,0x44, + 0xb4,0xfd, + 0xb5,0x02, + 0xb6,0xfa, + 0xb7,0x48, + 0xb8,0xf0, + + // crop + 0x50,0x01, + + ////////////////////YCP//////////////////// + 0xfe,0x00, + 0xd1,0x38, + 0xd2,0x38, + 0xd5, 0x00, /// luma_offset + 0xdd,0x54, + + ////////////////////AEC//////////////////// + 0xfe,0x01, + 0x10,0x40, + 0x11,0x21, + 0x12,0x07, + 0x13,0x50, + 0x17,0x88, + 0x21,0xb0, + 0x22,0x48, + 0x3c,0x95, + 0x3d,0x50, + 0x3e,0x48, + + ////////////////////AWB//////////////////// + 0xfe,0x01, + 0x06,0x16, + 0x07,0x06, + 0x08,0x98, + 0x09,0xee, + 0x50,0xfc, + 0x51,0x20, + 0x52,0x0b, + 0x53,0x20, + 0x54,0x40, + 0x55,0x10, + 0x56,0x20, + //0x57,0x40, + 0x58,0xa0, + 0x59,0x28, + 0x5a,0x02, + 0x5b,0x63, + 0x5c,0x34, + 0x5d,0x73, + 0x5e,0x11, + 0x5f,0x40, + 0x60,0x40, + 0x61,0xc8, + 0x62,0xa0, + 0x63,0x40, + 0x64,0x50, + 0x65,0x98, + 0x66,0xfa, + 0x67,0x70, + 0x68,0x58, + 0x69,0x85, + 0x6a,0x40, + 0x6b,0x39, + 0x6c,0x18, + 0x6d,0x28, + 0x6e,0x41, + 0x70,0x02, + 0x71,0x00, + 0x72,0x10, + 0x73,0x40, + + //0x74,0x32, + //0x75,0x40, + //0x76,0x30, + //0x77,0x48, + //0x7a,0x50, + //0x7b,0x20, + + 0x80,0x60, + 0x81,0x50, + 0x82,0x42, + 0x83,0x40, + 0x84,0x40, + 0x85,0x40, + + 0x74,0x40, + 0x75,0x58, + 0x76,0x24, + 0x77,0x40, + 0x78,0x20, + 0x79,0x60, + 0x7a,0x58, + 0x7b,0x20, + 0x7c,0x30, + 0x7d,0x35, + 0x7e,0x10, + 0x7f,0x08, + + ////////////////////ABS//////////////////// + 0x9c,0x02, + 0x9d,0x20, + //0x9f,0x40, + + ////////////////////CC-AWB//////////////////// + 0xd0,0x00, + 0xd2,0x2c, + 0xd3,0x80, + + ////////////////////LSC/////////////////// + 0xfe,0x01, + 0xa0,0x00, + 0xa1,0x3c, + 0xa2,0x50, + 0xa3,0x00, + 0xa8,0x0f, + 0xa9,0x08, + 0xaa,0x00, + 0xab,0x04, + 0xac,0x00, + 0xad,0x07, + 0xae,0x0e, + 0xaf,0x00, + 0xb0,0x00, + 0xb1,0x09, + 0xb2,0x00, + 0xb3,0x00, + 0xb4,0x31, + 0xb5,0x19, + 0xb6,0x24, + 0xba,0x3a, + 0xbb,0x24, + 0xbc,0x2a, + 0xc0,0x17, + 0xc1,0x13, + 0xc2,0x17, + 0xc6,0x21, + 0xc7,0x1c, + 0xc8,0x1c, + 0xb7,0x00, + 0xb8,0x00, + 0xb9,0x00, + 0xbd,0x00, + 0xbe,0x00, + 0xbf,0x00, + 0xc3,0x00, + 0xc4,0x00, + 0xc5,0x00, + 0xc9,0x00, + 0xca,0x00, + 0xcb,0x00, + 0xa4,0x00, + 0xa5,0x00, + 0xa6,0x00, + 0xa7,0x00, + + ////////////////////asde /////////////////// + //0xa0,0xaf, + //0xa2,0xff, + + ////////////20120427///////////// + 0xfe,0x01, + 0x18,0x22, + 0x21,0xc0, + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x34, + 0xd2,0x34, + 0xfe,0x00, +#endif + +}; + +uint8_t gc0329_default_regs_exit[] = { +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-zh1426.h b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-zh1426.h new file mode 100755 index 00000000..37dd3384 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329-zh1426.h @@ -0,0 +1,530 @@ +#ifndef GC0329_H +#define GC0329_H + + +// Scene Mode +uint8_t gc0329_scene_mode_auto[] = { +}; + +uint8_t gc0329_scene_mode_night[] = { +}; + + +// White Balance +uint8_t gc0329_wb_auto [] = { + 0xfe, 0x00, + 0x77, 0x57, + 0x78, 0x4d, + 0x79, 0x45, + 0x42, 0xfe, //AWB on +}; + +uint8_t gc0329_wb_incandescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x48, + 0x78, 0x40, + 0x79, 0x5c, + +}; + +uint8_t gc0329_wb_fluorescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x42, + 0x79, 0x50, + +}; + +uint8_t gc0329_wb_daylight [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x74, + 0x78, 0x52, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_cloudy [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x8c, + 0x78, 0x50, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_tungsten [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x54, + 0x79, 0x70, + +}; + + +// Exposure +uint8_t gc0329_exposure_neg6[] = { + 0xfe, 0x00, + 0xd5, 0xe0, + 0xfe, 0x01, + 0x13, 0x40, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_neg3[] = { + 0xfe, 0x00, + 0xd5, 0xf0, + 0xfe, 0x01, + 0x13, 0x48, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_zero[] = { + 0xfe, 0x00, + 0xd5, 0x04, /// 00 + 0xfe, 0x01, + 0x13, 0x6a, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos3[] = { + + 0xfe, 0x00, + 0xd5, 0x10, + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos6[] = { + 0xfe, 0x00, + 0xd5, 0x20, + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x00, + +}; + + +// Color Effect +uint8_t gc0329_colorfx_none[] = { + 0xfe, 0x00, + 0x43 , 0x00, +}; + +uint8_t gc0329_colorfx_bw[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x00, + 0xdb , 0x00, + +}; + +uint8_t gc0329_colorfx_sepia[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xd0, + 0xdb , 0x28, + +}; + +uint8_t gc0329_colorfx_negative[] = { + 0xfe, 0x00, + 0x43 , 0x01, +}; + +uint8_t gc0329_colorfx_emboss[] = { +}; + +uint8_t gc0329_colorfx_sketch[] = { + +}; + +uint8_t gc0329_colorfx_sky_blue[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x50, + 0xdb , 0xe0, + +}; + +uint8_t gc0329_colorfx_grass_green[] = { + + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xc0, + 0xdb , 0xc0, + +}; + +uint8_t gc0329_colorfx_skin_whiten[] = { +}; + +uint8_t gc0329_colorfx_vivid[] = { +}; + +// Brightness +uint8_t gc0329_brightness_neg4[] = { +}; + +uint8_t gc0329_brightness_neg3[] = { +}; + +uint8_t gc0329_brightness_neg2[] = { +}; + +uint8_t gc0329_brightness_neg1[] = { +}; + +uint8_t gc0329_brightness_zero[] = { +}; + +uint8_t gc0329_brightness_pos1[] = { +}; + +uint8_t gc0329_brightness_pos2[] = { +}; + +uint8_t gc0329_brightness_pos3[] = { +}; + +uint8_t gc0329_brightness_pos4[] = { +}; + +// Contrast +uint8_t gc0329_contrast_neg4[] = { +}; + +uint8_t gc0329_contrast_neg3[] = { +}; + +uint8_t gc0329_contrast_neg2[] = { +}; + +uint8_t gc0329_contrast_neg1[] = { +}; + +uint8_t gc0329_contrast_zero[] = { +}; + +uint8_t gc0329_contrast_pos1[] = { +}; + +uint8_t gc0329_contrast_pos2[] = { +}; + +uint8_t gc0329_contrast_pos3[] = { +}; + +uint8_t gc0329_contrast_pos4[] = { +}; + +// Saturation +uint8_t gc0329_saturation_neg4[] = { +}; + +uint8_t gc0329_saturation_neg3[] = { +}; + +uint8_t gc0329_saturation_neg2[] = { +}; + +uint8_t gc0329_saturation_neg1[] = { +}; + +uint8_t gc0329_saturation_zero[] = { +}; + +uint8_t gc0329_saturation_pos1[] = { +}; + +uint8_t gc0329_saturation_pos2[] = { +}; + +uint8_t gc0329_saturation_pos3[] = { +}; + +uint8_t gc0329_saturation_pos4[] = { +}; + + +// Resolution + +// QCIF +uint8_t gc0329_176x144[]={ +}; + +uint8_t gc0329_320x240[]={ + 0x59, 0x22, +}; + +uint8_t gc0329_640x480[]={ + 0x59, 0x11, +}; + + +// Initiliztion +uint8_t gc0329_default_regs_init[] = { + 0xfe, 0x80, + 0xfc, 0x12, + 0xfc, 0x12, + 0xfe, 0x00, + + 0xfa, 0x11, + + 0xf0, 0x07, + 0xf1, 0x01, + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + 0xfc, 0x16, + + 0x05, 0x01, + 0x06, 0x32, + 0x07, 0x00, + 0x08, 0x70, + 0xfe, 0x01, + 0x29, 0x00, + 0x2a, 0x3c, + 0x2b, 0x02, + 0x2c, 0x58, + 0x2d, 0x03, + + 0x2e, 0x48, + 0x2f, 0x03, + 0x30, 0x48, + 0x31, 0x05, + 0x32, 0xa0, + 0x33, 0x20, + 0xfe, 0x00, + + + + + + 0x0a, 0x00, + 0x0c, 0x00, + 0x17, 0x14, + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x00, + 0x1f, 0xc8, + 0x20, 0x00, + 0x21, 0x48, + 0x23, 0x22, + 0x24, 0x16, + + + 0x26, 0xf7, + 0x28, 0x7f, + 0x29, 0x00, + 0x32, 0x00, + 0x33, 0x20, + 0x34, 0x20, + 0x35, 0x20, + 0x36, 0x20, + 0x3b, 0x04, + 0x3c, 0x04, + 0x3d, 0x04, + 0x3e, 0x04, + + 0x40, 0xff, + 0x41, 0x00, + 0x42, 0xfe, + 0x46, 0x02, + 0x4b, 0xcb, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + 0x80, 0xe7, + 0x82, 0x55, + 0x87, 0x4a, + 0xfe, 0x01, + 0x18, 0x22, + 0xfe, 0x00, + 0x9c, 0x0a, + 0xa4, 0x50, + 0xa5, 0x21, + 0xa7, 0x35, + 0xdd, 0x54, + 0x95, 0x35, + 0xfe, 0x00, + ///gamma + /* + 0xbf, 0x06, + 0xc0, 0x14, + 0xc1, 0x27, + 0xc2, 0x3b, + 0xc3, 0x4f, + 0xc4, 0x62, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc9, + 0xca, 0xd6, + 0xcb, 0xe0, + 0xcc, 0xe8, + 0xcd, 0xf4, + 0xce, 0xfc, + 0xcf, 0xff, + */ + + 0xBF, 0x10, + 0xc0, 0x20, + 0xc1, 0x38, + 0xc2, 0x4E, + 0xc3, 0x63, + 0xc4, 0x76, + 0xc5, 0x87, + 0xc6, 0xA2, + 0xc7, 0xB8, + 0xc8, 0xCA, + 0xc9, 0xD8, + 0xcA, 0xE3, + 0xcB, 0xEB, + 0xcC, 0xF0, + 0xcD, 0xF8, + 0xcE, 0xFD, + 0xcF, 0xFF, + + + 0xfe, 0x00, + 0xb3, 0x44, + 0xb4, 0xfd, + 0xb5, 0x02, + 0xb6, 0xfa, + 0xb7, 0x48, + 0xb8, 0xf0, + 0x50, 0x01, + 0x19, 0x05, + 0x20, 0x01, + 0x22, 0xba, + 0x21, 0x48, + 0xfe, 0x00, + 0xd1, 0x34, + 0xd2, 0x34, + 0xfe, 0x01, + 0x10, 0x40, + 0x12, 0x07, + 0x13, 0x64, + 0x17, 0x88, + 0x21, 0xb0, + 0x22, 0x58, + 0x3c, 0x85, + 0x3d, 0x50, + 0x3e, 0x48, + 0xfe, 0x01, + 0x06, 0x08, + 0x07, 0x06, + 0x08, 0xa6, + 0x09, 0xee, + 0x6a, 0x40, + 0x6b, 0x39, + 0xd0, 0x00, + 0xd2, 0x2c, + 0xd3, 0x80, + 0x9c, 0x00, + 0x9d, 0x10, + 0x9e, 0xc0, + 0x9f, 0x40, + 0xfe, 0x01, + 0xa0, 0x00, + 0xa1, 0x3c, + 0xa2, 0x50, + 0xa3, 0x00, + 0xa8, 0x0f, + 0xa9, 0x08, + 0xaa, 0x00, + 0xab, 0x04, + 0xac, 0x00, + 0xad, 0x07, + 0xae, 0x0e, + 0xaf, 0x00, + 0xb0, 0x00, + 0xb1, 0x09, + 0xb2, 0x00, + 0xb3, 0x00, + 0xb4, 0x31, + 0xb5, 0x19, + 0xb6, 0x24, + 0xba, 0x3a, + 0xbb, 0x24, + 0xbc, 0x2a, + 0xc0, 0x17, + 0xc1, 0x13, + 0xc2, 0x17, + 0xc6, 0x21, + 0xc7, 0x1c, + 0xc8, 0x1c, + 0xb7, 0x00, + 0xb8, 0x00, + 0xb9, 0x00, + 0xbd, 0x00, + 0xbe, 0x00, + 0xbf, 0x00, + 0xc3, 0x00, + 0xc4, 0x00, + 0xc5, 0x00, + 0xc9, 0x00, + 0xca, 0x00, + 0xcb, 0x00, + 0xa4, 0x00, + 0xa5, 0x00, + 0xa6, 0x00, + 0xa7, 0x00, + 0xfe, 0x00, + + 0xfe,0x01, + 0x18,0x22, + 0x21,0xc0, + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x34, + 0xd2,0x34, + 0xd3,0x3c, + 0xd5,0x08, + 0xfe,0x00, + + 0xa0, 0xaf, + 0xa2, 0xff, + 0x44, 0xa2, +}; + +uint8_t gc0329_default_regs_exit[] = { +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329.c b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329.c new file mode 100755 index 00000000..f0c0ff58 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329.c @@ -0,0 +1,345 @@ + +#include "../cmos-subdev.h" +#include "../../wmt-vid.h" +#include "gc0329.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; +}; + +struct sensor_flip{ + int h_flip; + int v_flip; +}gc0329_flip; + +#define CMOS_WIN_SIZE(n, w, h, r) \ + {.name = n, .width = w , .height = h, .regs = r, .size = ARRAY_SIZE(r) } + +static const struct cmos_win_size cmos_supported_win_sizes[] = { + //CMOS_WIN_SIZE("QVGA", 320, 240, gc0329_320x240), + CMOS_WIN_SIZE("VGA", 640, 480, gc0329_640x480), +}; + +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 = gc0329_wb_auto; + size = ARRAY_SIZE(gc0329_wb_auto); + break; + case WHITE_BALANCE_INCANDESCENCE: + regs = gc0329_wb_incandescent; + size = ARRAY_SIZE(gc0329_wb_incandescent); + break; + case WHITE_BALANCE_DAYLIGHT: + regs = gc0329_wb_daylight; + size = ARRAY_SIZE(gc0329_wb_daylight); + break; + case WHITE_BALANCE_CLOUDY: + regs = gc0329_wb_cloudy; + size = ARRAY_SIZE(gc0329_wb_cloudy); + break; + case WHITE_BALANCE_FLUORESCENT: + regs = gc0329_wb_fluorescent; + size = ARRAY_SIZE(gc0329_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 = gc0329_scene_mode_auto; + size = ARRAY_SIZE(gc0329_scene_mode_auto); + break; + case SCENE_MODE_NIGHTSHOT: + regs = gc0329_scene_mode_night; + size = ARRAY_SIZE(gc0329_scene_mode_night); + break; + default: + return -EINVAL; + } + + sensor_write_array(sd, regs, size); + return 0; +} + +static int sensor_s_exposure(struct cmos_subdev *sd, int value) +{ + uint8_t *regs; + size_t size; + + switch (value) { + case -2: + regs = gc0329_exposure_neg6; + size = ARRAY_SIZE(gc0329_exposure_neg6); + break; + case -1: + regs = gc0329_exposure_neg3; + size = ARRAY_SIZE(gc0329_exposure_neg3); + break; + case 0: + regs = gc0329_exposure_zero; + size = ARRAY_SIZE(gc0329_exposure_zero); + break; + case 1: + regs = gc0329_exposure_pos3; + size = ARRAY_SIZE(gc0329_exposure_pos3); + break; + case 2: + regs = gc0329_exposure_pos6; + size = ARRAY_SIZE(gc0329_exposure_pos6); + 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; + + sensor_write(sd, 0xfe, 0x00); // set page0 + + //data = sensor_read(sd, 0x17); + + switch (value) { + case 0: + gc0329_flip.h_flip = 0x00; + data= (0x14&~0x01); + break; + case 1: + gc0329_flip.h_flip =0x01; + data = (0x14|0x01); + break; + default: + return -EINVAL; + } + + data|=gc0329_flip.v_flip; + sensor_write(sd, 0x17, data); + msleep(150); + + return 0; +} + +static int sensor_s_vflip(struct cmos_subdev *sd, int value) +{ + uint8_t data; + + sensor_write(sd, 0xfe, 0x00); // set page0 + + //data = sensor_read(sd, 0x17); + + switch (value) { + case 0: + gc0329_flip.v_flip = 0x00; + data = (0x14&~0x02); + break; + case 1: + gc0329_flip.v_flip = 0x02; + data = (0x14|0x02); + break; + default: + return -EINVAL; + } + + data|=gc0329_flip.h_flip; + sensor_write(sd, 0x17, data); + msleep(150); + + 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); + 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; + + 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(300); + 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) +{ + sensor_write(sd, 0xfc, 0x16); + return (sensor_read(sd, 0) == sd->id) ? 0 : -EINVAL; +} + +static int sensor_init(struct cmos_subdev *sd) +{ + if (sensor_identify(sd)) { + return -1; + } + + gc0329_flip.h_flip=0; + gc0329_flip.v_flip=0; + sensor_write_array(sd, gc0329_default_regs_init, + ARRAY_SIZE(gc0329_default_regs_init)); + return 0; +} + +static int sensor_exit(struct cmos_subdev *sd) +{ + sensor_write_array(sd, gc0329_default_regs_exit, + ARRAY_SIZE(gc0329_default_regs_exit)); + return 0; +} + +static struct cmos_subdev_ops gc0329_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 gc0329 = { + .name = "gc0329", + .i2c_addr = 0x31, + .id = 0xc0, + .max_width = 640, + .max_height = 480, + .ops = &gc0329_ops, +}; + +#if 0 +static int __init gc0329_init(void) +{ + return cmos_register_sudbdev(&gc0329); +} + +static void __exit gc0329_exit(void) +{ + return cmos_unregister_subdev(&gc0329); +} + +module_init(gc0329_init); +module_exit(gc0329_exit); + +MODULE_LICENSE("GPL"); +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329.h b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329.h new file mode 100755 index 00000000..9cd67ac5 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329.h @@ -0,0 +1,530 @@ +#ifndef GC0329_H +#define GC0329_H + + +// Scene Mode +uint8_t gc0329_scene_mode_auto[] = { +}; + +uint8_t gc0329_scene_mode_night[] = { +}; + + +// White Balance +uint8_t gc0329_wb_auto [] = { + 0xfe, 0x00, + 0x77, 0x57, + 0x78, 0x4d, + 0x79, 0x45, + 0x42, 0xfe, //AWB on +}; + +uint8_t gc0329_wb_incandescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x48, + 0x78, 0x40, + 0x79, 0x5c, + +}; + +uint8_t gc0329_wb_fluorescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x42, + 0x79, 0x50, + +}; + +uint8_t gc0329_wb_daylight [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x74, + 0x78, 0x52, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_cloudy [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x8c, + 0x78, 0x50, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_tungsten [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x54, + 0x79, 0x70, + +}; + + +// Exposure +uint8_t gc0329_exposure_neg6[] = { + 0xfe, 0x00, + 0xd5, 0xe0, + 0xfe, 0x01, + 0x13, 0x40, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_neg3[] = { + 0xfe, 0x00, + 0xd5, 0xf0, + 0xfe, 0x01, + 0x13, 0x48, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_zero[] = { + 0xfe, 0x00, + 0xd5, 0x04, /// 00 + 0xfe, 0x01, + 0x13, 0x6a, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos3[] = { + + 0xfe, 0x00, + 0xd5, 0x10, + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos6[] = { + 0xfe, 0x00, + 0xd5, 0x20, + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x00, + +}; + + +// Color Effect +uint8_t gc0329_colorfx_none[] = { + 0xfe, 0x00, + 0x43 , 0x00, +}; + +uint8_t gc0329_colorfx_bw[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x00, + 0xdb , 0x00, + +}; + +uint8_t gc0329_colorfx_sepia[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xd0, + 0xdb , 0x28, + +}; + +uint8_t gc0329_colorfx_negative[] = { + 0xfe, 0x00, + 0x43 , 0x01, +}; + +uint8_t gc0329_colorfx_emboss[] = { +}; + +uint8_t gc0329_colorfx_sketch[] = { + +}; + +uint8_t gc0329_colorfx_sky_blue[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x50, + 0xdb , 0xe0, + +}; + +uint8_t gc0329_colorfx_grass_green[] = { + + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xc0, + 0xdb , 0xc0, + +}; + +uint8_t gc0329_colorfx_skin_whiten[] = { +}; + +uint8_t gc0329_colorfx_vivid[] = { +}; + +// Brightness +uint8_t gc0329_brightness_neg4[] = { +}; + +uint8_t gc0329_brightness_neg3[] = { +}; + +uint8_t gc0329_brightness_neg2[] = { +}; + +uint8_t gc0329_brightness_neg1[] = { +}; + +uint8_t gc0329_brightness_zero[] = { +}; + +uint8_t gc0329_brightness_pos1[] = { +}; + +uint8_t gc0329_brightness_pos2[] = { +}; + +uint8_t gc0329_brightness_pos3[] = { +}; + +uint8_t gc0329_brightness_pos4[] = { +}; + +// Contrast +uint8_t gc0329_contrast_neg4[] = { +}; + +uint8_t gc0329_contrast_neg3[] = { +}; + +uint8_t gc0329_contrast_neg2[] = { +}; + +uint8_t gc0329_contrast_neg1[] = { +}; + +uint8_t gc0329_contrast_zero[] = { +}; + +uint8_t gc0329_contrast_pos1[] = { +}; + +uint8_t gc0329_contrast_pos2[] = { +}; + +uint8_t gc0329_contrast_pos3[] = { +}; + +uint8_t gc0329_contrast_pos4[] = { +}; + +// Saturation +uint8_t gc0329_saturation_neg4[] = { +}; + +uint8_t gc0329_saturation_neg3[] = { +}; + +uint8_t gc0329_saturation_neg2[] = { +}; + +uint8_t gc0329_saturation_neg1[] = { +}; + +uint8_t gc0329_saturation_zero[] = { +}; + +uint8_t gc0329_saturation_pos1[] = { +}; + +uint8_t gc0329_saturation_pos2[] = { +}; + +uint8_t gc0329_saturation_pos3[] = { +}; + +uint8_t gc0329_saturation_pos4[] = { +}; + + +// Resolution + +// QCIF +uint8_t gc0329_176x144[]={ +}; + +uint8_t gc0329_320x240[]={ + 0x59, 0x22, +}; + +uint8_t gc0329_640x480[]={ + 0x59, 0x11, +}; + + +// Initiliztion +uint8_t gc0329_default_regs_init[] = { + 0xfe, 0x80, + 0xfc, 0x12, + 0xfc, 0x12, + 0xfe, 0x00, + + 0xfa, 0x00, + + 0xf0, 0x07, + 0xf1, 0x01, + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + 0xfc, 0x16, + + 0x05, 0x01, + 0x06, 0xfa, + 0x07, 0x00, + 0x08, 0x70, + 0xfe, 0x01, + 0x29, 0x00, + 0x2a, 0x64, + 0x2b, 0x02, + 0x2c, 0x58, + 0x2d, 0x04, + + 0x2e, 0xb0, + 0x2f, 0x06, + 0x30, 0x40, + 0x31, 0x09, + 0x32, 0xc4, + 0x33, 0x20, + 0xfe, 0x00, + + + + + + 0x0a, 0x00, + 0x0c, 0x00, + 0x17, 0x14, + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x00, + 0x1f, 0xc8, + 0x20, 0x00, + 0x21, 0x48, + 0x23, 0x22, + 0x24, 0x16, + + + 0x26, 0xf7, + 0x28, 0x7f, + 0x29, 0x00, + 0x32, 0x00, + 0x33, 0x20, + 0x34, 0x20, + 0x35, 0x20, + 0x36, 0x20, + 0x3b, 0x04, + 0x3c, 0x04, + 0x3d, 0x04, + 0x3e, 0x04, + + 0x40, 0xff, + 0x41, 0x00, + 0x42, 0xfe, + 0x46, 0x02, + 0x4b, 0xcb, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + 0x80, 0xe7, + 0x82, 0x55, + 0x87, 0x4a, + 0xfe, 0x01, + 0x18, 0x22, + 0xfe, 0x00, + 0x9c, 0x0a, + 0xa4, 0x50, + 0xa5, 0x21, + 0xa7, 0x35, + 0xdd, 0x54, + 0x95, 0x35, + 0xfe, 0x00, + ///gamma + /* + 0xbf, 0x06, + 0xc0, 0x14, + 0xc1, 0x27, + 0xc2, 0x3b, + 0xc3, 0x4f, + 0xc4, 0x62, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc9, + 0xca, 0xd6, + 0xcb, 0xe0, + 0xcc, 0xe8, + 0xcd, 0xf4, + 0xce, 0xfc, + 0xcf, 0xff, + */ + + 0xBF, 0x14, + 0xc0, 0x28, + 0xc1, 0x44, + 0xc2, 0x5D, + 0xc3, 0x72, + 0xc4, 0x86, + 0xc5, 0x95, + 0xc6, 0xB1, + 0xc7, 0xC6, + 0xc8, 0xD5, + 0xc9, 0xE1, + 0xcA, 0xEA, + 0xcB, 0xF1, + 0xcC, 0xF5, + 0xcD, 0xFB, + 0xcE, 0xFE, + 0xcF, 0xFF, + + + 0xfe, 0x00, + 0xb3, 0x44, + 0xb4, 0xfd, + 0xb5, 0x02, + 0xb6, 0xfa, + 0xb7, 0x48, + 0xb8, 0xf0, + 0x50, 0x01, + 0x19, 0x05, + 0x20, 0x01, + 0x22, 0xba, + 0x21, 0x48, + 0xfe, 0x00, + 0xd1, 0x34, + 0xd2, 0x34, + 0xfe, 0x01, + 0x10, 0x40, + 0x12, 0x17, + 0x13, 0x60, + 0x17, 0x88, + 0x21, 0xb0, + 0x22, 0x60, + 0x3c, 0x82, + 0x3d, 0x55, + 0x3e, 0x48, + 0xfe, 0x01, + 0x06, 0x08, + 0x07, 0x06, + 0x08, 0xa6, + 0x09, 0xee, + 0x6a, 0x40, + 0x6b, 0x39, + 0xd0, 0x00, + 0xd2, 0x2c, + 0xd3, 0x80, + 0x9c, 0x00, + 0x9d, 0x10, + 0x9e, 0xc0, + 0x9f, 0x40, + 0xfe, 0x01, + 0xa0, 0x00, + 0xa1, 0x3c, + 0xa2, 0x50, + 0xa3, 0x00, + 0xa8, 0x0f, + 0xa9, 0x08, + 0xaa, 0x00, + 0xab, 0x04, + 0xac, 0x00, + 0xad, 0x07, + 0xae, 0x0e, + 0xaf, 0x00, + 0xb0, 0x00, + 0xb1, 0x09, + 0xb2, 0x00, + 0xb3, 0x00, + 0xb4, 0x31, + 0xb5, 0x19, + 0xb6, 0x24, + 0xba, 0x3a, + 0xbb, 0x24, + 0xbc, 0x2a, + 0xc0, 0x17, + 0xc1, 0x13, + 0xc2, 0x17, + 0xc6, 0x21, + 0xc7, 0x1c, + 0xc8, 0x1c, + 0xb7, 0x00, + 0xb8, 0x00, + 0xb9, 0x00, + 0xbd, 0x00, + 0xbe, 0x00, + 0xbf, 0x00, + 0xc3, 0x00, + 0xc4, 0x00, + 0xc5, 0x00, + 0xc9, 0x00, + 0xca, 0x00, + 0xcb, 0x00, + 0xa4, 0x00, + 0xa5, 0x00, + 0xa6, 0x00, + 0xa7, 0x00, + 0xfe, 0x00, + + 0xfe,0x01, + 0x18,0x22, + 0x21,0xc0, + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x34, + 0xd2,0x34, + 0xd3,0x3b, + 0xd5,0x0c, + 0xfe,0x00, + + 0xa0, 0xaf, + 0xa2, 0xff, + 0x44, 0xa2, +}; + +uint8_t gc0329_default_regs_exit[] = { +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329_shuttle.h b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329_shuttle.h new file mode 100644 index 00000000..6d847ff1 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329_shuttle.h @@ -0,0 +1,560 @@ +#ifndef GC0329_H +#define GC0329_H + + +// Scene Mode +uint8_t gc0329_scene_mode_auto[] = { +}; + +uint8_t gc0329_scene_mode_night[] = { +}; + + +// White Balance +uint8_t gc0329_wb_auto [] = { + 0xfe, 0x00, + 0x77, 0x57, + 0x78, 0x4d, + 0x79, 0x45, + 0x42, 0xfe, //AWB on +}; + +uint8_t gc0329_wb_incandescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x48, + 0x78, 0x40, + 0x79, 0x5c, + +}; + +uint8_t gc0329_wb_fluorescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x42, + 0x79, 0x50, + +}; + +uint8_t gc0329_wb_daylight [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x74, + 0x78, 0x52, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_cloudy [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x8c, + 0x78, 0x50, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_tungsten [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x54, + 0x79, 0x70, + +}; + + +// Exposure +uint8_t gc0329_exposure_neg6[] = { + 0xfe, 0x00, + 0xd5, 0xe0, + 0xfe, 0x01, + 0x13, 0x40, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_neg3[] = { + 0xfe, 0x00, + 0xd5, 0xf0, + 0xfe, 0x01, + 0x13, 0x48, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_zero[] = { + 0xfe, 0x00, + 0xd5, 0x00, /// 00 + 0xfe, 0x01, + 0x13, 0x56,//6a cyrille + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos3[] = { + + 0xfe, 0x00, + 0xd5, 0x10, + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos6[] = { + 0xfe, 0x00, + 0xd5, 0x20, + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x00, + +}; + + +// Color Effect +uint8_t gc0329_colorfx_none[] = { + 0xfe, 0x00, + 0x43 , 0x00, +}; + +uint8_t gc0329_colorfx_bw[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x00, + 0xdb , 0x00, + +}; + +uint8_t gc0329_colorfx_sepia[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xd0, + 0xdb , 0x28, + +}; + +uint8_t gc0329_colorfx_negative[] = { + 0xfe, 0x00, + 0x43 , 0x01, +}; + +uint8_t gc0329_colorfx_emboss[] = { +}; + +uint8_t gc0329_colorfx_sketch[] = { + +}; + +uint8_t gc0329_colorfx_sky_blue[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x50, + 0xdb , 0xe0, + +}; + +uint8_t gc0329_colorfx_grass_green[] = { + + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xc0, + 0xdb , 0xc0, + +}; + +uint8_t gc0329_colorfx_skin_whiten[] = { +}; + +uint8_t gc0329_colorfx_vivid[] = { +}; + +// Brightness +uint8_t gc0329_brightness_neg4[] = { +}; + +uint8_t gc0329_brightness_neg3[] = { +}; + +uint8_t gc0329_brightness_neg2[] = { +}; + +uint8_t gc0329_brightness_neg1[] = { +}; + +uint8_t gc0329_brightness_zero[] = { +}; + +uint8_t gc0329_brightness_pos1[] = { +}; + +uint8_t gc0329_brightness_pos2[] = { +}; + +uint8_t gc0329_brightness_pos3[] = { +}; + +uint8_t gc0329_brightness_pos4[] = { +}; + +// Contrast +uint8_t gc0329_contrast_neg4[] = { +}; + +uint8_t gc0329_contrast_neg3[] = { +}; + +uint8_t gc0329_contrast_neg2[] = { +}; + +uint8_t gc0329_contrast_neg1[] = { +}; + +uint8_t gc0329_contrast_zero[] = { +}; + +uint8_t gc0329_contrast_pos1[] = { +}; + +uint8_t gc0329_contrast_pos2[] = { +}; + +uint8_t gc0329_contrast_pos3[] = { +}; + +uint8_t gc0329_contrast_pos4[] = { +}; + +// Saturation +uint8_t gc0329_saturation_neg4[] = { +}; + +uint8_t gc0329_saturation_neg3[] = { +}; + +uint8_t gc0329_saturation_neg2[] = { +}; + +uint8_t gc0329_saturation_neg1[] = { +}; + +uint8_t gc0329_saturation_zero[] = { +}; + +uint8_t gc0329_saturation_pos1[] = { +}; + +uint8_t gc0329_saturation_pos2[] = { +}; + +uint8_t gc0329_saturation_pos3[] = { +}; + +uint8_t gc0329_saturation_pos4[] = { +}; + + +// Resolution + +// QCIF +uint8_t gc0329_176x144[]={ +}; + +uint8_t gc0329_320x240[]={ + 0x59, 0x22, +}; + +uint8_t gc0329_640x480[]={ + 0x59, 0x11, +}; + + +// Initiliztion +uint8_t gc0329_default_regs_init[] = { + 0xfe, 0x80, + 0xfc, 0x12, + 0xfc, 0x12, + 0xfe, 0x00, + + 0xfa, 0x11, + + 0xf0, 0x07, + 0xf1, 0x01, + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + 0xfc, 0x16, + + 0x05, 0x01, + 0x06, 0x32, + 0x07, 0x00, + 0x08, 0x70, + 0xfe, 0x01, + 0x29, 0x00, + 0x2a, 0x3c, + /* + 0x2b, 0x02, + 0x2c, 0x58, + 0x2d, 0x02, + + 0x2e, 0xd0, + 0x2f, 0x03, + 0x30, 0x48, + 0x31, 0x04, + 0x32, 0x38,*/ + 0x2b, 0x02, + 0x2c, 0xd0, + 0x2d, 0x03, + + 0x2e, 0x48, + 0x2f, 0x03, + 0x30, 0x84, + 0x31, 0x04, + 0x32, 0x38, + 0x33, 0x20, + 0xfe, 0x00, + + + + + + 0x0a, 0x00, + 0x0c, 0x00, + 0x17, 0x14, //14 + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x00, + 0x1f, 0xc8, + 0x20, 0x00, + 0x21, 0x48, + 0x23, 0x22, + 0x24, 0x13,//0x16 + + + 0x26, 0xf7, + 0x28, 0x7f, + 0x29, 0x00, + 0x32, 0x00, + 0x33, 0x20, + 0x34, 0x20, + 0x35, 0x20, + 0x36, 0x20, + 0x3b, 0x04, + 0x3c, 0x04, + 0x3d, 0x04, + 0x3e, 0x04, + + 0x40, 0xff, + 0x41, 0x00, + 0x42, 0xfe, + 0x46, 0x02, + 0x4b, 0xcb, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + 0x80, 0xe7, + 0x82, 0x60,//0x55 + 0x87, 0x4a, + 0xfe, 0x01, + 0x18, 0x22, + 0xfe, 0x00, + 0x9c, 0x0a, + 0xa4, 0x50, + 0xa5, 0x21, + 0xa7, 0x35, + 0xdd, 0x54, + 0x95, 0x45,//0x35 + 0xfe, 0x00, + ///gamma + /* + 0xbf, 0x06, + 0xc0, 0x14, + 0xc1, 0x27, + 0xc2, 0x3b, + 0xc3, 0x4f, + 0xc4, 0x62, + 0xc5, 0x72, + 0xc6, 0x8d, + 0xc7, 0xa4, + 0xc8, 0xb8, + 0xc9, 0xc9, + 0xca, 0xd6, + 0xcb, 0xe0, + 0xcc, 0xe8, + 0xcd, 0xf4, + 0xce, 0xfc, + 0xcf, 0xff, + */ + + 0xBF, 0x0B, + 0xc0, 0x16, + 0xc1, 0x29, + 0xc2, 0x3C, + 0xc3, 0x4F, + 0xc4, 0x5F, + 0xc5, 0x6F, + 0xc6, 0x8A, + 0xc7, 0x9F, + 0xc8, 0xB4, + 0xc9, 0xC6, + 0xcA, 0xD3, + 0xcB, 0xDD, + 0xcC, 0xE5, + 0xcD, 0xF1, + 0xcE, 0xFA, + 0xcF, 0xFF, + /*0xBF, 0x14, + 0xc0, 0x28, + 0xc1, 0x44, + 0xc2, 0x5D, + 0xc3, 0x72, + 0xc4, 0x86, + 0xc5, 0x95, + 0xc6, 0xB1, + 0xc7, 0xC6, + 0xc8, 0xD5, + 0xc9, 0xE1, + 0xcA, 0xEA, + 0xcB, 0xF1, + 0xcC, 0xF5, + 0xcD, 0xFB, + 0xcE, 0xFE, + 0xcF, 0xFF,*/ + + + 0xfe, 0x00, + 0xb3, 0x38,//44 cyrille 40 + 0xb4, 0xfd, + 0xb5, 0x02, + 0xb6, 0xfa, + 0xb7, 0x48, + 0xb8, 0xf0, + 0x50, 0x01, + 0x19, 0x05, + 0x20, 0x01, + 0x22, 0xba, + 0x21, 0x48, + 0xfe, 0x00, + 0xd1, 0x28,// 34 cyrille + 0xd2, 0x26,//34 cyrille + 0x7a, 0x70,// cyrille 7d + 0x7b, 0x84,// cyrille + 0x7c, 0x80,// cyrille + 0xfe, 0x01, + 0x10, 0x40, + 0x12, 0x27,//17 cyrille + 0x13, 0x56,//60 cyrille + 0x17, 0x88, + 0x21, 0x80,//b0 cyrille + 0x22, 0x40,//60 cyrille + 0x3c, 0x82, + 0x3d, 0x55, + 0x3e, 0x48, + 0xfe, 0x01, + 0x06, 0x08, + 0x07, 0x06, + 0x08, 0xa6, + 0x09, 0xee, + 0x6a, 0x40, + 0x6b, 0x39, + 0xd0, 0x00, + 0xd2, 0x2c, + 0xd3, 0x80, + 0x9c, 0x00, + 0x9d, 0x10, + 0x9e, 0xc0, + 0x9f, 0x40, + 0xfe, 0x01, + 0xa0, 0x00, + 0xa1, 0x3c, + 0xa2, 0x50, + 0xa3, 0x00, + 0xa8, 0x0f, + 0xa9, 0x08, + 0xaa, 0x00, + 0xab, 0x04, + 0xac, 0x00, + 0xad, 0x07, + 0xae, 0x0e, + 0xaf, 0x00, + 0xb0, 0x00, + 0xb1, 0x09, + 0xb2, 0x00, + 0xb3, 0x00, + 0xb4, 0x31, + 0xb5, 0x19, + 0xb6, 0x24, + 0xba, 0x3a, + 0xbb, 0x24, + 0xbc, 0x2a, + 0xc0, 0x17, + 0xc1, 0x13, + 0xc2, 0x17, + 0xc6, 0x21, + 0xc7, 0x1c, + 0xc8, 0x1c, + 0xb7, 0x00, + 0xb8, 0x00, + 0xb9, 0x00, + 0xbd, 0x00, + 0xbe, 0x00, + 0xbf, 0x00, + 0xc3, 0x00, + 0xc4, 0x00, + 0xc5, 0x00, + 0xc9, 0x00, + 0xca, 0x00, + 0xcb, 0x00, + 0xa4, 0x00, + 0xa5, 0x00, + 0xa6, 0x00, + 0xa7, 0x00, + 0xfe, 0x00, + + 0xfe,0x01, + 0x18,0x22, + 0x21,0x80,//c0 cyrille + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x28, //34 cyrille + 0xd2,0x26, //34 cyrille + 0xd3,0x40,// 3b cyrille + 0xd5,0x00,//0c cyrille + 0xfe,0x00, + + 0xa0, 0xaf, + 0xa2, 0xff, + 0x44, 0xa2, +}; + +uint8_t gc0329_default_regs_exit[] = { +}; + +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329_style_s729.h b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329_style_s729.h new file mode 100755 index 00000000..06e42a1a --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0329/gc0329_style_s729.h @@ -0,0 +1,530 @@ +#ifndef GC0329_H +#define GC0329_H + + +// Scene Mode +uint8_t gc0329_scene_mode_auto[] = { +}; + +uint8_t gc0329_scene_mode_night[] = { +}; + + +// White Balance +uint8_t gc0329_wb_auto [] = { + 0xfe, 0x00, + 0x77, 0x57, + 0x78, 0x4d, + 0x79, 0x45, + 0x42, 0xfe, //AWB on +}; + +uint8_t gc0329_wb_incandescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x48, + 0x78, 0x40, + 0x79, 0x5c, + +}; + +uint8_t gc0329_wb_fluorescent [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x42, + 0x79, 0x50, + +}; + +uint8_t gc0329_wb_daylight [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x74, + 0x78, 0x52, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_cloudy [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x8c, + 0x78, 0x50, + 0x79, 0x40, + +}; + +uint8_t gc0329_wb_tungsten [] = { + 0xfe, 0x00, + 0x42, 0xfc, + 0x77, 0x40, + 0x78, 0x54, + 0x79, 0x70, + +}; + + +// Exposure +uint8_t gc0329_exposure_neg6[] = { + 0xfe, 0x00, + 0xd5, 0xe0, + 0xfe, 0x01, + 0x13, 0x40, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_neg3[] = { + 0xfe, 0x00, + 0xd5, 0xf0, + 0xfe, 0x01, + 0x13, 0x48, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_zero[] = { + 0xfe, 0x00, + 0xd5, 0x04, /// 00 + 0xfe, 0x01, + 0x13, 0x6a, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos3[] = { + + 0xfe, 0x00, + 0xd5, 0x10, + 0xfe, 0x01, + 0x13, 0x70, + 0xfe, 0x00, + +}; + +uint8_t gc0329_exposure_pos6[] = { + 0xfe, 0x00, + 0xd5, 0x20, + 0xfe, 0x01, + 0x13, 0x80, + 0xfe, 0x00, + +}; + + +// Color Effect +uint8_t gc0329_colorfx_none[] = { + 0xfe, 0x00, + 0x43 , 0x00, +}; + +uint8_t gc0329_colorfx_bw[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x00, + 0xdb , 0x00, + +}; + +uint8_t gc0329_colorfx_sepia[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xd0, + 0xdb , 0x28, + +}; + +uint8_t gc0329_colorfx_negative[] = { + 0xfe, 0x00, + 0x43 , 0x01, +}; + +uint8_t gc0329_colorfx_emboss[] = { +}; + +uint8_t gc0329_colorfx_sketch[] = { + +}; + +uint8_t gc0329_colorfx_sky_blue[] = { + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0x50, + 0xdb , 0xe0, + +}; + +uint8_t gc0329_colorfx_grass_green[] = { + + 0xfe, 0x00, + 0x43 , 0x02, + 0xda , 0xc0, + 0xdb , 0xc0, + +}; + +uint8_t gc0329_colorfx_skin_whiten[] = { +}; + +uint8_t gc0329_colorfx_vivid[] = { +}; + +// Brightness +uint8_t gc0329_brightness_neg4[] = { +}; + +uint8_t gc0329_brightness_neg3[] = { +}; + +uint8_t gc0329_brightness_neg2[] = { +}; + +uint8_t gc0329_brightness_neg1[] = { +}; + +uint8_t gc0329_brightness_zero[] = { +}; + +uint8_t gc0329_brightness_pos1[] = { +}; + +uint8_t gc0329_brightness_pos2[] = { +}; + +uint8_t gc0329_brightness_pos3[] = { +}; + +uint8_t gc0329_brightness_pos4[] = { +}; + +// Contrast +uint8_t gc0329_contrast_neg4[] = { +}; + +uint8_t gc0329_contrast_neg3[] = { +}; + +uint8_t gc0329_contrast_neg2[] = { +}; + +uint8_t gc0329_contrast_neg1[] = { +}; + +uint8_t gc0329_contrast_zero[] = { +}; + +uint8_t gc0329_contrast_pos1[] = { +}; + +uint8_t gc0329_contrast_pos2[] = { +}; + +uint8_t gc0329_contrast_pos3[] = { +}; + +uint8_t gc0329_contrast_pos4[] = { +}; + +// Saturation +uint8_t gc0329_saturation_neg4[] = { +}; + +uint8_t gc0329_saturation_neg3[] = { +}; + +uint8_t gc0329_saturation_neg2[] = { +}; + +uint8_t gc0329_saturation_neg1[] = { +}; + +uint8_t gc0329_saturation_zero[] = { +}; + +uint8_t gc0329_saturation_pos1[] = { +}; + +uint8_t gc0329_saturation_pos2[] = { +}; + +uint8_t gc0329_saturation_pos3[] = { +}; + +uint8_t gc0329_saturation_pos4[] = { +}; + + +// Resolution + +// QCIF +uint8_t gc0329_176x144[]={ +}; + +uint8_t gc0329_320x240[]={ + 0x59, 0x22, +}; + +uint8_t gc0329_640x480[]={ + 0x59, 0x11, +}; + + +// Initiliztion +uint8_t gc0329_default_regs_init[] = { + 0xfe, 0x80, + 0xfc, 0x12, + 0xfc, 0x12, + 0xfe, 0x00, + + 0xfa, 0x00, + + 0xf0, 0x07, + 0xf1, 0x01, + 0x73, 0x90, + 0x74, 0x80, + 0x75, 0x80, + 0x76, 0x94, + 0xfc, 0x16, + + 0x05, 0x01, + 0x06, 0xfa, + 0x07, 0x00, + 0x08, 0x70, + 0xfe, 0x01, + 0x29, 0x00, + 0x2a, 0x64, + 0x2b, 0x02, + 0x2c, 0x58, + 0x2d, 0x04, + + 0x2e, 0xb0, + 0x2f, 0x06, + 0x30, 0x40, + 0x31, 0x09, + 0x32, 0xc4, + 0x33, 0x20, + 0xfe, 0x00, + + + + + + 0x0a, 0x02, + 0x0c, 0x02, + 0x17, 0x14, + 0x19, 0x05, + 0x1b, 0x24, + 0x1c, 0x04, + 0x1e, 0x00, + 0x1f, 0xc8, + 0x20, 0x00, + 0x21, 0x48, + 0x23, 0x22, + 0x24, 0x15, + + + 0x26, 0xf7, + 0x28, 0x7f, + 0x29, 0x00, + 0x32, 0x00, + 0x33, 0x20, + 0x34, 0x20, + 0x35, 0x20, + 0x36, 0x20, + 0x3b, 0x04, + 0x3c, 0x04, + 0x3d, 0x04, + 0x3e, 0x04, + + 0x40, 0xff, + 0x41, 0x00, + 0x42, 0xfe, + 0x46, 0x02, + 0x4b, 0xcb, + 0x4d, 0x01, + 0x4f, 0x01, + 0x70, 0x48, + 0x80, 0xe7, + 0x82, 0x45, + 0x87, 0x4a, + 0xfe, 0x01, + 0x18, 0x22, + 0xfe, 0x00, + 0x9c, 0x0a, + 0xa4, 0x50, + 0xa5, 0x21, + 0xa7, 0x35, + 0xdd, 0x54, + 0x95, 0x35, + 0xfe, 0x00, + ///gamma + /* + 0xbf, 0x0b, + 0xc0, 0x16, + 0xc1, 0x32, + 0xc2, 0x3f, + 0xc3, 0x50, + 0xc4, 0x6d, + 0xc5, 0x78, + 0xc6, 0x92, + 0xc7, 0xae, + 0xc8, 0xbd, + 0xc9, 0xcf, + 0xca, 0xdc, + 0xcb, 0xe7, + 0xcc, 0xed, + 0xcd, 0xf9, + 0xce, 0xfd, + 0xcf, 0xff, + */ + + 0xBF, 0x14, + 0xc0, 0x28, + 0xc1, 0x44, + 0xc2, 0x5D, + 0xc3, 0x72, + 0xc4, 0x86, + 0xc5, 0x95, + 0xc6, 0xB1, + 0xc7, 0xC6, + 0xc8, 0xD5, + 0xc9, 0xE1, + 0xcA, 0xEA, + 0xcB, 0xF1, + 0xcC, 0xF5, + 0xcD, 0xFB, + 0xcE, 0xFE, + 0xcF, 0xFF, + + + 0xfe, 0x00, + 0xb3, 0x44, + 0xb4, 0xfd, + 0xb5, 0x02, + 0xb6, 0xfa, + 0xb7, 0x48, + 0xb8, 0xf0, + 0x50, 0x01, + 0x19, 0x05, + 0x20, 0x01, + 0x22, 0xba, + 0x21, 0x48, + 0xfe, 0x00, + 0xd1, 0x34, + 0xd2, 0x34, + 0xfe, 0x01, + 0x10, 0x40, + 0x12, 0x17, + 0x13, 0x60, + 0x17, 0x88, + 0x21, 0xb0, + 0x22, 0x60, + 0x3c, 0x82, + 0x3d, 0x55, + 0x3e, 0x48, + 0xfe, 0x01, + 0x06, 0x08, + 0x07, 0x06, + 0x08, 0xa6, + 0x09, 0xee, + 0x6a, 0x40, + 0x6b, 0x39, + 0xd0, 0x00, + 0xd2, 0x2c, + 0xd3, 0x80, + 0x9c, 0x00, + 0x9d, 0x10, + 0x9e, 0xc0, + 0x9f, 0x40, + 0xfe, 0x01, + 0xa0, 0x00, + 0xa1, 0x3c, + 0xa2, 0x50, + 0xa3, 0x00, + 0xa8, 0x0f, + 0xa9, 0x08, + 0xaa, 0x00, + 0xab, 0x04, + 0xac, 0x00, + 0xad, 0x07, + 0xae, 0x0e, + 0xaf, 0x00, + 0xb0, 0x00, + 0xb1, 0x09, + 0xb2, 0x00, + 0xb3, 0x00, + 0xb4, 0x31, + 0xb5, 0x19, + 0xb6, 0x24, + 0xba, 0x3a, + 0xbb, 0x24, + 0xbc, 0x2a, + 0xc0, 0x17, + 0xc1, 0x13, + 0xc2, 0x17, + 0xc6, 0x21, + 0xc7, 0x1c, + 0xc8, 0x1c, + 0xb7, 0x00, + 0xb8, 0x00, + 0xb9, 0x00, + 0xbd, 0x00, + 0xbe, 0x00, + 0xbf, 0x00, + 0xc3, 0x00, + 0xc4, 0x00, + 0xc5, 0x00, + 0xc9, 0x00, + 0xca, 0x00, + 0xcb, 0x00, + 0xa4, 0x00, + 0xa5, 0x00, + 0xa6, 0x00, + 0xa7, 0x00, + 0xfe, 0x00, + + 0xfe,0x01, + 0x18,0x22, + 0x21,0xc0, + 0x06,0x12, + 0x08,0x9c, + 0x51,0x28, + 0x52,0x10, + 0x53,0x20, + 0x54,0x40, + 0x55,0x16, + 0x56,0x30, + 0x58,0x60, + 0x59,0x08, + 0x5c,0x35, + 0x5d,0x72, + 0x67,0x80, + 0x68,0x60, + 0x69,0x90, + 0x6c,0x30, + 0x6d,0x60, + 0x70,0x10, + 0xfe,0x00, + 0x9c,0x0a, + 0xa0,0xaf, + 0xa2,0xff, + 0xa4,0x60, + 0xa5,0x31, + 0xa7,0x35, + 0x42,0xfe, + 0xd1,0x34, + 0xd2,0x34, + 0xd3,0x3b, + 0xd5,0x0c, + 0xfe,0x00, + + 0xa0, 0xaf, + 0xa2, 0xff, + 0x44, 0xa2, +}; + +uint8_t gc0329_default_regs_exit[] = { +}; + +#endif |