diff options
Diffstat (limited to 'drivers/media/video/wmt_v4l2/sensors/gc0308')
20 files changed, 9250 insertions, 0 deletions
diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-7303.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-7303.h new file mode 100755 index 00000000..06370f36 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-7303.h @@ -0,0 +1,450 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x03, //02//exp level 1 16.67fps + 0xe5,0x20, //58 + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x1f,//08 + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x33,//54 + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xb0, + 0xef,0x60, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x40,// YCPT + 0xb2,0x40, + 0xb3,0x40, + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, + + 0x57,0x7d, + 0x58,0x80, + 0x59,0x80, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-7304.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-7304.h new file mode 100755 index 00000000..6610814b --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-7304.h @@ -0,0 +1,546 @@ +#ifndef GC0308_H
+#define GC0308_H
+
+
+// Scene Mode
+uint8_t gc0308_scene_mode_auto[] = {
+ 0xfe, 0x00, // set page0
+ 0xec, 0x20,
+};
+
+uint8_t gc0308_scene_mode_night[] = {
+ 0xfe, 0x00, // set page0
+ 0xec, 0x30,
+};
+
+
+// White Balance
+uint8_t gc0308_wb_auto [] = {
+ 0xfe, 0x00, // set page0
+ 0x5a, 0x56,
+ 0x5b, 0x40,
+ 0x5c, 0x4a,
+ 0x22, 0x57,
+};
+
+uint8_t gc0308_wb_incandescent [] = {
+ 0xfe, 0x00, // set page0
+ 0x22, 0x55,
+ 0x5a, 0x48,
+ 0x5b, 0x40,
+ 0x5c, 0x5c,
+};
+
+uint8_t gc0308_wb_fluorescent [] = {
+ 0xfe, 0x00, // set page0
+ 0x22, 0x55,
+ 0x5a, 0x40,
+ 0x5b, 0x42,
+ 0x5c, 0x50,
+};
+
+uint8_t gc0308_wb_daylight [] = {
+ 0xfe, 0x00, // set page0
+ 0x22, 0x55,
+ 0x5a, 0x74,
+ 0x5b, 0x52,
+ 0x5c, 0x40,
+};
+
+uint8_t gc0308_wb_cloudy [] = {
+ 0xfe, 0x00, // set page0
+ 0x22, 0x55,
+ 0x5a, 0x8c,
+ 0x5b, 0x50,
+ 0x5c, 0x40,
+};
+
+
+// Exposure
+uint8_t gc0308_exposure_neg9[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0xc0,
+ 0xd3, 0x20,
+};
+
+uint8_t gc0308_exposure_neg6[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0xd0,
+ 0xd3, 0x20,
+};
+
+uint8_t gc0308_exposure_neg3[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0xe0,
+ 0xd3, 0x30,
+};
+
+uint8_t gc0308_exposure_zero[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0xf0,
+ 0xd3, 0x40,
+};
+
+uint8_t gc0308_exposure_pos3[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0x10,
+ 0xd3, 0x50,
+};
+
+uint8_t gc0308_exposure_pos6[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0x20,
+ 0xd3, 0x68,
+};
+
+uint8_t gc0308_exposure_pos9[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0x30,
+ 0xd3, 0x78,
+};
+
+uint8_t gc0308_antibanding_auto[] = { + 0xfe,0x00, + + 0x01,0x97, + 0x02,0x84, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x3e, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x6c, + 0xe6,0x02, //exp level 1 10fps + 0xe7,0xe8, + 0xe8,0x03, //exp level 2 7.69fps + 0xe9,0xe0, + 0xea,0x05, //exp level 3 5.00fps + 0xeb,0xd0, + +}; + +uint8_t gc0308_antibanding_50hz[] = { + 0xfe,0x00, + + 0x01,0x26, + 0x02,0x98, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x50, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x80, + 0xe6,0x03, //exp level 1 10fps + 0xe7,0x20, + 0xe8,0x04, //exp level 2 7.69fps + 0xe9,0x10, + 0xea,0x06, //exp level 3 5.00fps + 0xeb,0x40, + +}; + +uint8_t gc0308_antibanding_60hz[] = { + 0xfe,0x00, + + 0x01,0x97, + 0x02,0x84, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x3e, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x6c, + 0xe6,0x02, //exp level 1 10fps + 0xe7,0xe8, + 0xe8,0x03, //exp level 2 7.69fps + 0xe9,0xe0, + 0xea,0x05, //exp level 3 5.00fps + 0xeb,0xd0, + +}; + +uint8_t gc0308_antibanding_off[] = { + 0xfe,0x00, + + 0x01,0x26, + 0x02,0x98, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x50, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x80, + 0xe6,0x03, //exp level 1 10fps + 0xe7,0x20, + 0xe8,0x04, //exp level 2 7.69fps + 0xe9,0x10, + 0xea,0x06, //exp level 3 5.00fps + 0xeb,0x40, + +};
+
+// Resolution
+uint8_t gc0308_320x240[]= {
+ 0xfe, 0x01,
+ 0x54, 0x22,
+ 0x55, 0x03,
+ 0x56, 0x00,
+ 0x57, 0x00,
+ 0x58, 0x00,
+ 0x59, 0x00,
+ 0xfe, 0x00,
+};
+
+uint8_t gc0308_640x480[] = {
+ 0xfe,0x01,
+ 0x54,0x11,
+ 0x55,0x03,
+ 0x56,0x00,
+ 0x57,0x00,
+ 0x58,0x00,
+ 0x59,0x00,
+ 0xfe,0x00,
+ 0x46,0x00,
+ 0xfe,0x00,
+};
+
+uint8_t gc0308_default_regs_init[] = {
+ 0xfe,0x80,
+
+ 0xfe,0x00, // set page0
+
+ 0xd2,0x10, // close AEC
+ 0x22,0x55, // close AWB
+
+ 0x03,0x01,
+ 0x04,0x2c,
+ 0x5a,0x56,
+ 0x5b,0x40,
+ 0x5c,0x4a,
+
+ 0x22,0x57, // Open AWB
+
+ 0x01,0xfa,
+ 0x02,0x70,
+ 0x0f,0x01,
+
+ 0xe2,0x00, //anti-flicker step [11:8]
+ 0xe3,0x64, //anti-flicker step [7:0]
+
+ 0xe4,0x02, //exp level 1 16.67fps
+ 0xe5,0x58,
+ 0xe6,0x03, //exp level 2 12.5fps
+ 0xe7,0x20,
+ 0xe8,0x05, //exp level 3 8.33fps
+ 0xe9,0x14,
+ 0xea,0x09, //exp level 4 4.00fps
+ 0xeb,0xc4,
+
+ 0xec,0x20,
+
+ 0x05,0x00,
+ 0x06,0x00,
+ 0x07,0x00,
+ 0x08,0x00,
+ 0x09,0x01,
+ 0x0a,0xe8,
+ 0x0b,0x02,
+ 0x0c,0x88,
+ 0x0d,0x02,
+ 0x0e,0x02,
+ 0x10,0x22,
+ 0x11,0xfd,
+ 0x12,0x2a,
+ 0x13,0x00,
+ 0x14,0x10, //0x10
+
+ 0x15,0x0a,
+ 0x16,0x05,
+ 0x17,0x01,
+ 0x18,0x44,
+ 0x19,0x44,
+ 0x1a,0x1e,
+ 0x1b,0x00,
+ 0x1c,0xc1,
+ 0x1d,0x08,
+ 0x1e,0x60,
+ 0x1f,0x16,
+
+
+
+ 0x20,0xff,
+ 0x21,0xf8,
+ 0x22,0x57,
+ 0x24,0xa2,
+ 0x25,0x0f,
+
+ //output sync_mode
+
+
+ 0x26,0x02, //0x03 20101016 zhj
+
+ 0x2f,0x01,
+ 0x30,0xf7,
+ 0x31,0x50,
+ 0x32,0x00,
+ 0x39,0x04,
+ 0x3a,0x18,
+ 0x3b,0x20,
+ 0x3c,0x00,
+ 0x3d,0x00,
+ 0x3e,0x00,
+ 0x3f,0x00,
+ 0x50,0x10,
+ 0x53,0x82,
+ 0x54,0x80,
+ 0x55,0x80,
+ 0x56,0x82,
+ 0x8b,0x40,
+ 0x8c,0x40,
+ 0x8d,0x40,
+ 0x8e,0x2e,
+ 0x8f,0x2e,
+ 0x90,0x2e,
+ 0x91,0x3c,
+ 0x92,0x50,
+ 0x5d,0x12,
+ 0x5e,0x1a,
+ 0x5f,0x24,
+ 0x60,0x07,
+ 0x61,0x15,
+ 0x62,0x04,
+ 0x64,0x03,
+ 0x66,0xe8,
+ 0x67,0x86,
+ 0x68,0xa2,
+ 0x69,0x18,
+ 0x6a,0x0f,
+ 0x6b,0x00,
+ 0x6c,0x5f,
+ 0x6d,0x8f,
+ 0x6e,0x55,
+ 0x6f,0x38,
+ 0x70,0x20, //0x15
+ 0x71,0x35, //0x33
+ 0x72,0xdc,
+ 0x73,0x80,
+ 0x74,0x02,
+ 0x75,0x3f,
+ 0x76,0x02,
+ 0x77,0x43,//54
+ 0x78,0x88,
+ 0x79,0x81,
+ 0x7a,0x81,
+ 0x7b,0x22,
+ 0x7c,0xff,
+ 0x93,0x44,
+ 0x94,0xfc,
+ 0x95,0x0a,
+ 0x96,0xe8,
+ 0x97,0x44,
+ 0x98,0xf8,
+ 0xb1,0x38,
+ 0xb2,0x38,
+ 0xbd,0x38,
+ 0xbe,0x36,
+ 0xd0,0xc9,
+ 0xd1,0x10,
+
+ 0xd3,0x80,
+ 0xd5,0xf2,
+ 0xd6,0x16,
+ 0xdb,0x92,
+ 0xdc,0xa5,
+ 0xdf,0x23,
+ 0xd9,0x00,
+ 0xda,0x00,
+ 0xe0,0x09,
+
+ 0xed,0x04,
+ 0xee,0xa0,
+ 0xef,0x40,
+ 0x80,0x03,
+ 0x80,0x03,
+
+
+ 0x9F,0x10,
+ 0xA0,0x20,
+ 0xA1,0x38,
+ 0xA2,0x4E,
+ 0xA3,0x63,
+ 0xA4,0x76,
+ 0xA5,0x87,
+ 0xA6,0xA2,
+ 0xA7,0xB8,
+ 0xA8,0xCA,
+ 0xA9,0xD8,
+ 0xAA,0xE3,
+ 0xAB,0xEB,
+ 0xAC,0xF0,
+ 0xAD,0xF8,
+ 0xAE,0xFD,
+ 0xAF,0xFF,
+
+ 0xc0,0x00,
+ 0xc1,0x10,
+ 0xc2,0x1C,
+ 0xc3,0x30,
+ 0xc4,0x43,
+ 0xc5,0x54,
+ 0xc6,0x65,
+ 0xc7,0x75,
+ 0xc8,0x93,
+ 0xc9,0xB0,
+ 0xca,0xCB,
+ 0xcb,0xE6,
+ 0xcc,0xFF,
+ 0xf0,0x02,
+ 0xf1,0x01,
+ 0xf2,0x01,
+ 0xf3,0x30,
+ 0xf9,0x9f,
+ 0xfa,0x78,
+ //----------------------------
+ 0xfe,0x01,// set page1
+ 0x00,0xf5,
+ 0x02,0x1a,
+ 0x0a,0xa0,
+ 0x0b,0x60,
+ 0x0c,0x08,
+ 0x0e,0x4c,
+ 0x0f,0x39,
+ 0x11,0x3f,
+ 0x12,0x72,
+ 0x13,0x13,
+ 0x14,0x3c,
+ 0x15,0x43,
+ 0x16,0xc2,
+ 0x17,0xa8,
+ 0x18,0x18,
+ 0x19,0x40,
+ 0x1a,0xd0,
+ 0x1b,0xf5,
+ 0x70,0x40,
+ 0x71,0x58,
+ 0x72,0x30,
+ 0x73,0x48,
+ 0x74,0x20,
+ 0x75,0x60,
+ 0x77,0x20,
+ 0x78,0x32,
+ 0x30,0x03,
+ 0x31,0x40,
+ 0x32,0xe0,
+ 0x33,0xe0,
+ 0x34,0xe0,
+ 0x35,0xb0,
+ 0x36,0xc0,
+ 0x37,0xc0,
+ 0x38,0x04,
+ 0x39,0x09,
+ 0x3a,0x12,
+ 0x3b,0x1C,
+ 0x3c,0x28,
+ 0x3d,0x31,
+ 0x3e,0x44,
+ 0x3f,0x57,
+ 0x40,0x6C,
+ 0x41,0x81,
+ 0x42,0x94,
+ 0x43,0xA7,
+ 0x44,0xB8,
+ 0x45,0xD6,
+ 0x46,0xEE,
+ 0x47,0x0d,
+ 0xfe,0x00,// set page0
+
+ //-----------Update the registers 2010/07/06-----------
+ //Registers of Page0
+ 0xfe,0x00,// set page0
+ 0x10,0x26,
+ 0x11,0x0d, // fd
+
+ 0x1a,0x2a, // 1e
+
+
+ 0x1c,0x49,// c1
+ 0x1d,0x9a,// 08
+
+
+ 0x1e,0x61,// 60
+
+ 0x3a,0x20,
+
+ 0x50,0x14, // 10
+
+
+ 0x53,0x80,
+ 0x56,0x80,
+
+ 0x8b,0x20,//LSC
+ 0x8c,0x20,
+ 0x8d,0x20,
+ 0x8e,0x14,
+ 0x8f,0x10,
+ 0x90,0x14,
+
+ 0x94,0x02,
+ 0x95,0x07,
+ 0x96,0xe0,
+
+ 0xb1,0x40,// YCPT
+ 0xb2,0x40,
+ 0xb3,0x47,//42
+ 0xb5,0xf8,//fa
+ 0xb6,0xe0,
+
+ 0x57,0x7c,//0x7c
+ 0x58,0x7e,
+ 0x59,0x80,
+
+ 0xd0,0xcb,// AECT c9
+
+
+ 0xd3,0x48,// 80
+
+ 0xf2,0x02,
+ 0xf7,0x12,
+ 0xf8,0x0a,
+
+ //Registers of Page1
+ 0xfe,0x01,// set page1
+ 0x02,0x20,
+ 0x04,0x10,
+ 0x05,0x08,
+ 0x06,0x20,
+ 0x08,0x0a,
+
+ 0x0e,0x44,
+ 0x0f,0x32,
+ 0x10,0x41,
+ 0x11,0x37,
+ 0x12,0x22,
+ 0x13,0x19,
+ 0x14,0x44,
+ 0x15,0x44,
+
+ 0x19,0x50,
+ 0x1a,0xd8,
+
+ 0x32,0x10,
+
+ 0x35,0x00,
+ 0x36,0x80,
+ 0x37,0x00,
+ //-----------Update the registers end---------//
+ 0xfe,0x00,// set page0
+ 0xd2,0x90,
+};
+
+uint8_t gc0308_default_regs_exit[]={
+};
+#endif
diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-781a.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-781a.h new file mode 100755 index 00000000..b6e44f40 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-781a.h @@ -0,0 +1,448 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x04, //exp level 1 16.67fps + 0xe5,0x4c, + 0xe6,0x04, //exp level 2 12.5fps + 0xe7,0x4c, + 0xe8,0x05, //exp level 3 8.33fps + 0xe9,0x14, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x15,//08 ary + 0x64,0x01,//03 + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x46,//54 ary + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x08,//04 ary + 0xee,0xa6,//a0 ary + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + + 0x9F , 0x10, + 0xA0 , 0x20, + 0xA1 , 0x38, + 0xA2 , 0x4E, + 0xA3 , 0x63, + 0xA4 , 0x76, + 0xA5 , 0x87, + 0xA6 , 0xA2, + 0xA7 , 0xB8, + 0xA8 , 0xCA, + 0xA9 , 0xD8, + 0xAA , 0xE3, + 0xAB , 0xEB, + 0xAC , 0xF0, + 0xAD , 0xF8, + 0xAE , 0xFD, + 0xAF , 0xFF, + + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x3a,// YCPT + 0xb2,0x3a, + 0xb3,0x42,//40 ary + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gsg5-001gt7204-g3.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gsg5-001gt7204-g3.h new file mode 100755 index 00000000..40c2dce6 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gsg5-001gt7204-g3.h @@ -0,0 +1,451 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xfa, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x04, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x54, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x44, + 0x94,0xfc, + 0x95,0x0a, + 0x96,0xe8, + 0x97,0x44, + 0x98,0xf8, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x3c, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x40,// YCPT + 0xb2,0x40, + 0xb3,0x42, + 0xb5,0xfa, + 0xb6,0xe0, + + 0x57,0x7c, + 0x58,0x7c, + 0x59,0x80, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gsg5-001gt7204-g3_qx.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gsg5-001gt7204-g3_qx.h new file mode 100755 index 00000000..243c1a40 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gsg5-001gt7204-g3_qx.h @@ -0,0 +1,451 @@ +#ifndef GC0308_H
+#define GC0308_H
+
+
+// Scene Mode
+uint8_t gc0308_scene_mode_auto[] = {
+ 0xfe, 0x00, // set page0
+ 0xec, 0x20,
+};
+
+uint8_t gc0308_scene_mode_night[] = {
+ 0xfe, 0x00, // set page0
+ 0xec, 0x30,
+};
+
+
+// White Balance
+uint8_t gc0308_wb_auto [] = {
+ 0xfe, 0x00, // set page0
+ 0x5a, 0x56,
+ 0x5b, 0x40,
+ 0x5c, 0x4a,
+ 0x22, 0x57,
+};
+
+uint8_t gc0308_wb_incandescent [] = {
+ 0xfe, 0x00, // set page0
+ 0x22, 0x55,
+ 0x5a, 0x48,
+ 0x5b, 0x40,
+ 0x5c, 0x5c,
+};
+
+uint8_t gc0308_wb_fluorescent [] = {
+ 0xfe, 0x00, // set page0
+ 0x22, 0x55,
+ 0x5a, 0x40,
+ 0x5b, 0x42,
+ 0x5c, 0x50,
+};
+
+uint8_t gc0308_wb_daylight [] = {
+ 0xfe, 0x00, // set page0
+ 0x22, 0x55,
+ 0x5a, 0x74,
+ 0x5b, 0x52,
+ 0x5c, 0x40,
+};
+
+uint8_t gc0308_wb_cloudy [] = {
+ 0xfe, 0x00, // set page0
+ 0x22, 0x55,
+ 0x5a, 0x8c,
+ 0x5b, 0x50,
+ 0x5c, 0x40,
+};
+
+
+// Exposure
+uint8_t gc0308_exposure_neg6[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0xe0,
+ 0xd3, 0x38,
+};
+
+uint8_t gc0308_exposure_neg3[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0xf0,
+ 0xd3, 0x40,
+};
+
+uint8_t gc0308_exposure_zero[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0xfa,
+ 0xd3, 0x48,
+};
+
+uint8_t gc0308_exposure_pos3[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0x10,
+ 0xd3, 0x50,
+};
+
+uint8_t gc0308_exposure_pos6[] = {
+ 0xfe, 0x00, // set page0
+ 0xb5, 0x20,
+ 0xd3, 0x58,
+};
+
+
+// Resolution
+uint8_t gc0308_320x240[]= {
+ 0xfe, 0x01,
+ 0x54, 0x22,
+ 0x55, 0x03,
+ 0x56, 0x00,
+ 0x57, 0x00,
+ 0x58, 0x00,
+ 0x59, 0x00,
+ 0xfe, 0x00,
+};
+
+uint8_t gc0308_640x480[] = {
+ 0xfe,0x01,
+ 0x54,0x11,
+ 0x55,0x03,
+ 0x56,0x00,
+ 0x57,0x00,
+ 0x58,0x00,
+ 0x59,0x00,
+ 0xfe,0x00,
+ 0x46,0x00,
+ 0xfe,0x00,
+};
+
+uint8_t gc0308_default_regs_init[] = {
+ 0xfe,0x80,
+
+ 0xfe,0x00, // set page0
+
+ 0xd2,0x10, // close AEC
+ 0x22,0x55, // close AWB
+
+ 0x03,0x01,
+ 0x04,0x2c,
+ 0x5a,0x56,
+ 0x5b,0x40,
+ 0x5c,0x4a,
+
+ 0x22,0x57, // Open AWB
+
+ 0x01,0xfa,
+ 0x02,0x70,
+ 0x0f,0x01,
+
+ 0xe2,0x00, //anti-flicker step [11:8]
+ 0xe3,0x64, //anti-flicker step [7:0]
+
+ 0xe4,0x02, //exp level 1 16.67fps
+ 0xe5,0x58,
+ 0xe6,0x03, //exp level 2 12.5fps
+ 0xe7,0x20,
+ 0xe8,0x05, //exp level 3 8.33fps
+ 0xe9,0x14,
+ 0xea,0x09, //exp level 4 4.00fps
+ 0xeb,0xc4,
+
+ 0xec,0x20,
+
+ 0x05,0x00,
+ 0x06,0x00,
+ 0x07,0x00,
+ 0x08,0x00,
+ 0x09,0x01,
+ 0x0a,0xe8,
+ 0x0b,0x02,
+ 0x0c,0x88,
+ 0x0d,0x02,
+ 0x0e,0x02,
+ 0x10,0x22,
+ 0x11,0xfd,
+ 0x12,0x2a,
+ 0x13,0x00,
+ 0x14,0x10, //0x10
+
+ 0x15,0x0a,
+ 0x16,0x05,
+ 0x17,0x01,
+ 0x18,0x44,
+ 0x19,0x44,
+ 0x1a,0x1e,
+ 0x1b,0x00,
+ 0x1c,0xc1,
+ 0x1d,0x08,
+ 0x1e,0x60,
+ 0x1f,0x16,
+
+
+
+ 0x20,0xff,
+ 0x21,0xf8,
+ 0x22,0x57,
+ 0x24,0xa2,
+ 0x25,0x0f,
+
+ //output sync_mode
+
+
+ 0x26,0x02, //0x03 20101016 zhj
+
+ 0x2f,0x01,
+ 0x30,0xf7,
+ 0x31,0x50,
+ 0x32,0x00,
+ 0x39,0x04,
+ 0x3a,0x18,
+ 0x3b,0x20,
+ 0x3c,0x00,
+ 0x3d,0x00,
+ 0x3e,0x00,
+ 0x3f,0x00,
+ 0x50,0x10,
+ 0x53,0x82,
+ 0x54,0x80,
+ 0x55,0x80,
+ 0x56,0x82,
+ 0x8b,0x40,
+ 0x8c,0x40,
+ 0x8d,0x40,
+ 0x8e,0x2e,
+ 0x8f,0x2e,
+ 0x90,0x2e,
+ 0x91,0x3c,
+ 0x92,0x50,
+ 0x5d,0x12,
+ 0x5e,0x1a,
+ 0x5f,0x24,
+ 0x60,0x07,
+ 0x61,0x15,
+ 0x62,0x04,
+ 0x64,0x03,
+ 0x66,0xe8,
+ 0x67,0x86,
+ 0x68,0xa2,
+ 0x69,0x18,
+ 0x6a,0x0f,
+ 0x6b,0x00,
+ 0x6c,0x5f,
+ 0x6d,0x8f,
+ 0x6e,0x55,
+ 0x6f,0x38,
+ 0x70,0x20, //0x15
+ 0x71,0x35, //0x33
+ 0x72,0xdc,
+ 0x73,0x80,
+ 0x74,0x02,
+ 0x75,0x3f,
+ 0x76,0x02,
+ 0x77,0x43,//54
+ 0x78,0x88,
+ 0x79,0x81,
+ 0x7a,0x81,
+ 0x7b,0x22,
+ 0x7c,0xff,
+ 0x93,0x44,
+ 0x94,0xfc,
+ 0x95,0x0a,
+ 0x96,0xe8,
+ 0x97,0x44,
+ 0x98,0xf8,
+ 0xb1,0x38,
+ 0xb2,0x38,
+ 0xbd,0x38,
+ 0xbe,0x36,
+ 0xd0,0xc9,
+ 0xd1,0x10,
+
+ 0xd3,0x80,
+ 0xd5,0xf2,
+ 0xd6,0x16,
+ 0xdb,0x92,
+ 0xdc,0xa5,
+ 0xdf,0x23,
+ 0xd9,0x00,
+ 0xda,0x00,
+ 0xe0,0x09,
+
+ 0xed,0x04,
+ 0xee,0xa0,
+ 0xef,0x40,
+ 0x80,0x03,
+ 0x80,0x03,
+
+
+ 0x9F,0x10,
+ 0xA0,0x20,
+ 0xA1,0x38,
+ 0xA2,0x4E,
+ 0xA3,0x63,
+ 0xA4,0x76,
+ 0xA5,0x87,
+ 0xA6,0xA2,
+ 0xA7,0xB8,
+ 0xA8,0xCA,
+ 0xA9,0xD8,
+ 0xAA,0xE3,
+ 0xAB,0xEB,
+ 0xAC,0xF0,
+ 0xAD,0xF8,
+ 0xAE,0xFD,
+ 0xAF,0xFF,
+
+ 0xc0,0x00,
+ 0xc1,0x10,
+ 0xc2,0x1C,
+ 0xc3,0x30,
+ 0xc4,0x43,
+ 0xc5,0x54,
+ 0xc6,0x65,
+ 0xc7,0x75,
+ 0xc8,0x93,
+ 0xc9,0xB0,
+ 0xca,0xCB,
+ 0xcb,0xE6,
+ 0xcc,0xFF,
+ 0xf0,0x02,
+ 0xf1,0x01,
+ 0xf2,0x01,
+ 0xf3,0x30,
+ 0xf9,0x9f,
+ 0xfa,0x78,
+ //----------------------------
+ 0xfe,0x01,// set page1
+ 0x00,0xf5,
+ 0x02,0x1a,
+ 0x0a,0xa0,
+ 0x0b,0x60,
+ 0x0c,0x08,
+ 0x0e,0x4c,
+ 0x0f,0x39,
+ 0x11,0x3f,
+ 0x12,0x72,
+ 0x13,0x13,
+ 0x14,0x3c,
+ 0x15,0x43,
+ 0x16,0xc2,
+ 0x17,0xa8,
+ 0x18,0x18,
+ 0x19,0x40,
+ 0x1a,0xd0,
+ 0x1b,0xf5,
+ 0x70,0x40,
+ 0x71,0x58,
+ 0x72,0x30,
+ 0x73,0x48,
+ 0x74,0x20,
+ 0x75,0x60,
+ 0x77,0x20,
+ 0x78,0x32,
+ 0x30,0x03,
+ 0x31,0x40,
+ 0x32,0xe0,
+ 0x33,0xe0,
+ 0x34,0xe0,
+ 0x35,0xb0,
+ 0x36,0xc0,
+ 0x37,0xc0,
+ 0x38,0x04,
+ 0x39,0x09,
+ 0x3a,0x12,
+ 0x3b,0x1C,
+ 0x3c,0x28,
+ 0x3d,0x31,
+ 0x3e,0x44,
+ 0x3f,0x57,
+ 0x40,0x6C,
+ 0x41,0x81,
+ 0x42,0x94,
+ 0x43,0xA7,
+ 0x44,0xB8,
+ 0x45,0xD6,
+ 0x46,0xEE,
+ 0x47,0x0d,
+ 0xfe,0x00,// set page0
+
+ //-----------Update the registers 2010/07/06-----------
+ //Registers of Page0
+ 0xfe,0x00,// set page0
+ 0x10,0x26,
+ 0x11,0x0d, // fd
+
+ 0x1a,0x2a, // 1e
+
+
+ 0x1c,0x49,// c1
+ 0x1d,0x9a,// 08
+
+
+ 0x1e,0x61,// 60
+
+ 0x3a,0x20,
+
+ 0x50,0x14, // 10
+
+
+ 0x53,0x80,
+ 0x56,0x80,
+
+ 0x8b,0x20,//LSC
+ 0x8c,0x20,
+ 0x8d,0x20,
+ 0x8e,0x14,
+ 0x8f,0x10,
+ 0x90,0x14,
+
+ 0x94,0x02,
+ 0x95,0x07,
+ 0x96,0xe0,
+
+ 0xb1,0x40,// YCPT
+ 0xb2,0x40,
+ 0xb3,0x47,//42
+ 0xb5,0xf8,//fa
+ 0xb6,0xe0,
+
+ 0x57,0x7f,//0x7c
+ 0x58,0x7c,
+ 0x59,0x80,
+
+ 0xd0,0xcb,// AECT c9
+
+
+ 0xd3,0x48,// 80
+
+ 0xf2,0x02,
+ 0xf7,0x12,
+ 0xf8,0x0a,
+
+ //Registers of Page1
+ 0xfe,0x01,// set page1
+ 0x02,0x20,
+ 0x04,0x10,
+ 0x05,0x08,
+ 0x06,0x20,
+ 0x08,0x0a,
+
+ 0x0e,0x44,
+ 0x0f,0x32,
+ 0x10,0x41,
+ 0x11,0x37,
+ 0x12,0x22,
+ 0x13,0x19,
+ 0x14,0x44,
+ 0x15,0x44,
+
+ 0x19,0x50,
+ 0x1a,0xd8,
+
+ 0x32,0x10,
+
+ 0x35,0x00,
+ 0x36,0x80,
+ 0x37,0x00,
+ //-----------Update the registers end---------//
+ 0xfe,0x00,// set page0
+ 0xd2,0x90,
+};
+
+uint8_t gc0308_default_regs_exit[]={
+};
+#endif
diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gt7302-gmt.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gt7302-gmt.h new file mode 100755 index 00000000..5dc8c66c --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gt7302-gmt.h @@ -0,0 +1,609 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xfd, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + +uint8_t gc0308_antibanding_auto[] = { + #if 0 + 0xfe,0x00, + + 0x01,0x97, + 0x02,0x84, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x3e, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x6c, + 0xe6,0x02, //exp level 1 10fps + 0xe7,0xe8, + 0xe8,0x03, //exp level 2 7.69fps + 0xe9,0xe0, + 0xea,0x05, //exp level 3 5.00fps + 0xeb,0xd0, + #else + 0xfe,0x00, + + 0x01,0x97, + 0x02,0x84, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x3e, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x6c, + 0xe6,0x02, //exp level 1 10fps + 0xe7,0xe8, + 0xe8,0x03, //exp level 2 7.69fps + 0xe9,0xe0, + 0xea,0x05, //exp level 3 5.00fps + 0xeb,0xd0, + #endif + +}; + +uint8_t gc0308_antibanding_50hz[] = { + 0xfe,0x00, + + 0x01,0x26, + 0x02,0x98, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x50, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x80, + 0xe6,0x03, //exp level 1 10fps + 0xe7,0x20, + 0xe8,0x04, //exp level 2 7.69fps + 0xe9,0x10, + 0xea,0x06, //exp level 3 5.00fps + 0xeb,0x40, + +}; + +uint8_t gc0308_antibanding_60hz[] = { + 0xfe,0x00, + + 0x01,0x97, + 0x02,0x84, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x3e, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x6c, + 0xe6,0x02, //exp level 1 10fps + 0xe7,0xe8, + 0xe8,0x03, //exp level 2 7.69fps + 0xe9,0xe0, + 0xea,0x05, //exp level 3 5.00fps + 0xeb,0xd0, + +}; + +uint8_t gc0308_antibanding_off[] = { + 0xfe,0x00, + + 0x01,0x26, + 0x02,0x98, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x50, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x80, + 0xe6,0x03, //exp level 1 10fps + 0xe7,0x20, + 0xe8,0x04, //exp level 2 7.69fps + 0xe9,0x10, + 0xea,0x06, //exp level 3 5.00fps + 0xeb,0x40, + +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x30, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x0c, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x65, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, +/* + 0x9F,0x0B, + 0xA0,0x16, + 0xA1,0x29, + 0xA2,0x3C, + 0xA3,0x4F, + 0xA4,0x5F, + 0xA5,0x6F, + 0xA6,0x8A, + 0xA7,0x9F, + 0xA8,0xB4, + 0xA9,0xC6, + 0xAA,0xD3, + 0xAB,0xDD, + 0xAC,0xE5, + 0xAD,0xF1, + 0xAE,0xFA, + 0xAF,0xFF, +*/ + + + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + /* + 0x9F,0x14, + 0xA0,0x24, + 0xA1,0x3e, + 0xA2,0x50, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + */ + /* + 0x9F,0x0E, + 0xA0,0x1C, + 0xA1,0x34, + 0xA2,0x48, + 0xA3,0x5A, + 0xA4,0x6B, + 0xA5,0x7B, + 0xA6,0x95, + 0xA7,0xAB, + 0xA8,0xBF, + 0xA9,0xCE, + 0xAA,0xD9, + 0xAB,0xE4, + 0xAC,0xEC, + 0xAD,0xF7, + 0xAE,0xFD, + 0xAF,0xFF, +*/ + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x3a,// YCPT + 0xb2,0x3a, + 0xb3,0x38,// 3c + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x40,// 80 + 0xb5,0xf8, + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-jfs0672-clw-gt7305.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-jfs0672-clw-gt7305.h new file mode 100755 index 00000000..4f9ad904 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-jfs0672-clw-gt7305.h @@ -0,0 +1,481 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xfa,//0x00 + 0xd3, 0x44,//0x48 hyper +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + /*0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4,*/ + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x05, //exp level 3 7.14fps + 0xe9,0x78, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4,//hyper + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x08, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x54, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x53,//0x48 + 0x94,0x00, + 0x95,0x02,//05 hyper + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x42,//0x38 hyper + 0xb2,0x42, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xcb,//0xc9 hyper + 0xd1,0x10, + + 0xd3,0x44,//0x80 hyper + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + +#if 0 //gamma 3 + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, +#endif + //gamma 2 2013-7-24 dustin + 0x9F,0x0E, + 0xA0,0x1C, + 0xA1,0x34, + 0xA2,0x48, + 0xA3,0x5A, + 0xA4,0x6B, + 0xA5,0x7B, + 0xA6,0x95, + 0xA7,0xAB, + 0xA8,0xBF, + 0xA9,0xCE, + 0xAA,0xD9, + 0xAB,0xE4, + 0xAC,0xEC, + 0xAD,0xF7, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x42,// YCPT + 0xb2,0x42,//40 hyper + 0xb3,0x42,//40 2013-7-24 dustin//45 hyper + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x44,// 80//48 hyper + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-kyt-110_v1.0.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-kyt-110_v1.0.h new file mode 100755 index 00000000..9bbaab31 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-kyt-110_v1.0.h @@ -0,0 +1,446 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0xd4, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0xe8, + 0xe8,0x05, //exp level 3 8.33fps + 0xe9,0x78, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x1f, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x34, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x14, + 0xA0,0x24, + 0xA1,0x3e, + 0xA2,0x50, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x3a,// YCPT + 0xb2,0x3a, + 0xb3,0x43, + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x45,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-kyt-173_v1.0.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-kyt-173_v1.0.h new file mode 100755 index 00000000..e0fe145b --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-kyt-173_v1.0.h @@ -0,0 +1,446 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x06, //0x03 20101016 zhj//02 cyrille + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x08, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x54, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x40,// YCPT + 0xb2,0x40, + 0xb3,0x40, + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-mrs-gt7305_v1.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-mrs-gt7305_v1.h new file mode 100755 index 00000000..1bc51987 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-mrs-gt7305_v1.h @@ -0,0 +1,452 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x44,//48 +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + + 0x57,0x7c,//80 + 0x58,0x7d,//80 + 0x59,0x80,//80 + + + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x08, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x54, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x44, //48 2013-8-16 dustin + 0x94,0x00, + 0x95,0x06, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x40,// YCPT + 0xb2,0x40, + 0xb3,0x3b,//40//3xd + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x44,// 80//48 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-mrs-gt7305_v1_qx.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-mrs-gt7305_v1_qx.h new file mode 100755 index 00000000..69692438 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-mrs-gt7305_v1_qx.h @@ -0,0 +1,452 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x44,//48 +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x05, //exp level 3 8.33fps + 0xe9,0x14, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + + 0x57,0x80,//80 + 0x58,0x7d,//80 + 0x59,0x80,//80 + + + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x08, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x65,//54 + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, //48 2013-8-16 dustin + 0x94,0x00, + 0x95,0x06, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x42,// YCPT + 0xb2,0x42, + 0xb3,0x40,//40//3xd + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80//44 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-syx-gt7206.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-syx-gt7206.h new file mode 100755 index 00000000..443407b3 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-syx-gt7206.h @@ -0,0 +1,446 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x08, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x54, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x00, // 02 + 0x95,0x07, + 0x96,0xf8, // e0 + + 0xb1,0x40,// YCPT + 0xb2,0x40, + 0xb3,0x40, + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-yb474-gt7303.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-yb474-gt7303.h new file mode 100755 index 00000000..2702a6bb --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-yb474-gt7303.h @@ -0,0 +1,465 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x08, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x54, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + +#if 0 //gamma 3 + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, +#endif + //gamma 2 2013-7-24 dustin + 0x9F,0x0E, + 0xA0,0x1C, + 0xA1,0x34, + 0xA2,0x48, + 0xA3,0x5A, + 0xA4,0x6B, + 0xA5,0x7B, + 0xA6,0x95, + 0xA7,0xAB, + 0xA8,0xBF, + 0xA9,0xCE, + 0xAA,0xD9, + 0xAB,0xE4, + 0xAC,0xEC, + 0xAD,0xF7, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x40,// YCPT + 0xb2,0x40, + 0xb3,0x45,//40 2013-7-24 dustin + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-zh_tvbox.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-zh_tvbox.h new file mode 100755 index 00000000..e26931ad --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-zh_tvbox.h @@ -0,0 +1,447 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0xe8, + 0xe8,0x05, //exp level 3 8.33fps + 0xe9,0x78, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x15, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x34, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x08,//38 + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x14, + 0xA0,0x24, + 0xA1,0x3e, + 0xA2,0x50, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x36,// YCPT + 0xb2,0x36, + 0xb3,0x3c, + 0xb5,0xf0, + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x42,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-zyhb-twd8802.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-zyhb-twd8802.h new file mode 100755 index 00000000..817f09cf --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-zyhb-twd8802.h @@ -0,0 +1,447 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x15, + 0x64,0x02, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x65,//54 + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x3f,//38 + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F, 0x10, ///case 3: + 0xA0, 0x20, + 0xA1, 0x38, + 0xA2, 0x4E, + 0xA3, 0x63, + 0xA4, 0x76, + 0xA5, 0x87, + 0xA6, 0xA2, + 0xA7, 0xB8, + 0xA8, 0xCA, + 0xA9, 0xD8, + 0xAA, 0xE3, + 0xAB, 0xEB, + 0xAC, 0xF0, + 0xAD, 0xF8, + 0xAE, 0xFD, + 0xAF, 0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x38,// YCPT + 0xb2,0x38, + 0xb3,0x44, + 0xb5,0x04, + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x4a,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308.c b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308.c new file mode 100755 index 00000000..29be14b2 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308.c @@ -0,0 +1,378 @@ + +#include "../cmos-subdev.h" +#include "../../wmt-vid.h" +#include "gc0308.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 0x10 +#define DELAY_INTERVAL 50 +#define RETRY_TIMES 10 + +static const struct cmos_win_size cmos_supported_win_sizes[] = { +// CMOS_WIN_SIZE("QVGA", 320, 240, gc0308_320x240), + CMOS_WIN_SIZE("VGA", 640, 480, gc0308_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 = gc0308_wb_auto; + size = ARRAY_SIZE(gc0308_wb_auto); + break; + case WHITE_BALANCE_INCANDESCENCE: + regs = gc0308_wb_incandescent; + size = ARRAY_SIZE(gc0308_wb_incandescent); + break; + case WHITE_BALANCE_DAYLIGHT: + regs = gc0308_wb_daylight; + size = ARRAY_SIZE(gc0308_wb_daylight); + break; + case WHITE_BALANCE_CLOUDY: + regs = gc0308_wb_cloudy; + size = ARRAY_SIZE(gc0308_wb_cloudy); + break; + case WHITE_BALANCE_FLUORESCENT: + regs = gc0308_wb_fluorescent; + size = ARRAY_SIZE(gc0308_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 = gc0308_scene_mode_auto; + size = ARRAY_SIZE(gc0308_scene_mode_auto); + break; + case SCENE_MODE_NIGHTSHOT: + regs = gc0308_scene_mode_night; + size = ARRAY_SIZE(gc0308_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 = gc0308_exposure_neg6; + size = ARRAY_SIZE(gc0308_exposure_neg6); + break; + case -1: + regs = gc0308_exposure_neg3; + size = ARRAY_SIZE(gc0308_exposure_neg3); + break; + case 0: + regs = gc0308_exposure_zero; + size = ARRAY_SIZE(gc0308_exposure_zero); + break; + case 1: + regs = gc0308_exposure_pos3; + size = ARRAY_SIZE(gc0308_exposure_pos3); + break; + case 2: + regs = gc0308_exposure_pos6; + size = ARRAY_SIZE(gc0308_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 = gc0308_antibanding_auto; + size = ARRAY_SIZE(gc0308_antibanding_auto); + break; + case 1: + regs = gc0308_antibanding_50hz; + size = ARRAY_SIZE(gc0308_antibanding_50hz); + break; + case 2: + regs = gc0308_antibanding_60hz; + size = ARRAY_SIZE(gc0308_antibanding_60hz); + break; + case 3: + regs = gc0308_antibanding_off; + size = ARRAY_SIZE(gc0308_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, 0x14); + + 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, 0x14, tmp); + msleep(50+retry_times*DELAY_INTERVAL); + if(sensor_read(sd, 0x14)==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, 0x14); + + 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, 0x14, tmp); + msleep(50+retry_times*DELAY_INTERVAL); + if(sensor_read(sd, 0x14)==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; + + 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); + 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) +{ + return (sensor_read(sd, 0) == sd->id) ? 0 : -EINVAL; +} + +static int sensor_init(struct cmos_subdev *sd) +{ + if (sensor_identify(sd)) { + return -1; + } + + sensor_write_array(sd, gc0308_default_regs_init, + ARRAY_SIZE(gc0308_default_regs_init)); + return 0; +} + +static int sensor_exit(struct cmos_subdev *sd) +{ + sensor_write_array(sd, gc0308_default_regs_exit, + ARRAY_SIZE(gc0308_default_regs_exit)); + return 0; +} + +static struct cmos_subdev_ops gc0308_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 gc0308 = { + .name = "gc0308", + .i2c_addr = 0x21, + .id = 0x9b, + .max_width = 640, + .max_height = 480, + .ops = &gc0308_ops, +}; + +#if 0 +static int __init gc0308_init(void) +{ + return cmos_register_sudbdev(&gc0308); +} + +static void __exit gc0308_exit(void) +{ + return cmos_unregister_subdev(&gc0308); +} + +module_init(gc0308_init); +module_exit(gc0308_exit); + +MODULE_LICENSE("GPL"); +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308.h new file mode 100755 index 00000000..5bd4382b --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308.h @@ -0,0 +1,530 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + +uint8_t gc0308_antibanding_auto[] = { + 0xfe,0x00, + + 0x01,0x97, + 0x02,0x84, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x3e, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x6c, + 0xe6,0x02, //exp level 1 10fps + 0xe7,0xe8, + 0xe8,0x03, //exp level 2 7.69fps + 0xe9,0xe0, + 0xea,0x05, //exp level 3 5.00fps + 0xeb,0xd0, + +}; + +uint8_t gc0308_antibanding_50hz[] = { + 0xfe,0x00, + + 0x01,0x26, + 0x02,0x98, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x50, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x80, + 0xe6,0x03, //exp level 1 10fps + 0xe7,0x20, + 0xe8,0x04, //exp level 2 7.69fps + 0xe9,0x10, + 0xea,0x06, //exp level 3 5.00fps + 0xeb,0x40, + +}; + +uint8_t gc0308_antibanding_60hz[] = { + 0xfe,0x00, + + 0x01,0x97, + 0x02,0x84, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x3e, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x6c, + 0xe6,0x02, //exp level 1 10fps + 0xe7,0xe8, + 0xe8,0x03, //exp level 2 7.69fps + 0xe9,0xe0, + 0xea,0x05, //exp level 3 5.00fps + 0xeb,0xd0, + +}; + +uint8_t gc0308_antibanding_off[] = { + 0xfe,0x00, + + 0x01,0x26, + 0x02,0x98, + 0x0f,0x03, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x50, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 0 12.5fps + 0xe5,0x80, + 0xe6,0x03, //exp level 1 10fps + 0xe7,0x20, + 0xe8,0x04, //exp level 2 7.69fps + 0xe9,0x10, + 0xea,0x06, //exp level 3 5.00fps + 0xeb,0x40, + +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[] = { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[] = { + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x64, //anti-flicker step [7:0] + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x03, //exp level 2 12.5fps + 0xe7,0x20, + 0xe8,0x04, //exp level 3 8.33fps + 0xe9,0xb0, + 0xea,0x09, //exp level 4 4.00fps + 0xeb,0xc4, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x16, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x08, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x54, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x14, + 0xA0,0x24, + 0xA1,0x3e, + 0xA2,0x50, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd + + 0x1a,0x2a, // 1e + + + 0x1c,0x49,// c1 + 0x1d,0x9a,// 08 + + + 0x1e,0x61,// 60 + + 0x3a,0x20, + + 0x50,0x14, // 10 + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x3a,// YCPT + 0xb2,0x3a, + 0xb3,0x40, + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80 + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_7300_hd.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_7300_hd.h new file mode 100755 index 00000000..424eff2b --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_7300_hd.h @@ -0,0 +1,424 @@ +#ifndef GC0308_H +#define GC0308_H + +#define GC0308_I2C_ADDR 0x21 + +#define gc0308_read_reg(r) wmt_vid_i2c_read(GC0308_I2C_ADDR, r) + +#define gc0308_write_reg(r, d) wmt_vid_i2c_write(GC0308_I2C_ADDR, r, d) + +#define gc0308_write_array(a) \ +do { \ + cmos_init_8bit_addr(a, ARRAY_SIZE(a), GC0308_I2C_ADDR); \ +} while (0) + + +// Scene Mode +unsigned char gc0308_scene_mode_auto[] = { + 0xec, 0x20, +}; + +unsigned char gc0308_scene_mode_night[] = { + 0xec, 0x30, +}; + + +// White Balance +unsigned char gc0308_wb_auto [] = { + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +unsigned char gc0308_wb_incandescent [] = { + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +unsigned char gc0308_wb_fluorescent [] = { + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +unsigned char gc0308_wb_daylight [] = { + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +unsigned char gc0308_wb_cloudy [] = { + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +unsigned char gc0308_exposure_neg6[] = { + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +unsigned char gc0308_exposure_neg3[] = { + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +unsigned char gc0308_exposure_zero[] = { + 0xb5, 0x00, + 0xd3, 0x40, +}; + +unsigned char gc0308_exposure_pos3[] = { + 0xb5, 0x10, + 0xd3, 0x50, +}; + +unsigned char gc0308_exposure_pos6[] = { + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +unsigned char gc0308_320x240[]= { +0xfe, 0x01, 0x54, 0x22, 0x55, 0x03, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0xfe, 0x00 +}; + +unsigned char gc0308_640x480[]={ +0xfe,0x80, + +0xfe,0x00, // set page0 + +0xd2,0x10, // close AEC +0x22,0x55, // close AWB + +0x03,0x01, +0x04,0x2c, +0x5a,0x56, +0x5b,0x40, +0x5c,0x4a, + +0x22,0x57, // Open AWB + +0x01,0xfa, +0x02,0x70, +0x0f,0x01, + +0xe2,0x00, //anti-flicker step [11:8] +0xe3,0x64, //anti-flicker step [7:0] + +0xe4,0x02, //exp level 1 16.67fps +0xe5,0x58, +0xe6,0x03, //exp level 2 12.5fps +0xe7,0x20, +0xe8,0x04, //exp level 3 8.33fps +0xe9,0xb0, +0xea,0x09, //exp level 4 4.00fps +0xeb,0xc4, + +0xec,0x20, + +0x05,0x00, +0x06,0x00, +0x07,0x00, +0x08,0x00, +0x09,0x01, +0x0a,0xe8, +0x0b,0x02, +0x0c,0x88, +0x0d,0x02, +0x0e,0x02, +0x10,0x22, +0x11,0xfd, +0x12,0x2a, +0x13,0x00, +0x14,0x10, //0x10 + +0x15,0x0a, +0x16,0x05, +0x17,0x01, +0x18,0x44, +0x19,0x44, +0x1a,0x1e, +0x1b,0x00, +0x1c,0xc1, +0x1d,0x08, +0x1e,0x60, +0x1f,0x03, + + + +0x20,0xff, +0x21,0xf8, +0x22,0x57, +0x24,0xa2, +0x25,0x0f, + +//output sync_mode + + +0x26,0x02, //0x03 20101016 zhj + +0x2f,0x01, +0x30,0xf7, +0x31,0x50, +0x32,0x00, +0x39,0x04, +0x3a,0x18, +0x3b,0x20, +0x3c,0x00, +0x3d,0x00, +0x3e,0x00, +0x3f,0x00, +0x50,0x10, +0x53,0x82, +0x54,0x80, +0x55,0x80, +0x56,0x82, +0x8b,0x40, +0x8c,0x40, +0x8d,0x40, +0x8e,0x2e, +0x8f,0x2e, +0x90,0x2e, +0x91,0x3c, +0x92,0x50, +0x5d,0x12, +0x5e,0x1a, +0x5f,0x24, +0x60,0x07, +0x61,0x15, +0x62,0x08, +0x64,0x03, +0x66,0xe8, +0x67,0x86, +0x68,0xa2, +0x69,0x18, +0x6a,0x0f, +0x6b,0x00, +0x6c,0x5f, +0x6d,0x8f, +0x6e,0x55, +0x6f,0x38, +0x70,0x15, +0x71,0x33, +0x72,0xdc, +0x73,0x80, +0x74,0x02, +0x75,0x3f, +0x76,0x02, +0x77,0x54, +0x78,0x88, +0x79,0x81, +0x7a,0x81, +0x7b,0x22, +0x7c,0xff, +0x93,0x48, +0x94,0x00, +0x95,0x05, +0x96,0xe8, +0x97,0x40, +0x98,0xf0, +0xb1,0x38, +0xb2,0x38, +0xbd,0x38, +0xbe,0x36, +0xd0,0xc9, +0xd1,0x10, +//{{0xd2,0x90, +0xd3,0x80, +0xd5,0xf2, +0xd6,0x16, +0xdb,0x92, +0xdc,0xa5, +0xdf,0x23, +0xd9,0x00, +0xda,0x00, +0xe0,0x09, + +0xed,0x04, +0xee,0xa0, +0xef,0x40, +0x80,0x03, +0x80,0x03, + + +0x9F,0x10, +0xA0,0x20, +0xA1,0x38, +0xA2,0x4E, +0xA3,0x63, +0xA4,0x76, +0xA5,0x87, +0xA6,0xA2, +0xA7,0xB8, +0xA8,0xCA, +0xA9,0xD8, +0xAA,0xE3, +0xAB,0xEB, +0xAC,0xF0, +0xAD,0xF8, +0xAE,0xFD, +0xAF,0xFF, + +0xc0,0x00, +0xc1,0x10, +0xc2,0x1C, +0xc3,0x30, +0xc4,0x43, +0xc5,0x54, +0xc6,0x65, +0xc7,0x75, +0xc8,0x93, +0xc9,0xB0, +0xca,0xCB, +0xcb,0xE6, +0xcc,0xFF, +0xf0,0x02, +0xf1,0x01, +0xf2,0x01, +0xf3,0x30, +0xf9,0x9f, +0xfa,0x78, +//---------------------------- +0xfe,0x01,// set page1 +0x00,0xf5, +0x02,0x1a, +0x0a,0xa0, +0x0b,0x60, +0x0c,0x08, +0x0e,0x4c, +0x0f,0x39, +0x11,0x3f, +0x12,0x72, +0x13,0x13, +0x14,0x42, +0x15,0x43, +0x16,0xc2, +0x17,0xa8, +0x18,0x18, +0x19,0x40, +0x1a,0xd0, +0x1b,0xf5, +0x70,0x40, +0x71,0x58, +0x72,0x30, +0x73,0x48, +0x74,0x20, +0x75,0x60, +0x77,0x20, +0x78,0x32, +0x30,0x03, +0x31,0x40, +0x32,0xe0, +0x33,0xe0, +0x34,0xe0, +0x35,0xb0, +0x36,0xc0, +0x37,0xc0, +0x38,0x04, +0x39,0x09, +0x3a,0x12, +0x3b,0x1C, +0x3c,0x28, +0x3d,0x31, +0x3e,0x44, +0x3f,0x57, +0x40,0x6C, +0x41,0x81, +0x42,0x94, +0x43,0xA7, +0x44,0xB8, +0x45,0xD6, +0x46,0xEE, +0x47,0x0d, +0xfe,0x00,// set page0 + +//-----------Update the registers 2010/07/06----------- + //Registers of Page0 +0xfe,0x00,// set page0 +0x10,0x26, +0x11,0x0d, // fd},{modified by mormo 2010/07/06 + +0x1a,0x2a, // 1e},{modified by mormo 2010/07/06 + + +0x1c,0x49,// c1},{modified by mormo 2010/07/06 +0x1d,0x9a,// 08},{modified by mormo 2010/07/06 + + +0x1e,0x61,// 60},{modified by mormo 2010/07/06 + +0x3a,0x20, + +0x50,0x14, // 10},{modified by mormo 2010/07/06 + + +0x53,0x80, +0x56,0x80, + +0x8b,0x20,//LSC +0x8c,0x20, +0x8d,0x20, +0x8e,0x14, +0x8f,0x10, +0x90,0x14, + +0x94,0x02, +0x95,0x07, +0x96,0xe0, + +0xb1,0x40,// YCPT +0xb2,0x40, +0xb3,0x38, +0xb6,0xe0, + +0xd0,0xcb,// AECT c9},{modifed by mormo 2010/07/06 + + +0xd3,0x40,// 80},{modified by mormor 2010/07/06 + + + +0xf2,0x02, +0xf7,0x12, +0xf8,0x0a, + + //Registers of Page1 +0xfe,0x01,// set page1 +0x02,0x20, +0x04,0x10, +0x05,0x08, +0x06,0x20, +0x08,0x0a, + +0x0e,0x44, +0x0f,0x32, +0x10,0x41, +0x11,0x37, +0x12,0x22, +0x13,0x19, +0x14,0x44, +0x15,0x44, + +0x19,0x50, +0x1a,0xd8, + +0x32,0x10, + +0x35,0x00, +0x36,0x80, +0x37,0x00, +//-----------Update the registers end---------// +0xfe,0x00,// set page0 +0xd2,0x90, +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_8335c.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_8335c.h new file mode 100755 index 00000000..678d799e --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_8335c.h @@ -0,0 +1,424 @@ +#ifndef GC0308_H +#define GC0308_H + +#define GC0308_I2C_ADDR 0x21 + +#define gc0308_read_reg(r) wmt_vid_i2c_read(GC0308_I2C_ADDR, r) + +#define gc0308_write_reg(r, d) wmt_vid_i2c_write(GC0308_I2C_ADDR, r, d) + +#define gc0308_write_array(a) \ +do { \ + cmos_init_8bit_addr(a, ARRAY_SIZE(a), GC0308_I2C_ADDR); \ +} while (0) + + +// Scene Mode +unsigned char gc0308_scene_mode_auto[] = { + 0xec, 0x20, +}; + +unsigned char gc0308_scene_mode_night[] = { + 0xec, 0x30, +}; + + +// White Balance +unsigned char gc0308_wb_auto [] = { + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +unsigned char gc0308_wb_incandescent [] = { + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +unsigned char gc0308_wb_fluorescent [] = { + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +unsigned char gc0308_wb_daylight [] = { + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +unsigned char gc0308_wb_cloudy [] = { + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +unsigned char gc0308_exposure_neg6[] = { + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +unsigned char gc0308_exposure_neg3[] = { + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +unsigned char gc0308_exposure_zero[] = { + 0xb5, 0x00, + 0xd3, 0x48, +}; + +unsigned char gc0308_exposure_pos3[] = { + 0xb5, 0x10, + 0xd3, 0x50, +}; + +unsigned char gc0308_exposure_pos6[] = { + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +unsigned char gc0308_320x240[]= { +0xfe, 0x01, 0x54, 0x22, 0x55, 0x03, 0x56, 0x00, 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0xfe, 0x00 +}; + +unsigned char gc0308_640x480[]={ +0xfe,0x80, + +0xfe,0x00, // set page0 + +0xd2,0x10, // close AEC +0x22,0x55, // close AWB + +0x03,0x01, +0x04,0x2c, +0x5a,0x56, +0x5b,0x40, +0x5c,0x4a, + +0x22,0x57, // Open AWB + +0x01,0xfa, +0x02,0x70, +0x0f,0x01, + +0xe2,0x00, //anti-flicker step [11:8] +0xe3,0x64, //anti-flicker step [7:0] + +0xe4,0x02, //exp level 1 16.67fps +0xe5,0x58, +0xe6,0x03, //exp level 2 12.5fps +0xe7,0x20, +0xe8,0x04, //exp level 3 8.33fps +0xe9,0xb0, +0xea,0x09, //exp level 4 4.00fps +0xeb,0xc4, + +0xec,0x20, + +0x05,0x00, +0x06,0x00, +0x07,0x00, +0x08,0x00, +0x09,0x01, +0x0a,0xe8, +0x0b,0x02, +0x0c,0x88, +0x0d,0x02, +0x0e,0x02, +0x10,0x22, +0x11,0xfd, +0x12,0x2a, +0x13,0x00, +0x14,0x10, //0x10 + +0x15,0x0a, +0x16,0x05, +0x17,0x01, +0x18,0x44, +0x19,0x44, +0x1a,0x1e, +0x1b,0x00, +0x1c,0xc1, +0x1d,0x08, +0x1e,0x60, +0x1f,0x03, + + + +0x20,0xff, +0x21,0xf8, +0x22,0x57, +0x24,0xa2, +0x25,0x0f, + +//output sync_mode + + +0x26,0x02, //0x03 20101016 zhj + +0x2f,0x01, +0x30,0xf7, +0x31,0x50, +0x32,0x00, +0x39,0x04, +0x3a,0x18, +0x3b,0x20, +0x3c,0x00, +0x3d,0x00, +0x3e,0x00, +0x3f,0x00, +0x50,0x10, +0x53,0x82, +0x54,0x80, +0x55,0x80, +0x56,0x82, +0x8b,0x40, +0x8c,0x40, +0x8d,0x40, +0x8e,0x2e, +0x8f,0x2e, +0x90,0x2e, +0x91,0x3c, +0x92,0x50, +0x5d,0x12, +0x5e,0x1a, +0x5f,0x24, +0x60,0x07, +0x61,0x15, +0x62,0x08, +0x64,0x03, +0x66,0xe8, +0x67,0x86, +0x68,0xa2, +0x69,0x18, +0x6a,0x0f, +0x6b,0x00, +0x6c,0x5f, +0x6d,0x8f, +0x6e,0x55, +0x6f,0x38, +0x70,0x15, +0x71,0x33, +0x72,0xdc, +0x73,0x80, +0x74,0x02, +0x75,0x3f, +0x76,0x02, +0x77,0x54, +0x78,0x88, +0x79,0x81, +0x7a,0x81, +0x7b,0x22, +0x7c,0xff, +0x93,0x48, +0x94,0x00, +0x95,0x05, +0x96,0xe8, +0x97,0x40, +0x98,0xf0, +0xb1,0x38, +0xb2,0x38, +0xbd,0x38, +0xbe,0x36, +0xd0,0xc9, +0xd1,0x10, +//{{0xd2,0x90, +0xd3,0x80, +0xd5,0xf2, +0xd6,0x16, +0xdb,0x92, +0xdc,0xa5, +0xdf,0x23, +0xd9,0x00, +0xda,0x00, +0xe0,0x09, + +0xed,0x04, +0xee,0xa0, +0xef,0x40, +0x80,0x03, +0x80,0x03, + + +0x9F,0x10, +0xA0,0x20, +0xA1,0x38, +0xA2,0x4E, +0xA3,0x63, +0xA4,0x76, +0xA5,0x87, +0xA6,0xA2, +0xA7,0xB8, +0xA8,0xCA, +0xA9,0xD8, +0xAA,0xE3, +0xAB,0xEB, +0xAC,0xF0, +0xAD,0xF8, +0xAE,0xFD, +0xAF,0xFF, + +0xc0,0x00, +0xc1,0x10, +0xc2,0x1C, +0xc3,0x30, +0xc4,0x43, +0xc5,0x54, +0xc6,0x65, +0xc7,0x75, +0xc8,0x93, +0xc9,0xB0, +0xca,0xCB, +0xcb,0xE6, +0xcc,0xFF, +0xf0,0x02, +0xf1,0x01, +0xf2,0x01, +0xf3,0x30, +0xf9,0x9f, +0xfa,0x78, +//---------------------------- +0xfe,0x01,// set page1 +0x00,0xf5, +0x02,0x1a, +0x0a,0xa0, +0x0b,0x60, +0x0c,0x08, +0x0e,0x4c, +0x0f,0x39, +0x11,0x3f, +0x12,0x72, +0x13,0x13, +0x14,0x42, +0x15,0x43, +0x16,0xc2, +0x17,0xa8, +0x18,0x18, +0x19,0x40, +0x1a,0xd0, +0x1b,0xf5, +0x70,0x40, +0x71,0x58, +0x72,0x30, +0x73,0x48, +0x74,0x20, +0x75,0x60, +0x77,0x20, +0x78,0x32, +0x30,0x03, +0x31,0x40, +0x32,0xe0, +0x33,0xe0, +0x34,0xe0, +0x35,0xb0, +0x36,0xc0, +0x37,0xc0, +0x38,0x04, +0x39,0x09, +0x3a,0x12, +0x3b,0x1C, +0x3c,0x28, +0x3d,0x31, +0x3e,0x44, +0x3f,0x57, +0x40,0x6C, +0x41,0x81, +0x42,0x94, +0x43,0xA7, +0x44,0xB8, +0x45,0xD6, +0x46,0xEE, +0x47,0x0d, +0xfe,0x00,// set page0 + +//-----------Update the registers 2010/07/06----------- + //Registers of Page0 +0xfe,0x00,// set page0 +0x10,0x26, +0x11,0x0d, // fd},{modified by mormo 2010/07/06 + +0x1a,0x2a, // 1e},{modified by mormo 2010/07/06 + + +0x1c,0x49,// c1},{modified by mormo 2010/07/06 +0x1d,0x9a,// 08},{modified by mormo 2010/07/06 + + +0x1e,0x61,// 60},{modified by mormo 2010/07/06 + +0x3a,0x20, + +0x50,0x14, // 10},{modified by mormo 2010/07/06 + + +0x53,0x80, +0x56,0x80, + +0x8b,0x20,//LSC +0x8c,0x20, +0x8d,0x20, +0x8e,0x14, +0x8f,0x10, +0x90,0x14, + +0x94,0x02, +0x95,0x07, +0x96,0xe0, + +0xb1,0x40,// YCPT +0xb2,0x40, +0xb3,0x40, +0xb6,0xe0, + +0xd0,0xcb,// AECT c9},{modifed by mormo 2010/07/06 + + +0xd3,0x48,// 80},{modified by mormor 2010/07/06 + + + +0xf2,0x02, +0xf7,0x12, +0xf8,0x0a, + + //Registers of Page1 +0xfe,0x01,// set page1 +0x02,0x20, +0x04,0x10, +0x05,0x08, +0x06,0x20, +0x08,0x0a, + +0x0e,0x44, +0x0f,0x32, +0x10,0x41, +0x11,0x37, +0x12,0x22, +0x13,0x19, +0x14,0x44, +0x15,0x44, + +0x19,0x50, +0x1a,0xd8, + +0x32,0x10, + +0x35,0x00, +0x36,0x80, +0x37,0x00, +//-----------Update the registers end---------// +0xfe,0x00,// set page0 +0xd2,0x90, +}; +#endif diff --git a/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_8353.h b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_8353.h new file mode 100755 index 00000000..717e5a42 --- /dev/null +++ b/drivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_8353.h @@ -0,0 +1,457 @@ +#ifndef GC0308_H +#define GC0308_H + + +// Scene Mode +uint8_t gc0308_scene_mode_auto[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x20, +}; + +uint8_t gc0308_scene_mode_night[] = { + 0xfe, 0x00, // set page0 + 0xec, 0x30, +}; + + +// White Balance +uint8_t gc0308_wb_auto [] = { + 0xfe, 0x00, // set page0 + 0x5a, 0x56, + 0x5b, 0x40, + 0x5c, 0x4a, + 0x22, 0x57, +}; + +uint8_t gc0308_wb_incandescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x48, + 0x5b, 0x40, + 0x5c, 0x5c, +}; + +uint8_t gc0308_wb_fluorescent [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x40, + 0x5b, 0x42, + 0x5c, 0x50, +}; + +uint8_t gc0308_wb_daylight [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x74, + 0x5b, 0x52, + 0x5c, 0x40, +}; + +uint8_t gc0308_wb_cloudy [] = { + 0xfe, 0x00, // set page0 + 0x22, 0x55, + 0x5a, 0x8c, + 0x5b, 0x50, + 0x5c, 0x40, +}; + + +// Exposure +uint8_t gc0308_exposure_neg6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xe0, + 0xd3, 0x38, +}; + +uint8_t gc0308_exposure_neg3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0xf0, + 0xd3, 0x40, +}; + +uint8_t gc0308_exposure_zero[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x00, + 0xd3, 0x48, +}; + +uint8_t gc0308_exposure_pos3[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x10, + 0xd3, 0x50, +}; + +uint8_t gc0308_exposure_pos6[] = { + 0xfe, 0x00, // set page0 + 0xb5, 0x20, + 0xd3, 0x58, +}; + + +// Resolution +uint8_t gc0308_320x240[]= { + 0xfe, 0x01, + 0x54, 0x22, + 0x55, 0x03, + 0x56, 0x00, + 0x57, 0x00, + 0x58, 0x00, + 0x59, 0x00, + 0xfe, 0x00, +}; + +uint8_t gc0308_640x480[]= { + 0xfe,0x01, + 0x54,0x11, + 0x55,0x03, + 0x56,0x00, + 0x57,0x00, + 0x58,0x00, + 0x59,0x00, + 0xfe,0x00, + 0x46,0x00, + 0xfe,0x00, +}; + +uint8_t gc0308_default_regs_init[]={ + 0xfe,0x80, + + 0xfe,0x00, // set page0 + + 0xd2,0x10, // close AEC + 0x22,0x55, // close AWB + + 0x03,0x01, + 0x04,0x2c, + 0x5a,0x56, + 0x5b,0x40, + 0x5c,0x4a, + + 0x22,0x57, // Open AWB + + 0x28,0x11, + 0x57,0x80, + 0x57,0x80, + 0x59,0x80, + + + 0x01,0xfa, + 0x02,0x70, + 0x0f,0x01, + + 0xe2,0x00, //anti-flicker step [11:8] + 0xe3,0x32, //anti-flicker step [7:0] //64 + + 0xe4,0x02, //exp level 1 16.67fps + 0xe5,0x58, + 0xe6,0x02, //exp level 2 12.5fps + 0xe7,0x58, + 0xe8,0x02, //exp level 3 8.33fps + 0xe9,0x58, + 0xea,0x03, //exp level 4 4.00fps + 0xeb,0xe8, + + 0xec,0x20, + + 0x05,0x00, + 0x06,0x00, + 0x07,0x00, + 0x08,0x00, + 0x09,0x01, + 0x0a,0xe8, + 0x0b,0x02, + 0x0c,0x88, + 0x0d,0x02, + 0x0e,0x02, + 0x10,0x22, + 0x11,0xfd, + 0x12,0x2a, + 0x13,0x00, + 0x14,0x10, //0x10 + + 0x15,0x0a, + 0x16,0x05, + 0x17,0x01, + 0x18,0x44, + 0x19,0x44, + 0x1a,0x1e, + 0x1b,0x00, + 0x1c,0xc1, + 0x1d,0x08, + 0x1e,0x60, + 0x1f,0x03, + + + + 0x20,0xff, + 0x21,0xf8, + 0x22,0x57, + 0x24,0xa2, + 0x25,0x0f, + + //output sync_mode + + + 0x26,0x02, //0x03 20101016 zhj + + 0x2f,0x01, + 0x30,0xf7, + 0x31,0x50, + 0x32,0x00, + 0x39,0x04, + 0x3a,0x18, + 0x3b,0x20, + 0x3c,0x00, + 0x3d,0x00, + 0x3e,0x00, + 0x3f,0x00, + 0x50,0x10, + 0x53,0x82, + 0x54,0x80, + 0x55,0x80, + 0x56,0x82, + 0x8b,0x40, + 0x8c,0x40, + 0x8d,0x40, + 0x8e,0x2e, + 0x8f,0x2e, + 0x90,0x2e, + 0x91,0x3c, + 0x92,0x50, + 0x5d,0x12, + 0x5e,0x1a, + 0x5f,0x24, + 0x60,0x07, + 0x61,0x15, + 0x62,0x08, + 0x64,0x03, + 0x66,0xe8, + 0x67,0x86, + 0x68,0xa2, + 0x69,0x18, + 0x6a,0x0f, + 0x6b,0x00, + 0x6c,0x5f, + 0x6d,0x8f, + 0x6e,0x55, + 0x6f,0x38, + 0x70,0x15, + 0x71,0x33, + 0x72,0xdc, + 0x73,0x80, + 0x74,0x02, + 0x75,0x3f, + 0x76,0x02, + 0x77,0x54, + 0x78,0x88, + 0x79,0x81, + 0x7a,0x81, + 0x7b,0x22, + 0x7c,0xff, + 0x93,0x48, + 0x94,0x00, + 0x95,0x05, + 0x96,0xe8, + 0x97,0x40, + 0x98,0xf0, + 0xb1,0x38, + 0xb2,0x38, + 0xbd,0x38, + 0xbe,0x36, + 0xd0,0xc9, + 0xd1,0x10, + //{{0xd2,0x90, + 0xd3,0x80, + 0xd5,0xf2, + 0xd6,0x16, + 0xdb,0x92, + 0xdc,0xa5, + 0xdf,0x23, + 0xd9,0x00, + 0xda,0x00, + 0xe0,0x09, + + 0xed,0x04, + 0xee,0xa0, + 0xef,0x40, + 0x80,0x03, + 0x80,0x03, + + + 0x9F,0x10, + 0xA0,0x20, + 0xA1,0x38, + 0xA2,0x4E, + 0xA3,0x63, + 0xA4,0x76, + 0xA5,0x87, + 0xA6,0xA2, + 0xA7,0xB8, + 0xA8,0xCA, + 0xA9,0xD8, + 0xAA,0xE3, + 0xAB,0xEB, + 0xAC,0xF0, + 0xAD,0xF8, + 0xAE,0xFD, + 0xAF,0xFF, + + 0xc0,0x00, + 0xc1,0x10, + 0xc2,0x1C, + 0xc3,0x30, + 0xc4,0x43, + 0xc5,0x54, + 0xc6,0x65, + 0xc7,0x75, + 0xc8,0x93, + 0xc9,0xB0, + 0xca,0xCB, + 0xcb,0xE6, + 0xcc,0xFF, + 0xf0,0x02, + 0xf1,0x01, + 0xf2,0x01, + 0xf3,0x30, + 0xf9,0x9f, + 0xfa,0x78, + //---------------------------- + 0xfe,0x01,// set page1 + 0x00,0xf5, + 0x02,0x1a, + 0x0a,0xa0, + 0x0b,0x60, + 0x0c,0x08, + 0x0e,0x4c, + 0x0f,0x39, + 0x11,0x3f, + 0x12,0x72, + 0x13,0x13, + 0x14,0x42, + 0x15,0x43, + 0x16,0xc2, + 0x17,0xa8, + 0x18,0x18, + 0x19,0x40, + 0x1a,0xd0, + 0x1b,0xf5, + 0x70,0x40, + 0x71,0x58, + 0x72,0x30, + 0x73,0x48, + 0x74,0x20, + 0x75,0x60, + 0x77,0x20, + 0x78,0x32, + 0x30,0x03, + 0x31,0x40, + 0x32,0xe0, + 0x33,0xe0, + 0x34,0xe0, + 0x35,0xb0, + 0x36,0xc0, + 0x37,0xc0, + 0x38,0x04, + 0x39,0x09, + 0x3a,0x12, + 0x3b,0x1C, + 0x3c,0x28, + 0x3d,0x31, + 0x3e,0x44, + 0x3f,0x57, + 0x40,0x6C, + 0x41,0x81, + 0x42,0x94, + 0x43,0xA7, + 0x44,0xB8, + 0x45,0xD6, + 0x46,0xEE, + 0x47,0x0d, + 0xfe,0x00,// set page0 + + //-----------Update the registers 2010/07/06----------- + //Registers of Page0 + 0xfe,0x00,// set page0 + 0x10,0x26, + 0x11,0x0d, // fd},{modified by mormo 2010/07/06 + + 0x1a,0x2a, // 1e},{modified by mormo 2010/07/06 + + + 0x1c,0x49,// c1},{modified by mormo 2010/07/06 + 0x1d,0x9a,// 08},{modified by mormo 2010/07/06 + + + 0x1e,0x61,// 60},{modified by mormo 2010/07/06 + + 0x3a,0x20, + + 0x50,0x14, // 10}, + + + 0x53,0x80, + 0x56,0x80, + + 0x8b,0x20,//LSC + 0x8c,0x20, + 0x8d,0x20, + 0x8e,0x14, + 0x8f,0x10, + 0x90,0x14, + + 0x94,0x02, + 0x95,0x07, + 0x96,0xe0, + + 0xb1,0x40,// YCPT + 0xb2,0x40, + 0xb3,0x40, + 0xb6,0xe0, + + 0xd0,0xcb,// AECT c9 + + + 0xd3,0x48,// 80, + + + + 0xf2,0x02, + 0xf7,0x12, + 0xf8,0x0a, + + //Registers of Page1 + 0xfe,0x01,// set page1 + 0x02,0x20, + 0x04,0x10, + 0x05,0x08, + 0x06,0x20, + 0x08,0x0a, + + 0x0e,0x44, + 0x0f,0x32, + 0x10,0x41, + 0x11,0x37, + 0x12,0x22, + 0x13,0x19, + 0x14,0x44, + 0x15,0x44, + + 0x19,0x50, + 0x1a,0xd8, + + 0x32,0x10, + + 0x35,0x00, + 0x36,0x80, + 0x37,0x00, + //-----------Update the registers end---------// + 0xfe,0x00,// set page0 + 0xd2,0x90, +}; + +uint8_t gc0308_default_regs_exit[]={ + 0x28,0x00, +}; + +#endif + |