camera: fih project front/back sensor preview/capture work success
authorddl <ddl@rockchip.com>
Fri, 11 Mar 2011 15:54:31 +0000 (23:54 +0800)
committerddl <ddl@rockchip.com>
Fri, 11 Mar 2011 16:25:16 +0000 (00:25 +0800)
drivers/media/video/mt9p111.c
drivers/media/video/mt9p111.h
drivers/media/video/s5k6aa.c

index 5713c92d356fcdd446f261a5714a47999c65b014..63bb2a2165a121a8e0ff49c492c50fac7f8cf863 100755 (executable)
@@ -50,6 +50,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define SENSOR_ID_REG SEQUENCE_END
 #define SENSOR_RESET_REG 0x0010
 #define SENSOR_RESET_VAL 0x0115
+#define SENSOR_RESET_REG_LEN  WORD_LEN
 #define SENSOR_MIN_WIDTH    176
 #define SENSOR_MIN_HEIGHT   144
 #define SENSOR_MAX_WIDTH    2592
@@ -70,7 +71,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define CONFIG_SENSOR_Flash         0
 #define CONFIG_SENSOR_Mirror        0
 #define CONFIG_SENSOR_Flip          0
-#define CONFIG_SENSOR_Focus         1
+#define CONFIG_SENSOR_Focus         0
 
 
 #define CONFIG_SENSOR_I2C_SPEED     100000       /* Hz */
