|
|
@ -3,302 +3,344 @@ struct i2c_random_wr_payload start_reg_array[] = {{0x301a, 0x1c}}; |
|
|
|
struct i2c_random_wr_payload stop_reg_array[] = {{0x301a, 0x18}};; |
|
|
|
struct i2c_random_wr_payload stop_reg_array[] = {{0x301a, 0x18}};; |
|
|
|
|
|
|
|
|
|
|
|
struct i2c_random_wr_payload init_array_ar0231[] = { |
|
|
|
struct i2c_random_wr_payload init_array_ar0231[] = { |
|
|
|
{0x3092, 0x0C24}, |
|
|
|
{0x301A, 0x0018}, // RESET_REGISTER
|
|
|
|
{0x337A, 0x0C80}, |
|
|
|
|
|
|
|
{0x3520, 0x1288}, |
|
|
|
|
|
|
|
{0x3522, 0x880C}, |
|
|
|
|
|
|
|
{0x3524, 0x0C12}, |
|
|
|
|
|
|
|
{0x352C, 0x1212}, |
|
|
|
|
|
|
|
{0x354A, 0x007F}, |
|
|
|
|
|
|
|
{0x350C, 28}, |
|
|
|
|
|
|
|
{0x3506, 0x3333}, |
|
|
|
|
|
|
|
{0x3508, 0x3333}, |
|
|
|
|
|
|
|
{0x3100, 0x4000}, |
|
|
|
|
|
|
|
{0x3280, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3282, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3284, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3286, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3288, 0x0FA0}, |
|
|
|
|
|
|
|
{0x328A, 0x0FA0}, |
|
|
|
|
|
|
|
{0x328C, 0x0FA0}, |
|
|
|
|
|
|
|
{0x328E, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3290, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3292, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3294, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3296, 0x0FA0}, |
|
|
|
|
|
|
|
{0x3298, 0x0FA0}, |
|
|
|
|
|
|
|
{0x329A, 0x0FA0}, |
|
|
|
|
|
|
|
{0x329C, 0x0FA0}, |
|
|
|
|
|
|
|
{0x329E, 0x0FA0}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// SEQ_DATA_PORT?
|
|
|
|
//
|
|
|
|
{0x2512, 0x8000}, |
|
|
|
{0x3092, 0x0C24}, // ROW_NOISE_CONTROL
|
|
|
|
{0x2510, 0x0905}, |
|
|
|
{0x337A, 0x0C80}, // DBLC_SCALE0
|
|
|
|
{0x2510, 0x3350}, |
|
|
|
{0x3520, 0x1288}, // RESERVED_MFR_3520
|
|
|
|
{0x2510, 0x2004}, |
|
|
|
{0x3522, 0x880C}, // RESERVED_MFR_3522
|
|
|
|
{0x2510, 0x1460}, |
|
|
|
{0x3524, 0x0C12}, // RESERVED_MFR_3524
|
|
|
|
{0x2510, 0x1578}, |
|
|
|
{0x352C, 0x1212}, // RESERVED_MFR_352C
|
|
|
|
{0x2510, 0x0901}, |
|
|
|
{0x354A, 0x007F}, // RESERVED_MFR_354A
|
|
|
|
{0x2510, 0x7B24}, |
|
|
|
{0x350C, 0x055C}, // RESERVED_MFR_350C
|
|
|
|
{0x2510, 0xFF24}, |
|
|
|
{0x3506, 0x3333}, // RESERVED_MFR_3506
|
|
|
|
{0x2510, 0xFF24}, |
|
|
|
{0x3508, 0x3333}, // RESERVED_MFR_3508
|
|
|
|
{0x2510, 0xEA24}, |
|
|
|
{0x3100, 0x4000}, // DLO_CONTROL0
|
|
|
|
{0x2510, 0x1022}, |
|
|
|
{0x3280, 0x0FA0}, // RESERVED_MFR_3280
|
|
|
|
{0x2510, 0x2410}, |
|
|
|
{0x3282, 0x0FA0}, // RESERVED_MFR_3282
|
|
|
|
{0x2510, 0x155A}, |
|
|
|
{0x3284, 0x0FA0}, // RESERVED_MFR_3284
|
|
|
|
{0x2510, 0x0901}, |
|
|
|
{0x3286, 0x0FA0}, // RESERVED_MFR_3286
|
|
|
|
{0x2510, 0x1400}, |
|
|
|
{0x3288, 0x0FA0}, // RESERVED_MFR_3288
|
|
|
|
{0x2510, 0x24FF}, |
|
|
|
{0x328A, 0x0FA0}, // RESERVED_MFR_328A
|
|
|
|
{0x2510, 0x24FF}, |
|
|
|
{0x328C, 0x0FA0}, // RESERVED_MFR_328C
|
|
|
|
{0x2510, 0x24EA}, |
|
|
|
{0x328E, 0x0FA0}, // RESERVED_MFR_328E
|
|
|
|
{0x2510, 0x2324}, |
|
|
|
{0x3290, 0x0FA0}, // RESERVED_MFR_3290
|
|
|
|
{0x2510, 0x647A}, |
|
|
|
{0x3292, 0x0FA0}, // RESERVED_MFR_3292
|
|
|
|
{0x2510, 0x2404}, |
|
|
|
{0x3294, 0x0FA0}, // RESERVED_MFR_3294
|
|
|
|
{0x2510, 0x052C}, |
|
|
|
{0x3296, 0x0FA0}, // RESERVED_MFR_3296
|
|
|
|
{0x2510, 0x400A}, |
|
|
|
{0x3298, 0x0FA0}, // RESERVED_MFR_3298
|
|
|
|
{0x2510, 0xFF0A}, |
|
|
|
{0x329A, 0x0FA0}, // RESERVED_MFR_329A
|
|
|
|
{0x2510, 0xFF0A}, |
|
|
|
{0x329C, 0x0FA0}, // RESERVED_MFR_329C
|
|
|
|
{0x2510, 0x1008}, |
|
|
|
{0x329E, 0x0FA0}, // RESERVED_MFR_329E
|
|
|
|
{0x2510, 0x3851}, |
|
|
|
{0x2512, 0x8000}, // SEQ_CTRL_PORT
|
|
|
|
{0x2510, 0x1440}, |
|
|
|
{0x2510, 0x0905}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0004}, |
|
|
|
{0x2510, 0x3350}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0801}, |
|
|
|
{0x2510, 0x2004}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0408}, |
|
|
|
{0x2510, 0x1460}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1180}, |
|
|
|
{0x2510, 0x1578}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x2652}, |
|
|
|
{0x2510, 0x0901}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1518}, |
|
|
|
{0x2510, 0x7B24}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0906}, |
|
|
|
{0x2510, 0xFF24}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1348}, |
|
|
|
{0x2510, 0xFF24}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1002}, |
|
|
|
{0x2510, 0xEA24}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1016}, |
|
|
|
{0x2510, 0x1022}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1181}, |
|
|
|
{0x2510, 0x2410}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1189}, |
|
|
|
{0x2510, 0x155A}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1056}, |
|
|
|
{0x2510, 0x0901}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1210}, |
|
|
|
{0x2510, 0x1400}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0901}, |
|
|
|
{0x2510, 0x24FF}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0D09}, |
|
|
|
{0x2510, 0x24FF}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1413}, |
|
|
|
{0x2510, 0x24EA}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x8809}, |
|
|
|
{0x2510, 0x2324}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x2B15}, |
|
|
|
{0x2510, 0x647A}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x8809}, |
|
|
|
{0x2510, 0x2404}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0311}, |
|
|
|
{0x2510, 0x052C}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xD909}, |
|
|
|
{0x2510, 0x400A}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1214}, |
|
|
|
{0x2510, 0xFF0A}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x4109}, |
|
|
|
{0x2510, 0xFF0A}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0312}, |
|
|
|
{0x2510, 0x1008}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1409}, |
|
|
|
{0x2510, 0x3851}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0110}, |
|
|
|
{0x2510, 0x1440}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xD612}, |
|
|
|
{0x2510, 0x0004}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1012}, |
|
|
|
{0x2510, 0x0801}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1212}, |
|
|
|
{0x2510, 0x0408}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1011}, |
|
|
|
{0x2510, 0x1180}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xDD11}, |
|
|
|
{0x2510, 0x2652}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xD910}, |
|
|
|
{0x2510, 0x1518}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x5609}, |
|
|
|
{0x2510, 0x0906}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1511}, |
|
|
|
{0x2510, 0x1348}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xDB09}, |
|
|
|
{0x2510, 0x1002}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1511}, |
|
|
|
{0x2510, 0x1016}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x9B09}, |
|
|
|
{0x2510, 0x1181}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0F11}, |
|
|
|
{0x2510, 0x1189}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xBB12}, |
|
|
|
{0x2510, 0x1056}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1A12}, |
|
|
|
{0x2510, 0x1210}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1014}, |
|
|
|
{0x2510, 0x0901}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x6012}, |
|
|
|
{0x2510, 0x0D09}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x5010}, |
|
|
|
{0x2510, 0x1413}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x7610}, |
|
|
|
{0x2510, 0x8809}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xE609}, |
|
|
|
{0x2510, 0x2B15}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0812}, |
|
|
|
{0x2510, 0x8809}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x4012}, |
|
|
|
{0x2510, 0x0311}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x6009}, |
|
|
|
{0x2510, 0xD909}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x290B}, |
|
|
|
{0x2510, 0x1214}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0904}, |
|
|
|
{0x2510, 0x4109}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1440}, |
|
|
|
{0x2510, 0x0312}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0923}, |
|
|
|
{0x2510, 0x1409}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x15C8}, |
|
|
|
{0x2510, 0x0110}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x13C8}, |
|
|
|
{0x2510, 0xD612}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x092C}, |
|
|
|
{0x2510, 0x1012}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1588}, |
|
|
|
{0x2510, 0x1212}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1388}, |
|
|
|
{0x2510, 0x1011}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0C09}, |
|
|
|
{0x2510, 0xDD11}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0C14}, |
|
|
|
{0x2510, 0xD910}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x4109}, |
|
|
|
{0x2510, 0x5609}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1112}, |
|
|
|
{0x2510, 0x1511}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x6212}, |
|
|
|
{0x2510, 0xDB09}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x6011}, |
|
|
|
{0x2510, 0x1511}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xBF11}, |
|
|
|
{0x2510, 0x9B09}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xBB10}, |
|
|
|
{0x2510, 0x0F11}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x6611}, |
|
|
|
{0x2510, 0xBB12}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xFB09}, |
|
|
|
{0x2510, 0x1A12}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x3511}, |
|
|
|
{0x2510, 0x1014}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xBB12}, |
|
|
|
{0x2510, 0x6012}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x6312}, |
|
|
|
{0x2510, 0x5010}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x6014}, |
|
|
|
{0x2510, 0x7610}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0015}, |
|
|
|
{0x2510, 0xE609}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0011}, |
|
|
|
{0x2510, 0x0812}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xB812}, |
|
|
|
{0x2510, 0x4012}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xA012}, |
|
|
|
{0x2510, 0x6009}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0010}, |
|
|
|
{0x2510, 0x290B}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x2610}, |
|
|
|
{0x2510, 0x0904}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0013}, |
|
|
|
{0x2510, 0x1440}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0011}, |
|
|
|
{0x2510, 0x0923}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0008}, |
|
|
|
{0x2510, 0x15C8}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x3053}, |
|
|
|
{0x2510, 0x13C8}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x4215}, |
|
|
|
{0x2510, 0x092C}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x4013}, |
|
|
|
{0x2510, 0x1588}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x4010}, |
|
|
|
{0x2510, 0x1388}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0210}, |
|
|
|
{0x2510, 0x0C09}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1611}, |
|
|
|
{0x2510, 0x0C14}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x8111}, |
|
|
|
{0x2510, 0x4109}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x8910}, |
|
|
|
{0x2510, 0x1112}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x5612}, |
|
|
|
{0x2510, 0x6212}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1009}, |
|
|
|
{0x2510, 0x6011}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x010D}, |
|
|
|
{0x2510, 0xBF11}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0815}, |
|
|
|
{0x2510, 0xBB10}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xC015}, |
|
|
|
{0x2510, 0x6611}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xD013}, |
|
|
|
{0x2510, 0xFB09}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x5009}, |
|
|
|
{0x2510, 0x3511}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1313}, |
|
|
|
{0x2510, 0xBB12}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xD009}, |
|
|
|
{0x2510, 0x6312}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0215}, |
|
|
|
{0x2510, 0x6014}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xC015}, |
|
|
|
{0x2510, 0x0015}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xC813}, |
|
|
|
{0x2510, 0x0011}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xC009}, |
|
|
|
{0x2510, 0xB812}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0515}, |
|
|
|
{0x2510, 0xA012}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x8813}, |
|
|
|
{0x2510, 0x0010}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x8009}, |
|
|
|
{0x2510, 0x2610}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0213}, |
|
|
|
{0x2510, 0x0013}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x8809}, |
|
|
|
{0x2510, 0x0011}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0411}, |
|
|
|
{0x2510, 0x0008}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xC909}, |
|
|
|
{0x2510, 0x3053}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0814}, |
|
|
|
{0x2510, 0x4215}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0109}, |
|
|
|
{0x2510, 0x4013}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0B11}, |
|
|
|
{0x2510, 0x4010}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0xD908}, |
|
|
|
{0x2510, 0x0210}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1400}, |
|
|
|
{0x2510, 0x1611}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x091A}, |
|
|
|
{0x2510, 0x8111}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1440}, |
|
|
|
{0x2510, 0x8910}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0903}, |
|
|
|
{0x2510, 0x5612}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1214}, |
|
|
|
{0x2510, 0x1009}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0901}, |
|
|
|
{0x2510, 0x010D}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x10D6}, |
|
|
|
{0x2510, 0x0815}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1210}, |
|
|
|
{0x2510, 0xC015}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1212}, |
|
|
|
{0x2510, 0xD013}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1210}, |
|
|
|
{0x2510, 0x5009}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11DD}, |
|
|
|
{0x2510, 0x1313}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11D9}, |
|
|
|
{0x2510, 0xD009}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1056}, |
|
|
|
{0x2510, 0x0215}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0917}, |
|
|
|
{0x2510, 0xC015}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11DB}, |
|
|
|
{0x2510, 0xC813}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0913}, |
|
|
|
{0x2510, 0xC009}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11FB}, |
|
|
|
{0x2510, 0x0515}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0905}, |
|
|
|
{0x2510, 0x8813}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11BB}, |
|
|
|
{0x2510, 0x8009}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x121A}, |
|
|
|
{0x2510, 0x0213}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1210}, |
|
|
|
{0x2510, 0x8809}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1460}, |
|
|
|
{0x2510, 0x0411}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1250}, |
|
|
|
{0x2510, 0xC909}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1076}, |
|
|
|
{0x2510, 0x0814}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x10E6}, |
|
|
|
{0x2510, 0x0109}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0901}, |
|
|
|
{0x2510, 0x0B11}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x15A8}, |
|
|
|
{0x2510, 0xD908}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0901}, |
|
|
|
{0x2510, 0x1400}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x13A8}, |
|
|
|
{0x2510, 0x091A}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1240}, |
|
|
|
{0x2510, 0x1440}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1260}, |
|
|
|
{0x2510, 0x0903}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0925}, |
|
|
|
{0x2510, 0x1214}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x13AD}, |
|
|
|
{0x2510, 0x0901}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0902}, |
|
|
|
{0x2510, 0x10D6}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0907}, |
|
|
|
{0x2510, 0x1210}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1588}, |
|
|
|
{0x2510, 0x1212}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0901}, |
|
|
|
{0x2510, 0x1210}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x138D}, |
|
|
|
{0x2510, 0x11DD}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0B09}, |
|
|
|
{0x2510, 0x11D9}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0914}, |
|
|
|
{0x2510, 0x1056}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x4009}, |
|
|
|
{0x2510, 0x0917}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0B13}, |
|
|
|
{0x2510, 0x11DB}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x8809}, |
|
|
|
{0x2510, 0x0913}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1C0C}, |
|
|
|
{0x2510, 0x11FB}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0920}, |
|
|
|
{0x2510, 0x0905}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1262}, |
|
|
|
{0x2510, 0x11BB}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1260}, |
|
|
|
{0x2510, 0x121A}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11BF}, |
|
|
|
{0x2510, 0x1210}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11BB}, |
|
|
|
{0x2510, 0x1460}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1066}, |
|
|
|
{0x2510, 0x1250}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x090A}, |
|
|
|
{0x2510, 0x1076}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11FB}, |
|
|
|
{0x2510, 0x10E6}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x093B}, |
|
|
|
{0x2510, 0x0901}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11BB}, |
|
|
|
{0x2510, 0x15A8}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1263}, |
|
|
|
{0x2510, 0x0901}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1260}, |
|
|
|
{0x2510, 0x13A8}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1400}, |
|
|
|
{0x2510, 0x1240}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1508}, |
|
|
|
{0x2510, 0x1260}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x11B8}, |
|
|
|
{0x2510, 0x0925}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x12A0}, |
|
|
|
{0x2510, 0x13AD}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1200}, |
|
|
|
{0x2510, 0x0902}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1026}, |
|
|
|
{0x2510, 0x0907}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1000}, |
|
|
|
{0x2510, 0x1588}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1300}, |
|
|
|
{0x2510, 0x0901}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x1100}, |
|
|
|
{0x2510, 0x138D}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x437A}, |
|
|
|
{0x2510, 0x0B09}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0609}, |
|
|
|
{0x2510, 0x0914}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0B05}, |
|
|
|
{0x2510, 0x4009}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0708}, |
|
|
|
{0x2510, 0x0B13}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x4137}, |
|
|
|
{0x2510, 0x8809}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x502C}, |
|
|
|
{0x2510, 0x1C0C}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x2CFE}, |
|
|
|
{0x2510, 0x0920}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x15FE}, |
|
|
|
{0x2510, 0x1262}, // SEQ_DATA_PORT
|
|
|
|
{0x2510, 0x0C2C}, |
|
|
|
{0x2510, 0x1260}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x11BF}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x11BB}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1066}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x090A}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x11FB}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x093B}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x11BB}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1263}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1260}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1400}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1508}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x11B8}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x12A0}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1200}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1026}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1000}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1300}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x1100}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x437A}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x0609}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x0B05}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x0708}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x4137}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x502C}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x2CFE}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x15FE}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x2510, 0x0C2C}, // SEQ_DATA_PORT
|
|
|
|
|
|
|
|
{0x32E6, 0x00E0}, // RESERVED_MFR_32E6
|
|
|
|
|
|
|
|
{0x1008, 0x036F}, // RESERVED_PARAM_1008
|
|
|
|
|
|
|
|
{0x100C, 0x058F}, // RESERVED_PARAM_100C
|
|
|
|
|
|
|
|
{0x100E, 0x07AF}, // RESERVED_PARAM_100E
|
|
|
|
|
|
|
|
{0x1010, 0x014F}, // RESERVED_PARAM_1010
|
|
|
|
|
|
|
|
{0x3230, 0x0312}, // FINE_CORRECTION
|
|
|
|
|
|
|
|
{0x3232, 0x0532}, // FINE_CORRECTION2
|
|
|
|
|
|
|
|
{0x3234, 0x0752}, // FINE_CORRECTION3
|
|
|
|
|
|
|
|
{0x3236, 0x00F2}, // FINE_CORRECTION4
|
|
|
|
|
|
|
|
{0x3566, 0x3328}, // RESERVED_MFR_3566
|
|
|
|
|
|
|
|
{0x32D0, 0x3A02}, // RESERVED_MFR_32D0
|
|
|
|
|
|
|
|
{0x32D2, 0x3508}, // RESERVED_MFR_32D2
|
|
|
|
|
|
|
|
{0x32D4, 0x3702}, // RESERVED_MFR_32D4
|
|
|
|
|
|
|
|
{0x32D6, 0x3C04}, // RESERVED_MFR_32D6
|
|
|
|
|
|
|
|
{0x32DC, 0x370A}, // RESERVED_MFR_32DC
|
|
|
|
|
|
|
|
{0x30B0, 0x0800}, // DIGITAL_TEST
|
|
|
|
|
|
|
|
{0x302A, 0x0006}, // VT_PIX_CLK_DIV
|
|
|
|
|
|
|
|
{0x302C, 0x0001}, // VT_SYS_CLK_DIV
|
|
|
|
|
|
|
|
{0x302E, 0x0002}, // PRE_PLL_CLK_DIV
|
|
|
|
|
|
|
|
{0x3030, 0x002C}, // PLL_MULTIPLIER
|
|
|
|
|
|
|
|
{0x3036, 0x000A}, // OP_WORD_CLK_DIV
|
|
|
|
|
|
|
|
{0x3038, 0x0001}, // OP_SYS_CLK_DIV
|
|
|
|
|
|
|
|
{0x30B0, 0x0800}, // DIGITAL_TEST
|
|
|
|
|
|
|
|
{0x30A2, 0x0001}, // X_ODD_INC_
|
|
|
|
|
|
|
|
{0x30A6, 0x0001}, // Y_ODD_INC_
|
|
|
|
|
|
|
|
{0x3040, 0x0000}, // READ_MODE C000?
|
|
|
|
|
|
|
|
{0x30BA, 0x11F2}, // DIGITAL_CTRL
|
|
|
|
|
|
|
|
{0x3044, 0x0400}, // DARK_CONTROL
|
|
|
|
|
|
|
|
{0x3064, 0x1802}, // SMIA_TEST
|
|
|
|
|
|
|
|
{0x33E0, 0x0C80}, // TEST_ASIL_ROWS
|
|
|
|
|
|
|
|
{0x3180, 0x0080}, // RESERVED_MFR_3180
|
|
|
|
|
|
|
|
{0x33E4, 0x0080}, // RESERVED_MFR_33E4
|
|
|
|
|
|
|
|
{0x33E0, 0x0C80}, // TEST_ASIL_ROWS
|
|
|
|
|
|
|
|
{0x33E0, 0x0C80}, // TEST_ASIL_ROWS
|
|
|
|
|
|
|
|
{0x3004, 0x0000}, // X_ADDR_START_
|
|
|
|
|
|
|
|
{0x3008, 0x0787}, // X_ADDR_END_
|
|
|
|
|
|
|
|
{0x3002, 0x0000}, // Y_ADDR_START_
|
|
|
|
|
|
|
|
{0x3006, 0x04B7}, // Y_ADDR_END_
|
|
|
|
|
|
|
|
{0x3032, 0x0000}, // SCALING_MODE
|
|
|
|
|
|
|
|
{0x3400, 0x0010}, // RESERVED_MFR_3400
|
|
|
|
|
|
|
|
{0x3402, 0x0788}, // X_OUTPUT_CONTROL
|
|
|
|
|
|
|
|
{0x3402, 0x0F10}, // X_OUTPUT_CONTROL
|
|
|
|
|
|
|
|
{0x3404, 0x04B8}, // Y_OUTPUT_CONTROL
|
|
|
|
|
|
|
|
{0x3404, 0x0970}, // Y_OUTPUT_CONTROL
|
|
|
|
|
|
|
|
{0x30BA, 0x11F3}, // DIGITAL_CTRL
|
|
|
|
|
|
|
|
|
|
|
|
// end SEQ_DATA_PORT
|
|
|
|
// FPS = 88e6 / 0x09C4 / 0x06E0 = 20
|
|
|
|
{0x32e6,0xe0}, |
|
|
|
{0x300C, 0x09C4}, // LINE_LENGTH_PCK_
|
|
|
|
|
|
|
|
{0x300A, 0x06E0}, // FRAME_LENGTH_LINES_
|
|
|
|
|
|
|
|
{0x3042, 0x0000}, // EXTRA_DELAY
|
|
|
|
|
|
|
|
|
|
|
|
// exposure time
|
|
|
|
// Readout Settings
|
|
|
|
{0x1008,0x36f}, |
|
|
|
{0x31AE, 0x0204}, // SERIAL_FORMAT, 4-lane MIPI
|
|
|
|
{0x100c,0x58f}, |
|
|
|
{0x31AC, 0x0C0A}, // DATA_FORMAT_BITS, 12 -> 10
|
|
|
|
{0x100e,0x7af}, |
|
|
|
{0x3342, 0x122B}, // MIPI_F1_PDT_EDT
|
|
|
|
{0x1010,0x14f}, |
|
|
|
{0x3346, 0x122B}, // MIPI_F2_PDT_EDT
|
|
|
|
{0x3230,0x312}, |
|
|
|
{0x334A, 0x122B}, // MIPI_F3_PDT_EDT
|
|
|
|
{0x3232,0x532}, |
|
|
|
{0x334E, 0x122B}, // MIPI_F4_PDT_EDT
|
|
|
|
{0x3234,0x752}, |
|
|
|
{0x3344, 0x0011}, // MIPI_F1_VDT_VC
|
|
|
|
{0x3236,0xf2}, |
|
|
|
{0x3348, 0x0111}, // MIPI_F2_VDT_VC
|
|
|
|
|
|
|
|
{0x334C, 0x0211}, // MIPI_F3_VDT_VC
|
|
|
|
|
|
|
|
{0x3350, 0x0311}, // MIPI_F4_VDT_VC
|
|
|
|
|
|
|
|
{0x31B0, 0x0049}, // FRAME_PREAMBLE
|
|
|
|
|
|
|
|
{0x31B2, 0x0033}, // LINE_PREAMBLE
|
|
|
|
|
|
|
|
{0x31B4, 0x2185}, // RESERVED_MFR_31B4
|
|
|
|
|
|
|
|
{0x31B6, 0x1146}, // RESERVED_MFR_31B6
|
|
|
|
|
|
|
|
{0x31B8, 0x3047}, // RESERVED_MFR_31B8
|
|
|
|
|
|
|
|
{0x31BA, 0x0186}, // RESERVED_MFR_31BA
|
|
|
|
|
|
|
|
{0x31BC, 0x0805}, // RESERVED_MFR_31BC
|
|
|
|
|
|
|
|
{0x301A, 0x001C}, // RESET_REGISTER
|
|
|
|
|
|
|
|
|
|
|
|
{0x3566, 0x0}, |
|
|
|
// HDR Settings
|
|
|
|
{0x32D0, 0x3A02}, |
|
|
|
{0x3082, 0x0004}, // OPERATION_MODE_CTRL
|
|
|
|
{0x32D2, 0x3508}, |
|
|
|
{0x3238, 0x0222}, // EXPOSURE_RATIO
|
|
|
|
{0x32D4, 0x3702}, |
|
|
|
{0x3014, 0x098E}, // FINE_INTEGRATION_TIME_
|
|
|
|
{0x32D6, 0x3C04}, |
|
|
|
{0x321E, 0x098E}, // FINE_INTEGRATION_TIME2
|
|
|
|
{0x32DC, 0x370A}, |
|
|
|
{0x3222, 0x098E}, // FINE_INTEGRATION_TIME3
|
|
|
|
{0x30b0, 0x200}, |
|
|
|
{0x3226, 0x098E}, // FINE_INTEGRATION_TIME4
|
|
|
|
{0x3082, 0x0}, |
|
|
|
{0x30B0, 0x0800}, // DIGITAL_TEST
|
|
|
|
{0x33E0, 0x0080}, |
|
|
|
{0x32EA, 0x3C0E}, // RESERVED_MFR_32EA
|
|
|
|
{0x3180, 0x0080}, |
|
|
|
{0x32EC, 0x72A1}, // RESERVED_MFR_32EC
|
|
|
|
{0x33E4, 0x0080}, |
|
|
|
{0x31D0, 0x0001}, // COMPANDING
|
|
|
|
{0x33E0, 0x0C00}, |
|
|
|
|
|
|
|
{0x33E0, 0x0000}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{0x31B4, 0x2185}, |
|
|
|
// Initial Gains
|
|
|
|
{0x31B6, 0x1146}, |
|
|
|
{0x3022, 0x01}, // GROUPED_PARAMETER_HOLD_
|
|
|
|
{0x31B8, 0x3047}, |
|
|
|
{0x3366, 0x9999}, // ANALOG_GAIN
|
|
|
|
|
|
|
|
{0x3060, 0xAAAA}, // ANALOG_COLOR_GAIN
|
|
|
|
{0x31BA, 0x186}, |
|
|
|
{0x305A, 0x00BB}, // RED_GAIN
|
|
|
|
{0x31BC, 0x805}, |
|
|
|
{0x3058, 0x012A}, // BLUE_GAIN
|
|
|
|
|
|
|
|
{0x3056, 0x0080}, // GREEN1_GAIN
|
|
|
|
// additions
|
|
|
|
{0x305C, 0x0080}, // GREEN2_GAIN
|
|
|
|
// mipi + 4 lanes
|
|
|
|
{0x3022, 0x00}, // GROUPED_PARAMETER_HOLD_
|
|
|
|
{0x31AE, 0x0204}, |
|
|
|
|
|
|
|
// DATA_FORMAT_RAW = 12
|
|
|
|
|
|
|
|
// DATA_FORMAT_OUTPUT = 0?
|
|
|
|
|
|
|
|
//{0x31AC, 0x0C08},
|
|
|
|
|
|
|
|
{0x31AC, 0x0C0A}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 0x2B = CSI_RAW10
|
|
|
|
|
|
|
|
{0x3342, 0x122B}, |
|
|
|
|
|
|
|
{0x3346, 0x122B}, |
|
|
|
|
|
|
|
{0x334a, 0x122B}, |
|
|
|
|
|
|
|
{0x334e, 0x122B}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 10-bit
|
|
|
|
|
|
|
|
{0x3036, 0xA}, |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
struct i2c_random_wr_payload poke_array_ov7750[] = { |
|
|
|
struct i2c_random_wr_payload poke_array_ov7750[] = { |
|
|
|