summaryrefslogtreecommitdiff
path: root/drivers/media/video/wmt_v4l2/sensors/gc0308
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/wmt_v4l2/sensors/gc0308')
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-7303.h450
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-7304.h546
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-781a.h448
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gsg5-001gt7204-g3.h451
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gsg5-001gt7204-g3_qx.h451
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-gt7302-gmt.h609
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-jfs0672-clw-gt7305.h481
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-kyt-110_v1.0.h446
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-kyt-173_v1.0.h446
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-mrs-gt7305_v1.h452
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-mrs-gt7305_v1_qx.h452
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-syx-gt7206.h446
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-yb474-gt7303.h465
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-zh_tvbox.h447
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308-zyhb-twd8802.h447
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308.c378
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308.h530
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_7300_hd.h424
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_8335c.h424
-rwxr-xr-xdrivers/media/video/wmt_v4l2/sensors/gc0308/gc0308_8353.h457
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
+