@@ -110,1228 +111,1259 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 /* init 640X480 VGA */
 static struct reginfo sensor_init_data[] =
 {
-       //for 24MHz input, VCO=504MHz PCLK=72MHz
-       {0x0010, 0x0115},
-       {0x0012, 0x0060},
-       {0x0014, 0x2025},
-       {0x001E, 0x0575},    // PAD_SLEW_PAD_CONFIG
-       {0x0022, 0x01E0},    // VDD_DIS_COUNTER
-       {0x002A, 0x7F78},
-       {0x002C, 0x0000},
-       {0x002E, 0x0000},
-       {0x0018, 0x4008},    // STANDBY_CONTROL_AND_STATUS
-
-       //timing_settings
-       {0x098E, 0x483A},    // LOGICAL_ADDRESS_ACCESS [CAM_CORE_A_Y_ADDR_START]
-       {0xC83A, 0x000C},    // CAM_CORE_A_Y_ADDR_START
-       {0xC83C, 0x0018},    // CAM_CORE_A_X_ADDR_START
-       {0xC83E, 0x07B1},    // CAM_CORE_A_Y_ADDR_END
-       {0xC840, 0x0A45},    // CAM_CORE_A_X_ADDR_END
-       {0xC842, 0x0001},    // CAM_CORE_A_ROW_SPEED
-       {0xC844, 0x0103},    // CAM_CORE_A_SKIP_X_CORE
-       {0xC846, 0x0103},    // CAM_CORE_A_SKIP_Y_CORE
-       {0xC848, 0x0103},    // CAM_CORE_A_SKIP_X_PIPE
-       {0xC84A, 0x0103},    // CAM_CORE_A_SKIP_Y_PIPE
-       {0xC84C, 0x0080},    // CAM_CORE_A_POWER_MODE
-       {0xC84E, 0x0001},    // CAM_CORE_A_BIN_MODE
-       {0xC850, 0x00},    // CAM_CORE_A_ORIENTATION
-       {0xC851, 0x00},    // CAM_CORE_A_PIXEL_ORDER
-       {0xC852, 0x019C},    // CAM_CORE_A_FINE_CORRECTION
-       {0xC854, 0x0732},    // CAM_CORE_A_FINE_ITMIN
-       {0xC858, 0x0005},    // CAM_CORE_A_COARSE_ITMIN
-       {0xC85A, 0x0001},    // CAM_CORE_A_COARSE_ITMAX_MARGIN
-       {0xC85C, 0x0423},    // CAM_CORE_A_MIN_FRAME_LENGTH_LINES
-       {0xC85E, 0xFFFF},    // CAM_CORE_A_MAX_FRAME_LENGTH_LINES
-       {0xC860, 0x0423},    // CAM_CORE_A_BASE_FRAME_LENGTH_LINES
-       {0xC862, 0x1194},    // CAM_CORE_A_MIN_LINE_LENGTH_PCLK
-       {0xC864, 0xFFFE},    // CAM_CORE_A_MAX_LINE_LENGTH_PCLK
-       {0xC866, 0x7F7A},    // CAM_CORE_A_P4_5_6_DIVIDER
-       {0xC868, 0x0423},    // CAM_CORE_A_FRAME_LENGTH_LINES
-       {0xC86A, 0x1194},    // CAM_CORE_A_LINE_LENGTH_PCK
-       {0xC86C, 0x0518},    // CAM_CORE_A_OUTPUT_SIZE_WIDTH
-       {0xC86E, 0x03D4},    // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
-       {0xC870, 0x0014},    // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
-       {0xC858, 0x0005},    // CAM_CORE_A_COARSE_ITMIN
-       {0xC8B8, 0x0004},    // CAM_OUTPUT_0_JPEG_CONTROL
-       {0xC8AE, 0x0001},    // CAM_OUTPUT_0_OUTPUT_FORMAT
-       {0xC8AA, 0x0280},    // CAM_OUTPUT_0_IMAGE_WIDTH
-       {0xC8AC, 0x01E0},    // CAM_OUTPUT_0_IMAGE_HEIGHT
-       {0xC872, 0x0010},    // CAM_CORE_B_Y_ADDR_START
-       {0xC874, 0x001C},    // CAM_CORE_B_X_ADDR_START
-       {0xC876, 0x07AF},    // CAM_CORE_B_Y_ADDR_END
-       {0xC878, 0x0A43},    // CAM_CORE_B_X_ADDR_END
-       {0xC87A, 0x0001},    // CAM_CORE_B_ROW_SPEED
-       {0xC87C, 0x0101},    // CAM_CORE_B_SKIP_X_CORE
-       {0xC87E, 0x0101},    // CAM_CORE_B_SKIP_Y_CORE
-       {0xC880, 0x0101},    // CAM_CORE_B_SKIP_X_PIPE
-       {0xC882, 0x0101},    // CAM_CORE_B_SKIP_Y_PIPE
-       {0xC884, 0x0064},    // CAM_CORE_B_POWER_MODE
-       {0xC886, 0x0000},    // CAM_CORE_B_BIN_MODE
-       {0xC888, 0x00},    // CAM_CORE_B_ORIENTATION
-       {0xC889, 0x00},    // CAM_CORE_B_PIXEL_ORDER
-       {0xC88A, 0x009C},    // CAM_CORE_B_FINE_CORRECTION
-       {0xC88C, 0x034A},    // CAM_CORE_B_FINE_ITMIN
-       {0xC890, 0x0002},    // CAM_CORE_B_COARSE_ITMIN
-       {0xC892, 0x0001},    // CAM_CORE_B_COARSE_ITMAX_MARGIN
-       {0xC894, 0x082F},    // CAM_CORE_B_MIN_FRAME_LENGTH_LINES
-       {0xC896, 0xFFFF},    // CAM_CORE_B_MAX_FRAME_LENGTH_LINES
-       {0xC898, 0x082F},    // CAM_CORE_B_BASE_FRAME_LENGTH_LINES
-       {0xC89C, 0xFFFE},    // CAM_CORE_B_MAX_LINE_LENGTH_PCLK
-       {0xC89E, 0x7F7A},    // CAM_CORE_B_P4_5_6_DIVIDER
-       {0xC8A0, 0x082F},    // CAM_CORE_B_FRAME_LENGTH_LINES
-       {0xC8A4, 0x0A28},    // CAM_CORE_B_OUTPUT_SIZE_WIDTH
-       {0xC8A6, 0x07A0},    // CAM_CORE_B_OUTPUT_SIZE_HEIGHT
-       {0xC8A8, 0x0021},    // CAM_CORE_B_RX_FIFO_TRIGGER_MARK
-       {0xC890, 0x0002},    // CAM_CORE_B_COARSE_ITMIN
-       {0xC8C4, 0x0001},    // CAM_OUTPUT_1_OUTPUT_FORMAT
-       {0xC8C0, 0x0A20},    // CAM_OUTPUT_1_IMAGE_WIDTH
-       {0xC8C2, 0x0798},    // CAM_OUTPUT_1_IMAGE_HEIGHT
-       {0xC89A, 0x2500},    // CAM_CORE_B_MIN_LINE_LENGTH_PCLK
-       {0xC8A2, 0x2328},    // CAM_CORE_B_LINE_LENGTH_PCK
-       {0xC8CE, 0x0014},    // CAM_OUTPUT_1_JPEG_CONTROL
-       {0xA00E, 0x32},    // FD_MAX_NUM_AUTOCOR_FUNC_VALUES_TO_CHECK
-       {0xA018, 0x00CC},    // FD_EXPECTED50HZ_FLICKER_PERIOD_IN_CONTEXT_A
-       {0xA01A, 0x0068},    // FD_EXPECTED50HZ_FLICKER_PERIOD_IN_CONTEXT_B
-       {0xA01C, 0x00A9},    // FD_EXPECTED60HZ_FLICKER_PERIOD_IN_CONTEXT_A
-       {0xA01E, 0x005F},    // FD_EXPECTED60HZ_FLICKER_PERIOD_IN_CONTEXT_B
-       {0xA010, 0x00B8},    // FD_MIN_EXPECTED50HZ_FLICKER_PERIOD
-       {0xA012, 0x00D6},    // FD_MAX_EXPECTED50HZ_FLICKER_PERIOD
-       {0xA014, 0x0095},    // FD_MIN_EXPECTED60HZ_FLICKER_PERIOD
-       {0xA016, 0x00B3},    // FD_MAX_EXPECTED60HZ_FLICKER_PERIOD
-       {0xA000, 0x18},    // FD_STATUS
-       {0x8417, 0x02},    // SEQ_STATE_CFG_1_FD
-       {0x8404, 0x06},    // SEQ_CMD
-
-       {SEQUENCE_WAIT_MS,300},
-
-       //[Step3-Recommended]
-       //[k28a_rev3_FW_patch7]
-       //  k28a_rev03_patch07_CR30221_MCNEX_AWB_AFNOISE_YOFFSET_APGA_REV1
-       {0x0982, 0x0},
-       {0x098A, 0x0},
-       {0x886C, 0xC0F1},
-       {0x886E, 0xC5E1},
-       {0x8870, 0x246A},
-       {0x8872, 0x1280},
-       {0x8874, 0xC4E1},
-       {0x8876, 0xD20F},
-       {0x8878, 0x2069},
-       {0x887A, 0x0},
-       {0x887C, 0x6A62},
-       {0x887E, 0x1303},
-       {0x8880, 0x84},
-       {0x8882, 0x1734},
-       {0x8884, 0x7005},
-       {0x8886, 0xD801},
-       {0x8888, 0x8A41},
-       {0x888A, 0xD900},
-       {0x888C, 0xD5A},
-       {0x888E, 0x664},
-       {0x8890, 0x8B61},
-       {0x8892, 0xE80B},
-       {0x8894, 0xD},
-       {0x8896, 0x20},
-       {0x8898, 0xD508},
-       {0x889A, 0x1504},
-       {0x889C, 0x1400},
-       {0x889E, 0x7840},
-       {0x88A0, 0xD007},
-       {0x88A2, 0xDFB},
-       {0x88A4, 0x9004},
-       {0x88A6, 0xC4C1},
-       {0x88A8, 0x2029},
-       {0x88AA, 0x300},
-       {0x88AC, 0x219},
-       {0x88AE, 0x6C4},
-       {0x88B0, 0xFF80},
-       {0x88B2, 0x8C8},
-       {0x88B4, 0xFF80},
-       {0x88B6, 0x86C},
-       {0x88B8, 0xFF80},
-       {0x88BA, 0x8C0},
-       {0x88BC, 0xFF80},
-       {0x88BE, 0x8C8},
-       {0x88C0, 0xFF80},
-       {0x88C2, 0x8D0},
-       {0x88C4, 0xFF80},
-       {0x88C6, 0x978},
-       {0x88C8, 0x7},
-       {0x88CA, 0x1},
-       {0x88CC, 0x0},
-       {0x88CE, 0x0},
-       {0x88D0, 0xC0F1},
-       {0x88D2, 0x97E},
-       {0x88D4, 0x6E4},
-       {0x88D6, 0xDA14},
-       {0x88D8, 0xD0C8},
-       {0x88DA, 0xDE00},
-       {0x88DC, 0xD1C8},
-       {0x88DE, 0x2E41},
-       {0x88E0, 0x120C},
-       {0x88E2, 0xA895},
-       {0x88E4, 0xD5C7},
-       {0x88E6, 0xA8D4},
-       {0x88E8, 0xA8D6},
-       {0x88EA, 0xF0A},
-       {0x88EC, 0x6A4},
-       {0x88EE, 0x2555},
-       {0x88F0, 0x1440},
-       {0x88F2, 0xD0C5},
-       {0x88F4, 0x2555},
-       {0x88F6, 0x1441},
-       {0x88F8, 0x77A9},
-       {0x88FA, 0xA515},
-       {0x88FC, 0xD0C3},
-       {0x88FE, 0xA020},
-       {0x8900, 0xD1C3},
-       {0x8902, 0x70E9},
-       {0x8904, 0xEEE},
-       {0x8906, 0x6A4},
-       {0x8908, 0xDA44},
-       {0x890A, 0xD0C2},
-       {0x890C, 0xD1C2},
-       {0x890E, 0xA502},
-       {0x8910, 0xD0C2},
-       {0x8912, 0xA0E0},
-       {0x8914, 0xD0C2},
-       {0x8916, 0xB0CB},
-       {0x8918, 0x8900},
-       {0x891A, 0xDB08},
-       {0x891C, 0xDAF0},
-       {0x891E, 0x19B0},
-       {0x8920, 0xC2},
-       {0x8922, 0xB8A6},
-       {0x8924, 0xA900},
-       {0x8926, 0xD851},
-       {0x8928, 0x19B2},
-       {0x892A, 0x2},
-       {0x892C, 0xD852},
-       {0x892E, 0x19B3},
-       {0x8930, 0x2},
-       {0x8932, 0xD855},
-       {0x8934, 0x19B6},
-       {0x8936, 0x2},
-       {0x8938, 0xD856},
-       {0x893A, 0x19B7},
-       {0x893C, 0x2},
-       {0x893E, 0xD896},
-       {0x8940, 0x19B8},
-       {0x8942, 0x4},
-       {0x8944, 0xD814},
-       {0x8946, 0x19BA},
-       {0x8948, 0x4},
-       {0x894A, 0xD805},
-       {0x894C, 0xB111},
-       {0x894E, 0x19B1},
-       {0x8950, 0x82},
-       {0x8952, 0x19B4},
-       {0x8954, 0xC2},
-       {0x8956, 0x19B5},
-       {0x8958, 0x82},
-       {0x895A, 0xD1B2},
-       {0x895C, 0x2556},
-       {0x895E, 0x12C0},
-       {0x8960, 0xE92},
-       {0x8962, 0x6A4},
-       {0x8964, 0xDA2C},
-       {0x8966, 0xD0B0},
-       {0x8968, 0x2556},
-       {0x896A, 0x12C1},
-       {0x896C, 0xA519},
-       {0x896E, 0xD0AF},
-       {0x8970, 0x145},
-       {0x8972, 0x6E4},
-       {0x8974, 0xA020},
-       {0x8976, 0x78E0},
-       {0x8978, 0xC0F1},
-       {0x897A, 0xD0AD},
-       {0x897C, 0xD1AD},
-       {0x897E, 0xD2AE},
-       {0x8980, 0xA020},
-       {0x8982, 0x8A09},
-       {0x8984, 0x8A6A},
-       {0x8986, 0xB808},
-       {0x8988, 0x7865},
-       {0x898A, 0xB880},
-       {0x898C, 0x2841},
-       {0x898E, 0x20C},
-       {0x8990, 0xAA89},
-       {0x8992, 0xAA0A},
-       {0x8994, 0xD2A9},
-       {0x8996, 0x8A00},
-       {0x8998, 0x809},
-       {0x899A, 0x1DE},
-       {0x899C, 0xB8A7},
-       {0x899E, 0xAA00},
-       {0x89A0, 0xDBFF},
-       {0x89A2, 0x2B41},
-       {0x89A4, 0x200},
-       {0x89A6, 0xAA0C},
-       {0x89A8, 0x1228},
-       {0x89AA, 0x80},
-       {0x89AC, 0xAA6D},
-       {0x89AE, 0x815},
-       {0x89B0, 0x1DE},
-       {0x89B2, 0xB8A7},
-       {0x89B4, 0x1A28},
-       {0x89B6, 0x2},
-       {0x89B8, 0x8123},
-       {0x89BA, 0x7960},
-       {0x89BC, 0x1228},
-       {0x89BE, 0x80},
-       {0x89C0, 0xC0D1},
-       {0x89C2, 0x7EE0},
-       {0x89C4, 0xC0F1},
-       {0x89C6, 0x88E},
-       {0x89C8, 0x6E4},
-       {0x89CA, 0xDB03},
-       {0x89CC, 0xD29B},
-       {0x89CE, 0x8A2E},
-       {0x89D0, 0x8ACF},
-       {0x89D2, 0xB908},
-       {0x89D4, 0x79C5},
-       {0x89D6, 0xDD65},
-       {0x89D8, 0x94F},
-       {0x89DA, 0xD1},
-       {0x89DC, 0xD90A},
-       {0x89DE, 0x1A24},
-       {0x89E0, 0x42},
-       {0x89E2, 0x8A24},
-       {0x89E4, 0xE1E5},
-       {0x89E6, 0xF6C9},
-       {0x89E8, 0xD902},
-       {0x89EA, 0x2941},
-       {0x89EC, 0x200},
-       {0x89EE, 0xAA0E},
-       {0x89F0, 0xAA2F},
-       {0x89F2, 0x70A9},
-       {0x89F4, 0xF014},
-       {0x89F6, 0xE1C8},
-       {0x89F8, 0x36},
-       {0x89FA, 0xB},
-       {0x89FC, 0xE0C8},
-       {0x89FE, 0x3A},
-       {0x8A00, 0xA},
-       {0x8A02, 0xD901},
-       {0x8A04, 0x2941},
-       {0x8A06, 0x200},
-       {0x8A08, 0xAA0E},
-       {0x8A0A, 0xAA2F},
-       {0x8A0C, 0xD848},
-       {0x8A0E, 0xF008},
-       {0x8A10, 0xD900},
-       {0x8A12, 0x2941},
-       {0x8A14, 0x200},
-       {0x8A16, 0xAA0E},
-       {0x8A18, 0xAA2F},
-       {0x8A1A, 0xD820},
-       {0x8A1C, 0xD288},
-       {0x8A1E, 0x8A26},
-       {0x8A20, 0xB961},
-       {0x8A22, 0xAA26},
-       {0x8A24, 0xF00D},
-       {0x8A26, 0x91F},
-       {0x8A28, 0x91},
-       {0x8A2A, 0x8A24},
-       {0x8A2C, 0xF1E5},
-       {0x8A2E, 0x913},
-       {0x8A30, 0x812},
-       {0x8A32, 0x8E1},
-       {0x8A34, 0x8812},
-       {0x8A36, 0x2B41},
-       {0x8A38, 0x201},
-       {0x8A3A, 0xAA2E},
-       {0x8A3C, 0xAA6F},
-       {0x8A3E, 0x81},
-       {0x8A40, 0x6C4},
-       {0x8A42, 0x9F7},
-       {0x8A44, 0x8051},
-       {0x8A46, 0x8A24},
-       {0x8A48, 0xF1F3},
-       {0x8A4A, 0x78E0},
-       {0x8A4C, 0xC0F1},
-       {0x8A4E, 0xFFA},
-       {0x8A50, 0x684},
-       {0x8A52, 0xD67A},
-       {0x8A54, 0x7508},
-       {0x8A56, 0x8E01},
-       {0x8A58, 0xD179},
-       {0x8A5A, 0x2046},
-       {0x8A5C, 0xC0},
-       {0x8A5E, 0xAE01},
-       {0x8A60, 0x1145},
-       {0x8A62, 0x80},
-       {0x8A64, 0x1146},
-       {0x8A66, 0x82},
-       {0x8A68, 0xB808},
-       {0x8A6A, 0x7845},
-       {0x8A6C, 0x817},
-       {0x8A6E, 0x1E},
-       {0x8A70, 0x8900},
-       {0x8A72, 0x8941},
-       {0x8A74, 0xB808},
-       {0x8A76, 0x7845},
-       {0x8A78, 0x80B},
-       {0x8A7A, 0xDE},
-       {0x8A7C, 0x70A9},
-       {0x8A7E, 0xFFD2},
-       {0x8A80, 0x7508},
-       {0x8A82, 0x1604},
-       {0x8A84, 0x1090},
-       {0x8A86, 0xD93},
-       {0x8A88, 0x1400},
-       {0x8A8A, 0x8EEA},
-       {0x8A8C, 0x8E0B},
-       {0x8A8E, 0x214A},
-       {0x8A90, 0x2040},
-       {0x8A92, 0x8E2D},
-       {0x8A94, 0xBF08},
-       {0x8A96, 0x7F05},
-       {0x8A98, 0x8E0C},
-       {0x8A9A, 0xB808},
-       {0x8A9C, 0x7825},
-       {0x8A9E, 0x7710},
-       {0x8AA0, 0x21C2},
-       {0x8AA2, 0x244C},
-       {0x8AA4, 0x81D},
-       {0x8AA6, 0x3E3},
-       {0x8AA8, 0xD9FF},
-       {0x8AAA, 0x2702},
-       {0x8AAC, 0x1002},
-       {0x8AAE, 0x2A05},
-       {0x8AB0, 0x37E},
-       {0x8AB2, 0x876},
-       {0x8AB4, 0x6E4},
-       {0x8AB6, 0x702F},
-       {0x8AB8, 0x7810},
-       {0x8ABA, 0x7F02},
-       {0x8ABC, 0x7FF0},
-       {0x8ABE, 0xF00B},
-       {0x8AC0, 0x78E2},
-       {0x8AC2, 0x2805},
-       {0x8AC4, 0x37E},
-       {0x8AC6, 0x862},
-       {0x8AC8, 0x6E4},
-       {0x8ACA, 0x702F},
-       {0x8ACC, 0x7810},
-       {0x8ACE, 0x671F},
-       {0x8AD0, 0x7FF0},
-       {0x8AD2, 0x7FEF},
-       {0x8AD4, 0x8E08},
-       {0x8AD6, 0xBF06},
-       {0x8AD8, 0xD15A},
-       {0x8ADA, 0xB8C3},
-       {0x8ADC, 0x78E5},
-       {0x8ADE, 0xB88F},
-       {0x8AE0, 0x1908},
-       {0x8AE2, 0x24},
-       {0x8AE4, 0x2841},
-       {0x8AE6, 0x201},
-       {0x8AE8, 0x1E26},
-       {0x8AEA, 0x1042},
-       {0x8AEC, 0xD15},
-       {0x8AEE, 0x1423},
-       {0x8AF0, 0x1E27},
-       {0x8AF2, 0x1002},
-       {0x8AF4, 0x214C},
-       {0x8AF6, 0xA000},
-       {0x8AF8, 0x214A},
-       {0x8AFA, 0x2040},
-       {0x8AFC, 0x21C2},
-       {0x8AFE, 0x2442},
-       {0x8B00, 0x8E21},
-       {0x8B02, 0x214F},
-       {0x8B04, 0x40},
-       {0x8B06, 0x90F},
-       {0x8B08, 0x2010},
-       {0x8B0A, 0x2145},
-       {0x8B0C, 0x181},
-       {0x8B0E, 0xAE21},
-       {0x8B10, 0xF003},
-       {0x8B12, 0xB8A2},
-       {0x8B14, 0xAE01},
-       {0x8B16, 0xBFA},
-       {0x8B18, 0xFFE3},
-       {0x8B1A, 0x70A9},
-       {0x8B1C, 0x789},
-       {0x8B1E, 0x684},
-       {0x8B20, 0xD149},
-       {0x8B22, 0xD24A},
-       {0x8B24, 0x11B2},
-       {0x8B26, 0x8903},
-       {0x8B28, 0x1252},
-       {0x8B2A, 0x100},
-       {0x8B2C, 0x7B6F},
-       {0x8B2E, 0xB808},
-       {0x8B30, 0x2004},
-       {0x8B32, 0xF80},
-       {0x8B34, 0x0},
-       {0x8B36, 0xFF00},
-       {0x8B38, 0x7865},
-       {0x8B3A, 0x19B2},
-       {0x8B3C, 0x8024},
-       {0x8B3E, 0xD044},
-       {0x8B40, 0x8801},
-       {0x8B42, 0xB8E1},
-       {0x8B44, 0xD800},
-       {0x8B46, 0xF404},
-       {0x8B48, 0x1234},
-       {0x8B4A, 0x80},
-       {0x8B4C, 0x1955},
-       {0x8B4E, 0x803C},
-       {0x8B50, 0x1233},
-       {0x8B52, 0x80},
-       {0x8B54, 0xB802},
-       {0x8B56, 0x1957},
-       {0x8B58, 0x803C},
-       {0x8B5A, 0x1958},
-       {0x8B5C, 0x803C},
-       {0x8B5E, 0x1959},
-       {0x8B60, 0x803C},
-       {0x8B62, 0x195A},
-       {0x8B64, 0x803C},
-       {0x8B66, 0x7EE0},
-       {0x8B68, 0xC0F1},
-       {0x8B6A, 0xEE6},
-       {0x8B6C, 0x684},
-       {0x8B6E, 0xD523},
-       {0x8B70, 0x8D2C},
-       {0x8B72, 0x983},
-       {0x8B74, 0x10},
-       {0x8B76, 0xD236},
-       {0x8B78, 0x123A},
-       {0x8B7A, 0x83},
-       {0x8B7C, 0x123B},
-       {0x8B7E, 0x8F},
-       {0x8B80, 0x8D55},
-       {0x8B82, 0xBB08},
-       {0x8B84, 0x7BE5},
-       {0x8B86, 0x8DF6},
-       {0x8B88, 0xBA08},
-       {0x8B8A, 0x7AE5},
-       {0x8B8C, 0xB0D},
-       {0x8B8E, 0xA3},
-       {0x8B90, 0x8DC5},
-       {0x8B92, 0x8D54},
-       {0x8B94, 0xAD45},
-       {0x8B96, 0xF026},
-       {0x8B98, 0x65DB},
-       {0x8B9A, 0x8B6D},
-       {0x8B9C, 0x815},
-       {0x8B9E, 0xE2},
-       {0x8BA0, 0x65DA},
-       {0x8BA2, 0x8A51},
-       {0x8BA4, 0xA0D},
-       {0x8BA6, 0x2},
-       {0x8BA8, 0xE683},
-       {0x8BAA, 0x22CA},
-       {0x8BAC, 0x38B},
-       {0x8BAE, 0xF69A},
-       {0x8BB0, 0xDA00},
-       {0x8BB2, 0xAD45},
-       {0x8BB4, 0x2540},
-       {0x8BB6, 0x1343},
-       {0x8BB8, 0xE180},
-       {0x8BBA, 0x2540},
-       {0x8BBC, 0x144F},
-       {0x8BBE, 0xF6D2},
-       {0x8BC0, 0x719F},
-       {0x8BC2, 0x78E0},
-       {0x8BC4, 0x20A8},
-       {0x8BC6, 0x280},
-       {0x8BC8, 0x8B20},
-       {0x8BCA, 0x813},
-       {0x8BCC, 0x43},
-       {0x8BCE, 0xE201},
-       {0x8BD0, 0x7A4F},
-       {0x8BD2, 0xAD45},
-       {0x8BD4, 0xE301},
-       {0x8BD6, 0xE701},
-       {0x8BD8, 0xF004},
-       {0x8BDA, 0x8F20},
-       {0x8BDC, 0x9F3},
-       {0x8BDE, 0x8002},
-       {0x8BE0, 0xD01C},
-       {0x8BE2, 0x8800},
-       {0x8BE4, 0xE803},
-       {0x8BE6, 0xE0F},
-       {0x8BE8, 0x1080},
-       {0x8BEA, 0xD008},
-       {0x8BEC, 0x8000},
-       {0x8BEE, 0x8002},
-       {0x8BF0, 0x7840},
-       {0x8BF2, 0x6C5},
-       {0x8BF4, 0x684},
-       {0x8BF6, 0x78E0},
-       {0x8BF8, 0xFF80},
-       {0x8BFA, 0x644},
-       {0x8BFC, 0x0},
-       {0x8BFE, 0xF978},
-       {0x8C00, 0xFF80},
-       {0x8C02, 0xE00},
-       {0x8C04, 0xFF80},
-       {0x8C06, 0xB68},
-       {0x8C08, 0x8000},
-       {0x8C0A, 0x164},
-       {0x8C0C, 0x0},
-       {0x8C0E, 0xF9AC},
-       {0x8C10, 0xFF80},
-       {0x8C12, 0xB20},
-       {0x8C14, 0xFF80},
-       {0x8C16, 0x314},
-       {0x8C18, 0x8000},
-       {0x8C1A, 0x16C},
-       {0x8C1C, 0xFF80},
-       {0x8C1E, 0x694},
-       {0x8C20, 0x0},
-       {0x8C22, 0xF444},
-       {0x8C24, 0xFF80},
-       {0x8C26, 0xC54},
-       {0x8C28, 0x8000},
-       {0x8C2A, 0x9C},
-       {0x8C2C, 0x8000},
-       {0x8C2E, 0x8},
-       {0x8C30, 0xFF80},
-       {0x8C32, 0xDF0},
-       {0x8C34, 0xFF80},
-       {0x8C36, 0x2CC},
-       {0x8C38, 0xFF80},
-       {0x8C3A, 0x158},
-       {0x8C3C, 0xFF80},
-       {0x8C3E, 0x290},
-       {0x8C40, 0xFF00},
-       {0x8C42, 0x618},
-       {0x8C44, 0xFF00},
-       {0x8C46, 0x33CC},
-       {0x8C48, 0xFF80},
-       {0x8C4A, 0x658},
-       {0x8C4C, 0xFF80},
-       {0x8C4E, 0x250},
-       {0x8C50, 0x8000},
-       {0x8C52, 0x168},
-       {0x8C54, 0xC0F1},
-       {0x8C56, 0xDFE},
-       {0x8C58, 0x684},
-       {0x8C5A, 0x17BC},
-       {0x8C5C, 0xF00E},
-       {0x8C5E, 0x8E01},
-       {0x8C60, 0xB8A4},
-       {0x8C62, 0xAE01},
-       {0x8C64, 0x8E09},
-       {0x8C66, 0xB8E0},
-       {0x8C68, 0xF29B},
-       {0x8C6A, 0x17E4},
-       {0x8C6C, 0xF00D},
-       {0x8C6E, 0x153A},
-       {0x8C70, 0x1080},
-       {0x8C72, 0x153B},
-       {0x8C74, 0x1081},
-       {0x8C76, 0xB808},
-       {0x8C78, 0x7825},
-       {0x8C7A, 0x16B8},
-       {0x8C7C, 0x1101},
-       {0x8C7E, 0x92D},
-       {0x8C80, 0x3},
-       {0x8C82, 0x16B0},
-       {0x8C84, 0x1082},
-       {0x8C86, 0x1E3C},
-       {0x8C88, 0x1082},
-       {0x8C8A, 0x16B1},
-       {0x8C8C, 0x1082},
-       {0x8C8E, 0x1E3D},
-       {0x8C90, 0x1082},
-       {0x8C92, 0x16B4},
-       {0x8C94, 0x1082},
-       {0x8C96, 0x1E3E},
-       {0x8C98, 0x1082},
-       {0x8C9A, 0x16B5},
-       {0x8C9C, 0x1082},
-       {0x8C9E, 0x1E3F},
-       {0x8CA0, 0x1082},
-       {0x8CA2, 0x8E40},
-       {0x8CA4, 0xBAA6},
-       {0x8CA6, 0xAE40},
-       {0x8CA8, 0x98F},
-       {0x8CAA, 0x22},
-       {0x8CAC, 0x16BA},
-       {0x8CAE, 0x1102},
-       {0x8CB0, 0xA87},
-       {0x8CB2, 0x3},
-       {0x8CB4, 0x16B2},
-       {0x8CB6, 0x1084},
-       {0x8CB8, 0xF2E},
-       {0x8CBA, 0x664},
-       {0x8CBC, 0x16B0},
-       {0x8CBE, 0x1083},
-       {0x8CC0, 0x1E3C},
-       {0x8CC2, 0x1002},
-       {0x8CC4, 0x153A},
-       {0x8CC6, 0x1080},
-       {0x8CC8, 0x153B},
-       {0x8CCA, 0x1081},
-       {0x8CCC, 0x16B3},
-       {0x8CCE, 0x1084},
-       {0x8CD0, 0xB808},
-       {0x8CD2, 0x7825},
-       {0x8CD4, 0x16B8},
-       {0x8CD6, 0x1101},
-       {0x8CD8, 0x16BA},
-       {0x8CDA, 0x1102},
-       {0x8CDC, 0xF0A},
-       {0x8CDE, 0x664},
-       {0x8CE0, 0x16B1},
-       {0x8CE2, 0x1083},
-       {0x8CE4, 0x1E3D},
-       {0x8CE6, 0x1002},
-       {0x8CE8, 0x153A},
-       {0x8CEA, 0x1080},
-       {0x8CEC, 0x153B},
-       {0x8CEE, 0x1081},
-       {0x8CF0, 0x16B6},
-       {0x8CF2, 0x1084},
-       {0x8CF4, 0xB808},
-       {0x8CF6, 0x7825},
-       {0x8CF8, 0x16B8},
-       {0x8CFA, 0x1101},
-       {0x8CFC, 0x16BA},
-       {0x8CFE, 0x1102},
-       {0x8D00, 0xEE6},
-       {0x8D02, 0x664},
-       {0x8D04, 0x16B4},
-       {0x8D06, 0x1083},
-       {0x8D08, 0x1E3E},
-       {0x8D0A, 0x1002},
-       {0x8D0C, 0x153A},
-       {0x8D0E, 0x1080},
-       {0x8D10, 0x153B},
-       {0x8D12, 0x1081},
-       {0x8D14, 0x16B7},
-       {0x8D16, 0x1084},
-       {0x8D18, 0xB808},
-       {0x8D1A, 0x7825},
-       {0x8D1C, 0x16B8},
-       {0x8D1E, 0x1101},
-       {0x8D20, 0x16BA},
-       {0x8D22, 0x1102},
-       {0x8D24, 0xEC2},
-       {0x8D26, 0x664},
-       {0x8D28, 0x16B5},
-       {0x8D2A, 0x1083},
-       {0x8D2C, 0x1E3F},
-       {0x8D2E, 0x1002},
-       {0x8D30, 0x8E00},
-       {0x8D32, 0xB8A6},
-       {0x8D34, 0xAE00},
-       {0x8D36, 0x153A},
-       {0x8D38, 0x1081},
-       {0x8D3A, 0x153B},
-       {0x8D3C, 0x1080},
-       {0x8D3E, 0xB908},
-       {0x8D40, 0x7905},
-       {0x8D42, 0x16BA},
-       {0x8D44, 0x1100},
-       {0x8D46, 0x85B},
-       {0x8D48, 0x42},
-       {0x8D4A, 0xD018},
-       {0x8D4C, 0x9E31},
-       {0x8D4E, 0x904D},
-       {0x8D50, 0xA2B},
-       {0x8D52, 0x63},
-       {0x8D54, 0x8E00},
-       {0x8D56, 0x16B0},
-       {0x8D58, 0x1081},
-       {0x8D5A, 0x1E3C},
-       {0x8D5C, 0x1042},
-       {0x8D5E, 0x16B1},
-       {0x8D60, 0x1081},
-       {0x8D62, 0x1E3D},
-       {0x8D64, 0x1042},
-       {0x8D66, 0x16B4},
-       {0x8D68, 0x1081},
-       {0x8D6A, 0x1E3E},
-       {0x8D6C, 0x1042},
-       {0x8D6E, 0x16B5},
-       {0x8D70, 0x1081},
-       {0x8D72, 0x1E3F},
-       {0x8D74, 0x1042},
-       {0x8D76, 0xB886},
-       {0x8D78, 0xF012},
-       {0x8D7A, 0x16B2},
-       {0x8D7C, 0x1081},
-       {0x8D7E, 0xB8A6},
-       {0x8D80, 0x1E3C},
-       {0x8D82, 0x1042},
-       {0x8D84, 0x16B3},
-       {0x8D86, 0x1081},
-       {0x8D88, 0x1E3D},
-       {0x8D8A, 0x1042},
-       {0x8D8C, 0x16B6},
-       {0x8D8E, 0x1081},
-       {0x8D90, 0x1E3E},
-       {0x8D92, 0x1042},
-       {0x8D94, 0x16B7},
-       {0x8D96, 0x1081},
-       {0x8D98, 0x1E3F},
-       {0x8D9A, 0x1042},
-       {0x8D9C, 0xAE00},
-       {0x8D9E, 0xD92},
-       {0x8DA0, 0x184},
-       {0x8DA2, 0x51D},
-       {0x8DA4, 0x684},
-       {0x8DA6, 0x78E0},
-       {0x8DA8, 0xFF80},
-       {0x8DAA, 0x50C},
-       {0x8DAC, 0xE280},
-       {0x8DAE, 0x24CA},
-       {0x8DB0, 0x7082},
-       {0x8DB2, 0x78E0},
-       {0x8DB4, 0x20E8},
-       {0x8DB6, 0x1A2},
-       {0x8DB8, 0x1002},
-       {0x8DBA, 0xD02},
-       {0x8DBC, 0x1902},
-       {0x8DBE, 0x94},
-       {0x8DC0, 0x7FE0},
-       {0x8DC2, 0x7028},
-       {0x8DC4, 0x7308},
-       {0x8DC6, 0x1000},
-       {0x8DC8, 0x900},
-       {0x8DCA, 0x7904},
-       {0x8DCC, 0x7947},
-       {0x8DCE, 0x1B00},
-       {0x8DD0, 0x64},
-       {0x8DD2, 0x7EE0},
-       {0x8DD4, 0xE280},
-       {0x8DD6, 0x24CA},
-       {0x8DD8, 0x7082},
-       {0x8DDA, 0x78E0},
-       {0x8DDC, 0x20E8},
-       {0x8DDE, 0x1A2},
-       {0x8DE0, 0x1102},
-       {0x8DE2, 0x502},
-       {0x8DE4, 0x1802},
-       {0x8DE6, 0xB4},
-       {0x8DE8, 0x7FE0},
-       {0x8DEA, 0x7028},
-       {0x8DEC, 0x0},
-       {0x8DEE, 0x0},
-       {0x8DF0, 0xFF80},
-       {0x8DF2, 0x978},
-       {0x8DF4, 0xFF80},
-       {0x8DF6, 0xA4C},
-       {0x8DF8, 0x0},
-       {0x8DFA, 0x8DC},
-       {0x8DFC, 0x0},
-       {0x8DFE, 0x998},
-       {0x098E, 0x0016},    // LOGICAL_ADDRESS_ACCESS [MON_ADDRESS_LO]},
-       {0x8016, 0x086C},    // MON_ADDRESS_LO},
-       {0x8002, 0x0001},    // MON_CMD},
-
-       {SEQUENCE_WAIT_MS,300},
-
-       //char_settings
-       {0x30D4, 0x9080},    // COLUMN_CORRECTION},
-       {0x316E, 0xC400},    // DAC_ECL},
-       {0x305E, 0x10A0},    // GLOBAL_GAIN},
-       {0x3E00, 0x0010},    // SAMP_CONTROL},
-       {0x3E02, 0xED02},    // SAMP_ADDR_EN},
-       {0x3E04, 0xC88C},    // SAMP_RD1_SIG},
-       {0x3E06, 0xC88C},    // SAMP_RD1_SIG_BOOST},
-       {0x3E08, 0x700A},    // SAMP_RD1_RST},
-       {0x3E0A, 0x701E},    // SAMP_RD1_RST_BOOST},
-       {0x3E0C, 0x00FF},    // SAMP_RST1_EN},
-       {0x3E0E, 0x00FF},    // SAMP_RST1_BOOST},
-       {0x3E10, 0x00FF},    // SAMP_RST1_CLOOP_SH},
-       {0x3E12, 0x0000},    // SAMP_RST_BOOST_SEQ},
-       {0x3E14, 0xC78C},    // SAMP_SAMP1_SIG},
-       {0x3E16, 0x6E06},    // SAMP_SAMP1_RST},
-       {0x3E18, 0xA58C},    // SAMP_TX_EN},
-       {0x3E1A, 0xA58E},    // SAMP_TX_BOOST},
-       {0x3E1C, 0xA58E},    // SAMP_TX_CLOOP_SH},
-       {0x3E1E, 0xC0D0},    // SAMP_TX_BOOST_SEQ},
-       {0x3E20, 0xEB00},    // SAMP_VLN_EN},
-       {0x3E22, 0x00FF},    // SAMP_VLN_HOLD},
-       {0x3E24, 0xEB02},    // SAMP_VCL_EN},
-       {0x3E26, 0xEA02},    // SAMP_COLCLAMP},
-       {0x3E28, 0xEB0A},    // SAMP_SH_VCL},
-       {0x3E2A, 0xEC01},    // SAMP_SH_VREF},
-       {0x3E2C, 0xEB01},    // SAMP_SH_VBST},
-       {0x3E2E, 0x00FF},    // SAMP_SPARE},
-       {0x3E30, 0x00F3},    // SAMP_READOUT},
-       {0x3E32, 0x3DFA},    // SAMP_RESET_DONE},
-       {0x3E34, 0x00FF},    // SAMP_VLN_CLAMP},
-       {0x3E36, 0x00F3},    // SAMP_ASC_INT},
-       {0x3E38, 0x0000},    // SAMP_RS_CLOOP_SH_R},
-       {0x3E3A, 0xF802},    // SAMP_RS_CLOOP_SH},
-       {0x3E3C, 0x0FFF},    // SAMP_RS_BOOST_SEQ},
-       {0x3E3E, 0xEA10},    // SAMP_TXLO_GND},
-       {0x3E40, 0xEB05},    // SAMP_VLN_PER_COL},
-       {0x3E42, 0xE5C8},    // SAMP_RD2_SIG},
-       {0x3E44, 0xE5C8},    // SAMP_RD2_SIG_BOOST},
-       {0x3E46, 0x8C70},    // SAMP_RD2_RST},
-       {0x3E48, 0x8C71},    // SAMP_RD2_RST_BOOST},
-       {0x3E4A, 0x00FF},    // SAMP_RST2_EN},
-       {0x3E4C, 0x00FF},    // SAMP_RST2_BOOST},
-       {0x3E4E, 0x00FF},    // SAMP_RST2_CLOOP_SH},
-       {0x3E50, 0xE38D},    // SAMP_SAMP2_SIG},
-       {0x3E52, 0x8B0A},    // SAMP_SAMP2_RST},
-       {0x3E58, 0xEB0A},    // SAMP_PIX_CLAMP_EN},
-       {0x3E5C, 0x0A00},    // SAMP_PIX_PULLUP_EN},
-       {0x3E5E, 0x00FF},    // SAMP_PIX_PULLDOWN_EN_R},
-       {0x3E60, 0x00FF},    // SAMP_PIX_PULLDOWN_EN_S},
-       {0x3E90, 0x3C01},    // RST_ADDR_EN},
-       {0x3E92, 0x00FF},    // RST_RST_EN},
-       {0x3E94, 0x00FF},    // RST_RST_BOOST},
-       {0x3E96, 0x3C00},    // RST_TX_EN},
-       {0x3E98, 0x3C00},    // RST_TX_BOOST},
-       {0x3E9A, 0x3C00},    // RST_TX_CLOOP_SH},
-       {0x3E9C, 0xC0E0},    // RST_TX_BOOST_SEQ},
-       {0x3E9E, 0x00FF},    // RST_RST_CLOOP_SH},
-       {0x3EA0, 0x0000},    // RST_RST_BOOST_SEQ},
-       {0x3EA6, 0x3C00},    // RST_PIX_PULLUP_EN},
-       {0x3ED8, 0x3057},    // DAC_LD_12_13
-       {0x316C, 0xB44F},    // DAC_TXLO
-       {0x316E, 0xC6FF},    // DAC_ECL
-       {0x3ED2, 0xEA0A},    // DAC_LD_6_7
-       {0x3ED4, 0x00A3},    // DAC_LD_8_9
-       {0x3EDC, 0x6020},    // DAC_LD_16_17
-       {0x3EE6, 0xA541},    // DAC_LD_26_27
-       {0x31E0, 0x0000},    // PIX_DEF_ID
-       {0x3ED0, 0x2409},    // DAC_LD_4_5
-       {0x3EDE, 0x0A49},    // DAC_LD_18_19
-       {0x3EE0, 0x4910},    // DAC_LD_20_21
-       {0x3EE2, 0x09D2},    // DAC_LD_22_23
-       {0x30B6, 0x0008},    // AUTOLR_CONTROL
-       {0x337C, 0x0006},    // YUV_YCBCR_CONTROL
-       {0x3E1A, 0xA582},    // SAMP_TX_BOOST
-       {0x3E2E, 0xEC05},    // SAMP_SPARE
-       {0x3EE6, 0xA5C0},    // DAC_LD_26_27
-       {0x316C, 0xB43F},    // DAC_TXLO
-       {0x316E, 0xC6FF},    // DAC_ECL
-
-       //LOAD = Lens Correction 90% 04/29/10 12:58:28},
-       {0xE02A, 0x0001},    // IO_NV_MEM_COMMAND
-       //  POLL  IO_NV_MEM_STATUS::IO_NVMEM_STAT_OTPM_AVAIL =>  0x00
-       {SEQUENCE_WAIT_MS,300},
-       {0xD004, 0x04},    // PGA_SOLUTION
-       //{0xD006, 0x0002},    // PGA_ZONE_ADDR_0
-       {0xD006, 0x0008},    // PGA_ZONE_ADDR_0
-       {0xD005, 0x00},    // PGA_CURRENT_ZONE
-       {0xD002, 0x8002},    // PGA_ALGO
-       {0x3210, 0x49B8},    // COLOR_PIPELINE_CONTROL
-
-       //[Step5-AWB_CCM]},
-       //awb_setup},
-       {0xAC02, 0x00FF},    // AWB_ALGO},
-       {0xAC01, 0x7F},    // AWB_MODE},
-       //preawb_params},
-       {0xAC3C, 0x39}, //42    // AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO},
-       {0xAC3D, 0x6E}, //50    // AWB_MAX_ACCEPTED_PRE_AWB_R2G_RATIO},
-       {0xAC3E, 0x28}, //13    // AWB_MIN_ACCEPTED_PRE_AWB_B2G_RATIO},
-       {0xAC3F, 0x6B}, //5B    // AWB_MAX_ACCEPTED_PRE_AWB_B2G_RATIO},
-       {0xAC40, 0x64}, //52    // AWB_MIN_ACCEPTED_POST_AWB_R2G_RATIO},
-       {0xAC41, 0x66}, //56    // AWB_MAX_ACCEPTED_POST_AWB_R2G_RATIO},
-       {0xAC42, 0x64},    // AWB_MIN_ACCEPTED_POST_AWB_B2G_RATIO},
-       {0xAC43, 0x66},    // AWB_MAX_ACCEPTED_POST_AWB_B2G_RATIO},
-       //awb_patch},
-       {0xACB0, 0x31},    // AWB_RG_MIN},
-       {0xACB1, 0x5B}, //50    // AWB_RG_MAX},
-       {0xACB4, 0x2A}, //13    // AWB_BG_MIN},
-       {0xACB5, 0x5B},    // AWB_BG_MAX},
-       {0xACB2, 0x31}, //0x40  //3A    // AWB_RG_MIN_BRIGHT},
-       {0xACB3, 0x4B}, //0x48  //3E    // AWB_RG_MAX_BRIGHT},
-       {0xACB6, 0x3C}, //0x3f  //44    // AWB_BG_MIN_BRIGHT},
-       {0xACB7, 0x5B}, //0x48    // AWB_BG_MAX_BRIGHT},
-       {0xACB8, 0x00D0},               // 0x0100    // AWB_START_NUM_INT_LINES},
-       {0xACBA, 0x0090},               // B0    // AWB_END_NUM_INT_LINES},
-       //bright_DNP_patch},
-       {0x098E, 0xAC09},    // LOGICAL_ADDRESS_ACCESS},
-       {0xAC09, 0x01},    // AWB_MODE_EX},
-       {0xAC22, 0x0000},    // AWB_SHARPNESS_TH},
-       //soc5140_ccm_settings},
-       {0xAC46, 0x0235},    // AWB_LEFT_CCM_0},
-       {0xAC48, 0xFEE2},    // AWB_LEFT_CCM_1},
-       {0xAC4A, 0xFFE9},    // AWB_LEFT_CCM_2},
-       {0xAC4C, 0xFFAC},    // AWB_LEFT_CCM_3},
-       {0xAC4E, 0x01B0},    // AWB_LEFT_CCM_4},
-       {0xAC50, 0xFFA5},    // AWB_LEFT_CCM_5},
-       {0xAC52, 0xFFEC},    // AWB_LEFT_CCM_6},
-       {0xAC54, 0xFE92},    // AWB_LEFT_CCM_7},
-       {0xAC56, 0x0282},    // AWB_LEFT_CCM_8},
-       {0xAC58, 0x00C6},    // AWB_LEFT_CCM_R2BRATIO},
-       {0xAC5C, 0x0270},    // AWB_RIGHT_CCM_0},
-       {0xAC5E, 0xFEB0},    // AWB_RIGHT_CCM_1},
-       {0xAC60, 0xFFE0},    // AWB_RIGHT_CCM_2},
-       {0xAC62, 0xFFE9},    // AWB_RIGHT_CCM_3},
-       {0xAC64, 0x011F},    // AWB_RIGHT_CCM_4},
-       {0xAC66, 0xFFF8},    // AWB_RIGHT_CCM_5},
-       {0xAC68, 0x0022},    // AWB_RIGHT_CCM_6},
-       {0xAC6A, 0xFF0E},    // AWB_RIGHT_CCM_7},
-       {0xAC6C, 0x01D0},    // AWB_RIGHT_CCM_8},
-       {0xAC6E, 0x0069},    // AWB_RIGHT_CCM_R2BRATIO},
-       {0xAC72, 0x004D},    // AWB_LL_CCM_0},
-       {0xAC74, 0x0096},    // AWB_LL_CCM_1},
-       {0xAC76, 0x001D},    // AWB_LL_CCM_2},
-       {0xAC78, 0x004D},    // AWB_LL_CCM_3},
-       {0xAC7A, 0x0096},    // AWB_LL_CCM_4},
-       {0xAC7C, 0x001D},    // AWB_LL_CCM_5},
-       {0xAC7E, 0x004D},    // AWB_LL_CCM_6},
-       {0xAC80, 0x0096},    // AWB_LL_CCM_7},
-       {0xAC82, 0x001D},    // AWB_LL_CCM_8},
-
-       {0xAC97, 0x73},    // AWB_LEFT_TINT_COEF_FOR_CCM_ROW_0},
-       {0xAC99, 0x8A},    // AWB_LEFT_TINT_COEF_FOR_CCM_ROW_2},
-       {0xAC9A, 0x78},    // AWB_RIGHT_TINT_COEF_FOR_CCM_ROW_0},
-       {0xAC9B, 0x80},    // AWB_RIGHT_TINT_COEF_FOR_CCM_ROW_1},
-       {0xAC9C, 0x78},    // AWB_RIGHT_TINT_COEF_FOR_CCM_ROW_2},
-       {0xB83E, 0x00},    // STAT_AWB_WINDOW_POS_X},
-       {0xB83F, 0x00},    // STAT_AWB_WINDOW_POS_Y},
-       {0xB840, 0xFF},    // STAT_AWB_WINDOW_SIZE_X},
-       {0xB841, 0xEF},    // STAT_AWB_WINDOW_SIZE_Y},
-       //soc5140_weighted2D_awb_settings},
-       {0xB842, 0x0039},    // STAT_AWB_GRAY_CHECKER_OFFSET_X},
-       {0xB844, 0x0038},    // STAT_AWB_GRAY_CHECKER_OFFSET_Y},
-       {0x3240, 0x0024},    // AWB_XY_SCALE},
-       {0x3242, 0x0000},    // AWB_WEIGHT_R0},
-       {0x3244, 0x1550},    // AWB_WEIGHT_R1},
-       {0x3246, 0x1F00},    // AWB_WEIGHT_R2},
-       {0x3248, 0x7380},    // AWB_WEIGHT_R3},
-       {0x324A, 0x70E0},    // AWB_WEIGHT_R4},
-       {0x324C, 0x01F0},    // AWB_WEIGHT_R5},
-       {0x324E, 0x006B},    // AWB_WEIGHT_R6},
-       {0x3250, 0x0055},    // AWB_WEIGHT_R7},
-       {0xD80F, 0x04},    // JPEG_QSCALE_0},
-       {0xD810, 0x08},    // JPEG_QSCALE_1},
-       {0xC8D2, 0x04},    // CAM_OUTPUT_1_JPEG_QSCALE_0},
-       {0xC8D3, 0x08},    // CAM_OUTPUT_1_JPEG_QSCALE_1},
-       {0xC8BC, 0x04},    // CAM_OUTPUT_0_JPEG_QSCALE_0},
-       {0xC8BD, 0x08},    // CAM_OUTPUT_0_JPEG_QSCALE_1},
-       //sys_settings},
-       {0x301A, 0x10F4},    // RESET_REGISTER},
-       {0x301E, 0x0083},    // DATA_PEDESTAL},
-       {0x301A, 0x10FC},    // RESET_REGISTER},
-       {0xDC33, 0x20},    // SYS_FIRST_BLACK_LEVEL},
-       {0xDC35, 0x04},    // SYS_UV_COLOR_BOOST},
-       {0x326E, 0x0006},    // LOW_PASS_YUV_FILTER},
-       {0xDC37, 0x62},    // SYS_BRIGHT_COLORKILL},
-       {0x35A4, 0x0596},    // BRIGHT_COLOR_KILL_CONTROLS},
-       {0x35A2, 0x009C},    // DARK_COLOR_KILL_CONTROLS},
-       {0x098E, 0x5C02},               // MCU_ADDR},
-       {0xDC02, 0x003E},    // SYS_ALGO},
-       {0xDC36, 0x34},    // SYS_DARK_COLOR_KILL},
-#if 0
+//[Step2-PLL_Timing]
+//for 24MHz input, VCO=MAX PCLK=76.8MHz
+{ 0x0010, 0x0340, WORD_LEN, 0},
+{ 0x0012, 0x0090, WORD_LEN, 0},
+{ 0x0014, 0x2025, WORD_LEN, 0},
+{ 0x001E, 0x0565, WORD_LEN, 0},        // PAD_SLEW_PAD_CONFIG
+{ 0x0022, 0x0030, WORD_LEN, 0},   //0x01E0     // VDD_DIS_COUNTER
+{ 0x002A, 0x7F7E, WORD_LEN, 0},   //0x7F7F     // PLL_P4_P5_P6_DIVIDERS By Hwang 20101104
+{ 0x002C, 0x0000, WORD_LEN, 0},        // PLL_P7_DIVIDER
+{ 0x002E, 0x0000, WORD_LEN, 0},        // SENSOR_CLOCK_DIVIDER
+{ 0x0018, 0x4008, WORD_LEN, 0},        // STANDBY_CONTROL_AND_STATUS
+{ SEQUENCE_WAIT_MS,100,WORD_LEN, 0},
+//timing_settings
+{ 0x0010, 0x0340, WORD_LEN, 0},        // PLL_DIVIDERS
+{ 0x098E, 0x483A, WORD_LEN, 0},        // LOGICAL_ADDRESS_ACCESS [CAM_CORE_A_Y_ADDR_START]
+{ 0xC83A, 0x000C, WORD_LEN, 0},        // CAM_CORE_A_Y_ADDR_START
+{ 0xC83C, 0x0018, WORD_LEN, 0},        // CAM_CORE_A_X_ADDR_START
+{ 0xC83E, 0x07B1, WORD_LEN, 0},        // CAM_CORE_A_Y_ADDR_END
+{ 0xC840, 0x0A45, WORD_LEN, 0},        // CAM_CORE_A_X_ADDR_END
+{ 0xC842, 0x0001, WORD_LEN, 0},        // CAM_CORE_A_ROW_SPEED
+{ 0xC844, 0x0103, WORD_LEN, 0},        // CAM_CORE_A_SKIP_X_CORE
+{ 0xC846, 0x0103, WORD_LEN, 0},        // CAM_CORE_A_SKIP_Y_CORE
+{ 0xC848, 0x0103, WORD_LEN, 0},        // CAM_CORE_A_SKIP_X_PIPE
+{ 0xC84A, 0x0103, WORD_LEN, 0},        // CAM_CORE_A_SKIP_Y_PIPE
+{ 0xC84C, 0x00F6, WORD_LEN, 0},        // CAM_CORE_A_POWER_MODE
+{ 0xC84E, 0x0001, WORD_LEN, 0},        // CAM_CORE_A_BIN_MODE
+{ 0xC850, 0x00, BYTE_LEN, 0},  // CAM_CORE_A_ORIENTATION
+{ 0xC851, 0x00, BYTE_LEN, 0},  // CAM_CORE_A_PIXEL_ORDER
+{ 0xC852, 0x019C, WORD_LEN, 0},        // CAM_CORE_A_FINE_CORRECTION
+{ 0xC854, 0x0732, WORD_LEN, 0},        // CAM_CORE_A_FINE_ITMIN
+{ 0xC858, 0x0000, WORD_LEN, 0},        // CAM_CORE_A_COARSE_ITMIN
+{ 0xC85A, 0x0001, WORD_LEN, 0},        // CAM_CORE_A_COARSE_ITMAX_MARGIN
+{ 0xC85C, 0x0423, WORD_LEN, 0},        // CAM_CORE_A_MIN_FRAME_LENGTH_LINES
+{ 0xC85E, 0xFFFF, WORD_LEN, 0},        // CAM_CORE_A_MAX_FRAME_LENGTH_LINS
+{ 0xC860, 0x0423, WORD_LEN, 0},        // CAM_CORE_A_BASE_FRAME_LENGTH_LINES
+{ 0xC862, 0x1194, WORD_LEN, 0},        // CAM_CORE_A_MIN_LINE_LENGTH_PCLK
+{ 0xC864, 0xFFFE, WORD_LEN, 0},        // CAM_CORE_A_MAX_LINE_LENGTH_PCLK
+{ 0xC866, 0x7F7F, WORD_LEN, 0},        // CAM_CORE_A_P4_5_6_DIVIDER
+{ 0xC868, 0x0423, WORD_LEN, 0},        // CAM_CORE_A_FRAME_LENGTH_LINES
+{ 0xC86A, 0x1194, WORD_LEN, 0},        // CAM_CORE_A_LINE_LENGTH_PCK
+{ 0xC86C, 0x0518, WORD_LEN, 0},        // CAM_CORE_A_OUTPUT_SIZE_WIDTH
+{ 0xC86E, 0x03D4, WORD_LEN, 0},        // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
+{ 0xC870, 0x0014, WORD_LEN, 0},        // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
+{ 0xC858, 0x0003, WORD_LEN, 0},        // CAM_CORE_A_COARSE_ITMIN
+{ 0xC8B8, 0x0004, WORD_LEN, 0},        // CAM_OUTPUT_0_JPEG_CONTROL
+{ 0xC8AE, 0x0001, WORD_LEN, 0},        // CAM_OUTPUT_0_OUTPUT_FORMAT
+{ 0xC8AA, 0x0280, WORD_LEN, 0},        // CAM_OUTPUT_0_IMAGE_WIDTH
+{ 0xC8AC, 0x01E0, WORD_LEN, 0},        // CAM_OUTPUT_0_IMAGE_HEIGHT
+{ 0xC872, 0x0010, WORD_LEN, 0},        // CAM_CORE_B_Y_ADDR_START
+{ 0xC874, 0x001C, WORD_LEN, 0},        // CAM_CORE_B_X_ADDR_START
+{ 0xC876, 0x07AF, WORD_LEN, 0},        // CAM_CORE_B_Y_ADDR_END
+{ 0xC878, 0x0A43, WORD_LEN, 0},        // CAM_CORE_B_X_ADDR_END
+{ 0xC87A, 0x0001, WORD_LEN, 0},        // CAM_CORE_B_ROW_SPEED
+{ 0xC87C, 0x0101, WORD_LEN, 0},        // CAM_CORE_B_SKIP_X_CORE
+{ 0xC87E, 0x0101, WORD_LEN, 0},        // CAM_CORE_B_SKIP_Y_CORE
+{ 0xC880, 0x0101, WORD_LEN, 0},        // CAM_CORE_B_SKIP_X_PIPE
+{ 0xC882, 0x0101, WORD_LEN, 0},        // CAM_CORE_B_SKIP_Y_PIPE
+{ 0xC884, 0x00F2, WORD_LEN, 0},        // CAM_CORE_B_POWER_MODE
+{ 0xC886, 0x0000, WORD_LEN, 0},        // CAM_CORE_B_BIN_MODE
+{ 0xC888, 0x00, BYTE_LEN, 0},  // CAM_CORE_B_ORIENTATION
+{ 0xC889, 0x00, BYTE_LEN, 0},  // CAM_CORE_B_PIXEL_ORDER
+{ 0xC88A, 0x009C, WORD_LEN, 0},        // CAM_CORE_B_FINE_CORRECTION
+{ 0xC88C, 0x034A, WORD_LEN, 0},        // CAM_CORE_B_FINE_ITMIN
+{ 0xC890, 0x0000, WORD_LEN, 0},        // CAM_CORE_B_COARSE_ITMIN
+{ 0xC892, 0x0001, WORD_LEN, 0},        // CAM_CORE_B_COARSE_ITMAX_MARGIN
+{ 0xC894, 0x07EF, WORD_LEN, 0},        // CAM_CORE_B_MIN_FRAME_LENGTH_LINES
+{ 0xC896, 0xFFFF, WORD_LEN, 0},        // CAM_CORE_B_MAX_FRAME_LENGTH_LINES
+{ 0xC898, 0x082F, WORD_LEN, 0},        // CAM_CORE_B_BASE_FRAME_LENGTH_LINES
+{ 0xC89A, 0x1964, WORD_LEN, 0},        // CAM_CORE_B_MIN_LINE_LENGTH_PCLK
+{ 0xC89C, 0xFFFE, WORD_LEN, 0},        // CAM_CORE_B_MAX_LINE_LENGTH_PCLK
+{ 0xC89E, 0x7F7F, WORD_LEN, 0},        // CAM_CORE_B_P4_5_6_DIVIDER
+{ 0xC8A0, 0x07EF, WORD_LEN, 0},        // CAM_CORE_B_FRAME_LENGTH_LINES
+{ 0xC8A2, 0x1964, WORD_LEN, 0},        // CAM_CORE_B_LINE_LENGTH_PCK
+{ 0xC8A4, 0x0A28, WORD_LEN, 0},        // CAM_CORE_B_OUTPUT_SIZE_WIDTH
+{ 0xC8A6, 0x07A0, WORD_LEN, 0},        // CAM_CORE_B_OUTPUT_SIZE_HEIGHT
+{ 0xC8A8, 0x0124, WORD_LEN, 0},        // CAM_CORE_B_RX_FIFO_TRIGGER_MARK
+{ 0xC890, 0x0003, WORD_LEN, 0},        // CAM_CORE_B_COARSE_ITMIN
+{ 0xC8C0, 0x0A20, WORD_LEN, 0},        // CAM_OUTPUT_1_IMAGE_WIDTH
+{ 0xC8C2, 0x0798, WORD_LEN, 0},        // CAM_OUTPUT_1_IMAGE_HEIGHT
+{ 0xC89A, 0x1964, WORD_LEN, 0},        // CAM_CORE_B_MIN_LINE_LENGTH_PCLK
+{ 0xC8A2, 0x1964, WORD_LEN, 0},        // CAM_CORE_B_LINE_LENGTH_PCK
+{ 0xC8C4, 0x0001, WORD_LEN, 0},        // CAM_OUTPUT_1_OUTPUT_FORMAT
+{ 0xC8C6, 0x0000, WORD_LEN, 0},        // CAM_OUTPUT_1_OUTPUT_FORMAT_ORDER
+{ 0xC8CE, 0x0014, WORD_LEN, 0},        // CAM_OUTPUT_1_JPEG_CONTROL
+{ 0xD822, 0x4610, WORD_LEN, 0},        // JPEG_JPSS_CTRL_VAR
+{ 0x3330, 0x0000, WORD_LEN, 0},        // OUTPUT_FORMAT_TEST
+{ 0x098E, 0xA00E, WORD_LEN, 0},        // LOGICAL_ADDRESS_ACCESS
+{ 0xA00E, 0x32, BYTE_LEN, 0},  // FD_MAX_NUM_AUTOCOR_FUNC_VALUES_TO_CHECK
+{ 0xA010, 0x00CC, WORD_LEN, 0},        // FD_MIN_EXPECTED50HZ_FLICKER_PERIOD
+{ 0xA012, 0x00E0, WORD_LEN, 0},        // FD_MAX_EXPECTED50HZ_FLICKER_PERIOD
+{ 0xA014, 0x00A8, WORD_LEN, 0},        // FD_MIN_EXPECTED60HZ_FLICKER_PERIOD
+{ 0xA016, 0x00BC, WORD_LEN, 0},        // FD_MAX_EXPECTED60HZ_FLICKER_PERIOD
+{ 0xA018, 0x00D6, WORD_LEN, 0},        // FD_EXPECTED50HZ_FLICKER_PERIOD_IN_CONTEXT_A
+{ 0xA01A, 0x0075, WORD_LEN, 0},        // FD_EXPECTED50HZ_FLICKER_PERIOD_IN_CONTEXT_B
+{ 0xA01C, 0x00B2, WORD_LEN, 0},        // FD_EXPECTED60HZ_FLICKER_PERIOD_IN_CONTEXT_A
+{ 0xA01E, 0x0062, WORD_LEN, 0},        // FD_EXPECTED60HZ_FLICKER_PERIOD_IN_CONTEXT_B
+{ 0xA000, 0x10, BYTE_LEN, 0},  // FD_STATUS
+{ 0x8417, 0x02, BYTE_LEN, 0},  // SEQ_STATE_CFG_1_FD
+{ 0x8404, 0x06, BYTE_LEN, 0},  // SEQ_CMD
+{ SEQUENCE_WAIT_MS,300, BYTE_LEN, 0},
+
+//[Step3-Recommended]
+//[k28a_rev3_FW_patch7]
+//  k28a_rev03_patch07_CR30221_MCNEX_AWB_AFNOISE_YOFFSET_APGA_REV1
+{ 0x0982, 0x0000, WORD_LEN, 0},        // ACCESS_CTL_STAT
+{ 0x098A, 0x0000, WORD_LEN, 0},        // PHYSICAL_ADDRESS_ACCESS
+{ 0x886C, 0xC0F1, WORD_LEN, 0},
+{ 0x886E, 0xC5E1, WORD_LEN, 0},
+{ 0x8870, 0x246A, WORD_LEN, 0},
+{ 0x8872, 0x1280, WORD_LEN, 0},
+{ 0x8874, 0xC4E1, WORD_LEN, 0},
+{ 0x8876, 0xD20F, WORD_LEN, 0},
+{ 0x8878, 0x2069, WORD_LEN, 0},
+{ 0x887A, 0x0000, WORD_LEN, 0},
+{ 0x887C, 0x6A62, WORD_LEN, 0},
+{ 0x887E, 0x1303, WORD_LEN, 0},
+{ 0x8880, 0x0084, WORD_LEN, 0},
+{ 0x8882, 0x1734, WORD_LEN, 0},
+{ 0x8884, 0x7005, WORD_LEN, 0},
+{ 0x8886, 0xD801, WORD_LEN, 0},
+{ 0x8888, 0x8A41, WORD_LEN, 0},
+{ 0x888A, 0xD900, WORD_LEN, 0},
+{ 0x888C, 0x0D5A, WORD_LEN, 0},
+{ 0x888E, 0x0664, WORD_LEN, 0},
+{ 0x8890, 0x8B61, WORD_LEN, 0},
+{ 0x8892, 0xE80B, WORD_LEN, 0},
+{ 0x8894, 0x000D, WORD_LEN, 0},
+{ 0x8896, 0x0020, WORD_LEN, 0},
+{ 0x8898, 0xD508, WORD_LEN, 0},
+{ 0x889A, 0x1504, WORD_LEN, 0},
+{ 0x889C, 0x1400, WORD_LEN, 0},
+{ 0x889E, 0x7840, WORD_LEN, 0},
+{ 0x88A0, 0xD007, WORD_LEN, 0},
+{ 0x88A2, 0x0DFB, WORD_LEN, 0},
+{ 0x88A4, 0x9004, WORD_LEN, 0},
+{ 0x88A6, 0xC4C1, WORD_LEN, 0},
+{ 0x88A8, 0x2029, WORD_LEN, 0},
+{ 0x88AA, 0x0300, WORD_LEN, 0},
+{ 0x88AC, 0x0219, WORD_LEN, 0},
+{ 0x88AE, 0x06C4, WORD_LEN, 0},
+{ 0x88B0, 0xFF80, WORD_LEN, 0},
+{ 0x88B2, 0x08C8, WORD_LEN, 0},
+{ 0x88B4, 0xFF80, WORD_LEN, 0},
+{ 0x88B6, 0x086C, WORD_LEN, 0},
+{ 0x88B8, 0xFF80, WORD_LEN, 0},
+{ 0x88BA, 0x08C0, WORD_LEN, 0},
+{ 0x88BC, 0xFF80, WORD_LEN, 0},
+{ 0x88BE, 0x08C8, WORD_LEN, 0},
+{ 0x88C0, 0xFF80, WORD_LEN, 0},
+{ 0x88C2, 0x08D0, WORD_LEN, 0},
+{ 0x88C4, 0xFF80, WORD_LEN, 0},
+{ 0x88C6, 0x0978, WORD_LEN, 0},
+{ 0x88C8, 0x0007, WORD_LEN, 0},
+{ 0x88CA, 0x0001, WORD_LEN, 0},
+{ 0x88CC, 0x0000, WORD_LEN, 0},
+{ 0x88CE, 0x0000, WORD_LEN, 0},
+{ 0x88D0, 0xC0F1, WORD_LEN, 0},
+{ 0x88D2, 0x097E, WORD_LEN, 0},
+{ 0x88D4, 0x06E4, WORD_LEN, 0},
+{ 0x88D6, 0xDA14, WORD_LEN, 0},
+{ 0x88D8, 0xD0C8, WORD_LEN, 0},
+{ 0x88DA, 0xDE00, WORD_LEN, 0},
+{ 0x88DC, 0xD1C8, WORD_LEN, 0},
+{ 0x88DE, 0x2E41, WORD_LEN, 0},
+{ 0x88E0, 0x120C, WORD_LEN, 0},
+{ 0x88E2, 0xA895, WORD_LEN, 0},
+{ 0x88E4, 0xD5C7, WORD_LEN, 0},
+{ 0x88E6, 0xA8D4, WORD_LEN, 0},
+{ 0x88E8, 0xA8D6, WORD_LEN, 0},
+{ 0x88EA, 0x0F0A, WORD_LEN, 0},
+{ 0x88EC, 0x06A4, WORD_LEN, 0},
+{ 0x88EE, 0x2555, WORD_LEN, 0},
+{ 0x88F0, 0x1440, WORD_LEN, 0},
+{ 0x88F2, 0xD0C5, WORD_LEN, 0},
+{ 0x88F4, 0x2555, WORD_LEN, 0},
+{ 0x88F6, 0x1441, WORD_LEN, 0},
+{ 0x88F8, 0x77A9, WORD_LEN, 0},
+{ 0x88FA, 0xA515, WORD_LEN, 0},
+{ 0x88FC, 0xD0C3, WORD_LEN, 0},
+{ 0x88FE, 0xA020, WORD_LEN, 0},
+{ 0x8900, 0xD1C3, WORD_LEN, 0},
+{ 0x8902, 0x70E9, WORD_LEN, 0},
+{ 0x8904, 0x0EEE, WORD_LEN, 0},
+{ 0x8906, 0x06A4, WORD_LEN, 0},
+{ 0x8908, 0xDA44, WORD_LEN, 0},
+{ 0x890A, 0xD0C2, WORD_LEN, 0},
+{ 0x890C, 0xD1C2, WORD_LEN, 0},
+{ 0x890E, 0xA502, WORD_LEN, 0},
+{ 0x8910, 0xD0C2, WORD_LEN, 0},
+{ 0x8912, 0xA0E0, WORD_LEN, 0},
+{ 0x8914, 0xD0C2, WORD_LEN, 0},
+{ 0x8916, 0xB0CB, WORD_LEN, 0},
+{ 0x8918, 0x8900, WORD_LEN, 0},
+{ 0x891A, 0xDB08, WORD_LEN, 0},
+{ 0x891C, 0xDAF0, WORD_LEN, 0},
+{ 0x891E, 0x19B0, WORD_LEN, 0},
+{ 0x8920, 0x00C2, WORD_LEN, 0},
+{ 0x8922, 0xB8A6, WORD_LEN, 0},
+{ 0x8924, 0xA900, WORD_LEN, 0},
+{ 0x8926, 0xD851, WORD_LEN, 0},
+{ 0x8928, 0x19B2, WORD_LEN, 0},
+{ 0x892A, 0x0002, WORD_LEN, 0},
+{ 0x892C, 0xD852, WORD_LEN, 0},
+{ 0x892E, 0x19B3, WORD_LEN, 0},
+{ 0x8930, 0x0002, WORD_LEN, 0},
+{ 0x8932, 0xD855, WORD_LEN, 0},
+{ 0x8934, 0x19B6, WORD_LEN, 0},
+{ 0x8936, 0x0002, WORD_LEN, 0},
+{ 0x8938, 0xD856, WORD_LEN, 0},
+{ 0x893A, 0x19B7, WORD_LEN, 0},
+{ 0x893C, 0x0002, WORD_LEN, 0},
+{ 0x893E, 0xD896, WORD_LEN, 0},
+{ 0x8940, 0x19B8, WORD_LEN, 0},
+{ 0x8942, 0x0004, WORD_LEN, 0},
+{ 0x8944, 0xD814, WORD_LEN, 0},
+{ 0x8946, 0x19BA, WORD_LEN, 0},
+{ 0x8948, 0x0004, WORD_LEN, 0},
+{ 0x894A, 0xD805, WORD_LEN, 0},
+{ 0x894C, 0xB111, WORD_LEN, 0},
+{ 0x894E, 0x19B1, WORD_LEN, 0},
+{ 0x8950, 0x0082, WORD_LEN, 0},
+{ 0x8952, 0x19B4, WORD_LEN, 0},
+{ 0x8954, 0x00C2, WORD_LEN, 0},
+{ 0x8956, 0x19B5, WORD_LEN, 0},
+{ 0x8958, 0x0082, WORD_LEN, 0},
+{ 0x895A, 0xD1B2, WORD_LEN, 0},
+{ 0x895C, 0x2556, WORD_LEN, 0},
+{ 0x895E, 0x12C0, WORD_LEN, 0},
+{ 0x8960, 0x0E92, WORD_LEN, 0},
+{ 0x8962, 0x06A4, WORD_LEN, 0},
+{ 0x8964, 0xDA2C, WORD_LEN, 0},
+{ 0x8966, 0xD0B0, WORD_LEN, 0},
+{ 0x8968, 0x2556, WORD_LEN, 0},
+{ 0x896A, 0x12C1, WORD_LEN, 0},
+{ 0x896C, 0xA519, WORD_LEN, 0},
+{ 0x896E, 0xD0AF, WORD_LEN, 0},
+{ 0x8970, 0x0145, WORD_LEN, 0},
+{ 0x8972, 0x06E4, WORD_LEN, 0},
+{ 0x8974, 0xA020, WORD_LEN, 0},
+{ 0x8976, 0x78E0, WORD_LEN, 0},
+{ 0x8978, 0xC0F1, WORD_LEN, 0},
+{ 0x897A, 0xD0AD, WORD_LEN, 0},
+{ 0x897C, 0xD1AD, WORD_LEN, 0},
+{ 0x897E, 0xD2AE, WORD_LEN, 0},
+{ 0x8980, 0xA020, WORD_LEN, 0},
+{ 0x8982, 0x8A09, WORD_LEN, 0},
+{ 0x8984, 0x8A6A, WORD_LEN, 0},
+{ 0x8986, 0xB808, WORD_LEN, 0},
+{ 0x8988, 0x7865, WORD_LEN, 0},
+{ 0x898A, 0xB880, WORD_LEN, 0},
+{ 0x898C, 0x2841, WORD_LEN, 0},
+{ 0x898E, 0x020C, WORD_LEN, 0},
+{ 0x8990, 0xAA89, WORD_LEN, 0},
+{ 0x8992, 0xAA0A, WORD_LEN, 0},
+{ 0x8994, 0xD2A9, WORD_LEN, 0},
+{ 0x8996, 0x8A00, WORD_LEN, 0},
+{ 0x8998, 0x0809, WORD_LEN, 0},
+{ 0x899A, 0x01DE, WORD_LEN, 0},
+{ 0x899C, 0xB8A7, WORD_LEN, 0},
+{ 0x899E, 0xAA00, WORD_LEN, 0},
+{ 0x89A0, 0xDBFF, WORD_LEN, 0},
+{ 0x89A2, 0x2B41, WORD_LEN, 0},
+{ 0x89A4, 0x0200, WORD_LEN, 0},
+{ 0x89A6, 0xAA0C, WORD_LEN, 0},
+{ 0x89A8, 0x1228, WORD_LEN, 0},
+{ 0x89AA, 0x0080, WORD_LEN, 0},
+{ 0x89AC, 0xAA6D, WORD_LEN, 0},
+{ 0x89AE, 0x0815, WORD_LEN, 0},
+{ 0x89B0, 0x01DE, WORD_LEN, 0},
+{ 0x89B2, 0xB8A7, WORD_LEN, 0},
+{ 0x89B4, 0x1A28, WORD_LEN, 0},
+{ 0x89B6, 0x0002, WORD_LEN, 0},
+{ 0x89B8, 0x8123, WORD_LEN, 0},
+{ 0x89BA, 0x7960, WORD_LEN, 0},
+{ 0x89BC, 0x1228, WORD_LEN, 0},
+{ 0x89BE, 0x0080, WORD_LEN, 0},
+{ 0x89C0, 0xC0D1, WORD_LEN, 0},
+{ 0x89C2, 0x7EE0, WORD_LEN, 0},
+{ 0x89C4, 0xC0F1, WORD_LEN, 0},
+{ 0x89C6, 0x088E, WORD_LEN, 0},
+{ 0x89C8, 0x06E4, WORD_LEN, 0},
+{ 0x89CA, 0xDB03, WORD_LEN, 0},
+{ 0x89CC, 0xD29B, WORD_LEN, 0},
+{ 0x89CE, 0x8A2E, WORD_LEN, 0},
+{ 0x89D0, 0x8ACF, WORD_LEN, 0},
+{ 0x89D2, 0xB908, WORD_LEN, 0},
+{ 0x89D4, 0x79C5, WORD_LEN, 0},
+{ 0x89D6, 0xDD65, WORD_LEN, 0},
+{ 0x89D8, 0x094F, WORD_LEN, 0},
+{ 0x89DA, 0x00D1, WORD_LEN, 0},
+{ 0x89DC, 0xD90A, WORD_LEN, 0},
+{ 0x89DE, 0x1A24, WORD_LEN, 0},
+{ 0x89E0, 0x0042, WORD_LEN, 0},
+{ 0x89E2, 0x8A24, WORD_LEN, 0},
+{ 0x89E4, 0xE1E5, WORD_LEN, 0},
+{ 0x89E6, 0xF6C9, WORD_LEN, 0},
+{ 0x89E8, 0xD902, WORD_LEN, 0},
+{ 0x89EA, 0x2941, WORD_LEN, 0},
+{ 0x89EC, 0x0200, WORD_LEN, 0},
+{ 0x89EE, 0xAA0E, WORD_LEN, 0},
+{ 0x89F0, 0xAA2F, WORD_LEN, 0},
+{ 0x89F2, 0x70A9, WORD_LEN, 0},
+{ 0x89F4, 0xF014, WORD_LEN, 0},
+{ 0x89F6, 0xE1C8, WORD_LEN, 0},
+{ 0x89F8, 0x0036, WORD_LEN, 0},
+{ 0x89FA, 0x000B, WORD_LEN, 0},
+{ 0x89FC, 0xE0C8, WORD_LEN, 0},
+{ 0x89FE, 0x003A, WORD_LEN, 0},
+{ 0x8A00, 0x000A, WORD_LEN, 0},
+{ 0x8A02, 0xD901, WORD_LEN, 0},
+{ 0x8A04, 0x2941, WORD_LEN, 0},
+{ 0x8A06, 0x0200, WORD_LEN, 0},
+{ 0x8A08, 0xAA0E, WORD_LEN, 0},
+{ 0x8A0A, 0xAA2F, WORD_LEN, 0},
+{ 0x8A0C, 0xD848, WORD_LEN, 0},
+{ 0x8A0E, 0xF008, WORD_LEN, 0},
+{ 0x8A10, 0xD900, WORD_LEN, 0},
+{ 0x8A12, 0x2941, WORD_LEN, 0},
+{ 0x8A14, 0x0200, WORD_LEN, 0},
+{ 0x8A16, 0xAA0E, WORD_LEN, 0},
+{ 0x8A18, 0xAA2F, WORD_LEN, 0},
+{ 0x8A1A, 0xD820, WORD_LEN, 0},
+{ 0x8A1C, 0xD288, WORD_LEN, 0},
+{ 0x8A1E, 0x8A26, WORD_LEN, 0},
+{ 0x8A20, 0xB961, WORD_LEN, 0},
+{ 0x8A22, 0xAA26, WORD_LEN, 0},
+{ 0x8A24, 0xF00D, WORD_LEN, 0},
+{ 0x8A26, 0x091F, WORD_LEN, 0},
+{ 0x8A28, 0x0091, WORD_LEN, 0},
+{ 0x8A2A, 0x8A24, WORD_LEN, 0},
+{ 0x8A2C, 0xF1E5, WORD_LEN, 0},
+{ 0x8A2E, 0x0913, WORD_LEN, 0},
+{ 0x8A30, 0x0812, WORD_LEN, 0},
+{ 0x8A32, 0x08E1, WORD_LEN, 0},
+{ 0x8A34, 0x8812, WORD_LEN, 0},
+{ 0x8A36, 0x2B41, WORD_LEN, 0},
+{ 0x8A38, 0x0201, WORD_LEN, 0},
+{ 0x8A3A, 0xAA2E, WORD_LEN, 0},
+{ 0x8A3C, 0xAA6F, WORD_LEN, 0},
+{ 0x8A3E, 0x0081, WORD_LEN, 0},
+{ 0x8A40, 0x06C4, WORD_LEN, 0},
+{ 0x8A42, 0x09F7, WORD_LEN, 0},
+{ 0x8A44, 0x8051, WORD_LEN, 0},
+{ 0x8A46, 0x8A24, WORD_LEN, 0},
+{ 0x8A48, 0xF1F3, WORD_LEN, 0},
+{ 0x8A4A, 0x78E0, WORD_LEN, 0},
+{ 0x8A4C, 0xC0F1, WORD_LEN, 0},
+{ 0x8A4E, 0x0FFA, WORD_LEN, 0},
+{ 0x8A50, 0x0684, WORD_LEN, 0},
+{ 0x8A52, 0xD67A, WORD_LEN, 0},
+{ 0x8A54, 0x7508, WORD_LEN, 0},
+{ 0x8A56, 0x8E01, WORD_LEN, 0},
+{ 0x8A58, 0xD179, WORD_LEN, 0},
+{ 0x8A5A, 0x2046, WORD_LEN, 0},
+{ 0x8A5C, 0x00C0, WORD_LEN, 0},
+{ 0x8A5E, 0xAE01, WORD_LEN, 0},
+{ 0x8A60, 0x1145, WORD_LEN, 0},
+{ 0x8A62, 0x0080, WORD_LEN, 0},
+{ 0x8A64, 0x1146, WORD_LEN, 0},
+{ 0x8A66, 0x0082, WORD_LEN, 0},
+{ 0x8A68, 0xB808, WORD_LEN, 0},
+{ 0x8A6A, 0x7845, WORD_LEN, 0},
+{ 0x8A6C, 0x0817, WORD_LEN, 0},
+{ 0x8A6E, 0x001E, WORD_LEN, 0},
+{ 0x8A70, 0x8900, WORD_LEN, 0},
+{ 0x8A72, 0x8941, WORD_LEN, 0},
+{ 0x8A74, 0xB808, WORD_LEN, 0},
+{ 0x8A76, 0x7845, WORD_LEN, 0},
+{ 0x8A78, 0x080B, WORD_LEN, 0},
+{ 0x8A7A, 0x00DE, WORD_LEN, 0},
+{ 0x8A7C, 0x70A9, WORD_LEN, 0},
+{ 0x8A7E, 0xFFD2, WORD_LEN, 0},
+{ 0x8A80, 0x7508, WORD_LEN, 0},
+{ 0x8A82, 0x1604, WORD_LEN, 0},
+{ 0x8A84, 0x1090, WORD_LEN, 0},
+{ 0x8A86, 0x0D93, WORD_LEN, 0},
+{ 0x8A88, 0x1400, WORD_LEN, 0},
+{ 0x8A8A, 0x8EEA, WORD_LEN, 0},
+{ 0x8A8C, 0x8E0B, WORD_LEN, 0},
+{ 0x8A8E, 0x214A, WORD_LEN, 0},
+{ 0x8A90, 0x2040, WORD_LEN, 0},
+{ 0x8A92, 0x8E2D, WORD_LEN, 0},
+{ 0x8A94, 0xBF08, WORD_LEN, 0},
+{ 0x8A96, 0x7F05, WORD_LEN, 0},
+{ 0x8A98, 0x8E0C, WORD_LEN, 0},
+{ 0x8A9A, 0xB808, WORD_LEN, 0},
+{ 0x8A9C, 0x7825, WORD_LEN, 0},
+{ 0x8A9E, 0x7710, WORD_LEN, 0},
+{ 0x8AA0, 0x21C2, WORD_LEN, 0},
+{ 0x8AA2, 0x244C, WORD_LEN, 0},
+{ 0x8AA4, 0x081D, WORD_LEN, 0},
+{ 0x8AA6, 0x03E3, WORD_LEN, 0},
+{ 0x8AA8, 0xD9FF, WORD_LEN, 0},
+{ 0x8AAA, 0x2702, WORD_LEN, 0},
+{ 0x8AAC, 0x1002, WORD_LEN, 0},
+{ 0x8AAE, 0x2A05, WORD_LEN, 0},
+{ 0x8AB0, 0x037E, WORD_LEN, 0},
+{ 0x8AB2, 0x0876, WORD_LEN, 0},
+{ 0x8AB4, 0x06E4, WORD_LEN, 0},
+{ 0x8AB6, 0x702F, WORD_LEN, 0},
+{ 0x8AB8, 0x7810, WORD_LEN, 0},
+{ 0x8ABA, 0x7F02, WORD_LEN, 0},
+{ 0x8ABC, 0x7FF0, WORD_LEN, 0},
+{ 0x8ABE, 0xF00B, WORD_LEN, 0},
+{ 0x8AC0, 0x78E2, WORD_LEN, 0},
+{ 0x8AC2, 0x2805, WORD_LEN, 0},
+{ 0x8AC4, 0x037E, WORD_LEN, 0},
+{ 0x8AC6, 0x0862, WORD_LEN, 0},
+{ 0x8AC8, 0x06E4, WORD_LEN, 0},
+{ 0x8ACA, 0x702F, WORD_LEN, 0},
+{ 0x8ACC, 0x7810, WORD_LEN, 0},
+{ 0x8ACE, 0x671F, WORD_LEN, 0},
+{ 0x8AD0, 0x7FF0, WORD_LEN, 0},
+{ 0x8AD2, 0x7FEF, WORD_LEN, 0},
+{ 0x8AD4, 0x8E08, WORD_LEN, 0},
+{ 0x8AD6, 0xBF06, WORD_LEN, 0},
+{ 0x8AD8, 0xD15A, WORD_LEN, 0},
+{ 0x8ADA, 0xB8C3, WORD_LEN, 0},
+{ 0x8ADC, 0x78E5, WORD_LEN, 0},
+{ 0x8ADE, 0xB88F, WORD_LEN, 0},
+{ 0x8AE0, 0x1908, WORD_LEN, 0},
+{ 0x8AE2, 0x0024, WORD_LEN, 0},
+{ 0x8AE4, 0x2841, WORD_LEN, 0},
+{ 0x8AE6, 0x0201, WORD_LEN, 0},
+{ 0x8AE8, 0x1E26, WORD_LEN, 0},
+{ 0x8AEA, 0x1042, WORD_LEN, 0},
+{ 0x8AEC, 0x0D15, WORD_LEN, 0},
+{ 0x8AEE, 0x1423, WORD_LEN, 0},
+{ 0x8AF0, 0x1E27, WORD_LEN, 0},
+{ 0x8AF2, 0x1002, WORD_LEN, 0},
+{ 0x8AF4, 0x214C, WORD_LEN, 0},
+{ 0x8AF6, 0xA000, WORD_LEN, 0},
+{ 0x8AF8, 0x214A, WORD_LEN, 0},
+{ 0x8AFA, 0x2040, WORD_LEN, 0},
+{ 0x8AFC, 0x21C2, WORD_LEN, 0},
+{ 0x8AFE, 0x2442, WORD_LEN, 0},
+{ 0x8B00, 0x8E21, WORD_LEN, 0},
+{ 0x8B02, 0x214F, WORD_LEN, 0},
+{ 0x8B04, 0x0040, WORD_LEN, 0},
+{ 0x8B06, 0x090F, WORD_LEN, 0},
+{ 0x8B08, 0x2010, WORD_LEN, 0},
+{ 0x8B0A, 0x2145, WORD_LEN, 0},
+{ 0x8B0C, 0x0181, WORD_LEN, 0},
+{ 0x8B0E, 0xAE21, WORD_LEN, 0},
+{ 0x8B10, 0xF003, WORD_LEN, 0},
+{ 0x8B12, 0xB8A2, WORD_LEN, 0},
+{ 0x8B14, 0xAE01, WORD_LEN, 0},
+{ 0x8B16, 0x0BFA, WORD_LEN, 0},
+{ 0x8B18, 0xFFE3, WORD_LEN, 0},
+{ 0x8B1A, 0x70A9, WORD_LEN, 0},
+{ 0x8B1C, 0x0789, WORD_LEN, 0},
+{ 0x8B1E, 0x0684, WORD_LEN, 0},
+{ 0x8B20, 0xD149, WORD_LEN, 0},
+{ 0x8B22, 0xD24A, WORD_LEN, 0},
+{ 0x8B24, 0x11B2, WORD_LEN, 0},
+{ 0x8B26, 0x8903, WORD_LEN, 0},
+{ 0x8B28, 0x1252, WORD_LEN, 0},
+{ 0x8B2A, 0x0100, WORD_LEN, 0},
+{ 0x8B2C, 0x7B6F, WORD_LEN, 0},
+{ 0x8B2E, 0xB808, WORD_LEN, 0},
+{ 0x8B30, 0x2004, WORD_LEN, 0},
+{ 0x8B32, 0x0F80, WORD_LEN, 0},
+{ 0x8B34, 0x0000, WORD_LEN, 0},
+{ 0x8B36, 0xFF00, WORD_LEN, 0},
+{ 0x8B38, 0x7865, WORD_LEN, 0},
+{ 0x8B3A, 0x19B2, WORD_LEN, 0},
+{ 0x8B3C, 0x8024, WORD_LEN, 0},
+{ 0x8B3E, 0xD044, WORD_LEN, 0},
+{ 0x8B40, 0x8801, WORD_LEN, 0},
+{ 0x8B42, 0xB8E1, WORD_LEN, 0},
+{ 0x8B44, 0xD800, WORD_LEN, 0},
+{ 0x8B46, 0xF404, WORD_LEN, 0},
+{ 0x8B48, 0x1234, WORD_LEN, 0},
+{ 0x8B4A, 0x0080, WORD_LEN, 0},
+{ 0x8B4C, 0x1955, WORD_LEN, 0},
+{ 0x8B4E, 0x803C, WORD_LEN, 0},
+{ 0x8B50, 0x1233, WORD_LEN, 0},
+{ 0x8B52, 0x0080, WORD_LEN, 0},
+{ 0x8B54, 0xB802, WORD_LEN, 0},
+{ 0x8B56, 0x1957, WORD_LEN, 0},
+{ 0x8B58, 0x803C, WORD_LEN, 0},
+{ 0x8B5A, 0x1958, WORD_LEN, 0},
+{ 0x8B5C, 0x803C, WORD_LEN, 0},
+{ 0x8B5E, 0x1959, WORD_LEN, 0},
+{ 0x8B60, 0x803C, WORD_LEN, 0},
+{ 0x8B62, 0x195A, WORD_LEN, 0},
+{ 0x8B64, 0x803C, WORD_LEN, 0},
+{ 0x8B66, 0x7EE0, WORD_LEN, 0},
+{ 0x8B68, 0xC0F1, WORD_LEN, 0},
+{ 0x8B6A, 0x0EE6, WORD_LEN, 0},
+{ 0x8B6C, 0x0684, WORD_LEN, 0},
+{ 0x8B6E, 0xD523, WORD_LEN, 0},
+{ 0x8B70, 0x8D2C, WORD_LEN, 0},
+{ 0x8B72, 0x0983, WORD_LEN, 0},
+{ 0x8B74, 0x0010, WORD_LEN, 0},
+{ 0x8B76, 0xD236, WORD_LEN, 0},
+{ 0x8B78, 0x123A, WORD_LEN, 0},
+{ 0x8B7A, 0x0083, WORD_LEN, 0},
+{ 0x8B7C, 0x123B, WORD_LEN, 0},
+{ 0x8B7E, 0x008F, WORD_LEN, 0},
+{ 0x8B80, 0x8D55, WORD_LEN, 0},
+{ 0x8B82, 0xBB08, WORD_LEN, 0},
+{ 0x8B84, 0x7BE5, WORD_LEN, 0},
+{ 0x8B86, 0x8DF6, WORD_LEN, 0},
+{ 0x8B88, 0xBA08, WORD_LEN, 0},
+{ 0x8B8A, 0x7AE5, WORD_LEN, 0},
+{ 0x8B8C, 0x0B0D, WORD_LEN, 0},
+{ 0x8B8E, 0x00A3, WORD_LEN, 0},
+{ 0x8B90, 0x8DC5, WORD_LEN, 0},
+{ 0x8B92, 0x8D54, WORD_LEN, 0},
+{ 0x8B94, 0xAD45, WORD_LEN, 0},
+{ 0x8B96, 0xF026, WORD_LEN, 0},
+{ 0x8B98, 0x65DB, WORD_LEN, 0},
+{ 0x8B9A, 0x8B6D, WORD_LEN, 0},
+{ 0x8B9C, 0x0815, WORD_LEN, 0},
+{ 0x8B9E, 0x00E2, WORD_LEN, 0},
+{ 0x8BA0, 0x65DA, WORD_LEN, 0},
+{ 0x8BA2, 0x8A51, WORD_LEN, 0},
+{ 0x8BA4, 0x0A0D, WORD_LEN, 0},
+{ 0x8BA6, 0x0002, WORD_LEN, 0},
+{ 0x8BA8, 0xE683, WORD_LEN, 0},
+{ 0x8BAA, 0x22CA, WORD_LEN, 0},
+{ 0x8BAC, 0x038B, WORD_LEN, 0},
+{ 0x8BAE, 0xF69A, WORD_LEN, 0},
+{ 0x8BB0, 0xDA00, WORD_LEN, 0},
+{ 0x8BB2, 0xAD45, WORD_LEN, 0},
+{ 0x8BB4, 0x2540, WORD_LEN, 0},
+{ 0x8BB6, 0x1343, WORD_LEN, 0},
+{ 0x8BB8, 0xE180, WORD_LEN, 0},
+{ 0x8BBA, 0x2540, WORD_LEN, 0},
+{ 0x8BBC, 0x144F, WORD_LEN, 0},
+{ 0x8BBE, 0xF6D2, WORD_LEN, 0},
+{ 0x8BC0, 0x719F, WORD_LEN, 0},
+{ 0x8BC2, 0x78E0, WORD_LEN, 0},
+{ 0x8BC4, 0x20A8, WORD_LEN, 0},
+{ 0x8BC6, 0x0280, WORD_LEN, 0},
+{ 0x8BC8, 0x8B20, WORD_LEN, 0},
+{ 0x8BCA, 0x0813, WORD_LEN, 0},
+{ 0x8BCC, 0x0043, WORD_LEN, 0},
+{ 0x8BCE, 0xE201, WORD_LEN, 0},
+{ 0x8BD0, 0x7A4F, WORD_LEN, 0},
+{ 0x8BD2, 0xAD45, WORD_LEN, 0},
+{ 0x8BD4, 0xE301, WORD_LEN, 0},
+{ 0x8BD6, 0xE701, WORD_LEN, 0},
+{ 0x8BD8, 0xF004, WORD_LEN, 0},
+{ 0x8BDA, 0x8F20, WORD_LEN, 0},
+{ 0x8BDC, 0x09F3, WORD_LEN, 0},
+{ 0x8BDE, 0x8002, WORD_LEN, 0},
+{ 0x8BE0, 0xD01C, WORD_LEN, 0},
+{ 0x8BE2, 0x8800, WORD_LEN, 0},
+{ 0x8BE4, 0xE803, WORD_LEN, 0},
+{ 0x8BE6, 0x0E0F, WORD_LEN, 0},
+{ 0x8BE8, 0x1080, WORD_LEN, 0},
+{ 0x8BEA, 0xD008, WORD_LEN, 0},
+{ 0x8BEC, 0x8000, WORD_LEN, 0},
+{ 0x8BEE, 0x8002, WORD_LEN, 0},
+{ 0x8BF0, 0x7840, WORD_LEN, 0},
+{ 0x8BF2, 0x06C5, WORD_LEN, 0},
+{ 0x8BF4, 0x0684, WORD_LEN, 0},
+{ 0x8BF6, 0x78E0, WORD_LEN, 0},
+{ 0x8BF8, 0xFF80, WORD_LEN, 0},
+{ 0x8BFA, 0x0644, WORD_LEN, 0},
+{ 0x8BFC, 0x0000, WORD_LEN, 0},
+{ 0x8BFE, 0xF978, WORD_LEN, 0},
+{ 0x8C00, 0xFF80, WORD_LEN, 0},
+{ 0x8C02, 0x0E00, WORD_LEN, 0},
+{ 0x8C04, 0xFF80, WORD_LEN, 0},
+{ 0x8C06, 0x0B68, WORD_LEN, 0},
+{ 0x8C08, 0x8000, WORD_LEN, 0},
+{ 0x8C0A, 0x0164, WORD_LEN, 0},
+{ 0x8C0C, 0x0000, WORD_LEN, 0},
+{ 0x8C0E, 0xF9AC, WORD_LEN, 0},
+{ 0x8C10, 0xFF80, WORD_LEN, 0},
+{ 0x8C12, 0x0B20, WORD_LEN, 0},
+{ 0x8C14, 0xFF80, WORD_LEN, 0},
+{ 0x8C16, 0x0314, WORD_LEN, 0},
+{ 0x8C18, 0x8000, WORD_LEN, 0},
+{ 0x8C1A, 0x016C, WORD_LEN, 0},
+{ 0x8C1C, 0xFF80, WORD_LEN, 0},
+{ 0x8C1E, 0x0694, WORD_LEN, 0},
+{ 0x8C20, 0x0000, WORD_LEN, 0},
+{ 0x8C22, 0xF444, WORD_LEN, 0},
+{ 0x8C24, 0xFF80, WORD_LEN, 0},
+{ 0x8C26, 0x0C54, WORD_LEN, 0},
+{ 0x8C28, 0x8000, WORD_LEN, 0},
+{ 0x8C2A, 0x009C, WORD_LEN, 0},
+{ 0x8C2C, 0x8000, WORD_LEN, 0},
+{ 0x8C2E, 0x0008, WORD_LEN, 0},
+{ 0x8C30, 0xFF80, WORD_LEN, 0},
+{ 0x8C32, 0x0DF0, WORD_LEN, 0},
+{ 0x8C34, 0xFF80, WORD_LEN, 0},
+{ 0x8C36, 0x02CC, WORD_LEN, 0},
+{ 0x8C38, 0xFF80, WORD_LEN, 0},
+{ 0x8C3A, 0x0158, WORD_LEN, 0},
+{ 0x8C3C, 0xFF80, WORD_LEN, 0},
+{ 0x8C3E, 0x0290, WORD_LEN, 0},
+{ 0x8C40, 0xFF00, WORD_LEN, 0},
+{ 0x8C42, 0x0618, WORD_LEN, 0},
+{ 0x8C44, 0xFF00, WORD_LEN, 0},
+{ 0x8C46, 0x33CC, WORD_LEN, 0},
+{ 0x8C48, 0xFF80, WORD_LEN, 0},
+{ 0x8C4A, 0x0658, WORD_LEN, 0},
+{ 0x8C4C, 0xFF80, WORD_LEN, 0},
+{ 0x8C4E, 0x0250, WORD_LEN, 0},
+{ 0x8C50, 0x8000, WORD_LEN, 0},
+{ 0x8C52, 0x0168, WORD_LEN, 0},
+{ 0x8C54, 0xC0F1, WORD_LEN, 0},
+{ 0x8C56, 0x0DFE, WORD_LEN, 0},
+{ 0x8C58, 0x0684, WORD_LEN, 0},
+{ 0x8C5A, 0x17BC, WORD_LEN, 0},
+{ 0x8C5C, 0xF00E, WORD_LEN, 0},
+{ 0x8C5E, 0x8E01, WORD_LEN, 0},
+{ 0x8C60, 0xB8A4, WORD_LEN, 0},
+{ 0x8C62, 0xAE01, WORD_LEN, 0},
+{ 0x8C64, 0x8E09, WORD_LEN, 0},
+{ 0x8C66, 0xB8E0, WORD_LEN, 0},
+{ 0x8C68, 0xF29B, WORD_LEN, 0},
+{ 0x8C6A, 0x17E4, WORD_LEN, 0},
+{ 0x8C6C, 0xF00D, WORD_LEN, 0},
+{ 0x8C6E, 0x153A, WORD_LEN, 0},
+{ 0x8C70, 0x1080, WORD_LEN, 0},
+{ 0x8C72, 0x153B, WORD_LEN, 0},
+{ 0x8C74, 0x1081, WORD_LEN, 0},
+{ 0x8C76, 0xB808, WORD_LEN, 0},
+{ 0x8C78, 0x7825, WORD_LEN, 0},
+{ 0x8C7A, 0x16B8, WORD_LEN, 0},
+{ 0x8C7C, 0x1101, WORD_LEN, 0},
+{ 0x8C7E, 0x092D, WORD_LEN, 0},
+{ 0x8C80, 0x0003, WORD_LEN, 0},
+{ 0x8C82, 0x16B0, WORD_LEN, 0},
+{ 0x8C84, 0x1082, WORD_LEN, 0},
+{ 0x8C86, 0x1E3C, WORD_LEN, 0},
+{ 0x8C88, 0x1082, WORD_LEN, 0},
+{ 0x8C8A, 0x16B1, WORD_LEN, 0},
+{ 0x8C8C, 0x1082, WORD_LEN, 0},
+{ 0x8C8E, 0x1E3D, WORD_LEN, 0},
+{ 0x8C90, 0x1082, WORD_LEN, 0},
+{ 0x8C92, 0x16B4, WORD_LEN, 0},
+{ 0x8C94, 0x1082, WORD_LEN, 0},
+{ 0x8C96, 0x1E3E, WORD_LEN, 0},
+{ 0x8C98, 0x1082, WORD_LEN, 0},
+{ 0x8C9A, 0x16B5, WORD_LEN, 0},
+{ 0x8C9C, 0x1082, WORD_LEN, 0},
+{ 0x8C9E, 0x1E3F, WORD_LEN, 0},
+{ 0x8CA0, 0x1082, WORD_LEN, 0},
+{ 0x8CA2, 0x8E40, WORD_LEN, 0},
+{ 0x8CA4, 0xBAA6, WORD_LEN, 0},
+{ 0x8CA6, 0xAE40, WORD_LEN, 0},
+{ 0x8CA8, 0x098F, WORD_LEN, 0},
+{ 0x8CAA, 0x0022, WORD_LEN, 0},
+{ 0x8CAC, 0x16BA, WORD_LEN, 0},
+{ 0x8CAE, 0x1102, WORD_LEN, 0},
+{ 0x8CB0, 0x0A87, WORD_LEN, 0},
+{ 0x8CB2, 0x0003, WORD_LEN, 0},
+{ 0x8CB4, 0x16B2, WORD_LEN, 0},
+{ 0x8CB6, 0x1084, WORD_LEN, 0},
+{ 0x8CB8, 0x0F2E, WORD_LEN, 0},
+{ 0x8CBA, 0x0664, WORD_LEN, 0},
+{ 0x8CBC, 0x16B0, WORD_LEN, 0},
+{ 0x8CBE, 0x1083, WORD_LEN, 0},
+{ 0x8CC0, 0x1E3C, WORD_LEN, 0},
+{ 0x8CC2, 0x1002, WORD_LEN, 0},
+{ 0x8CC4, 0x153A, WORD_LEN, 0},
+{ 0x8CC6, 0x1080, WORD_LEN, 0},
+{ 0x8CC8, 0x153B, WORD_LEN, 0},
+{ 0x8CCA, 0x1081, WORD_LEN, 0},
+{ 0x8CCC, 0x16B3, WORD_LEN, 0},
+{ 0x8CCE, 0x1084, WORD_LEN, 0},
+{ 0x8CD0, 0xB808, WORD_LEN, 0},
+{ 0x8CD2, 0x7825, WORD_LEN, 0},
+{ 0x8CD4, 0x16B8, WORD_LEN, 0},
+{ 0x8CD6, 0x1101, WORD_LEN, 0},
+{ 0x8CD8, 0x16BA, WORD_LEN, 0},
+{ 0x8CDA, 0x1102, WORD_LEN, 0},
+{ 0x8CDC, 0x0F0A, WORD_LEN, 0},
+{ 0x8CDE, 0x0664, WORD_LEN, 0},
+{ 0x8CE0, 0x16B1, WORD_LEN, 0},
+{ 0x8CE2, 0x1083, WORD_LEN, 0},
+{ 0x8CE4, 0x1E3D, WORD_LEN, 0},
+{ 0x8CE6, 0x1002, WORD_LEN, 0},
+{ 0x8CE8, 0x153A, WORD_LEN, 0},
+{ 0x8CEA, 0x1080, WORD_LEN, 0},
+{ 0x8CEC, 0x153B, WORD_LEN, 0},
+{ 0x8CEE, 0x1081, WORD_LEN, 0},
+{ 0x8CF0, 0x16B6, WORD_LEN, 0},
+{ 0x8CF2, 0x1084, WORD_LEN, 0},
+{ 0x8CF4, 0xB808, WORD_LEN, 0},
+{ 0x8CF6, 0x7825, WORD_LEN, 0},
+{ 0x8CF8, 0x16B8, WORD_LEN, 0},
+{ 0x8CFA, 0x1101, WORD_LEN, 0},
+{ 0x8CFC, 0x16BA, WORD_LEN, 0},
+{ 0x8CFE, 0x1102, WORD_LEN, 0},
+{ 0x8D00, 0x0EE6, WORD_LEN, 0},
+{ 0x8D02, 0x0664, WORD_LEN, 0},
+{ 0x8D04, 0x16B4, WORD_LEN, 0},
+{ 0x8D06, 0x1083, WORD_LEN, 0},
+{ 0x8D08, 0x1E3E, WORD_LEN, 0},
+{ 0x8D0A, 0x1002, WORD_LEN, 0},
+{ 0x8D0C, 0x153A, WORD_LEN, 0},
+{ 0x8D0E, 0x1080, WORD_LEN, 0},
+{ 0x8D10, 0x153B, WORD_LEN, 0},
+{ 0x8D12, 0x1081, WORD_LEN, 0},
+{ 0x8D14, 0x16B7, WORD_LEN, 0},
+{ 0x8D16, 0x1084, WORD_LEN, 0},
+{ 0x8D18, 0xB808, WORD_LEN, 0},
+{ 0x8D1A, 0x7825, WORD_LEN, 0},
+{ 0x8D1C, 0x16B8, WORD_LEN, 0},
+{ 0x8D1E, 0x1101, WORD_LEN, 0},
+{ 0x8D20, 0x16BA, WORD_LEN, 0},
+{ 0x8D22, 0x1102, WORD_LEN, 0},
+{ 0x8D24, 0x0EC2, WORD_LEN, 0},
+{ 0x8D26, 0x0664, WORD_LEN, 0},
+{ 0x8D28, 0x16B5, WORD_LEN, 0},
+{ 0x8D2A, 0x1083, WORD_LEN, 0},
+{ 0x8D2C, 0x1E3F, WORD_LEN, 0},
+{ 0x8D2E, 0x1002, WORD_LEN, 0},
+{ 0x8D30, 0x8E00, WORD_LEN, 0},
+{ 0x8D32, 0xB8A6, WORD_LEN, 0},
+{ 0x8D34, 0xAE00, WORD_LEN, 0},
+{ 0x8D36, 0x153A, WORD_LEN, 0},
+{ 0x8D38, 0x1081, WORD_LEN, 0},
+{ 0x8D3A, 0x153B, WORD_LEN, 0},
+{ 0x8D3C, 0x1080, WORD_LEN, 0},
+{ 0x8D3E, 0xB908, WORD_LEN, 0},
+{ 0x8D40, 0x7905, WORD_LEN, 0},
+{ 0x8D42, 0x16BA, WORD_LEN, 0},
+{ 0x8D44, 0x1100, WORD_LEN, 0},
+{ 0x8D46, 0x085B, WORD_LEN, 0},
+{ 0x8D48, 0x0042, WORD_LEN, 0},
+{ 0x8D4A, 0xD018, WORD_LEN, 0},
+{ 0x8D4C, 0x9E31, WORD_LEN, 0},
+{ 0x8D4E, 0x904D, WORD_LEN, 0},
+{ 0x8D50, 0x0A2B, WORD_LEN, 0},
+{ 0x8D52, 0x0063, WORD_LEN, 0},
+{ 0x8D54, 0x8E00, WORD_LEN, 0},
+{ 0x8D56, 0x16B0, WORD_LEN, 0},
+{ 0x8D58, 0x1081, WORD_LEN, 0},
+{ 0x8D5A, 0x1E3C, WORD_LEN, 0},
+{ 0x8D5C, 0x1042, WORD_LEN, 0},
+{ 0x8D5E, 0x16B1, WORD_LEN, 0},
+{ 0x8D60, 0x1081, WORD_LEN, 0},
+{ 0x8D62, 0x1E3D, WORD_LEN, 0},
+{ 0x8D64, 0x1042, WORD_LEN, 0},
+{ 0x8D66, 0x16B4, WORD_LEN, 0},
+{ 0x8D68, 0x1081, WORD_LEN, 0},
+{ 0x8D6A, 0x1E3E, WORD_LEN, 0},
+{ 0x8D6C, 0x1042, WORD_LEN, 0},
+{ 0x8D6E, 0x16B5, WORD_LEN, 0},
+{ 0x8D70, 0x1081, WORD_LEN, 0},
+{ 0x8D72, 0x1E3F, WORD_LEN, 0},
+{ 0x8D74, 0x1042, WORD_LEN, 0},
+{ 0x8D76, 0xB886, WORD_LEN, 0},
+{ 0x8D78, 0xF012, WORD_LEN, 0},
+{ 0x8D7A, 0x16B2, WORD_LEN, 0},
+{ 0x8D7C, 0x1081, WORD_LEN, 0},
+{ 0x8D7E, 0xB8A6, WORD_LEN, 0},
+{ 0x8D80, 0x1E3C, WORD_LEN, 0},
+{ 0x8D82, 0x1042, WORD_LEN, 0},
+{ 0x8D84, 0x16B3, WORD_LEN, 0},
+{ 0x8D86, 0x1081, WORD_LEN, 0},
+{ 0x8D88, 0x1E3D, WORD_LEN, 0},
+{ 0x8D8A, 0x1042, WORD_LEN, 0},
+{ 0x8D8C, 0x16B6, WORD_LEN, 0},
+{ 0x8D8E, 0x1081, WORD_LEN, 0},
+{ 0x8D90, 0x1E3E, WORD_LEN, 0},
+{ 0x8D92, 0x1042, WORD_LEN, 0},
+{ 0x8D94, 0x16B7, WORD_LEN, 0},
+{ 0x8D96, 0x1081, WORD_LEN, 0},
+{ 0x8D98, 0x1E3F, WORD_LEN, 0},
+{ 0x8D9A, 0x1042, WORD_LEN, 0},
+{ 0x8D9C, 0xAE00, WORD_LEN, 0},
+{ 0x8D9E, 0x0D92, WORD_LEN, 0},
+{ 0x8DA0, 0x0184, WORD_LEN, 0},
+{ 0x8DA2, 0x051D, WORD_LEN, 0},
+{ 0x8DA4, 0x0684, WORD_LEN, 0},
+{ 0x8DA6, 0x78E0, WORD_LEN, 0},
+{ 0x8DA8, 0xFF80, WORD_LEN, 0},
+{ 0x8DAA, 0x050C, WORD_LEN, 0},
+{ 0x8DAC, 0xE280, WORD_LEN, 0},
+{ 0x8DAE, 0x24CA, WORD_LEN, 0},
+{ 0x8DB0, 0x7082, WORD_LEN, 0},
+{ 0x8DB2, 0x78E0, WORD_LEN, 0},
+{ 0x8DB4, 0x20E8, WORD_LEN, 0},
+{ 0x8DB6, 0x01A2, WORD_LEN, 0},
+{ 0x8DB8, 0x1002, WORD_LEN, 0},
+{ 0x8DBA, 0x0D02, WORD_LEN, 0},
+{ 0x8DBC, 0x1902, WORD_LEN, 0},
+{ 0x8DBE, 0x0094, WORD_LEN, 0},
+{ 0x8DC0, 0x7FE0, WORD_LEN, 0},
+{ 0x8DC2, 0x7028, WORD_LEN, 0},
+{ 0x8DC4, 0x7308, WORD_LEN, 0},
+{ 0x8DC6, 0x1000, WORD_LEN, 0},
+{ 0x8DC8, 0x0900, WORD_LEN, 0},
+{ 0x8DCA, 0x7904, WORD_LEN, 0},
+{ 0x8DCC, 0x7947, WORD_LEN, 0},
+{ 0x8DCE, 0x1B00, WORD_LEN, 0},
+{ 0x8DD0, 0x0064, WORD_LEN, 0},
+{ 0x8DD2, 0x7EE0, WORD_LEN, 0},
+{ 0x8DD4, 0xE280, WORD_LEN, 0},
+{ 0x8DD6, 0x24CA, WORD_LEN, 0},
+{ 0x8DD8, 0x7082, WORD_LEN, 0},
+{ 0x8DDA, 0x78E0, WORD_LEN, 0},
+{ 0x8DDC, 0x20E8, WORD_LEN, 0},
+{ 0x8DDE, 0x01A2, WORD_LEN, 0},
+{ 0x8DE0, 0x1102, WORD_LEN, 0},
+{ 0x8DE2, 0x0502, WORD_LEN, 0},
+{ 0x8DE4, 0x1802, WORD_LEN, 0},
+{ 0x8DE6, 0x00B4, WORD_LEN, 0},
+{ 0x8DE8, 0x7FE0, WORD_LEN, 0},
+{ 0x8DEA, 0x7028, WORD_LEN, 0},
+{ 0x8DEC, 0x0000, WORD_LEN, 0},
+{ 0x8DEE, 0x0000, WORD_LEN, 0},
+{ 0x8DF0, 0xFF80, WORD_LEN, 0},
+{ 0x8DF2, 0x0978, WORD_LEN, 0},
+{ 0x8DF4, 0xFF80, WORD_LEN, 0},
+{ 0x8DF6, 0x0A4C, WORD_LEN, 0},
+{ 0x8DF8, 0x0000, WORD_LEN, 0},
+{ 0x8DFA, 0x08DC, WORD_LEN, 0},
+{ 0x8DFC, 0x0000, WORD_LEN, 0},
+{ 0x8DFE, 0x0998, WORD_LEN, 0},
+{ 0x098E, 0x0016, WORD_LEN, 0},        // LOGICAL_ADDRESS_ACCESS
+{ 0x8016, 0x086C, WORD_LEN, 0},        // MON_ADDRESS_LO
+{ 0x8002, 0x0001, WORD_LEN, 0},        // MON_CMD
+//POLL_{0x800A,0x00,!=0x07,DELAY=10,TIMEOUT=100        //Wait for the core ready
+
+{ SEQUENCE_WAIT_MS,300, BYTE_LEN, 0},
+//char_settings
+{ 0x30D4, 0x9080, WORD_LEN, 0},        // COLUMN_CORRECTION
+{ 0x316E, 0xC400, WORD_LEN, 0},        // DAC_ECL
+{ 0x305E, 0x10A0, WORD_LEN, 0},        // GLOBAL_GAIN
+{ 0x3E00, 0x0010, WORD_LEN, 0},        // SAMP_CONTROL
+{ 0x3E02, 0xED02, WORD_LEN, 0},        // SAMP_ADDR_EN
+{ 0x3E04, 0xC88C, WORD_LEN, 0},        // SAMP_RD1_SIG
+{ 0x3E06, 0xC88C, WORD_LEN, 0},        // SAMP_RD1_SIG_BOOST
+{ 0x3E08, 0x700A, WORD_LEN, 0},        // SAMP_RD1_RST
+{ 0x3E0A, 0x701E, WORD_LEN, 0},        // SAMP_RD1_RST_BOOST
+{ 0x3E0C, 0x00FF, WORD_LEN, 0},        // SAMP_RST1_EN
+{ 0x3E0E, 0x00FF, WORD_LEN, 0},        // SAMP_RST1_BOOST
+{ 0x3E10, 0x00FF, WORD_LEN, 0},        // SAMP_RST1_CLOOP_SH
+{ 0x3E12, 0x0000, WORD_LEN, 0},        // SAMP_RST_BOOST_SEQ
+{ 0x3E14, 0xC78C, WORD_LEN, 0},        // SAMP_SAMP1_SIG
+{ 0x3E16, 0x6E06, WORD_LEN, 0},        // SAMP_SAMP1_RST
+{ 0x3E18, 0xA58C, WORD_LEN, 0},        // SAMP_TX_EN
+{ 0x3E1A, 0xA58E, WORD_LEN, 0},        // SAMP_TX_BOOST
+{ 0x3E1C, 0xA58E, WORD_LEN, 0},        // SAMP_TX_CLOOP_SH
+{ 0x3E1E, 0xC0D0, WORD_LEN, 0},        // SAMP_TX_BOOST_SEQ
+{ 0x3E20, 0xEB00, WORD_LEN, 0},        // SAMP_VLN_EN
+{ 0x3E22, 0x00FF, WORD_LEN, 0},        // SAMP_VLN_HOLD
+{ 0x3E24, 0xEB02, WORD_LEN, 0},        // SAMP_VCL_EN
+{ 0x3E26, 0xEA02, WORD_LEN, 0},        // SAMP_COLCLAMP
+{ 0x3E28, 0xEB0A, WORD_LEN, 0},        // SAMP_SH_VCL
+{ 0x3E2A, 0xEC01, WORD_LEN, 0},        // SAMP_SH_VREF
+{ 0x3E2C, 0xEB01, WORD_LEN, 0},        // SAMP_SH_VBST
+{ 0x3E2E, 0x00FF, WORD_LEN, 0},        // SAMP_SPARE
+{ 0x3E30, 0x00F3, WORD_LEN, 0},        // SAMP_READOUT
+{ 0x3E32, 0x3DFA, WORD_LEN, 0},        // SAMP_RESET_DONE
+{ 0x3E34, 0x00FF, WORD_LEN, 0},        // SAMP_VLN_CLAMP
+{ 0x3E36, 0x00F3, WORD_LEN, 0},        // SAMP_ASC_INT
+{ 0x3E38, 0x0000, WORD_LEN, 0},        // SAMP_RS_CLOOP_SH_R
+{ 0x3E3A, 0xF802, WORD_LEN, 0},        // SAMP_RS_CLOOP_SH
+{ 0x3E3C, 0x0FFF, WORD_LEN, 0},        // SAMP_RS_BOOST_SEQ
+{ 0x3E3E, 0xEA10, WORD_LEN, 0},        // SAMP_TXLO_GND
+{ 0x3E40, 0xEB05, WORD_LEN, 0},        // SAMP_VLN_PER_COL
+{ 0x3E42, 0xE5C8, WORD_LEN, 0},        // SAMP_RD2_SIG
+{ 0x3E44, 0xE5C8, WORD_LEN, 0},        // SAMP_RD2_SIG_BOOST
+{ 0x3E46, 0x8C70, WORD_LEN, 0},        // SAMP_RD2_RST
+{ 0x3E48, 0x8C71, WORD_LEN, 0},        // SAMP_RD2_RST_BOOST
+{ 0x3E4A, 0x00FF, WORD_LEN, 0},        // SAMP_RST2_EN
+{ 0x3E4C, 0x00FF, WORD_LEN, 0},        // SAMP_RST2_BOOST
+{ 0x3E4E, 0x00FF, WORD_LEN, 0},        // SAMP_RST2_CLOOP_SH
+{ 0x3E50, 0xE38D, WORD_LEN, 0},        // SAMP_SAMP2_SIG
+{ 0x3E52, 0x8B0A, WORD_LEN, 0},        // SAMP_SAMP2_RST
+{ 0x3E58, 0xEB0A, WORD_LEN, 0},        // SAMP_PIX_CLAMP_EN
+{ 0x3E5C, 0x0A00, WORD_LEN, 0},        // SAMP_PIX_PULLUP_EN
+{ 0x3E5E, 0x00FF, WORD_LEN, 0},        // SAMP_PIX_PULLDOWN_EN_R
+{ 0x3E60, 0x00FF, WORD_LEN, 0},        // SAMP_PIX_PULLDOWN_EN_S
+{ 0x3E90, 0x3C01, WORD_LEN, 0},        // RST_ADDR_EN
+{ 0x3E92, 0x00FF, WORD_LEN, 0},        // RST_RST_EN
+{ 0x3E94, 0x00FF, WORD_LEN, 0},        // RST_RST_BOOST
+{ 0x3E96, 0x3C00, WORD_LEN, 0},        // RST_TX_EN
+{ 0x3E98, 0x3C00, WORD_LEN, 0},        // RST_TX_BOOST
+{ 0x3E9A, 0x3C00, WORD_LEN, 0},        // RST_TX_CLOOP_SH
+{ 0x3E9C, 0xC0E0, WORD_LEN, 0},        // RST_TX_BOOST_SEQ
+{ 0x3E9E, 0x00FF, WORD_LEN, 0},        // RST_RST_CLOOP_SH
+{ 0x3EA0, 0x0000, WORD_LEN, 0},        // RST_RST_BOOST_SEQ
+{ 0x3EA6, 0x3C00, WORD_LEN, 0},        // RST_PIX_PULLUP_EN
+{ 0x3ED8, 0x3057, WORD_LEN, 0},        // DAC_LD_12_13
+{ 0x316C, 0xB44F, WORD_LEN, 0},        // DAC_TXLO
+{ 0x316E, 0xC6FF, WORD_LEN, 0},        // DAC_ECL
+{ 0x3ED2, 0xEA0A, WORD_LEN, 0},        // DAC_LD_6_7
+{ 0x3ED4, 0x00A3, WORD_LEN, 0},        // DAC_LD_8_9
+{ 0x3EDC, 0x6020, WORD_LEN, 0},        // DAC_LD_16_17
+{ 0x3EE6, 0xA541, WORD_LEN, 0},        // DAC_LD_26_27
+{ 0x31E0, 0x0001, WORD_LEN, 0},        // PIX_DEF_ID
+{ 0x3ED0, 0x2409, WORD_LEN, 0},        // DAC_LD_4_5
+//{ 0x3EDA, 0x6000     // DAC_LD_14_15  //
+{ 0x3EDE, 0x0A49, WORD_LEN, 0},        // DAC_LD_18_19
+{ 0x3EE0, 0x4910, WORD_LEN, 0},        // DAC_LD_20_21
+{ 0x3EE2, 0x09D2, WORD_LEN, 0},        // DAC_LD_22_23
+{ 0x30B6, 0x0008, WORD_LEN, 0},        // AUTOLR_CONTROL
+{ 0x337C, 0x0006, WORD_LEN, 0},        // YUV_YCBCR_CONTROL
+{ 0x3E1A, 0xA582, WORD_LEN, 0},        // SAMP_TX_BOOST
+{ 0x3E2E, 0xEC05, WORD_LEN, 0},        // SAMP_SPARE
+{ 0x3EE6, 0xA5C0, WORD_LEN, 0},        // DAC_LD_26_27
+{ 0x316C, 0xB43F, WORD_LEN, 0},        // DAC_TXLO
+{ 0x316E, 0xC6FF, WORD_LEN, 0},        // DAC_ECL
+
+//LOAD = Lens Correction 90% 04/29/10 12:58:28
+{ 0x381C, 0x0000, WORD_LEN, 0},
+{ 0xE02A, 0x0001, WORD_LEN, 0},        // IO_NV_MEM_COMMAND
+  //  POLL  IO_NV_MEM_STATUS::IO_NVMEM_STAT_OTPM_AVAIL =>  0x00
+{ SEQUENCE_WAIT_MS,100, BYTE_LEN, 0},
+{ 0x3812, 0x2124, WORD_LEN, 0},
+//POLL_FIELD= IO_NV_MEM_STATUS, IO_NV_MEM_STATUS!=0xC1,DELAY=100,TIMEOUT=50 //5 sec
+{ SEQUENCE_WAIT_MS,100, BYTE_LEN, 0},
+{ 0xD004, 0x04, BYTE_LEN, 0},  // PGA_SOLUTION
+{ 0xD006, 0x0008, WORD_LEN, 0},        // PGA_ZONE_ADDR_0
+{ 0xD005, 0x00, BYTE_LEN, 0},  // PGA_CURRENT_ZONE
+{ 0xD002, 0x8002, WORD_LEN, 0},        // PGA_ALGO
+{ 0x3210, 0x49B8, WORD_LEN, 0},        // COLOR_PIPELINE_CONTROL
+
+
+//[Step5-AWB_CCM]
+//awb_setup
+{ 0xAC02, 0x00FF , WORD_LEN, 0 },      // AWB_ALGO
+{ 0xAC01, 0x7F, BYTE_LEN, 0 },         // AWB_MODE
+//preawb_params
+{ 0xAC3C, 0x39, BYTE_LEN, 0 }, //42    // AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO
+{ 0xAC3D, 0x6E, BYTE_LEN, 0 }, //50    // AWB_MAX_ACCEPTED_PRE_AWB_R2G_RATIO
+{ 0xAC3E, 0x28, BYTE_LEN, 0 }, //13    // AWB_MIN_ACCEPTED_PRE_AWB_B2G_RATIO
+{ 0xAC3F, 0x6B, BYTE_LEN, 0 }, //5B    // AWB_MAX_ACCEPTED_PRE_AWB_B2G_RATIO
+{ 0xAC40, 0x64, BYTE_LEN, 0 }, //52    // AWB_MIN_ACCEPTED_POST_AWB_R2G_RATIO
+{ 0xAC41, 0x66, BYTE_LEN, 0 }, //56    // AWB_MAX_ACCEPTED_POST_AWB_R2G_RATIO
+{ 0xAC42, 0x64, BYTE_LEN, 0 },         // AWB_MIN_ACCEPTED_POST_AWB_B2G_RATIO
+{ 0xAC43, 0x66, BYTE_LEN, 0 },         // AWB_MAX_ACCEPTED_POST_AWB_B2G_RATIO
+//awb_patch
+{ 0xACB0, 0x31, BYTE_LEN, 0 },         // AWB_RG_MIN
+{ 0xACB1, 0x5B, BYTE_LEN, 0 }, //50    // AWB_RG_MAX
+{ 0xACB4, 0x2A, BYTE_LEN, 0 }, //13    // AWB_BG_MIN
+{ 0xACB5, 0x5B, BYTE_LEN, 0 },         // AWB_BG_MAX
+{ 0xACB2, 0x42, BYTE_LEN, 0 },         // AWB_RG_MIN_BRIGHT
+{ 0xACB3, 0x4B, BYTE_LEN, 0 },         // AWB_RG_MAX_BRIGHT
+{ 0xACB6, 0x36, BYTE_LEN, 0 },         // AWB_BG_MIN_BRIGHT
+{ 0xACB7, 0x42, BYTE_LEN, 0 },         // AWB_BG_MAX_BRIGHT
+{ 0xACB8, 0x00D0, WORD_LEN, 0},                // 0x0100       // AWB_START_NUM_INT_LINES
+{ 0xACBA, 0x0090, WORD_LEN, 0},                // B0   // AWB_END_NUM_INT_LINES
+//bright_DNP_patch
+{ 0x098E, 0xAC09, WORD_LEN, 0},        // LOGICAL_ADDRESS_ACCESS
+{ 0xAC09, 0x01, BYTE_LEN, 0},  // AWB_MODE_EX
+{ 0xAC22, 0x0000, WORD_LEN, 0},        // AWB_SHARPNESS_TH
+//soc5140_ccm_settings
+{ 0x098E, 0x2C46, WORD_LEN, 0},        // LOGICAL_ADDRESS_ACCESS [AWB_LEFT_CCM_0]
+{ 0xAC46, 0x010F, WORD_LEN, 0},   //0x015F     // AWB_LEFT_CCM_0
+{ 0xAC48, 0xFFAE, WORD_LEN, 0},   //0xFFC2     // AWB_LEFT_CCM_1
+{ 0xAC4A, 0x0043, WORD_LEN, 0},   //0xFFDF     // AWB_LEFT_CCM_2
+{ 0xAC4C, 0xFF7E, WORD_LEN, 0},   //0xFF7F     // AWB_LEFT_CCM_3
+{ 0xAC4E, 0x01BD, WORD_LEN, 0},   //0x01BB     // AWB_LEFT_CCM_4
+{ 0xAC50, 0xFFC5, WORD_LEN, 0},   //0xFFC6     // AWB_LEFT_CCM_5
+{ 0xAC52, 0xFFE1, WORD_LEN, 0},   //0xFFC7     // AWB_LEFT_CCM_6
+{ 0xAC54, 0xFF34, WORD_LEN, 0},   //0xFEFA     // AWB_LEFT_CCM_7
+{ 0xAC56, 0x01EB, WORD_LEN, 0},   //0x023F     // AWB_LEFT_CCM_8
+{ 0xAC58, 0x00A8, WORD_LEN, 0},        // AWB_LEFT_CCM_R2BRATIO
+{ 0xAC5C, 0x0233, WORD_LEN, 0},        // AWB_RIGHT_CCM_0
+{ 0xAC5E, 0xFF23, WORD_LEN, 0},        // AWB_RIGHT_CCM_1
+{ 0xAC60, 0xFFAA, WORD_LEN, 0},        // AWB_RIGHT_CCM_2
+{ 0xAC62, 0xFF91, WORD_LEN, 0},        // AWB_RIGHT_CCM_3
+{ 0xAC64, 0x01AF, WORD_LEN, 0},        // AWB_RIGHT_CCM_4
+{ 0xAC66, 0xFFBF, WORD_LEN, 0},        // AWB_RIGHT_CCM_5
+{ 0xAC68, 0xFFE7, WORD_LEN, 0},        // AWB_RIGHT_CCM_6
+{ 0xAC6A, 0xFF4C, WORD_LEN, 0},        // AWB_RIGHT_CCM_7
+{ 0xAC6C, 0x01CE, WORD_LEN, 0},        // AWB_RIGHT_CCM_8
+{ 0xAC6E, 0x005A, WORD_LEN, 0},        // AWB_RIGHT_CCM_R2BRATIO
+{ 0xAC72, 0x004D, WORD_LEN, 0},        // AWB_LL_CCM_0
+{ 0xAC74, 0x0096, WORD_LEN, 0},        // AWB_LL_CCM_1
+{ 0xAC76, 0x001D, WORD_LEN, 0},        // AWB_LL_CCM_2
+{ 0xAC78, 0x004D, WORD_LEN, 0},        // AWB_LL_CCM_3
+{ 0xAC7A, 0x0096, WORD_LEN, 0},        // AWB_LL_CCM_4
+{ 0xAC7C, 0x001D, WORD_LEN, 0},        // AWB_LL_CCM_5
+{ 0xAC7E, 0x004D, WORD_LEN, 0},        // AWB_LL_CCM_6
+{ 0xAC80, 0x0096, WORD_LEN, 0},        // AWB_LL_CCM_7
+{ 0xAC82, 0x001D, WORD_LEN, 0},        // AWB_LL_CCM_8
+{ 0xAC97, 0x80, BYTE_LEN, 0},  // AWB_LEFT_TINT_COEF_FOR_CCM_ROW_0
+{ 0xAC98, 0x80, BYTE_LEN, 0},  // AWB_LEFT_TINT_COEF_FOR_CCM_ROW_1
+{ 0xAC99, 0x74, BYTE_LEN, 0},   //0x64         // AWB_LEFT_TINT_COEF_FOR_CCM_ROW_2
+{ 0xAC9A, 0x7D, BYTE_LEN, 0},   //0x76         // AWB_RIGHT_TINT_COEF_FOR_CCM_ROW_0
+{ 0xAC9B, 0x80, BYTE_LEN, 0},  // AWB_RIGHT_TINT_COEF_FOR_CCM_ROW_1
+{ 0xAC9C, 0x7D, BYTE_LEN, 0},   //0x78         // AWB_RIGHT_TINT_COEF_FOR_CCM_ROW_2
+{ 0xB83E, 0x10, BYTE_LEN, 0},  // STAT_AWB_WINDOW_POS_X
+{ 0xB83F, 0x10, BYTE_LEN, 0},  // STAT_AWB_WINDOW_POS_Y
+{ 0xB840, 0xDF, BYTE_LEN, 0},  // STAT_AWB_WINDOW_SIZE_X
+{ 0xB841, 0xCF, BYTE_LEN, 0},  // STAT_AWB_WINDOW_SIZE_Y
+
+//soc5140_weighted2D_awb_settings
+{ 0xB842, 0x0034, WORD_LEN, 0},   //0x0032     // STAT_AWB_GRAY_CHECKER_OFFSET_X
+{ 0xB844, 0x003C, WORD_LEN, 0},   //0x0038     // STAT_AWB_GRAY_CHECKER_OFFSET_Y
+{ 0x3240, 0x0024, WORD_LEN, 0},        // AWB_XY_SCALE
+{ 0x3242, 0x0000, WORD_LEN, 0},        // AWB_WEIGHT_R0
+{ 0x3244, 0x0000, WORD_LEN, 0},        // AWB_WEIGHT_R1
+{ 0x3246, 0x0000, WORD_LEN, 0},        // AWB_WEIGHT_R2
+{ 0x3248, 0x7070, WORD_LEN, 0},        // AWB_WEIGHT_R3
+{ 0x324A, 0x38E0, WORD_LEN, 0},        // AWB_WEIGHT_R4
+{ 0x324C, 0x70E0, WORD_LEN, 0},        // AWB_WEIGHT_R5
+{ 0x324E, 0x01B8, WORD_LEN, 0},        // AWB_WEIGHT_R6
+{ 0x3250, 0x00AB, WORD_LEN, 0},        // AWB_WEIGHT_R7
+{ 0xD80F, 0x04, BYTE_LEN, 0},  // JPEG_QSCALE_0
+{ 0xD810, 0x08, BYTE_LEN, 0},  // JPEG_QSCALE_1
+{ 0xC8D2, 0x04, BYTE_LEN, 0},  // CAM_OUTPUT_1_JPEG_QSCALE_0
+{ 0xC8D3, 0x08, BYTE_LEN, 0},  // CAM_OUTPUT_1_JPEG_QSCALE_1
+{ 0xC8BC, 0x04, BYTE_LEN, 0},  // CAM_OUTPUT_0_JPEG_QSCALE_0
+{ 0xC8BD, 0x08, BYTE_LEN, 0},  // CAM_OUTPUT_0_JPEG_QSCALE_1
+//sys_settings
+{ 0x301A, 0x10F4, WORD_LEN, 0},        // RESET_REGISTER
+{ 0x301E, 0x0083, WORD_LEN, 0},        // DATA_PEDESTAL
+{ 0x301A, 0x10FC, WORD_LEN, 0},        // RESET_REGISTER
+{ 0xDC33, 0x20, BYTE_LEN, 0},  // SYS_FIRST_BLACK_LEVEL
+{ 0xDC35, 0x04, BYTE_LEN, 0},  // SYS_UV_COLOR_BOOST
+{ 0x326E, 0x0006, WORD_LEN, 0},        // LOW_PASS_YUV_FILTER
+{ 0xDC37, 0x62, BYTE_LEN, 0},  // SYS_BRIGHT_COLORKILL
+{ 0x35A4, 0x0596, WORD_LEN, 0},        // BRIGHT_COLOR_KILL_CONTROLS
+{ 0x35A2, 0x009C, WORD_LEN, 0},        // DARK_COLOR_KILL_CONTROLS
+{ 0x098E, 0x5C02, WORD_LEN, 0},                // MCU_ADDR
+{ 0xDC02, 0x003E, WORD_LEN, 0},        // SYS_ALGO
+{ 0xDC36, 0x34, BYTE_LEN, 0},  // SYS_DARK_COLOR_KILL
        // Refresh Mode - skip
-       {0xBC18, 0x00},         // LL_GAMMA_CONTRAST_CURVE_0
-       {0xBC19, 0x11},         // LL_GAMMA_CONTRAST_CURVE_1
-       {0xBC1A, 0x23},         // LL_GAMMA_CONTRAST_CURVE_2
-       {0xBC1B, 0x3F},         // LL_GAMMA_CONTRAST_CURVE_3
-       {0xBC1C, 0x67},         // LL_GAMMA_CONTRAST_CURVE_4
-       {0xBC1D, 0x85},         // LL_GAMMA_CONTRAST_CURVE_5
-       {0xBC1E, 0x9B},         // LL_GAMMA_CONTRAST_CURVE_6
-       {0xBC1F, 0xAD},         // LL_GAMMA_CONTRAST_CURVE_7
-       {0xBC20, 0xBB},         // LL_GAMMA_CONTRAST_CURVE_8
-       {0xBC21, 0xC7},         // LL_GAMMA_CONTRAST_CURVE_9
-       {0xBC22, 0xD1},         // LL_GAMMA_CONTRAST_CURVE_10
-       {0xBC23, 0xDA},         // LL_GAMMA_CONTRAST_CURVE_11
-       {0xBC24, 0xE1},         // LL_GAMMA_CONTRAST_CURVE_12
-       {0xBC25, 0xE8},         // LL_GAMMA_CONTRAST_CURVE_13
-       {0xBC26, 0xEE},         // LL_GAMMA_CONTRAST_CURVE_14
-       {0xBC27, 0xF3},         // LL_GAMMA_CONTRAST_CURVE_15
-       {0xBC28, 0xF7},         // LL_GAMMA_CONTRAST_CURVE_16
-       {0xBC29, 0xFB},         // LL_GAMMA_CONTRAST_CURVE_17
-       {0xBC2A, 0xFF},         // LL_GAMMA_CONTRAST_CURVE_18
-       {0xBC2B, 0x00},         // LL_GAMMA_NEUTRAL_CURVE_0
-       {0xBC2C, 0x05},         // LL_GAMMA_NEUTRAL_CURVE_1
-       {0xBC2D, 0x11},         // LL_GAMMA_NEUTRAL_CURVE_2
-       {0xBC2E, 0x2E},         // LL_GAMMA_NEUTRAL_CURVE_3
-       {0xBC2F, 0x52},         // LL_GAMMA_NEUTRAL_CURVE_4
-       {0xBC30, 0x6C},         // LL_GAMMA_NEUTRAL_CURVE_5
-       {0xBC31, 0x83},         // LL_GAMMA_NEUTRAL_CURVE_6
-       {0xBC32, 0x97},         // LL_GAMMA_NEUTRAL_CURVE_7
-       {0xBC33, 0xA7},         // LL_GAMMA_NEUTRAL_CURVE_8
-       {0xBC34, 0xB4},         // LL_GAMMA_NEUTRAL_CURVE_9
-       {0xBC35, 0xC0},         // LL_GAMMA_NEUTRAL_CURVE_10
-       {0xBC36, 0xCB},         // LL_GAMMA_NEUTRAL_CURVE_11
-       {0xBC37, 0xD4},         // LL_GAMMA_NEUTRAL_CURVE_12
-       {0xBC38, 0xDD},         // LL_GAMMA_NEUTRAL_CURVE_13
-       {0xBC39, 0xE5},         // LL_GAMMA_NEUTRAL_CURVE_14
-       {0xBC3A, 0xEC},         // LL_GAMMA_NEUTRAL_CURVE_15
-       {0xBC3B, 0xF3},         // LL_GAMMA_NEUTRAL_CURVE_16
-       {0xBC3C, 0xF9},         // LL_GAMMA_NEUTRAL_CURVE_17
-       {0xBC3D, 0xFF},         // LL_GAMMA_NEUTRAL_CURVE_18
-       {0xBC3E, 0x00},         // LL_GAMMA_NR_CURVE_0
-       {0xBC3F, 0x18},         // LL_GAMMA_NR_CURVE_1
-       {0xBC40, 0x25},         // LL_GAMMA_NR_CURVE_2
-       {0xBC41, 0x3A},         // LL_GAMMA_NR_CURVE_3
-       {0xBC42, 0x59},         // LL_GAMMA_NR_CURVE_4
-       {0xBC43, 0x70},         // LL_GAMMA_NR_CURVE_5
-       {0xBC44, 0x81},         // LL_GAMMA_NR_CURVE_6
-       {0xBC45, 0x90},         // LL_GAMMA_NR_CURVE_7
-       {0xBC46, 0x9E},         // LL_GAMMA_NR_CURVE_8
-       {0xBC47, 0xAB},         // LL_GAMMA_NR_CURVE_9
-       {0xBC48, 0xB6},         // LL_GAMMA_NR_CURVE_10
-       {0xBC49, 0xC1},         // LL_GAMMA_NR_CURVE_11
-       {0xBC4A, 0xCB},         // LL_GAMMA_NR_CURVE_12
-       {0xBC4B, 0xD5},         // LL_GAMMA_NR_CURVE_13
-       {0xBC4C, 0xDE},         // LL_GAMMA_NR_CURVE_14
-       {0xBC4D, 0xE7},         // LL_GAMMA_NR_CURVE_15
-       {0xBC4E, 0xEF},         // LL_GAMMA_NR_CURVE_16
-       {0xBC4F, 0xF7},         // LL_GAMMA_NR_CURVE_17
-       {0xBC50, 0xFF},         // LL_GAMMA_NR_CURVE_18
-       {0xBC51, 0x04},         // LL_GAMMA_CURVE_SELECTOR
-#endif
-       //BM_dampening},
-       {0xB801, 0xE0},    // STAT_MODE},
-       {0xB862, 0x04},    // STAT_BMTRACKING_SPEED},
-
-       //AE
-       {0xB829, 0x02},    // STAT_LL_BRIGHTNESS_METRIC_DIVISOR},
-       {0xB863, 0x02},    // STAT_BM_MUL},
-       {0xB827, 0x0F},    // STAT_AE_EV_SHIFT},
-       {0xA409, 0x44},    // AE_RULE_BASE_TARGET},
-       {0xA805, 0x06},    // AE_TRACK_GATE},
-       {0xA80D, 0x08},
-       {0xA816, 0x0002},    // AE_TRACK_MIN_INT_TIME_ROWS},
-       {0xA401, 0x00},    // AE_RULE_MODE},
-       {0xA80E, 0x06},    // AE_TRACK_MAX_BLACK_LEVEL},
-
-       //BM_GM_start_stop},
-       {0xBC52, 0x00C8},    // LL_START_BRIGHTNESS_METRIC},
-       {0xBC54, 0x0A28},    // LL_END_BRIGHTNESS_METRIC},
-       {0xBC58, 0x00C8},    // LL_START_GAIN_METRIC},
-       {0xBC5A, 0x0400},       //12C0    // LL_END_GAIN_METRIC},
-       {0xBC5E, 0x00FA},    // LL_START_APERTURE_GAIN_BM},
-       {0xBC60, 0x0258},    // LL_END_APERTURE_GAIN_BM},
-       {0xBC66, 0x0154},       //0FA    // LL_START_APERTURE_GM},
-       {0xBC68, 0x0390},       //258    // LL_END_APERTURE_GM},
-       {0xBC86, 0x00C8},    // LL_START_FFNR_GM},
-       {0xBC88, 0x0390},       //640    // LL_END_FFNR_GM},
-       {0xBCBC, 0x0040},    // LL_SFFB_START_GAIN},
-       {0xBCBE, 0x01FC},    // LL_SFFB_END_GAIN},
-       {0xBCCC, 0x00C8},    // LL_SFFB_START_MAX_GM},
-       {0xBCCE, 0x0390},       //640    // LL_SFFB_END_MAX_GM},
-       {0xBC90, 0x00C8},    // LL_START_GRB_GM},
-       {0xBC92, 0x0390},       //640    // LL_END_GRB_GM},
-       {0x098E, 0x3C0E},    // LOGICAL_ADDRESS_ACCESS},
-       {0xBC0E, 0x0001},    // LL_GAMMA_CURVE_ADJ_START_POS},
-       {0xBC10, 0x00F0},    // LL_GAMMA_CURVE_ADJ_MID_POS},
-       {0xBC12, 0x0640},    // LL_GAMMA_CURVE_ADJ_END_POS},
-       {0xBCAA, 0x044C},    // LL_CDC_THR_ADJ_START_POS},
-       {0xBCAC, 0x00AF},    // LL_CDC_THR_ADJ_MID_POS},
-       {0xBCAE, 0x0009},    // LL_CDC_THR_ADJ_END_POS},
-       {0xBCD8, 0x00C8},    // LL_PCR_START_BM},
-       {0xBCDA, 0x0A28},    // LL_PCR_END_BM},
-       {0xBC02, 0x017E},    // LL_ALGO},
-       {0x3380, 0x0504},    // KERNEL_CONFIG},
-       //GRB
-       {0xBC94, 0x12},    // LL_GB_START_THRESHOLD_0},
-       {0xBC95, 0x0C},    // LL_GB_START_THRESHOLD_1},
-       {0xBC9C, 0x37},    // LL_GB_END_THRESHOLD_0},
-       {0xBC9D, 0x24},    // LL_GB_END_THRESHOLD_1},
-       //demosaic
-       {0x33B0, 0x2A16},    // FFNR_ALPHA_BETA},
-       {0xBC8A, 0x00},    // LL_START_FF_MIX_THRESH_Y},
-       {0xBC8B, 0x28},    // LL_END_FF_MIX_THRESH_Y},
-       {0xBC8C, 0x00},    // LL_START_FF_MIX_THRESH_YGAIN},
-       {0xBC8D, 0x01},    // LL_END_FF_MIX_THRESH_YGAIN},
-       {0xBC8E, 0x1F},    //20    // LL_START_FF_MIX_THRESH_GAIN},
-       {0xBC8F, 0x00},    // LL_END_FF_MIX_THRESH_GAIN},
-       //SFFB_rev3_noisemodel},
-       {0xBCC0, 0x20},//F //1F    // LL_SFFB_RAMP_START},
-       {0xBCC1, 0x03},    // LL_SFFB_RAMP_STOP},
-       {0xBCC2, 0x1E},    // LL_SFFB_SLOPE_START},
-       {0xBCC3, 0x0F},    // LL_SFFB_SLOPE_STOP},
-       {0xBCC4, 0x0A},    // LL_SFFB_THSTART},
-       {0xBCC5, 0xAF}, //0F   // LL_SFFB_THSTOP},
-       {0xBCBA, 0x0009},    // LL_SFFB_CONFIG},
-       //[Step7-CPIPE_Preference]},
-       //ftb_off},
-       {0xBC14, 0xFFFE},    // LL_GAMMA_FADE_TO_BLACK_START_POS},
-       {0xBC16, 0xFFFF},    // LL_GAMMA_FADE_TO_BLACK_END_POS},
-       //aperture_preference},
-       {0xBC6A, 0x04},    // LL_START_APERTURE_INTEGER_GAIN},
-       {0xBC6B, 0x00},    // LL_END_APERTURE_INTEGER_GAIN},
-       {0xBC6C, 0x00},    // LL_START_APERTURE_EXP_GAIN},
-       {0xBC6D, 0x00},    // LL_END_APERTURE_EXP_GAIN},
-       {0xBCE2, 0x0A}, //D    // LL_START_POS_KNEE},
-       {0xBCE3, 0x30}, //14    // LL_END_POS_KNEE},
-       {0xBCE4, 0x0A}, //8    // LL_START_NEG_KNEE},
-       {0xBCE5, 0x30}, //14    // LL_END_NEG_KNEE},
-       {0x33BA, 0x001F},    // APEDGE_CONTROL},
-       {0x33BE, 0x0000},       //1    // UA_KNEE_L},
-       {0x33C2, 0x4300},    // UA_WEIGHTS},
-       {0xBC62, 0x0E}, //8    // LL_START_APERTURE_KPGAIN},
-       {0xBC63, 0x1C}, //10    // LL_END_APERTURE_KPGAIN},
-       {0xBC64, 0x0E}, //8    // LL_START_APERTURE_KNGAIN},
-       {0xBC65, 0x1C}, //10    // LL_END_APERTURE_KNGAIN},
-       {0xA81C, 0x0040},    // AE_TRACK_MIN_AGAIN},
-       {0xA820, 0x014C},    // AE_TRACK_MAX_AGAIN},
-       {0xA822, 0x0080},    // AE_TRACK_MIN_DGAIN},
-       {0xA824, 0x00A0},    // AE_TRACK_MAX_DGAIN},
-       //min_fps},
-       {0xA818, 0x07D0},    // AE_TRACK_TARGET_INT_TIME_ROWS},
-       {0xA81A, 0x0FF4},    // AE_TRACK_MAX_INT_TIME_ROWS},
-       //ccm_saturation},
-       {0xBC56, 0x80},         //0xA8    // LL_START_CCM_SATURATION},
-       {0xBC57, 0x10},    // LL_END_CCM_SATURATION},
-       //DCCM},
-       {0xBCDE, 0x03},    // LL_START_SYS_THRESHOLD},
-       {0xBCDF, 0x50},    // LL_STOP_SYS_THRESHOLD},
-       {0xBCE0, 0x08},    // LL_START_SYS_GAIN},
-       {0xBCE1, 0x03},    // LL_STOP_SYS_GAIN},
-       //sobel},
-       {0xBCD0, 0x000A},    // LL_SFFB_SOBEL_FLAT_START},
-       {0xBCD2, 0x00CC},       //FE    // LL_SFFB_SOBEL_FLAT_STOP},
-       {0xBCD4, 0x001E},    // LL_SFFB_SOBEL_SHARP_START},
-       {0xBCD6, 0x00FF},    // LL_SFFB_SOBEL_SHARP_STOP},
-       {0xBCC6, 0x00},    // LL_SFFB_SHARPENING_START},
-       {0xBCC7, 0x00},    // LL_SFFB_SHARPENING_STOP},
-       {0xBCC8, 0x2F}, //20    // LL_SFFB_FLATNESS_START},
-       {0xBCC9, 0x40},    // LL_SFFB_FLATNESS_STOP},
-       {0xBCCA, 0x04},    // LL_SFFB_TRANSITION_START},
-       {0xBCCB, 0x00},    // LL_SFFB_TRANSITION_STOP},
-       //SFFB_slope_zero_enable},
-       {0xBCE6, 0x03},    // LL_SFFB_ZERO_ENABLE},
-       //manual_FD},
-       {0x8417, 0x01},    // SEQ_STATE_CFG_1_FD},
-       //tx_setting},
-       {0xC8ED, 0x03},    // CAM_TX_ENABLE_MODE},
-       //cdc_off},
-       {0x098E, 0x3C02},    // LOGICAL_ADDRESS_ACCESS},
-       {0xBC02, 0x017E},    // LL_ALGO},
-       {0x8404, 0x06},    // SEQ_CMD},
-
-       {SEQUENCE_WAIT_MS,300},
-       {SEQUENCE_END, 0x00}
+{ 0xBC18, 0x00, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_0
+{ 0xBC19, 0x11, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_1
+{ 0xBC1A, 0x23, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_2
+{ 0xBC1B, 0x3F, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_3
+{ 0xBC1C, 0x67, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_4
+{ 0xBC1D, 0x85, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_5
+{ 0xBC1E, 0x9B, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_6
+{ 0xBC1F, 0xAD, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_7
+{ 0xBC20, 0xBB, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_8
+{ 0xBC21, 0xC7, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_9
+{ 0xBC22, 0xD1, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_10
+{ 0xBC23, 0xDA, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_11
+{ 0xBC24, 0xE1, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_12
+{ 0xBC25, 0xE8, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_13
+{ 0xBC26, 0xEE, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_14
+{ 0xBC27, 0xF3, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_15
+{ 0xBC28, 0xF7, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_16
+{ 0xBC29, 0xFB, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_17
+{ 0xBC2A, 0xFF, BYTE_LEN, 0},  // LL_GAMMA_CONTRAST_CURVE_18
+{ 0xBC2B, 0x00, BYTE_LEN, 0},          // LL_GAMMA_NEUTRAL_CURVE_0
+{ 0xBC2C, 0x0A, BYTE_LEN, 0},          // LL_GAMMA_NEUTRAL_CURVE_1
+{ 0xBC2D, 0x1C, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_2
+{ 0xBC2E, 0x36, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_3
+{ 0xBC2F, 0x53, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_4
+{ 0xBC30, 0x6F, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_5
+{ 0xBC31, 0x86, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_6
+{ 0xBC32, 0x99, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_7
+{ 0xBC33, 0xAB, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_8
+{ 0xBC34, 0xBB, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_9
+{ 0xBC35, 0xC6, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_10
+{ 0xBC36, 0xD0, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_11
+{ 0xBC37, 0xD9, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_12
+{ 0xBC38, 0xE2, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_13
+{ 0xBC39, 0xE9, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_14
+{ 0xBC3A, 0xEF, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_15
+{ 0xBC3B, 0xF5, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_16
+{ 0xBC3C, 0xFA, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_17
+{ 0xBC3D, 0xFF, BYTE_LEN, 0},  // LL_GAMMA_NEUTRAL_CURVE_18
+{ 0xBC3E, 0x00, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_0
+{ 0xBC3F, 0x18, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_1
+{ 0xBC40, 0x25, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_2
+{ 0xBC41, 0x3A, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_3
+{ 0xBC42, 0x59, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_4
+{ 0xBC43, 0x70, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_5
+{ 0xBC44, 0x81, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_6
+{ 0xBC45, 0x90, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_7
+{ 0xBC46, 0x9E, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_8
+{ 0xBC47, 0xAB, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_9
+{ 0xBC48, 0xB6, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_10
+{ 0xBC49, 0xC1, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_11
+{ 0xBC4A, 0xCB, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_12
+{ 0xBC4B, 0xD5, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_13
+{ 0xBC4C, 0xDE, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_14
+{ 0xBC4D, 0xE7, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_15
+{ 0xBC4E, 0xEF, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_16
+{ 0xBC4F, 0xF7, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_17
+{ 0xBC50, 0xFF, BYTE_LEN, 0},  // LL_GAMMA_NR_CURVE_18
+{ 0xBC51, 0x04, BYTE_LEN, 0},  // LL_GAMMA_CURVE_SELECTOR
+//BM_dampening
+{ 0xB801, 0xE0, BYTE_LEN, 0},  // STAT_MODE
+{ 0xB862, 0x04, BYTE_LEN, 0},  // STAT_BMTRACKING_SPEED
+//AE
+{ 0xB829, 0x02, BYTE_LEN, 0},  // STAT_LL_BRIGHTNESS_METRIC_DIVISOR
+{ 0xB863, 0x02, BYTE_LEN, 0},  // STAT_BM_MUL
+{ 0xB827, 0x0F, BYTE_LEN, 0},  // STAT_AE_EV_SHIFT
+{ 0xA409, 0x4A, BYTE_LEN, 0},  // AE_RULE_BASE_TARGET
+{ 0xA805, 0x06, BYTE_LEN, 0},  // AE_TRACK_GATE
+{ 0xA80D, 0x08, BYTE_LEN, 0},
+{ 0xA816, 0x0002, WORD_LEN, 0},        // AE_TRACK_MIN_INT_TIME_ROWS
+{ 0xA401, 0x00, BYTE_LEN, 0},  // AE_RULE_MODE
+{ 0xA80E, 0x06, BYTE_LEN, 0},  // AE_TRACK_MAX_BLACK_LEVEL
+//BM_GM_start_stop
+{ 0xC8E6, 0x014C, WORD_LEN, 0},        // RESERVED_CAM_E6
+{ 0xC8E8, 0x0040, WORD_LEN, 0},        // RESERVED_CAM_E8
+{ 0xBC52, 0x00C8, WORD_LEN, 0},        // LL_START_BRIGHTNESS_METRIC
+{ 0xBC54, 0x0A28, WORD_LEN, 0},        // LL_END_BRIGHTNESS_METRIC
+{ 0xBC58, 0x0100, WORD_LEN, 0},   //0x0000     // LL_START_GAIN_METRIC
+{ 0xBC5A, 0x0480, WORD_LEN, 0},   //0x1000     // LL_END_GAIN_METRIC
+{ 0xBC5E, 0x0227, WORD_LEN, 0},        // LL_START_APERTURE_GAIN_BM
+{ 0xBC60, 0x0540, WORD_LEN, 0},        // LL_END_APERTURE_GAIN_BM
+{ 0xBC66, 0x0154, WORD_LEN, 0},        // LL_START_APERTURE_GM
+{ 0xBC68, 0x07D0, WORD_LEN, 0},        // LL_END_APERTURE_GM
+{ 0xBC86, 0x00C8, WORD_LEN, 0},        // LL_START_FFNR_GM
+{ 0xBC88, 0x0420, WORD_LEN, 0},        // LL_END_FFNR_GM
+{ 0xBCBC, 0x0040, WORD_LEN, 0},        // LL_SFFB_START_GAIN
+{ 0xBCBE, 0x01FC, WORD_LEN, 0},        // LL_SFFB_END_GAIN
+{ 0xBCCC, 0x00C8, WORD_LEN, 0},        // LL_SFFB_START_MAX_GM
+{ 0xBCCE, 0x0640, WORD_LEN, 0},        // LL_SFFB_END_MAX_GM
+{ 0xBC90, 0x00C8, WORD_LEN, 0},        // LL_START_GRB_GM
+{ 0xBC92, 0x0640, WORD_LEN, 0},        // LL_END_GRB_GM
+{ 0xBC0E, 0x0032, WORD_LEN, 0},        // LL_GAMMA_CURVE_ADJ_START_POS
+{ 0xBC10, 0x0064, WORD_LEN, 0},        // LL_GAMMA_CURVE_ADJ_MID_POS
+{ 0xBC12, 0x0FA0, WORD_LEN, 0},        // LL_GAMMA_CURVE_ADJ_END_POS
+{ 0xBCAA, 0x03E8, WORD_LEN, 0},        // LL_CDC_THR_ADJ_START_POS
+{ 0xBCAC, 0x012C, WORD_LEN, 0},        // LL_CDC_THR_ADJ_MID_POS
+{ 0xBCAE, 0x0009, WORD_LEN, 0},        // LL_CDC_THR_ADJ_END_POS
+{ 0xBCD8, 0x00C8, WORD_LEN, 0},        // LL_PCR_START_BM
+{ 0xBCDA, 0x0A28, WORD_LEN, 0},        // LL_PCR_END_BM
+
+//[Kernel]
+{ 0x3380, 0x0504, WORD_LEN, 0},        // KERNEL_CONFIG
+{ 0x3380, 0x0505, WORD_LEN, 0},        // KERNEL_CONFIG
+{ 0x3380, 0x0584, WORD_LEN, 0},        // KERNEL_CONFIG
+{ 0x3380, 0x0586, WORD_LEN, 0},        // KERNEL_CONFIG
+{ 0x3380, 0x0587, WORD_LEN, 0},        // KERNEL_CONFIG
+
+//GRB
+{ 0xBC94, 0x06, BYTE_LEN, 0},  // LL_GB_START_THRESHOLD_0
+{ 0xBC95, 0x05, BYTE_LEN, 0},  // LL_GB_START_THRESHOLD_1
+{ 0xBC9C, 0x09, BYTE_LEN, 0},  // RESERVED_LL_9C
+{ 0xBC9D, 0x05, BYTE_LEN, 0},  // RESERVED_LL_9D
+
+//demosaic
+{ 0x33B0, 0x2A16, WORD_LEN, 0},        // FFNR_ALPHA_BETA
+{ 0xBC8A, 0x0E, BYTE_LEN, 0},   //0x00         // LL_START_FF_MIX_THRESH_Y
+{ 0xBC8B, 0x4C, BYTE_LEN, 0},  // LL_END_FF_MIX_THRESH_Y
+{ 0xBC8C, 0x00, BYTE_LEN, 0},  // LL_START_FF_MIX_THRESH_YGAIN
+{ 0xBC8D, 0x24, BYTE_LEN, 0},  // LL_END_FF_MIX_THRESH_YGAIN
+{ 0xBC8E, 0xFF, BYTE_LEN, 0},  // LL_START_FF_MIX_THRESH_GAIN
+{ 0xBC8F, 0x00, BYTE_LEN, 0},  // LL_END_FF_MIX_THRESH_GAIN
+{ 0xBCB2, 0x20, BYTE_LEN, 0},  // LL_CDC_DARK_CLUS_SLOPE
+{ 0xBCB3, 0x3A, BYTE_LEN, 0},  // LL_CDC_DARK_CLUS_SATUR
+{ 0xBCB4, 0x39, BYTE_LEN, 0},  // RESERVED_LL_B4
+{ 0xBCB7, 0x39, BYTE_LEN, 0},  // RESERVED_LL_B7
+{ 0xBCB5, 0x20, BYTE_LEN, 0},  // RESERVED_LL_B5
+{ 0xBCB8, 0x3A, BYTE_LEN, 0},  // RESERVED_LL_B8
+{ 0xBCB6, 0x80, BYTE_LEN, 0},  // RESERVED_LL_B6
+{ 0xBCB9, 0x24, BYTE_LEN, 0},  // RESERVED_LL_B9
+
+//SFFB_rev3_noisemodel
+{ 0xBCC0, 0x1F, BYTE_LEN, 0},  // LL_SFFB_RAMP_START
+{ 0xBCC1, 0x03, BYTE_LEN, 0},  // LL_SFFB_RAMP_STOP
+{ 0xBCC2, 0x3C, BYTE_LEN, 0},  // LL_SFFB_SLOPE_START
+{ 0xBCC3, 0x10, BYTE_LEN, 0},  // LL_SFFB_SLOPE_STOP
+{ 0xBCC4, 0x07, BYTE_LEN, 0},  // LL_SFFB_THSTART
+{ 0xBCC5, 0x0B, BYTE_LEN, 0},  // LL_SFFB_THSTOP
+{ 0xBCBA, 0x0009, WORD_LEN, 0},        // LL_SFFB_CONFIG
+
+//[Step7-CPIPE_Preference]
+//ftb_off
+{ 0xBC14, 0xFFFE, WORD_LEN, 0},        // LL_GAMMA_FADE_TO_BLACK_START_POS
+{ 0xBC16, 0xFFFF, WORD_LEN, 0},        // LL_GAMMA_FADE_TO_BLACK_END_POS
+
+//aperture_preference
+{ 0xBC6A, 0x06, BYTE_LEN, 0},  // LL_START_APERTURE_INTEGER_GAIN
+{ 0xBC6B, 0x00, BYTE_LEN, 0},  // LL_END_APERTURE_INTEGER_GAIN
+{ 0xBC6C, 0x00, BYTE_LEN, 0},  // LL_START_APERTURE_EXP_GAIN
+{ 0xBC6D, 0x00, BYTE_LEN, 0},  // LL_END_APERTURE_EXP_GAIN
+{ 0xBCE2, 0x0A, BYTE_LEN, 0},  // LL_START_POS_KNEE
+{ 0xBCE3, 0x2B, BYTE_LEN, 0},  // LL_END_POS_KNEE
+{ 0xBCE4, 0x0A, BYTE_LEN, 0},  // LL_START_NEG_KNEE
+{ 0xBCE5, 0x2B, BYTE_LEN, 0},  // LL_END_NEG_KNEE
+{ 0x33BA, 0x0084, WORD_LEN, 0},        // APEDGE_CONTROL
+{ 0x33BE, 0x0000, WORD_LEN, 0},        // UA_KNEE_L
+{ 0x33C2, 0x5600, WORD_LEN, 0},        // UA_WEIGHTS
+{ 0xBC62, 0x10, BYTE_LEN, 0},  // LL_START_APERTURE_KPGAIN
+{ 0xBC63, 0x1F, BYTE_LEN, 0},  // LL_END_APERTURE_KPGAIN
+{ 0xBC64, 0x10, BYTE_LEN, 0},  // LL_START_APERTURE_KNGAIN
+{ 0xBC65, 0x1F, BYTE_LEN, 0},  // LL_END_APERTURE_KNGAIN
+{ 0xA81C, 0x0043, WORD_LEN, 0},        // AE_TRACK_MIN_AGAIN
+{ 0xA81E, 0x0102, WORD_LEN, 0},        // AE_TRACK_TARGET_AGAIN
+{ 0xA820, 0x0102, WORD_LEN, 0},        // AE_TRACK_MAX_AGAIN
+{ 0xA822, 0x0080, WORD_LEN, 0},        // AE_TRACK_MIN_DGAIN
+{ 0xA824, 0x0080, WORD_LEN, 0},        // AE_TRACK_MAX_DGAIN
+
+//min_fps
+{ 0xA818, 0x07D0, WORD_LEN, 0},        // AE_TRACK_TARGET_INT_TIME_ROWS
+{ 0xA81A, 0x0A00, WORD_LEN, 0},  //0x0810(10.9Fps)   //0x0FF4(5Fps)    // AE_TRACK_MAX_INT_TIME_ROWS
+
+//ccm_saturation
+{ 0xBC56, 0x80, BYTE_LEN, 0},          //0xA8  // LL_START_CCM_SATURATION
+{ 0xBC57, 0x10, BYTE_LEN, 0},  // LL_END_CCM_SATURATION
+
+//DCCM
+{ 0xBCDE, 0x03, BYTE_LEN, 0},  // LL_START_SYS_THRESHOLD
+{ 0xBCDF, 0x50, BYTE_LEN, 0},  // LL_STOP_SYS_THRESHOLD
+{ 0xBCE0, 0x08, BYTE_LEN, 0},  // LL_START_SYS_GAIN
+{ 0xBCE1, 0x03, BYTE_LEN, 0},  // LL_STOP_SYS_GAIN
+
+//sobel
+{ 0xBCD0, 0x000A, WORD_LEN, 0},        // LL_SFFB_SOBEL_FLAT_START
+{ 0xBCD2, 0x00FE, WORD_LEN, 0},        // LL_SFFB_SOBEL_FLAT_STOP
+{ 0xBCD4, 0x001E, WORD_LEN, 0},        // LL_SFFB_SOBEL_SHARP_START
+{ 0xBCD6, 0x00FF, WORD_LEN, 0},        // LL_SFFB_SOBEL_SHARP_STOP
+{ 0xBCC6, 0x00, BYTE_LEN, 0},  // LL_SFFB_SHARPENING_START
+{ 0xBCC7, 0x00, BYTE_LEN, 0},  // LL_SFFB_SHARPENING_STOP
+{ 0xBCC8, 0x20, BYTE_LEN, 0},  // LL_SFFB_FLATNESS_START
+{ 0xBCC9, 0x40, BYTE_LEN, 0},  // LL_SFFB_FLATNESS_STOP
+{ 0xBCCA, 0x04, BYTE_LEN, 0},  // LL_SFFB_TRANSITION_START
+{ 0xBCCB, 0x00, BYTE_LEN, 0},  // LL_SFFB_TRANSITION_STOP
+
+//SFFB_slope_zero_enable
+{ 0xBCE6, 0x03 , BYTE_LEN, 0 },        // LL_SFFB_ZERO_ENABLE
+
+//manual_FD(auto)
+{ 0x8417, 0x02, BYTE_LEN, 0 },         // SEQ_STATE_CFG_1_FD
+//tx_setting
+{ 0xC8ED, 0x02, BYTE_LEN, 0 },         // CAM_TX_ENABLE_MODE Context A,B time
+//cdc_off
+
+{ 0x8404, 0x06, BYTE_LEN, 0 },         // SEQ_CMD
+{ SEQUENCE_WAIT_MS,300, WORD_LEN, 0},
+{ SEQUENCE_END, 0x00, WORD_LEN, 0}
 };
 
 /* 720p 15fps @ 1280x720 */
 
 static struct reginfo sensor_720p[]=
 {
-       {0x098E, 0x843C}, // LOGICAL_ADDRESS_ACCESS [CAM_CORE_A_Y_ADDR_START]
-       {0x843C, 0x01}, // SEQ_STATE_CFG_5_MAX_FRAME_CNT
-       {0x8404, 0x01}, // SEQ_CMD
-       {0x0016, 0x0447},  // CLOCKS_CONTROL
-       {0xC83A, 0x0106},  // CAM_CORE_A_Y_ADDR_START
-       {0xC83C, 0x0018},  // CAM_CORE_A_X_ADDR_START
-       {0xC83E, 0x06B7},  // CAM_CORE_A_Y_ADDR_END
-       {0xC840, 0x0A45},  // CAM_CORE_A_X_ADDR_END
-       {0xC86C, 0x0518},  // CAM_CORE_A_OUTPUT_SIZE_WIDTH
-       {0xC86E, 0x02D8},  // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
-       {0xC870, 0x0014},  // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
-       {0xC858, 0x0003}, // CAM_CORE_A_COARSE_ITMIN
-       {0xC8B8, 0x0004},  // CAM_OUTPUT_0_JPEG_CONTROL
-       {0xC8AA, 0x0500},  // CAM_OUTPUT_0_IMAGE_WIDTH
-       {0xC8AC, 0x02D0},  // CAM_OUTPUT_0_IMAGE_HEIGHT
-       {0xC8AE, 0x0001},  // CAM_OUTPUT_0_OUTPUT_FORMAT
-       {0x8404, 0x06},  // SEQ_CMD
-
-       //snap2preview
-       {0x098E, 0x843C},       // LOGICAL_ADDRESS_ACCESS [SEQ_STATE_CFG_5_MAX_FRAME_CNT]
-       {0x843C, 0x01},         // SEQ_STATE_CFG_5_MAX_FRAME_CNT
-       {0x8404, 0x01}, // SEQ_CMD
-       {0x0016, 0x0047},       // CLOCKS_CONTRO
+       {SEQUENCE_END, 0x00},
+       {0x098E, 0x843C, WORD_LEN, 0}, // LOGICAL_ADDRESS_ACCESS [CAM_CORE_A_Y_ADDR_START]
+       {0x843C, 0x01, BYTE_LEN, 0 }, // SEQ_STATE_CFG_5_MAX_FRAME_CNT
+       {0x8404, 0x01, BYTE_LEN, 0 }, // SEQ_CMD
+       {0x0016, 0x0447, WORD_LEN, 0},  // CLOCKS_CONTROL
+       {0xC83A, 0x0106, WORD_LEN, 0},  // CAM_CORE_A_Y_ADDR_START
+       {0xC83C, 0x0018, WORD_LEN, 0},  // CAM_CORE_A_X_ADDR_START
+       {0xC83E, 0x06B7, WORD_LEN, 0},  // CAM_CORE_A_Y_ADDR_END
+       {0xC840, 0x0A45, WORD_LEN, 0},  // CAM_CORE_A_X_ADDR_END
+       {0xC86C, 0x0518, WORD_LEN, 0},  // CAM_CORE_A_OUTPUT_SIZE_WIDTH
+       {0xC86E, 0x02D8, WORD_LEN, 0},  // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
+       {0xC870, 0x0014, WORD_LEN, 0},  // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
+       {0xC858, 0x0003, WORD_LEN, 0}, // CAM_CORE_A_COARSE_ITMIN
+       {0xC8B8, 0x0004, WORD_LEN, 0},  // CAM_OUTPUT_0_JPEG_CONTROL
+       {0xC8AA, 0x0500, WORD_LEN, 0},  // CAM_OUTPUT_0_IMAGE_WIDTH
+       {0xC8AC, 0x02D0, WORD_LEN, 0},  // CAM_OUTPUT_0_IMAGE_HEIGHT
+       {0xC8AE, 0x0001, WORD_LEN, 0},  // CAM_OUTPUT_0_OUTPUT_FORMAT
+       {0x8404, 0x06, BYTE_LEN, 0 },  // SEQ_CMD
+
+       {SEQUENCE_WAIT_MS,100, WORD_LEN, 0},
        {SEQUENCE_END, 0x00}
 };
 
@@ -1345,6 +1377,7 @@ static struct reginfo sensor_1080p[]=
 /* 2592X1944 QSXGA */
 static struct reginfo sensor_qsxga[] =
 {
+       {SEQUENCE_PROPERTY,SEQUENCE_CAPTURE},
        {SEQUENCE_END, 0x00}
 };
 /* 2048*1536 QXGA */
@@ -1379,22 +1412,23 @@ static struct reginfo sensor_svga[] =
 static struct reginfo sensor_vga[] =
 {
        //720p2vga
-    {0xC83A, 0x000C},    // CAM_CORE_A_Y_ADDR_START
-    {0xC83C, 0x0018},    // CAM_CORE_A_X_ADDR_START
-    {0xC83E, 0x07B1 },    // CAM_CORE_A_Y_ADDR_END
-    {0xC840, 0x0A45},    // CAM_CORE_A_X_ADDR_END
-    {0xC868, 0x0423},    // CAM_CORE_A_FRAME_LENGTH_LINES
-    {0xC86A, 0x1194},    // CAM_CORE_A_LINE_LENGTH_PCK
-    {0xC86C, 0x0518},    // CAM_CORE_A_OUTPUT_SIZE_WIDTH
-    {0xC86E, 0x03D4},    // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
-    {0xC870, 0x0014},  // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
-    {0xC858, 0x0003},  // CAM_CORE_A_COARSE_ITMIN
-    {0xC8A4, 0x0A28},    // CAM_CORE_B_OUTPUT_SIZE_WIDTH
-    {0xC8A6, 0x07A0 },    // CAM_CORE_B_OUTPUT_SIZE_HEIGHT
-    {0xC8AA, 0x0280 },    // CAM_OUTPUT_0_IMAGE_WIDTH
-    {0xC8AC, 0x01E0 },    // CAM_OUTPUT_0_IMAGE_HEIGHT
-    {0xC8AE, 0x0001 },    // CAM_OUTPUT_0_OUTPUT_FORMAT
-    {0x8404, 0x06}, // SEQ_CMD
+    {0xC83A, 0x000C, WORD_LEN, 0},    // CAM_CORE_A_Y_ADDR_START
+    {0xC83C, 0x0018, WORD_LEN, 0},    // CAM_CORE_A_X_ADDR_START
+    {0xC83E, 0x07B1, WORD_LEN, 0 },    // CAM_CORE_A_Y_ADDR_END
+    {0xC840, 0x0A45, WORD_LEN, 0},    // CAM_CORE_A_X_ADDR_END
+    {0xC868, 0x0423, WORD_LEN, 0},    // CAM_CORE_A_FRAME_LENGTH_LINES
+    {0xC86A, 0x1194, WORD_LEN, 0},    // CAM_CORE_A_LINE_LENGTH_PCK
+    {0xC86C, 0x0518, WORD_LEN, 0},    // CAM_CORE_A_OUTPUT_SIZE_WIDTH
+    {0xC86E, 0x03D4, WORD_LEN, 0},    // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
+    {0xC870, 0x0014, WORD_LEN, 0},  // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
+    {0xC858, 0x0003, WORD_LEN, 0},  // CAM_CORE_A_COARSE_ITMIN
+    {0xC8A4, 0x0A28, WORD_LEN, 0},    // CAM_CORE_B_OUTPUT_SIZE_WIDTH
+    {0xC8A6, 0x07A0, WORD_LEN, 0 },    // CAM_CORE_B_OUTPUT_SIZE_HEIGHT
+    {0xC8AA, 0x0280, WORD_LEN, 0 },    // CAM_OUTPUT_0_IMAGE_WIDTH
+    {0xC8AC, 0x01E0, WORD_LEN, 0 },    // CAM_OUTPUT_0_IMAGE_HEIGHT
+    {0xC8AE, 0x0001, WORD_LEN, 0 },    // CAM_OUTPUT_0_OUTPUT_FORMAT
+    {0x8404, 0x06, BYTE_LEN, 0 }, // SEQ_CMD
+    {SEQUENCE_WAIT_MS,100, WORD_LEN, 0},
     {SEQUENCE_END, 0x00}
 };
 
@@ -1502,19 +1536,19 @@ static  struct reginfo ov2655_Sharpness5[] =
 static  struct reginfo sensor_Preview2Capture[]=
 {
        //capture2preview
-       {0x098E, 0x843C},       // LOGICAL_ADDRESS_ACCESS [SEQ_STATE_CFG_5_MAX_FRAME_CNT]
-       {0x843C, 0xFF},         // SEQ_STATE_CFG_5_MAX_FRAME_CNT
-       {0x8404, 0x02},     // SEQ_CMD
+       {0x098E, 0x843C, WORD_LEN, 0},  // LOGICAL_ADDRESS_ACCESS [SEQ_STATE_CFG_5_MAX_FRAME_CNT]
+       {0x843C, 0xFF, BYTE_LEN, 0 },   // SEQ_STATE_CFG_5_MAX_FRAME_CNT
+       {0x8404, 0x02, BYTE_LEN, 0 },   // SEQ_CMD
        {SEQUENCE_END, 0x00}
 };
 
 static  struct reginfo sensor_Capture2Preview[]=
 {
        //snap2preview
-       {0x098E, 0x843C},       // LOGICAL_ADDRESS_ACCESS [SEQ_STATE_CFG_5_MAX_FRAME_CNT]
-       {0x843C, 0x01},         // SEQ_STATE_CFG_5_MAX_FRAME_CNT
-       {0x8404, 0x01}, // SEQ_CMD
-       {0x0016, 0x0047},       // CLOCKS_CONTRO
+       {0x098E, 0x843C, WORD_LEN, 0},  // LOGICAL_ADDRESS_ACCESS [SEQ_STATE_CFG_5_MAX_FRAME_CNT]
+       {0x843C, 0x01, BYTE_LEN, 0 },   // SEQ_STATE_CFG_5_MAX_FRAME_CNT
+       {0x8404, 0x01, BYTE_LEN, 0 },   // SEQ_CMD
+       {0x0016, 0x0047, WORD_LEN, 0},  // CLOCKS_CONTRO
        {SEQUENCE_END, 0x00}
 };
 static  struct reginfo sensor_ClrFmt_YUYV[]=
@@ -1532,97 +1566,97 @@ static  struct reginfo sensor_ClrFmt_UYVY[]=
 static  struct reginfo sensor_WhiteB_Auto[]=
 {
        //Auto
-       { 0x098E, 0xACB0},      // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
-       {0xACB0, 0x31},         // AWB_RG_MIN
-       {0xACB1, 0x5B},         // AWB_RG_MAX
-       {0xACB4, 0x2A},         // AWB_BG_MIN
-       {0xACB5, 0x5B},         // AWB_BG_MAX
-       {0xACB2, 0x40},         // AWB_RG_MIN_BRIGHT
-       {0xACB3, 0x48},         // AWB_RG_MAX_BRIGHT
-       {0xACB6, 0x3f},         // AWB_BG_MIN_BRIGHT
-       {0xACB7, 0x48},         // AWB_BG_MAX_BRIGHT
-       {0xAC44, 0x00},         // AWB_LEFT_CCM_POS_RANGE_LIMIT
-       {0xAC45, 0x7F},         // AWB_RIGHT_CCM_POS_RANGE_LIMIT
+       { 0x098E, 0xACB0, WORD_LEN, 0},         // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
+       {0xACB0, 0x31, BYTE_LEN, 0 },   // AWB_RG_MIN
+       {0xACB1, 0x5B, BYTE_LEN, 0 },   // AWB_RG_MAX
+       {0xACB4, 0x2A, BYTE_LEN, 0 },   // AWB_BG_MIN
+       {0xACB5, 0x5B, BYTE_LEN, 0 },   // AWB_BG_MAX
+       {0xACB2, 0x40, BYTE_LEN, 0 },   // AWB_RG_MIN_BRIGHT
+       {0xACB3, 0x48, BYTE_LEN, 0 },   // AWB_RG_MAX_BRIGHT
+       {0xACB6, 0x3f, BYTE_LEN, 0 },   // AWB_BG_MIN_BRIGHT
+       {0xACB7, 0x48, BYTE_LEN, 0 },   // AWB_BG_MAX_BRIGHT
+       {0xAC44, 0x00, BYTE_LEN, 0 },   // AWB_LEFT_CCM_POS_RANGE_LIMIT
+       {0xAC45, 0x7F, BYTE_LEN, 0 },   // AWB_RIGHT_CCM_POS_RANGE_LIMIT
        {SEQUENCE_END, 0x00}
 };
 /* Cloudy Colour Temperature : 6500K - 8000K  */
 static  struct reginfo sensor_WhiteB_Cloudy[]=
 {
        //[V.       DL 7500]
-       { 0x098E, 0xACB0},      // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
-       {0xACB0, 0x38},         // AWB_RG_MIN
-       {0xACB1, 0x42},         // AWB_RG_MAX
-       {0xACB4, 0x44},         // AWB_BG_MIN
-       {0xACB5, 0x4C},         // AWB_BG_MAX
-       {0xACB2, 0x38},         // AWB_RG_MIN_BRIGHT
-       {0xACB3, 0x42},         // AWB_RG_MAX_BRIGHT
-       {0xACB6, 0x44},         // AWB_BG_MIN_BRIGHT
-       {0xACB7, 0x4C},         // AWB_BG_MAX_BRIGHT
-       {0xAC44, 0x7C},         // AWB_LEFT_CCM_POS_RANGE_LIMIT
-       {0xAC45, 0x7F},         // AWB_RIGHT_CCM_POS_RANGE_LIMIT
-       {0xAC04, 0x3E},         // AWB_PRE_AWB_R2G_RATIO
-       {0xAC05, 0x48},         // AWB_PRE_AWB_B2G_RATIO
-       {0xAC08, 0x7F},         // AWB_CUR_CCM_POS
+       { 0x098E, 0xACB0, WORD_LEN, 0},         // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
+       {0xACB0, 0x38, BYTE_LEN, 0 },   // AWB_RG_MIN
+       {0xACB1, 0x42, BYTE_LEN, 0 },   // AWB_RG_MAX
+       {0xACB4, 0x44, BYTE_LEN, 0 },   // AWB_BG_MIN
+       {0xACB5, 0x4C, BYTE_LEN, 0 },   // AWB_BG_MAX
+       {0xACB2, 0x38, BYTE_LEN, 0 },   // AWB_RG_MIN_BRIGHT
+       {0xACB3, 0x42, BYTE_LEN, 0 },   // AWB_RG_MAX_BRIGHT
+       {0xACB6, 0x44, BYTE_LEN, 0 },   // AWB_BG_MIN_BRIGHT
+       {0xACB7, 0x4C, BYTE_LEN, 0 },   // AWB_BG_MAX_BRIGHT
+       {0xAC44, 0x7C, BYTE_LEN, 0 },   // AWB_LEFT_CCM_POS_RANGE_LIMIT
+       {0xAC45, 0x7F, BYTE_LEN, 0 },   // AWB_RIGHT_CCM_POS_RANGE_LIMIT
+       {0xAC04, 0x3E, BYTE_LEN, 0 },   // AWB_PRE_AWB_R2G_RATIO
+       {0xAC05, 0x48, BYTE_LEN, 0 },   // AWB_PRE_AWB_B2G_RATIO
+       {0xAC08, 0x7F, BYTE_LEN, 0 },   // AWB_CUR_CCM_POS
        {SEQUENCE_END, 0x00}
 };
 /* ClearDay Colour Temperature : 5000K - 6500K  */
 static  struct reginfo sensor_WhiteB_ClearDay[]=
 {
        //[IV       Day Light]
-       { 0x098E, 0xACB0},      // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
-       {0xACB0, 0x3A},         // AWB_RG_MIN
-       {0xACB1, 0x44},         // AWB_RG_MAX
-       {0xACB4, 0x40},         // AWB_BG_MIN
-       {0xACB5, 0x4A},         // AWB_BG_MAX
-       {0xACB2, 0x3A},         // AWB_RG_MIN_BRIGHT
-       {0xACB3, 0x44},         // AWB_RG_MAX_BRIGHT
-       {0xACB6, 0x40},         // AWB_BG_MIN_BRIGHT
-       {0xACB7, 0x4A},         // AWB_BG_MAX_BRIGHT
-       {0xAC44, 0x7C},         // AWB_LEFT_CCM_POS_RANGE_LIMIT
-       {0xAC45, 0x7F},         // AWB_RIGHT_CCM_POS_RANGE_LIMIT
-       {0xAC04, 0x40},         // AWB_PRE_AWB_R2G_RATIO
-       {0xAC05, 0x48},         // AWB_PRE_AWB_B2G_RATIO
-       {0xAC08, 0x7F},         // AWB_CUR_CCM_POS
+       { 0x098E, 0xACB0, WORD_LEN, 0},         // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
+       {0xACB0, 0x3A, BYTE_LEN, 0 },   // AWB_RG_MIN
+       {0xACB1, 0x44, BYTE_LEN, 0 },   // AWB_RG_MAX
+       {0xACB4, 0x40, BYTE_LEN, 0 },   // AWB_BG_MIN
+       {0xACB5, 0x4A, BYTE_LEN, 0 },   // AWB_BG_MAX
+       {0xACB2, 0x3A, BYTE_LEN, 0 },   // AWB_RG_MIN_BRIGHT
+       {0xACB3, 0x44, BYTE_LEN, 0 },   // AWB_RG_MAX_BRIGHT
+       {0xACB6, 0x40, BYTE_LEN, 0 },   // AWB_BG_MIN_BRIGHT
+       {0xACB7, 0x4A, BYTE_LEN, 0 },   // AWB_BG_MAX_BRIGHT
+       {0xAC44, 0x7C, BYTE_LEN, 0 },   // AWB_LEFT_CCM_POS_RANGE_LIMIT
+       {0xAC45, 0x7F, BYTE_LEN, 0 },   // AWB_RIGHT_CCM_POS_RANGE_LIMIT
+       {0xAC04, 0x40, BYTE_LEN, 0 },   // AWB_PRE_AWB_R2G_RATIO
+       {0xAC05, 0x48, BYTE_LEN, 0 },   // AWB_PRE_AWB_B2G_RATIO
+       {0xAC08, 0x7F, BYTE_LEN, 0 },   // AWB_CUR_CCM_POS
        {SEQUENCE_END, 0x00}
 };
 /* Office Colour Temperature : 3500K - 5000K  */
 static  struct reginfo sensor_WhiteB_TungstenLamp1[]=
 {
        //[III        Fluorescent]
-       { 0x098E, 0xACB0},      // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
-       {0xACB0, 0x44},         // AWB_RG_MIN
-       {0xACB1, 0x4B},         // AWB_RG_MAX
-       {0xACB4, 0x2C},         // AWB_BG_MIN
-       {0xACB5, 0x34},         // AWB_BG_MAX
-       {0xACB2, 0x44},         // AWB_RG_MIN_BRIGHT
-       {0xACB3, 0x4B},         // AWB_RG_MAX_BRIGHT
-       {0xACB6, 0x2C},         // AWB_BG_MIN_BRIGHT
-       {0xACB7, 0x34},         // AWB_BG_MAX_BRIGHT
-       {0xAC44, 0x40},         // AWB_LEFT_CCM_POS_RANGE_LIMIT
-       {0xAC45, 0x4A},         // AWB_RIGHT_CCM_POS_RANGE_LIMIT
-       {0xAC04, 0x47},         // AWB_PRE_AWB_R2G_RATIO
-       {0xAC05, 0x30},         // AWB_PRE_AWB_B2G_RATIO
-       {0xAC08, 0x45},         // AWB_CUR_CCM_POS
+       { 0x098E, 0xACB0, WORD_LEN, 0},         // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
+       {0xACB0, 0x44, BYTE_LEN, 0 },   // AWB_RG_MIN
+       {0xACB1, 0x4B, BYTE_LEN, 0 },   // AWB_RG_MAX
+       {0xACB4, 0x2C, BYTE_LEN, 0 },   // AWB_BG_MIN
+       {0xACB5, 0x34, BYTE_LEN, 0 },   // AWB_BG_MAX
+       {0xACB2, 0x44, BYTE_LEN, 0 },   // AWB_RG_MIN_BRIGHT
+       {0xACB3, 0x4B, BYTE_LEN, 0 },   // AWB_RG_MAX_BRIGHT
+       {0xACB6, 0x2C, BYTE_LEN, 0 },   // AWB_BG_MIN_BRIGHT
+       {0xACB7, 0x34, BYTE_LEN, 0 },   // AWB_BG_MAX_BRIGHT
+       {0xAC44, 0x40, BYTE_LEN, 0 },   // AWB_LEFT_CCM_POS_RANGE_LIMIT
+       {0xAC45, 0x4A, BYTE_LEN, 0 },   // AWB_RIGHT_CCM_POS_RANGE_LIMIT
+       {0xAC04, 0x47, BYTE_LEN, 0 },   // AWB_PRE_AWB_R2G_RATIO
+       {0xAC05, 0x30, BYTE_LEN, 0 },   // AWB_PRE_AWB_B2G_RATIO
+       {0xAC08, 0x45, BYTE_LEN, 0 },   // AWB_CUR_CCM_POS
        {SEQUENCE_END, 0x00}
 };
 /* Home Colour Temperature : 2500K - 3500K  */
 static  struct reginfo sensor_WhiteB_TungstenLamp2[]=
 {
        //[II.        Incandescent]
-       { 0x098E, 0xACB0},      // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
-       {0xACB0, 0x57},         // AWB_RG_MIN
-       {0xACB1, 0x5F},         // AWB_RG_MAX
-       {0xACB4, 0x26},         // AWB_BG_MIN
-       {0xACB5, 0x2E},         // AWB_BG_MAX
-       {0xACB2, 0x57},         // AWB_RG_MIN_BRIGHT
-       {0xACB3, 0x5F},         // AWB_RG_MAX_BRIGHT
-       {0xACB6, 0x26},         // AWB_BG_MIN_BRIGHT
-       {0xACB7, 0x2E},         // AWB_BG_MAX_BRIGHT
-       {0xAC44, 0x00},         // AWB_LEFT_CCM_POS_RANGE_LIMIT
-       {0xAC45, 0x08},         // AWB_RIGHT_CCM_POS_RANGE_LIMIT
-       {0xAC04, 0x5B},         // AWB_PRE_AWB_R2G_RATIO
-       {0xAC05, 0x2A},         // AWB_PRE_AWB_B2G_RATIO
-       {0xAC08, 0x00},         // AWB_CUR_CCM_POS
+       { 0x098E, 0xACB0, WORD_LEN, 0},         // LOGICAL_ADDRESS_ACCESS [AWB_MIN_ACCEPTED_PRE_AWB_R2G_RATIO]
+       {0xACB0, 0x57, BYTE_LEN, 0 },   // AWB_RG_MIN
+       {0xACB1, 0x5F, BYTE_LEN, 0 },   // AWB_RG_MAX
+       {0xACB4, 0x26, BYTE_LEN, 0 },   // AWB_BG_MIN
+       {0xACB5, 0x2E, BYTE_LEN, 0 },   // AWB_BG_MAX
+       {0xACB2, 0x57, BYTE_LEN, 0 },   // AWB_RG_MIN_BRIGHT
+       {0xACB3, 0x5F, BYTE_LEN, 0 },   // AWB_RG_MAX_BRIGHT
+       {0xACB6, 0x26, BYTE_LEN, 0 },   // AWB_BG_MIN_BRIGHT
+       {0xACB7, 0x2E, BYTE_LEN, 0 },   // AWB_BG_MAX_BRIGHT
+       {0xAC44, 0x00, BYTE_LEN, 0 },   // AWB_LEFT_CCM_POS_RANGE_LIMIT
+       {0xAC45, 0x08, BYTE_LEN, 0 },   // AWB_RIGHT_CCM_POS_RANGE_LIMIT
+       {0xAC04, 0x5B, BYTE_LEN, 0 },   // AWB_PRE_AWB_R2G_RATIO
+       {0xAC05, 0x2A, BYTE_LEN, 0 },   // AWB_PRE_AWB_B2G_RATIO
+       {0xAC08, 0x00, BYTE_LEN, 0 },   // AWB_CUR_CCM_POS
 
        {SEQUENCE_END, 0x00}
 };
@@ -1670,9 +1704,9 @@ static struct reginfo *sensor_BrightnessSeqe[] = {sensor_Brightness0, sensor_Bri
 #if CONFIG_SENSOR_Effect
 static  struct reginfo sensor_Effect_Normal[] =
 {
-       {0x098e,0xdc38},
-       {0xdc38,0x00},
-       {0x8404,0x06},
+       {0x098e,0xdc38, WORD_LEN, 0},
+       {0xdc38,0x00, BYTE_LEN, 0 },
+       {0x8404,0x06, BYTE_LEN, 0 },
        {SEQUENCE_END, 0x00}
 };
 
@@ -1683,19 +1717,19 @@ static  struct reginfo sensor_Effect_WandB[] =
 
 static  struct reginfo sensor_Effect_Sepia[] =
 {
-       {0x098e,0xdc38},
-       {0xdc38,0x02},
-       {0xdc3a,0x10},
-       {0xdc3b,0xe0},
-       {0x8404,0x06},
+       {0x098e,0xdc38, WORD_LEN, 0},
+       {0xdc38,0x02, BYTE_LEN, 0 },
+       {0xdc3a,0x10, BYTE_LEN, 0 },
+       {0xdc3b,0xe0, BYTE_LEN, 0 },
+       {0x8404,0x06, BYTE_LEN, 0 },
        {SEQUENCE_END, 0x00}
 };
 
 static  struct reginfo sensor_Effect_Negative[] =
 {
-       {0x098e,0xdc38},
-       {0xdc38,0x03},
-       {0x8404,0x06},
+       {0x098e,0xdc38, WORD_LEN, 0},
+       {0xdc38,0x03, BYTE_LEN, 0 },
+       {0x8404,0x06, BYTE_LEN, 0 },
        {SEQUENCE_END, 0x00}
 };
 static  struct reginfo sensor_Effect_Bluish[] =
@@ -1710,10 +1744,10 @@ static  struct reginfo sensor_Effect_Green[] =
 
 static struct reginfo sensor_Effect_Solarize[] =
 {
-       {0x098e,0xdc38},
-       {0xdc38,0x05},
-       {0xdc39,0x20},
-       {0x8404,0x06},
+       {0x098e,0xdc38, WORD_LEN, 0},
+       {0xdc38,0x05, BYTE_LEN, 0 },
+       {0xdc39,0x20, BYTE_LEN, 0 },
+       {0x8404,0x06, BYTE_LEN, 0 },
        {SEQUENCE_END, 0x00}
 };
 static struct reginfo *sensor_EffectSeqe[] = {sensor_Effect_Normal, sensor_Effect_Negative,sensor_Effect_Sepia,
@@ -2230,40 +2264,50 @@ sensor_task_lock_err:
 }
 
 /* sensor register write */
-static int sensor_write(struct i2c_client *client, u16 reg, u16 val)
+static int sensor_write(struct i2c_client *client, struct reginfo *reg_info)
 {
     int err=0,cnt;
     u8 buf[4];
     struct i2c_msg msg[1];
 
-       switch (reg)
+       switch (reg_info->reg)
        {
                case SEQUENCE_WAIT_MS:
                {
                        if (in_atomic())
-                               mdelay(val);
+                               mdelay(reg_info->val);
                        else
-                               msleep(val);
+                               msleep(reg_info->val);
                        break;
                }
 
                case SEQUENCE_WAIT_US:
                {
-                       udelay(val);
+                       udelay(reg_info->val);
                        break;
                }
 
+               case SEQUENCE_PROPERTY:
+               {
+                       break;
+               }
                default:
                {
-                   buf[0] = reg >> 8;
-                   buf[1] = reg & 0xFF;
-                   buf[2] = val >> 8;
-                       buf[3] = val & 0xFF;
+                   buf[0] = reg_info->reg >> 8;
+                   buf[1] = reg_info->reg & 0xFF;
+                       if (reg_info->reg_len == WORD_LEN) {
+                               buf[2] = reg_info->val >> 8;
+                               buf[3] = reg_info->val & 0xFF;
+
+                               msg->len = 4;
+                       } else if (reg_info->reg_len == BYTE_LEN) {
+                               buf[2] = reg_info->val;
+                               msg->len = 3;
+                       }
 
                    msg->addr = client->addr;
                    msg->flags = client->flags;
                    msg->buf = buf;
-                   msg->len = sizeof(buf);
                    msg->scl_rate = CONFIG_SENSOR_I2C_SPEED;         /* ddl@rock-chips.com : 100kHz */
                    msg->read_type = 0;               /* fpga i2c:0==I2C_NORMAL : direct use number not enum for don't want include spi_fpga.h */
 
@@ -2276,7 +2320,7 @@ static int sensor_write(struct i2c_client *client, u16 reg, u16 val)
                        if (err >= 0) {
                            return 0;
                        } else {
-                           SENSOR_TR("\n %s write reg(0x%x, val:0x%x) failed, try to write again!\n",SENSOR_NAME_STRING(),regval);
+                           SENSOR_TR("\n %s write reg(0x%x, val:0x%x) failed, try to write again!\n",SENSOR_NAME_STRING(),reg_info->reg, reg_info->val);
                            udelay(10);
                        }
                    }
@@ -2338,10 +2382,8 @@ static int sensor_write_array(struct i2c_client *client, struct reginfo *regarra
        cnt = 0;
        if (sensor_task_lock(client, 1) < 0)
                goto sensor_write_array_end;
-    while (regarray[i].reg != SEQUENCE_END)
-    {
-
-        err = sensor_write(client, regarray[i].reg, regarray[i].val);
+    while (regarray[i].reg != SEQUENCE_END) {
+        err = sensor_write(client, &regarray[i]);
         if (err < 0)
         {
             if (cnt-- > 0) {
@@ -2391,58 +2433,57 @@ static int sensor_readchk_array(struct i2c_client *client, struct reginfo *regar
 #if CONFIG_SENSOR_Focus
 static struct reginfo sensor_af_init0[] =
 {
-       //[Step8-Features]},
-       //AF_VCM_enable},
-       {0xC400, 0x88},    // AFM_ALGO},
-       {0x8419, 0x05},    // SEQ_STATE_CFG_1_AF},
-       {0xC400, 0x08},    // AFM_ALGO},
-       //AF_settings},
-       {0xB002, 0x0305},    // AF_MODE},
-       {0xB004, 0x0002},    // AF_ALGO},
+       { 0xC400, 0x88, BYTE_LEN, 0 },  // AFM_ALGO
+       { 0x8419, 0x05, BYTE_LEN, 0 },  // SEQ_STATE_CFG_1_AF
+       { 0xC400, 0x08, BYTE_LEN, 0 },  // AFM_ALGO
+       //AF_settings
+       { 0xB002, 0x0305, WORD_LEN, 0},         // AF_MODE
+       { 0xB004, 0x0002, WORD_LEN, 0},         // AF_ALGO
+
+       { 0xB008, 0x0003, WORD_LEN, 0},  // AF_ZONE_WEIGHTS_HI
+       { 0xB00A, 0xFFFF, WORD_LEN, 0},  // AF_ZONE_WEIGHTS_HI
+       { 0xB00C, 0xFFFF, WORD_LEN, 0},  // AF_ZONE_WEIGHTS_LO
+       { 0xB00E, 0xFFFF, WORD_LEN, 0},  // AF_ZONE_WEIGHTS_LO
        {SEQUENCE_END, 0x00}
 };
 static struct reginfo sensor_af_init1[] =
 {
-       //set_posMin/Max},
-       {0xC40A, 0x0028},    // AFM_POS_MIN},
-       {0xC40C, 0x00BE},    // AFM_POS_MAX},
-       //AF_postition_settings},
-       {0xB018, 0x00},    // AF_FS_POS_0},
-       {0xB019, 0x14},    // AF_FS_POS_1},
-       {0xB01A, 0x20},    // AF_FS_POS_2},
-       {0xB01B, 0x2C},    // AF_FS_POS_3},
-       {0xB01C, 0x38},    // AF_FS_POS_4},
-       {0xB01D, 0x44},    // AF_FS_POS_5},
-       {0xB01E, 0x50},    // AF_FS_POS_6},
-       {0xB01F, 0x5C},    // AF_FS_POS_7},
-       {0xB020, 0x68},    // AF_FS_POS_8},
-       {0xB021, 0x74},    // AF_FS_POS_9},
-       {0xB022, 0x80},    // AF_FS_POS_10},
-       {0xB023, 0x8C},    // AF_FS_POS_11},
-       {0xB024, 0x98},    // AF_FS_POS_12},
-       {0xB025, 0xA4},    // AF_FS_POS_13},
-       {0xB026, 0xB0},    // AF_FS_POS_14},
-       {0xB027, 0xBC},    // AF_FS_POS_15},
-       {0xB012, 0x0F},    // AF_FS_NUM_STEPS},
-       {0xB014, 0x0B},    // AF_FS_STEP_SIZE},
-       // 2nd_scan_option},
-       {0x098E, 0xB013},    // LOGICAL_ADDRESS_ACCESS [AF_FS_NUM_STEPS2]},
-       {0xB013, 0x77},    // AF_FS_NUM_STEPS2},
-       {0xB014, 0x05},    // AF_FS_STEP_SIZE},
-
-       {0x002A, 0x7F7A},    // PLL_P4_P5_P6_DIVIDERS},
-       {0x8404, 0x05},    // SEQ_CMD},
-       {SEQUENCE_WAIT_MS,300},
-       {0x0018, 0x2008},    // STANDBY_CONTROL_AND_STATUS},
-       {SEQUENCE_WAIT_MS,100},
-       {SEQUENCE_END, 0x00}
+//set_posMin/Max
+{ 0xC40A, 0x0028, WORD_LEN, 0 },       // AFM_POS_MIN
+{ 0xC40C, 0x00BE, WORD_LEN, 0 },       // AFM_POS_MAX
+//AF_postition_settings
+{ 0xB018, 0x00, BYTE_LEN, 0},  // AF_FS_POS_0
+{ 0xB019, 0x20, BYTE_LEN, 0},  // AF_FS_POS_1
+{ 0xB01A, 0x40, BYTE_LEN, 0},  // AF_FS_POS_2
+{ 0xB01B, 0x60, BYTE_LEN, 0},  // AF_FS_POS_3
+{ 0xB01C, 0x80, BYTE_LEN, 0},  // AF_FS_POS_4
+{ 0xB01D, 0xA0, BYTE_LEN, 0},  // AF_FS_POS_5
+{ 0xB01E, 0xC0, BYTE_LEN, 0},  // AF_FS_POS_6
+{ 0xB01A, 0x38, BYTE_LEN, 0},  // AF_FS_POS_2
+{ 0xB01B, 0x50, BYTE_LEN, 0},  // AF_FS_POS_3
+{ 0xB01C, 0x68, BYTE_LEN, 0},  // AF_FS_POS_4
+{ 0xB01D, 0x80, BYTE_LEN, 0},  // AF_FS_POS_5
+{ 0xB01E, 0x98, BYTE_LEN, 0},  // AF_FS_POS_6
+{ 0xB01F, 0xB0, BYTE_LEN, 0},  // AF_FS_POS_7
+{ 0xB020, 0xC0, BYTE_LEN, 0},  // AF_FS_POS_8
+{ 0xB012, 0x09, BYTE_LEN, 0},  // AF_FS_NUM_STEPS
+//2nd_scan_option
+{ 0xB013, 0x55, BYTE_LEN, 0},  // AF_FS_NUM_STEPS2
+{ 0xB014, 0x06, BYTE_LEN, 0},  // AF_FS_STEP_SIZE
+{ 0x8404, 0x05, BYTE_LEN, 0},  // SEQ_CMD
+{ SEQUENCE_WAIT_MS,300, WORD_LEN, 0},
+//{ 0x3EDA, 0x6060     // DAC_LD_14_15
+{ 0x0018, 0x2008, WORD_LEN, 0},        // STANDBY_CONTROL_AND_STATUS
+{ SEQUENCE_WAIT_MS,100, WORD_LEN, 0},
+{ 0x3EDA, 0x6060, WORD_LEN, 0 },       // DAC_LD_14_15
+{SEQUENCE_END, 0x00}
 };
 
 
 static struct reginfo sensor_af_trigger[] =
 {
-       {0x098e,0xb006},
-       {0xb006,0x01},
+       {0x098e,0xb006, WORD_LEN, 0 },
+       {0xb006,0x01, BYTE_LEN, 0},
        {SEQUENCE_END, 0x00}
 };
 static int sensor_af_single(struct i2c_client *client)
@@ -2587,7 +2628,11 @@ static int sensor_init(struct v4l2_subdev *sd, u32 val)
                goto sensor_INIT_ERR;
 
 #if (SENSOR_RESET_REG != SEQUENCE_END)
-    ret = sensor_write(client, SENSOR_RESET_REG, SENSOR_RESET_VAL);
+    struct reginfo reg_info;
+       reg_info.reg = SENSOR_RESET_REG;
+       reg_info.val = SENSOR_RESET_VAL;
+       reg_info.reg_len = SENSOR_RESET_REG_LEN;
+    ret = sensor_write(client, &reg_info);
     if (ret != 0) {
         SENSOR_TR("%s soft reset sensor failed\n",SENSOR_NAME_STRING());
         ret = -ENODEV;
@@ -2669,7 +2714,7 @@ static int sensor_init(struct v4l2_subdev *sd, u32 val)
        qctrl = soc_camera_find_qctrl(&sensor_ops, V4L2_CID_FOCUS_ABSOLUTE);
        if (qctrl)
         sensor->info_priv.focus = qctrl->default_value;
-
+       #if CONFIG_SENSOR_Focus
        if (sensor_af_init(client) < 0) {
                sensor->info_priv.funmodule_state &= ~SENSOR_AF_IS_OK;
                SENSOR_TR("%s auto focus module init is fail!\n",SENSOR_NAME_STRING());
@@ -2677,7 +2722,7 @@ static int sensor_init(struct v4l2_subdev *sd, u32 val)
                sensor->info_priv.funmodule_state |= SENSOR_AF_IS_OK;
                SENSOR_DG("%s auto focus module init is success!\n",SENSOR_NAME_STRING());
        }
-
+       #endif
        #if CONFIG_SENSOR_Flash
        qctrl = soc_camera_find_qctrl(&sensor_ops, V4L2_CID_FLASH);
        if (qctrl)
@@ -2816,6 +2861,63 @@ static bool sensor_fmt_videochk(struct v4l2_subdev *sd, struct v4l2_format *f)
                SENSOR_DG("%s %dx%d is video format\n", __FUNCTION__, f->fmt.pix.width, f->fmt.pix.height);
        return ret;
 }
+static struct reginfo* sensor_fmt_catch(int set_w, int set_h, int *ret_w, int *ret_h)
+{
+       struct reginfo *winseqe_set_addr = NULL;
+
+       if (((set_w <= 176) && (set_h <= 144)) && (sensor_qcif[0].reg!=SEQUENCE_END)) {
+               winseqe_set_addr = sensor_qcif;
+        *ret_w = 176;
+        *ret_h = 144;
+       } else if (((set_w <= 320) && (set_h <= 240)) && (sensor_qvga[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_qvga;
+        *ret_w = 320;
+        *ret_h = 240;
+       } else if (((set_w <= 352) && (set_h<= 288)) && (sensor_cif[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_cif;
+        *ret_w = 352;
+        *ret_h = 288;
+    } else if (((set_w <= 640) && (set_h <= 480)) && (sensor_vga[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_vga;
+        *ret_w = 640;
+        *ret_h = 480;
+    } else if (((set_w <= 800) && (set_h <= 600)) && (sensor_svga[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_svga;
+        *ret_w = 800;
+        *ret_h = 600;
+    } else if (((set_w <= 1024) && (set_h <= 768)) && (sensor_xga[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_xga;
+        *ret_w = 1024;
+        *ret_h = 768;
+       } else if (((set_w <= 1280) && (set_h <= 720)) && (sensor_720p[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_720p;
+        *ret_w = 1280;
+        *ret_h = 720;
+    } else if (((set_w <= 1280) && (set_h <= 1024)) && (sensor_sxga[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_sxga;
+        *ret_w = 1280;
+        *ret_h = 1024;
+    } else if (((set_w <= 1600) && (set_h <= 1200)) && (sensor_uxga[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_uxga;
+        *ret_w = 1600;
+        *ret_h = 1200;
+       } else if (((set_w <= 1920) && (set_h <= 1080)) && (sensor_1080p[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_1080p;
+        *ret_w = 1920;
+        *ret_h = 1080;
+    } else if (((set_w <= 2048) && (set_h <= 1536)) && (sensor_qxga[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_qxga;
+        *ret_w = 2048;
+        *ret_h = 1536;
+    } else if (((set_w <= 2592) && (set_h <= 1944)) && (sensor_qsxga[0].reg!=SEQUENCE_END)) {
+        winseqe_set_addr = sensor_qsxga;
+        *ret_w = 2592;
+        *ret_h = 1944;
+    }
+
+       return winseqe_set_addr;
+}
+
 static int sensor_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
 {
     struct i2c_client *client = sd->priv;
@@ -2853,78 +2955,7 @@ static int sensor_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
     set_w = pix->width;
     set_h = pix->height;
 
-       if (((set_w <= 176) && (set_h <= 144)) && (sensor_qcif[0].reg!=SEQUENCE_END))
-       {
-               winseqe_set_addr = sensor_qcif;
-        set_w = 176;
-        set_h = 144;
-       }
-       else if (((set_w <= 320) && (set_h <= 240)) && (sensor_qvga[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_qvga;
-        set_w = 320;
-        set_h = 240;
-    }
-    else if (((set_w <= 352) && (set_h<= 288)) && (sensor_cif[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_cif;
-        set_w = 352;
-        set_h = 288;
-    }
-    else if (((set_w <= 640) && (set_h <= 480)) && (sensor_vga[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_vga;
-        set_w = 640;
-        set_h = 480;
-    }
-    else if (((set_w <= 800) && (set_h <= 600)) && (sensor_svga[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_svga;
-        set_w = 800;
-        set_h = 600;
-    }
-       else if (((set_w <= 1024) && (set_h <= 768)) && (sensor_xga[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_xga;
-        set_w = 1024;
-        set_h = 768;
-    }
-       else if (((set_w <= 1280) && (set_h <= 720)) && (sensor_720p[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_720p;
-        set_w = 1280;
-        set_h = 720;
-    }
-    else if (((set_w <= 1280) && (set_h <= 1024)) && (sensor_sxga[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_sxga;
-        set_w = 1280;
-        set_h = 1024;
-    }
-    else if (((set_w <= 1600) && (set_h <= 1200)) && (sensor_uxga[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_uxga;
-        set_w = 1600;
-        set_h = 1200;
-    }
-    else if (((set_w <= 1920) && (set_h <= 1080)) && (sensor_1080p[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_1080p;
-        set_w = 1920;
-        set_h = 1080;
-    }
-       else if (((set_w <= 2048) && (set_h <= 1536)) && (sensor_qxga[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_qxga;
-        set_w = 2048;
-        set_h = 1536;
-    }
-       else if (((set_w <= 2592) && (set_h <= 1944)) && (sensor_qsxga[0].reg!=SEQUENCE_END))
-    {
-        winseqe_set_addr = sensor_qsxga;
-        set_w = 2592;
-        set_h = 1944;
-    }
+       winseqe_set_addr = sensor_fmt_catch(set_w, set_h, &set_w, &set_h);
 
     if ((winseqe_set_addr  != sensor->info_priv.winseqe_cur_addr) && winseqe_set_addr) {
         ret |= sensor_write_array(client, winseqe_set_addr);
@@ -2974,6 +3005,7 @@ sensor_s_fmt_end:
 
 static int sensor_try_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
 {
+       int ret = 0;
     struct v4l2_pix_format *pix = &f->fmt.pix;
     bool bayer = pix->pixelformat == V4L2_PIX_FMT_UYVY ||
         pix->pixelformat == V4L2_PIX_FMT_YUYV;
@@ -2997,7 +3029,12 @@ static int sensor_try_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
     else if (bayer)
         pix->width = ALIGN(pix->width, 2);
 
-    return 0;
+       if (sensor_fmt_catch(pix->width, pix->height, &pix->width, &pix->height) == NULL) {
+               pix->width = 0;
+               pix->height = 0;
+       }
+
+    return ret;
 }
 
  static int sensor_g_chip_ident(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *id)
@@ -3829,7 +3866,11 @@ static int sensor_video_probe(struct soc_camera_device *icd,
 
     /* soft reset */
 #if (SENSOR_RESET_REG != SEQUENCE_END)
-    ret = sensor_write(client, SENSOR_RESET_REG, SENSOR_RESET_VAL);
+    struct reginfo reg_info;
+       reg_info.reg = SENSOR_RESET_REG;
+       reg_info.val = SENSOR_RESET_VAL;
+       reg_info.reg_len = SENSOR_RESET_REG_LEN;
+    ret = sensor_write(client, &reg_info);
     if (ret != 0) {
         SENSOR_TR("%s soft reset sensor failed\n",SENSOR_NAME_STRING());
         ret = -ENODEV;
@@ -3867,6 +3908,7 @@ static int sensor_video_probe(struct soc_camera_device *icd,
     return 0;
 
 sensor_video_probe_err:
+
     return ret;
 }
 static long sensor_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
index 7123897e9db527d5f23bb5c3fdc9e1cee09ec907..ec0108205157ac65f719301eb4ca36fadf20738e 100755 (executable)
@@ -14,8 +14,13 @@ struct reginfo
 {
     u16 reg;
     u16 val;
+       u16 reg_len;
+       u16 rev;
 };
 
+#define WORD_LEN             0x04
+#define BYTE_LEN             0x02
+
 #define SEQUENCE_INIT        0x00
 #define SEQUENCE_NORMAL      0x01
 #define SEQUENCE_CAPTURE     0x02
index 0e754f53ddd5e19154b04cf36efda3f155240157..5ea145fce6bfb27f22f50173a18d892f7e0ea108 100755 (executable)
@@ -3394,7 +3394,7 @@ static int sensor_deactivate(struct i2c_client *client)
 
        /* ddl@rock-chips.com : all sensor output pin must change to input for other sensor */
        sensor_task_lock(client, 1);
-
+       sensor_ioctrl(icd, Sensor_PowerDown, 1);
        /* ddl@rock-chips.com : sensor config init width , because next open sensor quickly(soc_camera_open -> Try to configure with default parameters) */
        icd->user_width = SENSOR_INIT_WIDTH;
     icd->user_height = SENSOR_INIT_HEIGHT;
@@ -4463,11 +4463,11 @@ static int sensor_video_probe(struct soc_camera_device *icd,
 
     icd->formats = sensor_colour_formats;
     icd->num_formats = ARRAY_SIZE(sensor_colour_formats);
-       sensor_ioctrl(icd, Sensor_PowerDown, 1);
+
     return 0;
 
 sensor_video_probe_err:
-       sensor_ioctrl(icd, Sensor_PowerDown, 1);
+
     return ret;
 }
 static long sensor_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)