nopenpilot/selfdrive/camerad/cameras/sensor_i2c.h

1831 lines
71 KiB
C

static struct msm_camera_i2c_reg_array init_array_imx298[] = {
{0x101,0x0,0}, // IMAGE_ORIENT
{0x601,0x0,0}, // test pattern
//{0xb02,0,0}, // green correction?
// external clock setting
{0x136,0x18,0}, {0x137,0x0,0}, // EXCK_FREQ = Extclk_frequency_mhz
// global setting?
{0x30f4,0x1,0},
{0x30f5,0x7a,0},
{0x30f6,0x0,0},
{0x30f7,0xec,0},
{0x30fc,0x1,0},
{0x3101,0x1,0},
{0x5b2f,0x8,0},
{0x5d32,0x5,0},
{0x5d7c,0x0,0},
{0x5d7d,0x0,0},
{0x5db9,0x1,0},
{0x5e43,0x0,0},
{0x6300,0x0,0},
{0x6301,0xea,0},
{0x6302,0x0,0},
{0x6303,0xb4,0},
{0x6564,0x0,0},
{0x6565,0xb6,0},
{0x6566,0x0,0},
{0x6567,0xe6,0},
{0x6714,0x1,0},
{0x6758,0xb,0},
{0x6910,0x4,0},
{0x6916,0x1,0},
{0x6918,0x4,0},
{0x691e,0x1,0},
{0x6931,0x1,0},
{0x6937,0x2,0},
{0x693b,0x2,0},
{0x6d00,0x4a,0},
{0x6d01,0x41,0},
{0x6d02,0x23,0},
{0x6d05,0x4c,0},
{0x6d06,0x10,0},
{0x6d08,0x30,0},
{0x6d09,0x38,0},
{0x6d0a,0x2c,0},
{0x6d0b,0x2d,0},
{0x6d0c,0x34,0},
{0x6d0d,0x42,0},
{0x6d19,0x1c,0},
{0x6d1a,0x71,0},
{0x6d1b,0xc6,0},
{0x6d1c,0x94,0},
{0x6d24,0xe4,0},
{0x6d30,0xa,0},
{0x6d31,0x1,0},
{0x6d33,0xb,0},
{0x6d34,0x5,0},
{0x6d35,0x0,0},
{0x83c2,0x3,0},
{0x83c3,0x8,0},
{0x83c4,0x48,0},
{0x83c7,0x8,0},
{0x83cb,0x0,0},
{0xb101,0xff,0},
{0xb103,0xff,0},
{0xb105,0xff,0},
{0xb107,0xff,0},
{0xb109,0xff,0},
{0xb10b,0xff,0},
{0xb10d,0xff,0},
{0xb10f,0xff,0},
{0xb111,0xff,0},
{0xb163,0x3c,0},
{0xc2a0,0x8,0},
{0xc2a3,0x3,0},
{0xc2a5,0x8,0},
{0xc2a6,0x48,0},
{0xc2a9,0x0,0},
{0xf800,0x5e,0},
{0xf801,0x5e,0},
{0xf802,0xcd,0},
{0xf803,0x20,0},
{0xf804,0x55,0},
{0xf805,0xd4,0},
{0xf806,0x1f,0},
{0xf808,0xf8,0},
{0xf809,0x3a,0},
{0xf80a,0xf1,0},
{0xf80b,0x7e,0},
{0xf80c,0x55,0},
{0xf80d,0x38,0},
{0xf80e,0xe3,0},
{0xf810,0x74,0},
{0xf811,0x41,0},
{0xf812,0xbf,0},
{0xf844,0x40,0},
{0xf845,0xba,0},
{0xf846,0x70,0},
{0xf847,0x47,0},
{0xf848,0xc0,0},
{0xf849,0xba,0},
{0xf84a,0x70,0},
{0xf84b,0x47,0},
{0xf84c,0x82,0},
{0xf84d,0xf6,0},
{0xf84e,0x32,0},
{0xf84f,0xfd,0},
{0xf851,0xf0,0},
{0xf852,0x2,0},
{0xf853,0xf8,0},
{0xf854,0x81,0},
{0xf855,0xf6,0},
{0xf856,0xc0,0},
{0xf857,0xff,0},
{0xf858,0x10,0},
{0xf859,0xb5,0},
{0xf85a,0xd,0},
{0xf85b,0x48,0},
{0xf85c,0x40,0},
{0xf85d,0x7a,0},
{0xf85e,0x1,0},
{0xf85f,0x28,0},
{0xf860,0x15,0},
{0xf861,0xd1,0},
{0xf862,0xc,0},
{0xf863,0x49,0},
{0xf864,0xc,0},
{0xf865,0x46,0},
{0xf866,0x40,0},
{0xf867,0x3c,0},
{0xf868,0x48,0},
{0xf869,0x8a,0},
{0xf86a,0x62,0},
{0xf86b,0x8a,0},
{0xf86c,0x80,0},
{0xf86d,0x1a,0},
{0xf86e,0x8a,0},
{0xf86f,0x89,0},
{0xf871,0xb2,0},
{0xf872,0x10,0},
{0xf873,0x18,0},
{0xf874,0xa,0},
{0xf875,0x46,0},
{0xf876,0x20,0},
{0xf877,0x32,0},
{0xf878,0x12,0},
{0xf879,0x88,0},
{0xf87a,0x90,0},
{0xf87b,0x42,0},
{0xf87d,0xda,0},
{0xf87e,0x10,0},
{0xf87f,0x46,0},
{0xf880,0x80,0},
{0xf881,0xb2,0},
{0xf882,0x88,0},
{0xf883,0x81,0},
{0xf884,0x84,0},
{0xf885,0xf6,0},
{0xf886,0xd2,0},
{0xf887,0xf9,0},
{0xf888,0xe0,0},
{0xf889,0x67,0},
{0xf88a,0x85,0},
{0xf88b,0xf6,0},
{0xf88c,0xa1,0},
{0xf88d,0xfc,0},
{0xf88e,0x10,0},
{0xf88f,0xbd,0},
{0xf891,0x18,0},
{0xf892,0x21,0},
{0xf893,0x24,0},
{0xf895,0x18,0},
{0xf896,0x19,0},
{0xf897,0xb4,0},
{0x4e29,0x1,0},
// PDAF stuff
{0x3166,0x1,0}, //AREA_EN_0
{0x3167,0x1,0},
{0x3168,0x1,0},
{0x3169,0x1,0},
{0x316a,0x1,0},
{0x316b,0x1,0},
{0x316c,0x1,0},
{0x316d,0x1,0},
{0x3158,0x2,0},
{0x3159,0x2,0},
{0x315a,0x2,0},
{0x315b,0x3,0},
{0x3013,0x7,0}, //RMSC_NR_MODE
{0x3035,0x1,0},
{0x3051,0x0,0},
{0x3056,0x2,0},
{0x3057,0x1,0},
{0x3060,0x0,0},
{0x8435,0x0,0},
{0x8455,0x0,0},
{0x847c,0x0,0},
{0x84fb,0x1,0},
{0x9619,0xa0,0},
{0x961b,0xa0,0},
{0x961d,0xa0,0},
{0x961f,0x20,0},
{0x9621,0x20,0},
{0x9623,0x20,0},
{0x9625,0xa0,0},
{0x9627,0xa0,0},
{0x9629,0xa0,0},
{0x962b,0x20,0},
{0x962d,0x20,0},
{0x962f,0x20,0},
{0x9901,0x35,0},
{0x9903,0x23,0},
{0x9905,0x23,0},
{0x9906,0x0,0},
{0x9907,0x31,0},
{0x9908,0x0,0},
{0x9909,0x1b,0},
{0x990a,0x0,0},
{0x990b,0x15,0},
{0x990d,0x3f,0},
{0x990f,0x3f,0},
{0x9911,0x3f,0},
{0x9913,0x64,0},
{0x9915,0x64,0},
{0x9917,0x64,0},
{0x9919,0x50,0},
{0x991b,0x60,0},
{0x991d,0x65,0},
{0x991f,0x1,0},
{0x9921,0x1,0},
{0x9923,0x1,0},
{0x9925,0x23,0},
{0x9927,0x23,0},
{0x9929,0x23,0},
{0x992b,0x2f,0},
{0x992d,0x1a,0},
{0x992f,0x14,0},
{0x9931,0x3f,0},
{0x9933,0x3f,0},
{0x9935,0x3f,0},
{0x9937,0x6b,0},
{0x9939,0x7c,0},
{0x993b,0x81,0},
{0x9943,0xf,0},
{0x9945,0xf,0},
{0x9947,0xf,0},
{0x9949,0xf,0},
{0x994b,0xf,0},
{0x994d,0xf,0},
{0x994f,0x42,0},
{0x9951,0xf,0},
{0x9953,0xb,0},
{0x9955,0x5a,0},
{0x9957,0x13,0},
{0x9959,0xc,0},
{0x995a,0x0,0},
{0x995b,0x0,0},
{0x995c,0x0,0},
{0x996b,0x0,0},
{0x996d,0x10,0},
{0x996f,0x10,0},
{0x9971,0xc8,0},
{0x9973,0x32,0},
{0x9975,0x4,0},
{0x9976,0xa,0},
{0x9977,0xa,0},
{0x9978,0xa,0},
{0x99a4,0x2f,0},
{0x99a5,0x2f,0},
{0x99a6,0x2f,0},
{0x99a7,0xa,0},
{0x99a8,0xa,0},
{0x99a9,0xa,0},
{0x99aa,0x2f,0},
{0x99ab,0x2f,0},
{0x99ac,0x2f,0},
{0x99ad,0x0,0},
{0x99ae,0x0,0},
{0x99af,0x0,0},
{0x99b0,0x40,0},
{0x99b1,0x40,0},
{0x99b2,0x40,0},
{0x99b3,0x30,0},
{0x99b4,0x30,0},
{0x99b5,0x30,0},
{0x99bb,0xa,0},
{0x99bd,0xa,0},
{0x99bf,0xa,0},
{0x99c0,0x9,0},
{0x99c1,0x9,0},
{0x99c2,0x9,0},
{0x99c6,0x3c,0},
{0x99c7,0x3c,0},
{0x99c8,0x3c,0},
{0x99c9,0xff,0},
{0x99ca,0xff,0},
{0x99cb,0xff,0},
{0x9b01,0x35,0},
{0x9b03,0x14,0},
{0x9b05,0x14,0},
{0x9b07,0x31,0},
{0x9b09,0x1b,0},
{0x9b0b,0x15,0},
{0x9b0d,0x1e,0},
{0x9b0f,0x1e,0},
{0x9b11,0x1e,0},
{0x9b13,0x64,0},
{0x9b15,0x64,0},
{0x9b17,0x64,0},
{0x9b19,0x50,0},
{0x9b1b,0x60,0},
{0x9b1d,0x65,0},
{0x9b1f,0x1,0},
{0x9b21,0x1,0},
{0x9b23,0x1,0},
{0x9b25,0x14,0},
{0x9b27,0x14,0},
{0x9b29,0x14,0},
{0x9b2b,0x2f,0},
{0x9b2d,0x1a,0},
{0x9b2f,0x14,0},
{0x9b31,0x1e,0},
{0x9b33,0x1e,0},
{0x9b35,0x1e,0},
{0x9b37,0x6b,0},
{0x9b39,0x7c,0},
{0x9b3b,0x81,0},
{0x9b43,0xf,0},
{0x9b45,0xf,0},
{0x9b47,0xf,0},
{0x9b49,0xf,0},
{0x9b4b,0xf,0},
{0x9b4d,0xf,0},
{0x9b4f,0x2d,0},
{0x9b51,0xb,0},
{0x9b53,0x8,0},
{0x9b55,0x40,0},
{0x9b57,0xd,0},
{0x9b59,0x8,0},
{0x9b5a,0x0,0},
{0x9b5b,0x0,0},
{0x9b5c,0x0,0},
{0x9b6b,0x0,0},
{0x9b6d,0x10,0},
{0x9b6f,0x10,0},
{0x9b71,0xc8,0},
{0x9b73,0x32,0},
{0x9b75,0x4,0},
{0x9bb0,0x40,0},
{0x9bb1,0x40,0},
{0x9bb2,0x40,0},
{0x9bb3,0x30,0},
{0x9bb4,0x30,0},
{0x9bb5,0x30,0},
{0x9bbb,0xa,0},
{0x9bbd,0xa,0},
{0x9bbf,0xa,0},
{0x9bc0,0x9,0},
{0x9bc1,0x9,0},
{0x9bc2,0x9,0},
{0x9bc6,0x18,0},
{0x9bc7,0x18,0},
{0x9bc8,0x18,0},
{0x9bc9,0xff,0},
{0x9bca,0xff,0},
{0x9bcb,0xff,0},
{0xb2b2,0x1,0},
};
static struct msm_camera_i2c_reg_array mode_setting_array_imx298[] = {
// i2c settings for mode 3
// {
// .x_output = 2328,
// .y_output = 1748,
// .line_length_pclk = 5536,
// .frame_length_lines = 1802,
// .vt_pixel_clk = 299300000,
// .op_pixel_clk = 299300000,
// .binning_factor = 2,
// .min_fps = 15.000000,
// .max_fps = 30.020000,
// .mode = 1,
// .offset_x = 0,
// .offset_y = 0,
// .scale_factor = 1.000000,
// .is_pdaf_supported = 1,
// }
// mode settings
// hdr settings
{0x0114, 0x03, 0}, // CSI_LANE_MODE = 4-lane
/*{0x0220, 0x00, 0}, // HDR_MODE = disable
{0x0221, 0x11, 0}, // HDR_RESO_REDU_H/V = Full Pixel
{0x0222, 0x10, 0}, // EXPO_RATIO = 16*/
{0x0220, 0x01, 0}, // HDR_MODE = enable with combined gain and 16x ratio
{0x0221, 0x22, 0}, // HDR_RESO_REDU_H/V = 2 binning
{0x0222, 0x10, 0}, // EXPO_RATIO = 16
{0x0340, 0x07, 0}, {0x0341, 0x0a, 0}, // FRM_LENGTH = frame_length_lines = 1802
{0x0342, 0x15, 0}, {0x0343, 0xa0, 0}, // LINE_LENGTH = line_length_pclk = 5536
{0x0344, 0x00, 0}, {0x0345, 0x00, 0}, // x_addr_start
{0x0346, 0x00, 0}, {0x0347, 0x00, 0}, // y_addr_start
{0x0348, 0x12, 0}, {0x0349, 0x2f, 0}, // x_addr_end
{0x034a, 0x0d, 0}, {0x034b, 0xa7, 0}, // y_addr_end
{0x0381, 0x01, 0}, // x_even_inc
{0x0383, 0x01, 0}, // x_odd_inc
{0x0385, 0x01, 0}, // y_even_inc
{0x0387, 0x01, 0}, // y_odd_inc
{0x0900, 0x01, 0}, // BINNING_MODE = enable
{0x0901, 0x22, 0}, // BINING_TYPE_H/V = 2binning
{0x0902, 0x00, 0}, // binning_weighting = average
{0x0b06, 1, 0}, // SING_DEF_CORR_EN
{0x0b0a, 1, 0}, // combined defect correct
{0x3010, 0x66, 0}, // HDR_OUTPUT_CTRL = ATR + HDR compose + DPC1D + DCP2D
{0x3011, 0x01, 0}, // HDR_OUTPUT_CTRL2 = PD enable
{0x30c0, 0x11, 0}, // RED_GAIN_CB?
{0x300d, 0x00, 0}, // FORCE_FDSUM = disable
{0x30fd, 0x00, 0},
{0x8493, 0x00, 0},
{0x8863, 0x00, 0},
{0x90d7, 0x19, 0},
// set black level
{0x3090, 1, 0},
{0x3092, 0, 0},
{0x3093, 0x38, 0},
// output size settings
{0x0112, 0x0a, 0}, {0x0113, 0x0a, 0}, // CS_DT_FMT_H = 0x0a0a (RAW10 output)
{0x034c, 0x09, 0}, {0x034d, 0x18, 0}, // X_OUT_SIZE = 2328 (1164*2)
{0x034e, 0x06, 0}, {0x034f, 0xd4, 0}, // Y_OUT_SIZE = 1748 (874*2)
{0x0401, 0x00, 0}, // SCALING_MODE
{0x0404, 0x00, 0}, {0x0405, 0x10, 0}, // SCALE_M
{0x0408, 0x00, 0}, {0x0409, 0x00, 0}, // DCROP_XOFS
{0x040a, 0x00, 0}, {0x040b, 0x00, 0}, // DCROP_YOFS
{0x040c, 0x09, 0}, {0x040d, 0x18, 0}, // DCROP_WIDTH
{0x040e, 0x06, 0}, {0x040f, 0xd4, 0}, // DCROP_HIGT
// clock settings
// 299300000
/*
{0x0301, 0x05, 0}, // VT_PIX_CLK_DIV
{0x0303, 0x02, 0}, // VT_SYS_CLK_DIV
{0x0305, 0x04, 0}, // PRE_PLL_CLK_DIV
{0x0306, 0x00, 0}, {0x0307, 0x7d, 0}, // PLL_MULTIPLIER . mode 1: 0xf6
{0x0309, 0x0a, 0}, // OP_PIX_CLK_DIV
{0x030b, 0x01, 0}, // OP_SYS_CLK_DIV
{0x030d, 0x0f, 0}, // PREPLLCK_OP_DIV
{0x030e, 0x03, 0}, {0x030f, 0x41, 0}, // PLL_OP_MPY
{0x0310, 0x00, 0}, // PLL_MULT_DRIV
*/
// 600000000
{0x0301, 0x05, 0},
{0x0303, 0x02, 0},
{0x0305, 0x04, 0},
{0x0306, 0x00, 0},
{0x0307, 0xfa, 0},
{0x0309, 0x0a, 0},
{0x030b, 0x01, 0},
{0x030d, 0x0f, 0},
{0x030e, 0x03, 0}, {0x030f, 0x41, 0},
{0x0310, 0x00, 0},
// data rate settings
/*{0x0820, 0x0b, 0}, // requested_link_bit_rate_mbps = 3000
{0x0821, 0xb8, 0},
{0x0822, 0x00, 0},
{0x0823, 0x00, 0},*/
{0x0820, 0x17, 0}, // requested_link_bit_rate_mbps = 6000
{0x0821, 0x70, 0},
{0x0822, 0x00, 0},
{0x0823, 0x00, 0},
//integration time settings
{0x0202, 0x07, 0}, {0x0203, 0x00, 0}, // INTEG_TIME = 1792
{0x0224, 0x01, 0}, {0x0225, 0xf4, 0}, // ST_COARSE_INTEG_TIME = 506
// gain settings
{0x0204, 0x00, 0}, {0x0205, 0x00, 0}, // ANA_GAIN_GLOBAL = 512 / (512 - X)
{0x0216, 0x00, 0}, {0x0217, 0x00, 0}, // ST_ANA_GAIN_GLOBAL[8]
{0x020e, 0x01, 0}, {0x020f, 0x00, 0}, // DIG_GAIN_GR
{0x0210, 0x01, 0}, {0x0211, 0x00, 0}, // DIG_GAIN_R
{0x0212, 0x01, 0}, {0x0213, 0x00, 0}, // DIG_GAIN_B
{0x0214, 0x01, 0}, {0x0215, 0x00, 0}, // DIG_GAIN_GB
// HDR white balance settings (ABS_GAIN)
{0xb8e, 0x01, 0}, {0xb8f, 0x00, 0}, // GR
{0xb90, 0x02, 0}, {0xb91, 0x2b, 0}, // R
{0xb92, 0x01, 0}, {0xb93, 0xd4, 0}, // B
{0xb94, 0x01, 0}, {0xb95, 0x00, 0}, // GB
// phase detection settings
{0x3058, 0x00, 0}, // NML_NR_EN
{0x3103, 0x01, 0}, // NML_PD_CAL_ENABLE = enable
{0x3108, 0x00, 0}, {0x3109, 0x2c, 0}, //PD_AREA_X_OFFSET
{0x310a, 0x00, 0}, {0x310b, 0x24, 0}, //PD_AREA_Y_OFFSET
{0x310c, 0x01, 0}, {0x310d, 0xa4, 0}, //PD_AREA_WIDTH
{0x310e, 0x01, 0}, {0x310f, 0xa4, 0}, //PD_AREA_HEIGHT
// whole size is 0x918 x 0x6d4
{0x3110, 0x03, 0}, // PD_AREA_0 = 0x375-0x4d1, 0x258-0x3b6
{0x3111, 0x75, 0},
{0x3112, 0x02, 0},
{0x3113, 0x58, 0},
{0x3114, 0x04, 0},
{0x3115, 0xd1, 0},
{0x3116, 0x03, 0},
{0x3117, 0xb6, 0},
{0x3118, 0x04, 0}, // PD_AREA_1 = 0x446-0x5a2, 0x258-0x3b6
{0x3119, 0x46, 0},
{0x311a, 0x02, 0},
{0x311b, 0x58, 0},
{0x311c, 0x05, 0},
{0x311d, 0xa2, 0},
{0x311e, 0x03, 0},
{0x311f, 0xb6, 0},
{0x3120, 0x03, 0}, // PD_AREA_2 = 0x375-0x4d1, 0x32a-0x488
{0x3121, 0x75, 0},
{0x3122, 0x03, 0},
{0x3123, 0x2a, 0},
{0x3124, 0x04, 0},
{0x3125, 0xd1, 0},
{0x3126, 0x04, 0},
{0x3127, 0x88, 0},
{0x3128, 0x04, 0}, // PD_AREA_3 = 0x446-0x5a2, 0x32a-0x488
{0x3129, 0x46, 0},
{0x312a, 0x03, 0},
{0x312b, 0x2a, 0},
{0x312c, 0x05, 0},
{0x312d, 0xa2, 0},
{0x312e, 0x04, 0},
{0x312f, 0x88, 0},
{0x3130, 0x03, 0}, // PD_AREA_4 = 0x375-0x5a2, 0x258-0x488
{0x3131, 0x75, 0},
{0x3132, 0x02, 0},
{0x3133, 0x58, 0},
{0x3134, 0x05, 0},
{0x3135, 0xa2, 0},
{0x3136, 0x04, 0},
{0x3137, 0x88, 0},
{0x3138, 0x02, 0}, // PD_AREA_5 = 0x2ba-0x65d, 0x210-0x4d0
{0x3139, 0xba, 0},
{0x313a, 0x02, 0},
{0x313b, 0x10, 0},
{0x313c, 0x06, 0},
{0x313d, 0x5d, 0},
{0x313e, 0x04, 0},
{0x313f, 0xd0, 0},
{0x3140, 0x00, 0}, // PD_AREA_6 = 0xa1-0x876, 0x6b-0x676
{0x3141, 0xa1, 0},
{0x3142, 0x00, 0},
{0x3143, 0x6b, 0},
{0x3144, 0x08, 0},
{0x3145, 0x76, 0},
{0x3146, 0x06, 0},
{0x3147, 0x76, 0},
{0x3148, 0x00, 0}, // PD_AREA_7 = 0xa1-0x876, 0x5e-0x34c
{0x3149, 0xa1, 0},
{0x314a, 0x00, 0},
{0x314b, 0x5e, 0},
{0x314c, 0x08, 0},
{0x314d, 0x76, 0},
{0x314e, 0x03, 0},
{0x314f, 0x4c, 0},
{0x3165, 0x02, 0}, // AREA_EN_0 = free area
};
// static struct msm_camera_i2c_reg_array reg_array3[] = {
// // REG_HOLD ON
// {0x104,0x1,0},
// // from regression
// {0x3002,0x0,0},
// // FRM_LENGTH, 1802 vs 3554
// // {0x340,0x7,0}, {0x341,0xa,0}, // camera start {0x340,0xd,0}, {0x341,0xe2,0},
// // INTEG_TIME aka coarse_int_time_addr aka shutter speed
// {0x202,0x03,0}, {0x203,0xda,0},
// // global_gain_addr
// {0x204,0x0,0}, {0x205,0x0,0},
// //??
// {0x20e,0x1,0}, {0x20f,0x0,0},
// {0x210,0x1,0}, {0x211,0x0,0},
// {0x212,0x1,0}, {0x213,0x0,0},
// {0x214,0x1,0}, {0x215,0x0,0},
// // REG_HOLD: mode setting
// {0x104,0x0,0},
// };
// start, remove standby mode
static struct msm_camera_i2c_reg_array start_reg_array[] = {{0x100,0x1,0}};
// stop, enable standby mode
static struct msm_camera_i2c_reg_array stop_reg_array[] = {{0x100,0x0,0}};
///////////////////
static struct msm_camera_i2c_reg_array init_array_imx179[] = {
{ 0x100, 0x0, 0}, // MODE_SELECT
{ 0x101, 0x0, 0}, // IMAGE_ORIENT
{ 0x202, 0x9, 0}, { 0x203, 0xd2, 0}, // COARSE_INTEGRATION_TIME
{ 0x301, 0x5, 0}, // vt_pix_clk_div
{ 0x303, 0x1, 0}, // vt_sys_clk_div
{ 0x305, 0x6, 0}, // pre_pll_clk_div
{ 0x309, 0x5, 0}, // op_pix_clk_div
{ 0x30b, 0x1, 0}, // op_sys_clk_div
{ 0x30c, 0x0, 0}, { 0x30d, 0x9d, 0},
{ 0x340, 0x9, 0}, { 0x341, 0xd6, 0}, // frame_length_lines
{ 0x342, 0xd, 0}, { 0x343, 0x70, 0}, // line_length_pclk
{ 0x344, 0x0, 0}, { 0x345, 0x0, 0}, // x_addr_start
{ 0x346, 0x0, 0}, { 0x347, 0x0, 0}, // y_addr_start
{ 0x348, 0xc, 0}, { 0x349, 0xcf, 0}, // last_pixel / x_addr_end
{ 0x34a, 0x9, 0}, { 0x34b, 0x9f, 0}, // last_line / y_addr_end
{ 0x34c, 0xc, 0}, { 0x34d, 0xd0, 0}, // pixels_per_line / x_output_size
{ 0x34e, 0x9, 0}, { 0x34f, 0xa0, 0}, // lines_per_frame / y_output_size
{ 0x383, 0x1, 0}, // x_odd_inc
{ 0x387, 0x1, 0}, // y_odd_inc
{ 0x390, 0x0, 0}, // binning_mode
{ 0x401, 0x0, 0}, // SCALING_MODE
{ 0x405, 0x10, 0}, // SCALE_M
{0x3020, 0x10, 0},
{0x3041, 0x15, 0}, // READ_MODE?
{0x3042, 0x87, 0},
{0x3089, 0x4f, 0},
{0x3309, 0x9a, 0},
{0x3344, 0x57, 0},
{0x3345, 0x1f, 0},
{0x3362, 0xa, 0},
{0x3363, 0xa, 0},
{0x3364, 0x0, 0},
{0x3368, 0x18, 0},
{0x3369, 0x0, 0},
{0x3370, 0x6f, 0},
{0x3371, 0x27, 0},
{0x3372, 0x4f, 0},
{0x3373, 0x2f, 0},
{0x3374, 0x27, 0},
{0x3375, 0x2f, 0},
{0x3376, 0x97, 0},
{0x3377, 0x37, 0},
{0x33c8, 0x0, 0},
{0x33d4, 0xc, 0},
{0x33d5, 0xd0, 0},
{0x33d6, 0x9, 0},
{0x33d7, 0xa0, 0},
// znr
{0x4100, 0xe, 0},
{0x4108, 0x1, 0},
{0x4109, 0x7c, 0},
};
/////////////// ois stuff ///////////////
/*
#define _OP_FIRM_DWNLD 0x80
#define _OP_Periphe_RW 0x82
#define _OP_Memory__RW 0x84
#define _OP_AD_TRNSFER 0x86
#define _OP_COEF_DWNLD 0x88
#define _OP_PrgMem__RD 0x8A
#define _OP_SpecialCMD 0x8C
*/
static struct reg_settings_ois_t ois_init_settings[] = {
{
.reg_addr = 0x8262,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0xbf03,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8263,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x9f05,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8264,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x6040,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8260,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x1130,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8265,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x8000,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8261,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0280,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8261,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0380,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8261,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0988,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x34\x84\x00\x03\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x03\x00\x10\x7e\x84\x50\x00\x08\x40\x7e\xa0\x00\x03\x00\x10\x7e\x84\x60\x00\x08\x40\x7e\xa0\x00\x03\x00\x90\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8084,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x10\x08\x80\x00\xa0\x10\x00\x08\x7f\xff\x11\x8f\x02\x07\x80\x00\x11\x40\xff\xa0\x90\x01\x84\x20\x8f\x08\x40\xfe\x90\x40\xf5",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x80a0,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x08\x80\x01\xa0\x00\x01\x11\x8f\x02\x07\xff\xff\x11\x08\x00\x20\x50\x12\x07\x00\x10\x08\x80\x00\xa0\x10\xff\x84\x20\x0a",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x7f\xff\x21\x08\xfe\x84\x00\x04\x07\x20\x0c\x08\x7f\xff\x21\x08\xfe\x84\x00\x03\x00\x90\x17\x84\x20\x1f\x08\x80\x17\xa0\x10\x10",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x7f\xff\x21\x10\x00\x08\x01\x00\x11\x40\x51\xa0\x90\x17\x84\x20\x0f\x08\x80\x47\xa0\x8d\x0c\x07\x00\x00\x11\x30\x03\x07\x80\x41",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8090,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x50\x00\x08\x40\xfc\x90\x88\x2f\x84\x00\x00\x11\x30\x02\x07\x40\xff\x90\x50\x00\x08\x40\xfd\x90\x40\x7f\xa0\x10\xff\x84\x20\x2c",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x7f\xff\x11\x20\x0d\x08\x80\x0f\x90\x80\x26\xa0\x90\x2e\x84\x00\x10\x08\x90\x26\x84\x00\x10\x08\x80\x1f\xa0\x20\x2e\x08\x40\xed",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8090,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x20\x0f\x08\x80\x0e\x90\x00\x00\x21\x30\x02\x07\x40\xeb\xa0\x50\x00\x08\x40\xfe\x90\x40\x7f\xa0\x04\xeb\x84\x10\x00\x20\x20\x0f",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x80\x00\x21\x60\x04\x07\x40\xff\xa0\x10\x00\x08\x40\xea\x90\x10\x00\x20\x20\x0f\x08\x80\x00\x11\x00\x0b\x07\x08\x00\x20\x60\x0d",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x00\x08\x40\xea\x90\x8f\x06\x07\x04\xff\x84\x20\x09\x60\x10\xfc\x84\x08\xfd\x84\x04\xfe\x84\x00\x03\x00\x00\x10\x08\x80\x37",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x80a0,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x90\x69\x84\x00\x10\x08\x80\x69\xa0\x20\x1a\x08\x40\x64\xa0\x10\x10\x08\x80\x4f\xa0\x20\x1d\x08\x40\x5f\xa0\x20\x1e\x08\x40\x5d",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x80a0,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x00\x08\x80\x68\x90\x40\xfe\xa0\x20\x0e\x07\x50\x00\x08\x40\x7f\xa0\x04\xfe\x84\x00\x04\x00\x10\xf0\x44\x50\x00\x08\x00\x7f",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x20\xf0\x60\x04\x5c\x84\x04\x61\x84\x04\x57\x84\x00\x00\x21\x04\x74\x84\x00\x40\x21\x00\x0b\x07\x04\x74\x84\x00\x00\x21\x10\x57",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8084,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x30\x20\x08\x00\x04\x11\x50\x00\x08\x03\xff\x11\x20\xfa\x60\x10\xf0\x44\x50\x20\x08\x00\x7f\x11\x60\x20\x08\x40\x00\x08\x00\x08",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x30\x1a\x07\x50\x00\x08\x07\x00\x11\x9f\x1d\x07\x8b\x1e\x07\x9c\x15\x07\x20\xf8\x60\x10\x28\x44\x60\x00\x08\x01\x00\x11\x20\x28",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8060,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x87\x1b\x07\x40\xf7\xa0\x81\x27\x07\x20\x48\x60\x10\x0a\x44\x10\xf4\x84\x3b\xd4\x00\xe0\x14\x43\x08\x00\x20\x00\x06\x07\x89\x02",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\xae\x90\x81\x04\x07\x40\x2e\x90\x40\x7f\xa0\x10\x2e\x44\x20\x2f\x08\x9f\x02\x07\x00\x00\x11\x10\x00\x20\x00\x00\x08\x40\x67",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x80a0,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x11\x84\x02\x07\x20\xf0\x60\x9f\x03\x07\x40\x7e\xa0\x40\x65\x90\x10\x62\x84\x10\x10\x08\x40\x61\xa0\x20\x1d\x08\x40\x5f",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x80a0,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x20\x1e\x08\x40\x5d\xa0\x10\x00\x08\x40\x5e\x90\x20\x30\x60\x10\xcf\x84\x20\x1c\x08\x7f\xff\x21\x3b\xf7\x00\xc8\x14\x43\x10\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8020,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x08\x40\xb5\x90\x40\xad\xa0\x00\x0a\x07\x10\x4f\x84\x20\x1c\x08\x7f\xff\x21\x3c\x01\x00\x48\x14\x43\x10\x00\x20\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x35\x90\x40\x2d\xa0\x00\x14\x07\x80\x0c\x07\x82\x03\x07\x04\x50\x84\x10\x00\x20\x20\x02\x07\x00\x08\x21\x40\x00\x08\x00\x01",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x50\xa0\x00\x04\x00\x20\x7f\x00\x80\x14\x43\x01\x00\x01\x04\x00\x11\x02\x00\x21\x10\x9f\x84\x10\x20\x08\x40\x97\x90\x10\xbf",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8084,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x20\x1d\x08\x40\xc6\xa0\x20\x8e\x08\x40\x72\x90\x40\x16\xa0\x10\x96\x84\x10\x00\x08\x40\x9e\x90\x20\x36\x60\x20\x91\x00\x00\x14",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8043,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x01\x01\x00\x04\x11\x00\x02\x21\x10\x1f\x84\x10\x20\x08\x40\x17\x90\x10\x3f\x84\x20\x1d\x08\x40\x46\xa0\x20\x8e\x08\x40\x70",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8090,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x96\xa0\x10\x16\x84\x10\x00\x08\x40\x1e\x90\x20\x34\x60\x10\x65\x84\x50\x10\x08\x00\x00\x21\x84\x03\x07\x20\xf0\x60\x9f\x03",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x7e\xa0\x00\x10\x08\x40\x65\xa0\x20\x0d\x08\x40\x64\x90\x40\x62\xa0\x00\x04\x00\x04\x1c\x44\x04\x1b\x44\xc3\xff\x21\x87\x04",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x7f\xa0\x10\x42\x84\x20\x1e\x08\x7f\xff\x21\x10\x20\x08\x40\x1c\x90\x10\x07\x84\x10\x00\x08\x40\x06\x90\x40\x55\xa0\x10\xc2",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8084,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x20\x1e\x08\x7f\xff\x21\x10\x20\x08\x40\x9c\x90\x10\x87\x84\x10\x00\x08\x40\x86\x90\x40\x56\xa0\x10\x56\x84\x20\x0f\x08\x40\x7b",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8090,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x22\x00\x60\x40\x00\x08\x40\x79\xa0\x00\x08\x11\x10\x55\x84\x20\x0f\x08\x40\x7a\x90\x22\x00\x60\x50\x00\x08\x40\x79\xa0\x00\xff",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x04\x6f\x84\x00\x05\x21\x21\x39\x00\x04\x00\x11\x10\xc1\x84\x20\x0f\x08\x70\x07\x07\x10\x10\x08\x40\xc0\xa0\x20\x0f\x08\x7f\xff",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x8f\x02\x07\x80\x00\x11\x08\x00\x20\x08\xc1\x84\x40\xbd\x90\x9e\x02\x07\x40\x7f\xa0\x40\xec\x90\x04\x6e\x84\x00\x05\x21\x21\x4c",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x04\x11\x10\x41\x84\x20\x0f\x08\x70\x07\x07\x10\x10\x08\x40\x40\xa0\x20\x0f\x08\x7f\xff\x11\x8f\x02\x07\x80\x00\x11\x08\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8020,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x08\x41\x84\x40\x3d\x90\x9e\x02\x07\x40\x7f\xa0\x40\x6d\x90\x10\x2d\x44\x20\xe7\x00\x08\x00\x11\x20\x32\x60\x80\x14\x43\x10\x2c",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8044,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x20\xec\x00\x00\x08\x11\x20\x31\x60\x00\x14\x43\x04\x34\x44\x40\x5b\xa0\x00\x04\x00\x21\x6a\x00\x80\x00\x11\x21\x70\x00\x3f\xff",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x08\xe8\x84\x20\x32\x50\x08\x68\x84\x20\x31\x50\x08\x5e\x84\x20\x30\x50\x0f\xc4\x07\x10\x34\x44\x10\x5b\x84\x6f\xf3\x07\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x02\x00\x21\x40\xfc\x90\x3d\xd4\x00\x04\xfc\x84\x00\x00\x21\x04\xfd\x84\x00\x08\x21\x00\x04\x00\x21\x81\x00\xc0\x00\x11\x04\x5b",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8084,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x02\x00\x21\x70\x06\x07\x10\xfe\x84\x30\x20\x08\x00\x03\x11\x10\x00\x08\x40\x59\x90\x04\xff\x84\x40\x58\xa0\x10\x59\x84\x20\x0f",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x59\xa0\x20\x00\x11\x70\x1e\x07\x10\x00\x08\x00\x0b\x11\x0f\xe4\x07\x10\x59\x84\x00\x00\x08\x20\x30\x50\x40\x59\xa0\x70\x06",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x00\x08\x00\x0a\x11\x0f\xec\x07\x08\x34\x44\x02\x10\x11\x10\x58\x84\x20\x0f\x08\x40\x58\xa0\x20\x00\x11\x30\x08\x07\x0f\xf4",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x58\x84\x00\x00\x08\x20\x30\x50\x40\x58\xa0\x70\x06\x07\x10\x00\x08\x00\x05\x11\x00\x04\x00\x10\x5a\x84\x00\x00\x08\x00\x01",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x5a\xa0\x08\x34\x44\x02\x00\x11\x30\x08\x07\x60\x00\x08\x00\x00\x11\x40\x5a\xa0\x8f\x4f\x07\x40\x7e\xa0\x00\x04\x00\x3c\xdd",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x00\x20\xa8\x14\x43\x04\xa7\x84\x20\x8e\x08\x40\xc4\x90\x40\xaf\xa0\x20\x0f\x08\x40\xc5\x90\x40\xa7\xa0\x3c\xe7\x00\x10\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8020,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x28\x14\x43\x04\x27\x84\x20\x8e\x08\x40\x44\x90\x40\x2f\xa0\x20\x0f\x08\x40\x45\x90\x40\x27\xa0\x00\x04\x00\x10\xf0\x44\x50\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\xff\xf7\x11\x93\x04\x07\x20\xf0\x60\x04\x61\x84\x04\x5c\x84\x40\x57\xa0\x00\x04\x00\x10\x61\x84\x00\x20\x08\x20\x1f\x08\x40\xff",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x80a0,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x00\x08\x40\x5c\x90\x40\x57\xa0\x04\x74\x84\x10\x00\x20\x00\x00\x08\x40\x74\xa0\x00\x01\x11\x20\x05\x07\x00\x40\x21\x70\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x7f\xff\x21\x08\xff\x84\x42\x00\x90\x85\x02\x07\x20\xf0\x60\x7f\xff\x11\x60\x20\x08\x00\xd0\x11\x40\x00\x08\x00\x02\x11\x86\x1b",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x74\xa0\x08\x6f\x84\x00\x00\x11\x04\xf1\x84\x00\x40\x21\x21\xf7\x00\x02\x00\x11\x60\x07\x07\x10\x20\x08\x40\xc3\x90\x20\x2f",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x80\x00\x11\x70\x02\x07\x7f\xff\x11\x10\x00\x08\x40\x8d\x90\x40\x85\xa0\x08\x6e\x84\x00\x00\x11\x04\xf0\x84\x00\x40\x21\x22\x07",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x02\x11\x60\x07\x07\x10\x20\x08\x40\x43\x90\x20\x2f\x08\x80\x00\x11\x70\x02\x07\x7f\xff\x11\x10\x00\x08\x40\x0d\x90\x40\x05",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x80a0,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\xec\x84\x00\x10\x08\x10\xe7\x84\x40\xe7\xa0\x20\x0f\x08\x40\xef\xa0\x10\x6d\x84\x00\x10\x08\x10\x6c\x84\x40\x6c\xa0\x20\x0f",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x7d\xa0\x7f\xff\x11\x00\x04\x00\x10\xef\x84\x00\x10\x08\x10\xee\x84\x40\xee\xa0\x20\x0f\x08\x40\xbd\xa0\x10\x7d\x84\x00\x10",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x7c\x84\x40\x7c\xa0\x20\x0f\x08\x40\x3d\xa0\x40\x00\x11\x3e\x9b\x00\xfb\xff\x21\x6f\x14\x43\x3e\x9e\x00\xff\xfb\x21\x6e\x14",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8043,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x3d\x57\x00\x40\xaf\xa0\xa0\x14\x43\x3d\x5a\x00\x40\x2f\xa0\x20\x14\x43\x00\x04\x00\x3d\x5e\x00\x40\xa5\xa0\xb0\x14\x43\x3d\x61",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x25\xa0\x30\x14\x43\x00\x00\x00\x22\x28\x00\x00\x02\x07\x22\x26\x00\x8a\x03\x07\x89\x04\x07\x40\x7e\xa0\x40\xbd\x90\x98\x14",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8043,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x9c\x84\x20\x8f\x08\x40\x9a\x90\x40\x99\xa0\x20\x2e\x08\x40\xbd\x90\x00\x10\x08\x40\x9b\xa0\x20\x0e\x08\x7f\xff\x21\x40\xf5",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8090,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x22\x3c\x00\x00\x02\x07\x22\x3a\x00\x82\x03\x07\x81\x04\x07\x40\x7e\xa0\x40\x3d\x90\x18\x14\x43\x10\x1c\x84\x20\x8f",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8008,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x1a\x90\x40\x19\xa0\x20\x2e\x08\x40\x3d\x90\x00\x10\x08\x40\x1b\xa0\x20\x0e\x08\x7f\xff\x21\x40\xf5\x90\x3d\x8c\x00\xb8\x14",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8043,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\xc2\xa0\x3d\x8f\x00\x38\x14\x43\x40\x42\xa0\x00\x04\x00\x10\x51\x84\x20\x0f\x08\x7f\xc0\x11\x40\x51\xa0\x08\xbb\x84\x08\x3b",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8084,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\xcb\x90\x11\x9e\x02\x07\xc7\x00\x11\x40\x7f\xa0\x08\xba\x84\x08\x3a\x84\x74\x70\x11\x9e\x02\x07\x59\x00\x11\x40\x7f\xa0\x3e\xed",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\xfd\xff\x21\xf1\x14\x43\x3e\xf0\x00\xff\xfd\x21\xf0\x14\x43\x00\x04\x00\x04\xb9\x84\x40\xb6\xa0\x04\x39\x84\x40\x36\xa0\x00\x04",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x3e\xc3\x00\x40\x87\xa0\x80\x14\x43\x3e\xc6\x00\x40\x07\xa0\x00\x14\x43\x00\x04\x00\x00\x00\x00\x04\xf5\x84\x00\x00\x21\x70\x03",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\xf5\x84\x10\x00\x08\x40\xf3\x90\x40\xf5\xa0\x3e\xd2\x00\x40\x85\xa0\x88\x14\x43\x3e\xd5\x00\x40\x05\xa0\x08\x14\x43\x00\x04",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8000,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x01\x07\x00\x02\x07\x00\x03\x07\x00\x04\x07\x00\x06\x07\x00\x16\x07\x00\x1e\x07\x00\x24\x07\x00\x3c\x07\x00\x72\x07\x00\x8d",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\xe0\x07\x00\xf6\x07\x01\x9f\x07\x01\xd1\x07\x00\x10\x07\x1f\xff\x07\x20\x03\x60\x0f\x5f\x07\x08\xfa\x84\x04\x11\x44\xff\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x2f\x63\x07\x70\x10\x08\x00\xf0\x21\x50\x00\x08\x00\xf0\x21\x40\xf9\x90\x00\x08\x07\x3e\x79\x00\x0f\x6b\x07\x90\x01\x07\x40\xf9",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x80a0,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x3f\x6e\x07\x70\x00\x08\x00\x7f\x11\x40\xf8\xa0\x9d\x07\x07\x20\x12\x60\x08\xfa\x84\x04\x11\x44\x3e\x54\x00\x00\x16\x07\x48\x80",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x08\x09\x44\x40\x75\x90\x7f\xef\x07\x10\x00\x20\x00\x10\x08\xff\xff\x21\x06\x00\x84\x40\xfb\xa0\x60\x00\x08\x00\x00\x21\x40\xff",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8090,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\xfb\x84\x60\x20\x08\x40\xfb\x90\x30\x00\x08\x00\x08\x11\x3d\xea\x00\x04\xfb\x84\x3d\xec\x00\x04\xff\x84\x40\xf8\xa0\x04\x11",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8044,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x8f\xff\x07\x20\x19\x60\x3e\xd2\x00\x00\x31\x07\x00\x01\x00\x00\x33\x07\x00\x02\x00\x27\x18\x43\x75\x00\x43\x8f\xff\x07\x20\x19",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8060,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x04\xf5\x84\x40\xf2\xa0\x04\x51\x84\x7f\xff\x21\x04\xf5\x84\x00\x00\x21\x04\xf3\x84\x00\x10\x21\x04\xf2\x84\x0c\x00\x21\x04\x72",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8044,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x77\x21\x3f\xfa\x07\x70\x20\x08\x00\x00\x11\x10\x2d\x44\x10\x2c\x44\x00\x20\x08\x10\x00\x11\x00\x00\x08\x00\x00\x11\x80\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8021,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x04\x73\x44\x07\x07\x21\x04\x72\x44\x00\x07\x21\x04\x73\x44\x07\x77\x21\x04\x73\x44\x00\x70\x21\x04\x2e\x44\x04\x2d\x44\x04\x2c",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8044,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x80\x00\x21\x04\x1c\x44\x04\x1b\x44\x0d\x00\x21\x04\x1c\x44\x04\x1b\x44\x0c\x80\x21\x04\x1c\x44\x04\x1b\x44\x1f\x08\x21\x0f\x18",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8043,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x08\x28\x44\x01\x11\x11\x08\x5d\x84\x10\x00\x10\x10\x00\x08\x40\x00\x21\x30\x04\x07\x40\xff\x90\x50\x20\x08\xc0\x00\x11\x10\xff",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8084,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x20\x08\x00\x40\x11\x40\x00\x08\x00\x01\x11\x20\x51\x60\x10\x00\x44\x60\x00\x08\x40\x54\x90\x20\x00\x60\x00\x79\x07\x81\x48",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x80\x03\x07\x40\xf8\xa0\x48\xc0\x11\x00\x77\x07\x00\x78\x07\x00\x79\x07\x00\x04\x07\x00\x7b\x07\x00\x7c\x07\x00\x7d\x07\x00\x55",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8007,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x7f\x07\x00\x80\x07\x00\x81\x07\x00\x74\x07\x00\x83\x07\x00\x82\x07\x00\x85\x07\x00\x86\x07\x0f\xef\x07\x1f\xff\x07\xff\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8011,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x10\x00\x20\x30\x10\x08\x00\x01\x21\x50\x00\x08\x00\x0f\x21\x40\xf9\x90\x30\x90\x07\x70\x10\x08\x00\x80\x21\x50\x00\x08\x00\xf0",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8021,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x08\xf9\x84\x04\xf8\x84\x2f\xff\x07\x3e\x59\x00\x04\xf1\x84\x04\xf0\x84\x04\x5a\x84\x00\x00\x21\x04\xf6\x84\x00\x02\x21\x04\xfa",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8084,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x40\x00\x21\x04\xf7\x84\x01\x04\x21\x04\x1c\x44\x04\x1b\x44\x0b\x23\x21\x0f\x18\x43\x04\x70\x44\x06\x66\x21\x04\x3b\x44\x04\x39",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8044,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x80\x21\x04\x3c\x44\x2a\x0a\x21\x04\x2f\x44\x00\x44\x21\x04\x29\x44\x00\x00\x21\x03\x19\x42\x4e\x19\x43\x0c\x59\x43\x27\x18",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8043,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x15\x00\x43\x04\x22\x44\x03\x07\x21\x04\x21\x44\x11\x11\x21\x04\x20\x44\x33\x33\x21\x00\x00\x42\xc0\x3d\x42\x80\x3d\x43\x04\x35",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8044,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x21\x04\x05\x43\x42\xcd\x00",
.reg_data_seq_size = 9,
},{
.reg_addr = 0x88ef,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x20\x00\x18\x00\x00\x00\x00\xab\x0a\x00\x40\x00\x40\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x27\x83\x64\x7e\xca\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x88b2,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x7f\x59\x7f\xbe\x7f\xfe\x7f\xfe\x7f\xee\x73\x54\x4c\x70\x5a\x00\x6b\x0e\x6b\x1c\x5b\xcb\x32\x8c\x0b\xd2\x13\x07\x28\x01\x49\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8800,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\xff\x7f\x0b\x97\x14\xae\xf7\x53\x26\x63\x07\x46\x00\x20\x00\x89\x00\x40\x80\x41\x00\x7f\xff\x7f\xd3\x09\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x88ff,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x7f\x00\x00\x00\x00\x90\xcb\x70\x74\xfe\x7f\x52\x09\x00\x00\xfe\x7f\x00\x00\x00\x00\x00\xf2\x00\x40\xf0\x7f\x00\x0c\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8800,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x4a\x00\x4a\x00\x24\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x50\x00\x30\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8800,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\xa0\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\x7f\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8800,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\xff\x7f\x00\x78\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x00\x40\x00\x40\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8800,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x80\xff\x7f\x1c\x1b\xc5\x07\xc0\x20\x12\xf0\x00\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8800,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x59\x00\x00\x00\x40\x00\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8800,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x0b",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8897,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x14\xae\xf7\x53\x26\x63\x07\x46\x00\x20\x00\x89\x00\x40\x80\x41\x00\x7f\xff\x7f\xd3\x09\x00\x00\xff\x7f\x00\x00\x00\x00\x90\xcb",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8870,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x74\xfe\x7f\x52\x09\x00\x00\xfe\x7f\x00\x00\x00\x00\x00\xf2\x00\x40\xf0\x7f\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x884a,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x24\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x50\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x03",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8800,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\x7f\x00\x00\x00\x00\x00\x00\xff\x7f\x00",
.reg_data_seq_size = 32,
},{
.reg_addr = 0x8878,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0000,
.data_type = MSM_CAMERA_I2C_SEQ_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x00\x40\x00\x40",
.reg_data_seq_size = 18,
},{
.reg_addr = 0x8205,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0c00,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8205,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0d00,
.data_type = MSM_CAMERA_I2C_WORD_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
},{
.reg_addr = 0x8c01,
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,
.reg_data = 0x0001,
.data_type = MSM_CAMERA_I2C_BYTE_DATA,
.i2c_operation = MSM_OIS_WRITE,
.delay = 0,
.reg_data_seq = "",
.reg_data_seq_size = 0,
}
};
/*
// still mode settings:
{0x847f, 0x0c0c,}, //_M_EQCTL
{0x8436, 0xfd7f,}, //_M_Kgxdr
{0x8440, 0xf07f,}, //_M_X_LMT
{0x8443, 0xb41e,}, //_M_X_TGT
{0x841b, 0x4001,}, //_M_Kgx10
{0x84b6, 0xfd7f,}, //_M_Kgydr
{0x84c0, 0xf07f,}, //_M_Y_LMT
{0x84c3, 0xb41e,}, //_M_Y_TGT
{0x849b, 0x4001,}, //_M_Kgy10
{0x8438, 0x2d0f,}, //_M_Kgx11
{0x84b8, 0x2d0f,}, //_M_Kgy11
{0x8447, 0x002b,}, //_M_KgxTG
{0x84c7, 0x002b,}, //_M_KgyTG
{0x847f, 0x0d0d,}, //_M_EQCTL
*/
static struct msm_camera_i2c_reg_array init_array_s5k3p8sp[] = {
{0x6028,0x2000,0}, {0x6214,0x7971,0}, {0x6218,0x7150,0}, {0x30e,0x3d,0},
{0x6028,0x2000,0}, {0x602a,0x2f38,0}, {0x6f12,0x88,0}, {0x6f12,0xd70,0},
{0x344,0x18,0},
{0x348,0x1217,0}, // last_pixel = 0x90C*2
{0x346,0x18,0},
{0x34a,0xd97,0}, // last_line = 0x6CC*2
{0x34c,0x900,0}, // width?
{0x34e,0x6c0,0}, // height?
{0x342,0x1400,0}, // line_length_pclk
{0x340,0xe3b,0}, // frame_length_lines
{0x202,0x200,0}, // integ_time
{0x200,0x618,0},
{0x900,0x122,0}, {0x380,0x1,0}, {0x382,0x3,0}, {0x384,0x3,0}, {0x386,0x1,0}, {0x400,0x0,0}, {0x404,0x10,0},
{0x3604,0x2,0}, {0x3606,0x103,0}, {0xf496,0x48,0}, {0xf470,0x20,0}, {0xf43a,0x15,0}, {0xf484,0x6,0}, {0xf440,0xaf,0}, {0xf442,0x44c6,0},
{0xf408,0xfff7,0}, {0x3664,0x19,0}, {0xf494,0x1010,0}, {0x367a,0x100,0}, {0x362a,0x104,0}, {0x362e,0x404,0}, {0x32b2,0x8,0}, {0x3286,0x3,0}, {0x328a,0x5,0},
{0xf47c,0x1f,0}, {0xf62e,0xc5,0}, {0xf630,0xcd,0}, {0xf632,0xdd,0}, {0xf634,0xe5,0}, {0xf636,0xf5,0}, {0xf638,0xfd,0}, {0xf63a,0x10d,0}, {0xf63c,0x115,0}, {0xf63e,0x125,0}, {0xf640,0x12d,0},
{0x6028,0x2000,0}, {0x602a,0x1704,0}, {0x6f12,0x8011,0}, {0x3070,0x0,0}, {0xb0e,0x0,0}, {0x317a,0x7,0}, {0x31c0,0xc8,0}, {0x1006,0x4,0}, {0x31a4,0x102,0},
};
static struct msm_camera_i2c_reg_array init_array_ov8865[] = {
// round 1
//{0x103,0x1,0}, // software reset
{0x100,0x0,0}, // standby on
{0x3638,0xff,0},
{0x302,0x1e,0}, {0x303,0x0,0}, {0x304,0x3,0}, {0x30d,0x1e,0}, {0x30e,0x0,0}, {0x30f,0x9,0}, {0x312,0x1,0}, {0x31e,0xc,0}, // PLL control
{0x3015,0x1,0}, {0x3018,0x72,0}, {0x3020,0x93,0}, {0x3022,0x1,0},
{0x3031,0xa,0}, // 10-bit mode
{0x3106,0x1,0}, {0x3305,0xf1,0}, {0x3308,0x0,0}, {0x3309,0x28,0}, {0x330a,0x0,0}, {0x330b,0x20,0}, {0x330c,0x0,0}, {0x330d,0x0,0}, {0x330e,0x0,0}, {0x330f,0x40,0}, {0x3307,0x4,0}, {0x3604,0x4,0}, {0x3602,0x30,0}, {0x3605,0x0,0}, {0x3607,0x20,0}, {0x3608,0x11,0}, {0x3609,0x68,0}, {0x360a,0x40,0}, {0x360c,0xdd,0}, {0x360e,0xc,0}, {0x3610,0x7,0}, {0x3612,0x86,0}, {0x3613,0x58,0}, {0x3614,0x28,0}, {0x3617,0x40,0}, {0x3618,0x5a,0}, {0x3619,0x9b,0}, {0x361c,0x0,0}, {0x361d,0x60,0}, {0x3631,0x60,0}, {0x3633,0x10,0}, {0x3634,0x10,0}, {0x3635,0x10,0}, {0x3636,0x10,0}, {0x3641,0x55,0}, {0x3646,0x86,0}, {0x3647,0x27,0}, {0x364a,0x1b,0}, {0x3500,0x0,0}, {0x3501,0x4c,0}, {0x3502,0x0,0}, {0x3503,0x0,0}, {0x3508,0x2,0},
{0x3509,0x0,0}, // AEC GAIN
{0x3700,0x24,0}, {0x3701,0xc,0}, {0x3702,0x28,0}, {0x3703,0x19,0}, {0x3704,0x14,0}, {0x3705,0x0,0}, {0x3706,0x38,0}, {0x3707,0x4,0}, {0x3708,0x24,0}, {0x3709,0x40,0}, {0x370a,0x0,0}, {0x370b,0xb8,0}, {0x370c,0x4,0}, {0x3718,0x12,0}, {0x3719,0x31,0}, {0x3712,0x42,0}, {0x3714,0x12,0}, {0x371e,0x19,0}, {0x371f,0x40,0}, {0x3720,0x5,0}, {0x3721,0x5,0}, {0x3724,0x2,0}, {0x3725,0x2,0}, {0x3726,0x6,0}, {0x3728,0x5,0}, {0x3729,0x2,0}, {0x372a,0x3,0}, {0x372b,0x53,0}, {0x372c,0xa3,0}, {0x372d,0x53,0}, {0x372e,0x6,0}, {0x372f,0x10,0}, {0x3730,0x1,0}, {0x3731,0x6,0}, {0x3732,0x14,0}, {0x3733,0x10,0}, {0x3734,0x40,0}, {0x3736,0x20,0}, {0x373a,0x2,0}, {0x373b,0xc,0}, {0x373c,0xa,0}, {0x373e,0x3,0}, {0x3755,0x40,0}, {0x3758,0x0,0}, {0x3759,0x4c,0}, {0x375a,0x6,0}, {0x375b,0x13,0}, {0x375c,0x40,0}, {0x375d,0x2,0}, {0x375e,0x0,0}, {0x375f,0x14,0}, {0x3767,0x1c,0}, {0x3768,0x4,0}, {0x3769,0x20,0}, {0x376c,0xc0,0}, {0x376d,0xc0,0}, {0x376a,0x8,0}, {0x3761,0x0,0}, {0x3762,0x0,0}, {0x3763,0x0,0}, {0x3766,0xff,0}, {0x376b,0x42,0}, {0x3772,0x23,0}, {0x3773,0x2,0}, {0x3774,0x16,0}, {0x3775,0x12,0}, {0x3776,0x8,0}, {0x37a0,0x44,0}, {0x37a1,0x3d,0}, {0x37a2,0x3d,0}, {0x37a3,0x1,0}, {0x37a4,0x0,0}, {0x37a5,0x8,0}, {0x37a6,0x0,0}, {0x37a7,0x44,0}, {0x37a8,0x58,0}, {0x37a9,0x58,0}, {0x3760,0x0,0}, {0x376f,0x1,0}, {0x37aa,0x44,0}, {0x37ab,0x2e,0}, {0x37ac,0x2e,0}, {0x37ad,0x33,0}, {0x37ae,0xd,0}, {0x37af,0xd,0}, {0x37b0,0x0,0}, {0x37b1,0x0,0}, {0x37b2,0x0,0}, {0x37b3,0x42,0}, {0x37b4,0x42,0}, {0x37b5,0x33,0}, {0x37b6,0x0,0}, {0x37b7,0x0,0}, {0x37b8,0x0,0}, {0x37b9,0xff,0}, {0x3800,0x0,0}, {0x3801,0xc,0}, {0x3802,0x0,0}, {0x3803,0xc,0},
{0x3804,0xc,0}, {0x3805,0xd3,0}, // 3283
{0x3806,0x9,0}, {0x3807,0xa3,0}, // 2467
{0x3808,0x6,0}, {0x3809,0x60,0}, // 0x660 = 1632 (width)
{0x380a,0x4,0}, {0x380b,0xc8,0}, // 0x4c8 = 1224 (height)
{0x380c,0x7,0}, {0x380d,0x83,0}, // 0x783 = 1923 (stride)
{0x380e,0x4,0}, {0x380f,0xe0,0}, // 0x4e0 = 1248 (vstride)
{0x3810,0x0,0}, {0x3811,0x4,0}, {0x3813,0x4,0},
{0x3814,0x3,0}, {0x3815,0x1,0}, // H-binning
{0x3820,0x6,0}, // format1
{0x3821,0x40,0}, // format2
{0x382a,0x3,0}, {0x382b,0x1,0}, // V-binning
{0x382d,0x7f,0}, {0x3830,0x8,0}, {0x3836,0x2,0}, {0x3837,0x18,0},
{0x3841,0xff,0},
{0x3846,0x88,0}, {0x3d85,0x6,0}, {0x3d8c,0x75,0}, {0x3d8d,0xef,0}, {0x3f08,0xb,0}, {0x4000,0xf1,0}, {0x4001,0x14,0}, {0x4005,0x10,0}, {0x4006,0x1,0}, {0x4007,0x1,0}, {0x400b,0xc,0}, {0x400d,0x10,0}, {0x401b,0x0,0}, {0x401d,0x0,0}, {0x4020,0x0,0}, {0x4021,0x0,0}, {0x4022,0x4,0}, {0x4023,0x1f,0}, {0x4024,0x6,0}, {0x4025,0x20,0}, {0x4026,0x6,0}, {0x4027,0x4f,0}, {0x4028,0x0,0}, {0x4029,0x2,0}, {0x402a,0x4,0}, {0x402b,0x4,0}, {0x402c,0x2,0}, {0x402d,0x2,0}, {0x402e,0x8,0}, {0x402f,0x2,0}, {0x401f,0x0,0}, {0x4034,0x3f,0}, {0x4300,0xff,0}, {0x4301,0x0,0}, {0x4302,0xf,0}, {0x4500,0x40,0}, {0x4503,0x10,0}, {0x4601,0x74,0}, {0x481f,0x32,0}, {0x4837,0x15,0}, {0x4850,0x10,0}, {0x4851,0x32,0}, {0x4b00,0x2a,0}, {0x4b0d,0x0,0}, {0x4d00,0x4,0}, {0x4d01,0x18,0}, {0x4d02,0xc3,0}, {0x4d03,0xff,0}, {0x4d04,0xff,0}, {0x4d05,0xff,0}, {0x5000,0x96,0}, {0x5001,0x1,0}, {0x5002,0x8,0}, {0x5901,0x0,0},
{0x5e00,0x0,0},
//{0x5e00,0x80,0},
{0x5e01,0x41,0}, {0x5b00,0x2,0}, {0x5b01,0xd0,0}, {0x5b02,0x3,0}, {0x5b03,0xff,0}, {0x5b05,0x6c,0}, {0x5780,0xfc,0}, {0x5781,0xdf,0}, {0x5782,0x3f,0}, {0x5783,0x8,0}, {0x5784,0xc,0}, {0x5786,0x20,0}, {0x5787,0x40,0}, {0x5788,0x8,0}, {0x5789,0x8,0}, {0x578a,0x2,0}, {0x578b,0x1,0}, {0x578c,0x1,0}, {0x578d,0xc,0}, {0x578e,0x2,0}, {0x578f,0x1,0}, {0x5790,0x1,0}, {0x5800,0x1d,0}, {0x5801,0xe,0}, {0x5802,0xc,0}, {0x5803,0xc,0}, {0x5804,0xf,0}, {0x5805,0x22,0}, {0x5806,0xa,0}, {0x5807,0x6,0}, {0x5808,0x5,0}, {0x5809,0x5,0}, {0x580a,0x7,0}, {0x580b,0xa,0}, {0x580c,0x6,0}, {0x580d,0x2,0}, {0x580e,0x0,0}, {0x580f,0x0,0}, {0x5810,0x3,0}, {0x5811,0x7,0}, {0x5812,0x6,0}, {0x5813,0x2,0}, {0x5814,0x0,0}, {0x5815,0x0,0}, {0x5816,0x3,0}, {0x5817,0x7,0}, {0x5818,0x9,0}, {0x5819,0x6,0}, {0x581a,0x4,0}, {0x581b,0x4,0}, {0x581c,0x6,0}, {0x581d,0xa,0}, {0x581e,0x19,0}, {0x581f,0xd,0}, {0x5820,0xb,0}, {0x5821,0xb,0}, {0x5822,0xe,0}, {0x5823,0x22,0}, {0x5824,0x23,0}, {0x5825,0x28,0}, {0x5826,0x29,0}, {0x5827,0x27,0}, {0x5828,0x13,0}, {0x5829,0x26,0}, {0x582a,0x33,0}, {0x582b,0x32,0}, {0x582c,0x33,0}, {0x582d,0x16,0}, {0x582e,0x14,0}, {0x582f,0x30,0}, {0x5830,0x31,0}, {0x5831,0x30,0}, {0x5832,0x15,0}, {0x5833,0x26,0}, {0x5834,0x23,0}, {0x5835,0x21,0}, {0x5836,0x23,0}, {0x5837,0x5,0}, {0x5838,0x36,0}, {0x5839,0x27,0}, {0x583a,0x28,0}, {0x583b,0x26,0}, {0x583c,0x24,0}, {0x583d,0xdf,0},
//{0x100,0x1,0},
// round 2 (color calibration)
{0x7010,0x0,0}, {0x7011,0x0,0}, {0x7012,0x0,0}, {0x7013,0x0,0}, {0x7014,0x0,0}, {0x7015,0x0,0}, {0x7016,0x0,0}, {0x7017,0x0,0}, {0x7018,0x0,0}, {0x7019,0x0,0}, {0x701a,0x0,0}, {0x701b,0x0,0}, {0x701c,0x0,0}, {0x701d,0x0,0}, {0x701e,0x0,0}, {0x701f,0x0,0}, {0x7020,0x0,0}, {0x7021,0x0,0}, {0x7022,0x0,0}, {0x7023,0x0,0}, {0x7024,0x0,0}, {0x7025,0x0,0}, {0x7026,0x0,0}, {0x7027,0x0,0}, {0x7028,0x0,0}, {0x7029,0x0,0}, {0x702a,0x0,0}, {0x702b,0x0,0}, {0x702c,0x0,0}, {0x702d,0x0,0}, {0x702e,0x0,0}, {0x702f,0x0,0}, {0x7030,0x0,0}, {0x7031,0x0,0}, {0x7032,0x0,0}, {0x7033,0x0,0}, {0x7034,0x0,0}, {0x7035,0x0,0}, {0x7036,0x0,0}, {0x7037,0x0,0}, {0x7038,0x0,0}, {0x7039,0x0,0}, {0x703a,0x0,0}, {0x703b,0x0,0}, {0x703c,0x0,0}, {0x703d,0x0,0}, {0x703e,0x0,0}, {0x703f,0x0,0}, {0x7040,0x0,0}, {0x7041,0x0,0}, {0x7042,0x0,0}, {0x7043,0x0,0}, {0x7044,0x0,0}, {0x7045,0x0,0}, {0x7046,0x0,0}, {0x7047,0x0,0}, {0x7048,0x0,0}, {0x7049,0x0,0}, {0x704a,0x0,0}, {0x704b,0x0,0}, {0x704c,0x0,0}, {0x704d,0x0,0}, {0x704e,0x0,0}, {0x704f,0x0,0}, {0x7050,0x0,0}, {0x7051,0x0,0}, {0x7052,0x0,0}, {0x7053,0x0,0}, {0x7054,0x0,0}, {0x7055,0x0,0}, {0x7056,0x0,0}, {0x7057,0x0,0}, {0x7058,0x0,0}, {0x7059,0x0,0}, {0x705a,0x0,0}, {0x705b,0x0,0}, {0x705c,0x0,0}, {0x705d,0x0,0}, {0x705e,0x0,0}, {0x705f,0x0,0}, {0x7060,0x0,0}, {0x7061,0x0,0}, {0x7062,0x0,0}, {0x7063,0x0,0}, {0x7064,0x0,0}, {0x7065,0x0,0}, {0x7066,0x0,0}, {0x7067,0x0,0}, {0x7068,0x0,0}, {0x7069,0x0,0}, {0x706a,0x0,0}, {0x706b,0x0,0}, {0x706c,0x0,0}, {0x706d,0x0,0}, {0x706e,0x0,0}, {0x706f,0x0,0}, {0x7070,0x0,0}, {0x7071,0x0,0}, {0x7072,0x0,0}, {0x7073,0x0,0}, {0x7074,0x0,0}, {0x7075,0x0,0}, {0x7076,0x0,0}, {0x7077,0x0,0}, {0x7078,0x0,0}, {0x7079,0x0,0}, {0x707a,0x0,0}, {0x707b,0x0,0}, {0x707c,0x0,0}, {0x707d,0x0,0}, {0x707e,0x0,0}, {0x707f,0x0,0}, {0x7080,0x0,0}, {0x7081,0x0,0}, {0x7082,0x0,0}, {0x7083,0x0,0}, {0x7084,0x0,0}, {0x7085,0x0,0}, {0x7086,0x0,0}, {0x7087,0x0,0}, {0x7088,0x0,0}, {0x7089,0x0,0}, {0x708a,0x0,0}, {0x708b,0x0,0}, {0x708c,0x0,0}, {0x708d,0x0,0}, {0x708e,0x0,0}, {0x708f,0x0,0}, {0x7090,0x0,0}, {0x7091,0x0,0}, {0x7092,0x0,0}, {0x7093,0x0,0}, {0x7094,0x0,0}, {0x7095,0x0,0}, {0x7096,0x0,0}, {0x7097,0x0,0}, {0x7098,0x0,0}, {0x7099,0x0,0}, {0x709a,0x0,0}, {0x709b,0x0,0}, {0x709c,0x0,0}, {0x709d,0x0,0}, {0x709e,0x0,0}, {0x709f,0x0,0}, {0x70a0,0x0,0}, {0x70a1,0x0,0}, {0x70a2,0x0,0}, {0x70a3,0x0,0}, {0x70a4,0x0,0}, {0x70a5,0x0,0}, {0x70a6,0x0,0}, {0x70a7,0x0,0}, {0x70a8,0x0,0}, {0x70a9,0x0,0}, {0x70aa,0x0,0}, {0x70ab,0x0,0}, {0x70ac,0x0,0}, {0x70ad,0x0,0}, {0x70ae,0x0,0}, {0x70af,0x0,0}, {0x70b0,0x0,0}, {0x70b1,0x0,0}, {0x70b2,0x0,0}, {0x70b3,0x0,0}, {0x70b4,0x0,0}, {0x70b5,0x0,0}, {0x70b6,0x0,0}, {0x70b7,0x0,0}, {0x70b8,0x0,0}, {0x70b9,0x0,0}, {0x70ba,0x0,0}, {0x70bb,0x0,0}, {0x70bc,0x0,0}, {0x70bd,0x0,0}, {0x70be,0x0,0}, {0x70bf,0x0,0}, {0x70c0,0x0,0}, {0x70c1,0x0,0}, {0x70c2,0x0,0}, {0x70c3,0x0,0}, {0x70c4,0x0,0}, {0x70c5,0x0,0}, {0x70c6,0x0,0}, {0x70c7,0x0,0}, {0x70c8,0x0,0}, {0x70c9,0x0,0}, {0x70ca,0x0,0}, {0x70cb,0x0,0}, {0x70cc,0x0,0}, {0x70cd,0x0,0}, {0x70ce,0x0,0}, {0x70cf,0x0,0}, {0x70d0,0x0,0}, {0x70d1,0x0,0}, {0x70d2,0x0,0}, {0x70d3,0x0,0}, {0x70d4,0x0,0}, {0x70d5,0x0,0}, {0x70d6,0x0,0}, {0x70d7,0x0,0}, {0x70d8,0x0,0}, {0x70d9,0x0,0}, {0x70da,0x0,0}, {0x70db,0x0,0}, {0x70dc,0x0,0}, {0x70dd,0x0,0}, {0x70de,0x0,0}, {0x70df,0x0,0}, {0x70e0,0x0,0}, {0x70e1,0x0,0}, {0x70e2,0x0,0}, {0x70e3,0x0,0}, {0x70e4,0x0,0}, {0x70e5,0x0,0}, {0x70e6,0x0,0}, {0x70e7,0x0,0}, {0x70e8,0x0,0}, {0x70e9,0x0,0}, {0x70ea,0x0,0}, {0x70eb,0x0,0}, {0x70ec,0x0,0}, {0x70ed,0x0,0}, {0x70ee,0x0,0}, {0x70ef,0x0,0}, {0x70f0,0x0,0}, {0x70f1,0x0,0}, {0x70f2,0x0,0}, {0x70f3,0x0,0}, {0x70f4,0x0,0}, {0x70f5,0x0,0}, {0x70f6,0x0,0}, {0x70f7,0x0,0}, {0x70f8,0x0,0}, {0x70f9,0x0,0}, {0x70fa,0x0,0}, {0x70fb,0x0,0}, {0x70fc,0x0,0}, {0x70fd,0x0,0}, {0x70fe,0x0,0}, {0x70ff,0x0,0}, {0x7100,0x0,0}, {0x7101,0x0,0}, {0x7102,0x0,0}, {0x7103,0x0,0}, {0x7104,0x0,0}, {0x7105,0x0,0}, {0x7106,0x0,0}, {0x7107,0x0,0}, {0x7108,0x0,0}, {0x7109,0x0,0}, {0x710a,0x0,0}, {0x710b,0x0,0}, {0x710c,0x0,0}, {0x710d,0x0,0}, {0x710e,0x0,0}, {0x710f,0x0,0}, {0x7110,0x0,0}, {0x7111,0x0,0}, {0x7112,0x0,0}, {0x7113,0x0,0}, {0x7114,0x0,0}, {0x7115,0x0,0}, {0x7116,0x0,0}, {0x7117,0x0,0}, {0x7118,0x0,0}, {0x7119,0x0,0}, {0x711a,0x0,0}, {0x711b,0x0,0}, {0x711c,0x0,0}, {0x711d,0x0,0}, {0x711e,0x0,0}, {0x711f,0x0,0}, {0x7120,0x0,0}, {0x7121,0x0,0}, {0x7122,0x0,0}, {0x7123,0x0,0}, {0x7124,0x0,0}, {0x7125,0x0,0}, {0x7126,0x0,0}, {0x7127,0x0,0}, {0x7128,0x0,0}, {0x7129,0x0,0}, {0x712a,0x0,0}, {0x712b,0x0,0}, {0x712c,0x0,0}, {0x712d,0x0,0}, {0x712e,0x0,0}, {0x712f,0x0,0}, {0x7130,0x0,0}, {0x7131,0x0,0}, {0x7132,0x0,0}, {0x501a,0x10,0}, {0x501b,0xd,0}, {0x501c,0x10,0}, {0x501d,0x13,0}, {0x5000,0x96,0}, {0x5800,0x14,0}, {0x5801,0xd,0}, {0x5802,0xa,0}, {0x5803,0xa,0}, {0x5804,0xd,0}, {0x5805,0x13,0}, {0x5806,0xa,0}, {0x5807,0x5,0}, {0x5808,0x3,0}, {0x5809,0x3,0}, {0x580a,0x5,0}, {0x580b,0x9,0}, {0x580c,0x6,0}, {0x580d,0x2,0}, {0x580e,0x0,0}, {0x580f,0x0,0}, {0x5810,0x2,0}, {0x5811,0x5,0}, {0x5812,0x6,0}, {0x5813,0x2,0}, {0x5814,0x0,0}, {0x5815,0x0,0}, {0x5816,0x2,0}, {0x5817,0x5,0}, {0x5818,0xb,0}, {0x5819,0x6,0}, {0x581a,0x3,0}, {0x581b,0x3,0}, {0x581c,0x5,0}, {0x581d,0xa,0}, {0x581e,0x16,0}, {0x581f,0xf,0}, {0x5820,0xb,0}, {0x5821,0xb,0}, {0x5822,0xf,0}, {0x5823,0x15,0}, {0x5824,0x32,0}, {0x5825,0x23,0}, {0x5826,0x23,0}, {0x5827,0x23,0}, {0x5828,0x22,0}, {0x5829,0x21,0}, {0x582a,0x21,0}, {0x582b,0x22,0}, {0x582c,0x21,0},{0x582d,0x11,0}, {0x582e,0x22,0}, {0x582f,0x31,0}, {0x5830,0x41,0}, {0x5831,0x31,0}, {0x5832,0x1,0}, {0x5833,0x21,0}, {0x5834,0x21,0}, {0x5835,0x21,0}, {0x5836,0x11,0}, {0x5837,0x11,0}, {0x5838,0x22,0}, {0x5839,0x22,0}, {0x583a,0x12,0}, {0x583b,0x22,0}, {0x583c,0x22,0}, {0x583d,0xdf,0},
};