123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867 |
- /*
- * Copyright (c) 2023 HPMicro
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
- #ifndef HPM_MT9M114_H
- #define HPM_MT9M114_H
- #include "hpm_camera_config.h"
- #include "hpm_common.h"
- /* MT9M114_ERROR_ACTION_BLOCK
- * 0 : return fail
- * 1 : print error message to console and block
- */
- #define MT9M114_ERROR_ACTION_BLOCK 0
- #define MT9M114_HOST_CMD_TIMEOUT 100
- #ifndef MT9M114_ACTIVE_IMAGE_WIDTH
- #define MT9M114_ACTIVE_IMAGE_WIDTH (640U)
- #endif
- #ifndef MT9M114_ACTIVE_IMAGE_HEIGHT
- #define MT9M114_ACTIVE_IMAGE_HEIGHT (480U)
- #endif
- #define DUMMY_LINES 8
- #define DUMMY_COLUMNS 8
- #define SENSOR_WIDTH 1296
- #define SENSOR_HEIGHT 976
- #define DUMMY_WIDTH_BUFFER 8
- #define DUMMY_HEIGHT_BUFFER 8
- #define ACTIVE_SENSOR_WIDTH (SENSOR_WIDTH - (2 * DUMMY_COLUMNS))
- #define ACTIVE_SENSOR_HEIGHT (SENSOR_HEIGHT - (2 * DUMMY_LINES))
- /**
- * @brief MT9M114 sensor driver APIs
- * @defgroup MT9M114_interface sensor driver APIs
- * @ingroup component_interfaces
- * @{
- *
- */
- /***********************************************************************************************************************
- *
- * Definitions
- *
- **********************************************************************************************************************/
- /**
- * @brief MT9M114 definition
- */
- /*******************************************************************************
- * Definitions
- ******************************************************************************/
- #if defined(MT9M114_DUAL_CAMERA)
- #define MT9M114_I2C_ADDR 0x48
- #define MT9M114_I2C_ADDR_IR 0x5D
- #else
- #define MT9M114_I2C_ADDR 0x48
- #endif
- #define MT9M114_CHIP_ID 0x2481
- #define MT9M114_REG_ADDR_LEN (2)
- /*! @brief MT9M114 register definitions.*/
- /* 1.Core registers */
- #define MT9M114_REG_Y_ADDR_START 0x3002
- #define MT9M114_REG_X_ADDR_START 0x3004
- #define MT9M114_REG_Y_ADDR_END 0x3006
- #define MT9M114_REG_X_ADDR_END 0x3008
- #define MT9M114_REG_FRAME_LENGTH_LINES 0x300A
- #define MT9M114_REG_LINE_LENGTH_PCK_ 0x300C
- #define MT9M114_REG_COARSE_INTEGRATION_TIME 0x3012
- #define MT9M114_REG_FINE_INTEGRATION_TIME 0x3014
- #define MT9M114_REG_RESET_REGISTER 0x301A
- #define MT9M114_REG_FLASH 0x3046
- #define MT9M114_REG_FLASH_COUNT 0x3048
- #define MT9M114_REG_GREEN1_GAIN 0x3056
- #define MT9M114_REG_BLUE_GAIN 0x3058
- #define MT9M114_REG_RED_GAIN 0x305A
- #define MT9M114_REG_GREEN2_GAIN 0x305C
- #define MT9M114_REG_GLOBAL_GAIN 0x305E
- #define MT9M114_REG_FUSE_ID1 0x31F4
- #define MT9M114_REG_FUSE_ID2 0x31F6
- #define MT9M114_REG_FUSE_ID3 0x31F8
- #define MT9M114_REG_FUSE_ID4 0x31FA
- #define MT9M114_REG_CHAIN_CONTROL 0x31FC
- #define MT9M114_REG_CUSTOMER_REV 0x31FE
- /* 2.SOC1 registers */
- #define MT9M114_REG_COLOR_PIPELINE_CONTROL 0x3210
- /* 3.SOC2 registers */
- #define MT9M114_REG_P_G1_P0Q0 0x3640
- #define MT9M114_REG_P_G1_P0Q1 0x3642
- #define MT9M114_REG_P_G1_P0Q2 0x3644
- #define MT9M114_REG_P_G1_P0Q3 0x3646
- #define MT9M114_REG_P_G1_P0Q4 0x3648
- #define MT9M114_REG_P_R_P0Q0 0x364A
- #define MT9M114_REG_P_R_P0Q1 0x364C
- #define MT9M114_REG_P_R_P0Q2 0x364E
- #define MT9M114_REG_P_R_P0Q3 0x3650
- #define MT9M114_REG_P_R_P0Q4 0x3652
- #define MT9M114_REG_P_B_P0Q0 0x3654
- #define MT9M114_REG_P_B_P0Q1 0x3656
- #define MT9M114_REG_P_B_P0Q2 0x3658
- #define MT9M114_REG_P_B_P0Q3 0x365A
- #define MT9M114_REG_P_B_P0Q4 0x365C
- #define MT9M114_REG_P_G2_P0Q0 0x365E
- #define MT9M114_REG_P_G2_P0Q1 0x3660
- #define MT9M114_REG_P_G2_P0Q2 0x3662
- #define MT9M114_REG_P_G2_P0Q3 0x3664
- #define MT9M114_REG_P_G2_P0Q4 0x3666
- #define MT9M114_REG_P_G1_P1Q0 0x3680
- #define MT9M114_REG_P_G1_P1Q1 0x3682
- #define MT9M114_REG_P_G1_P1Q2 0x3684
- #define MT9M114_REG_P_G1_P1Q3 0x3686
- #define MT9M114_REG_P_G1_P1Q4 0x3688
- #define MT9M114_REG_P_R_P1Q0 0x368A
- #define MT9M114_REG_P_R_P1Q1 0x368C
- #define MT9M114_REG_P_R_P1Q2 0x368E
- #define MT9M114_REG_P_R_P1Q3 0x3690
- #define MT9M114_REG_P_R_P1Q4 0x3692
- #define MT9M114_REG_P_B_P1Q0 0x3694
- #define MT9M114_REG_P_B_P1Q1 0x3696
- #define MT9M114_REG_P_B_P1Q2 0x3698
- #define MT9M114_REG_P_B_P1Q3 0x369A
- #define MT9M114_REG_P_B_P1Q4 0x369C
- #define MT9M114_REG_P_G2_P1Q0 0x369E
- #define MT9M114_REG_P_G2_P1Q1 0x36A0
- #define MT9M114_REG_P_G2_P1Q2 0x36A2
- #define MT9M114_REG_P_G2_P1Q3 0x36A4
- #define MT9M114_REG_P_G2_P1Q4 0x36A6
- #define MT9M114_REG_P_G1_P2Q0 0x36C0
- #define MT9M114_REG_P_G1_P2Q1 0x36C2
- #define MT9M114_REG_P_G1_P2Q2 0x36C4
- #define MT9M114_REG_P_G1_P2Q3 0x36C6
- #define MT9M114_REG_P_G1_P2Q4 0x36C8
- #define MT9M114_REG_P_R_P2Q0 0x36CA
- #define MT9M114_REG_P_R_P2Q1 0x36CC
- #define MT9M114_REG_P_R_P2Q2 0x36CE
- #define MT9M114_REG_P_R_P2Q3 0x36D0
- #define MT9M114_REG_P_R_P2Q4 0x36D2
- #define MT9M114_REG_P_B_P2Q0 0x36D4
- #define MT9M114_REG_P_B_P2Q1 0x36D6
- #define MT9M114_REG_P_B_P2Q2 0x36D8
- #define MT9M114_REG_P_B_P2Q3 0x36DA
- #define MT9M114_REG_P_B_P2Q4 0x36DC
- #define MT9M114_REG_P_G2_P2Q0 0x36DE
- #define MT9M114_REG_P_G2_P2Q1 0x36E0
- #define MT9M114_REG_P_G2_P2Q2 0x36E2
- #define MT9M114_REG_P_G2_P2Q3 0x36E4
- #define MT9M114_REG_P_G2_P2Q4 0x36E6
- #define MT9M114_REG_P_G1_P3Q0 0x3700
- #define MT9M114_REG_P_G1_P3Q1 0x3702
- #define MT9M114_REG_P_G1_P3Q2 0x3704
- #define MT9M114_REG_P_G1_P3Q3 0x3706
- #define MT9M114_REG_P_G1_P3Q4 0x3708
- #define MT9M114_REG_P_R_P3Q0 0x370A
- #define MT9M114_REG_P_R_P3Q1 0x370C
- #define MT9M114_REG_P_R_P3Q2 0x370E
- #define MT9M114_REG_P_R_P3Q3 0x3710
- #define MT9M114_REG_P_R_P3Q4 0x3712
- #define MT9M114_REG_P_B_P3Q0 0x3714
- #define MT9M114_REG_P_B_P3Q1 0x3716
- #define MT9M114_REG_P_B_P3Q2 0x3718
- #define MT9M114_REG_P_B_P3Q3 0x371A
- #define MT9M114_REG_P_B_P3Q4 0x371C
- #define MT9M114_REG_P_G2_P3Q0 0x371E
- #define MT9M114_REG_P_G2_P3Q1 0x3720
- #define MT9M114_REG_P_G2_P3Q2 0x3722
- #define MT9M114_REG_P_G2_P3Q3 0x3724
- #define MT9M114_REG_P_G2_P3Q4 0x3726
- #define MT9M114_REG_P_G1_P4Q0 0x3740
- #define MT9M114_REG_P_G1_P4Q1 0x3742
- #define MT9M114_REG_P_G1_P4Q2 0x3744
- #define MT9M114_REG_P_G1_P4Q3 0x3746
- #define MT9M114_REG_P_G1_P4Q4 0x3748
- #define MT9M114_REG_P_R_P4Q0 0x374A
- #define MT9M114_REG_P_R_P4Q1 0x374C
- #define MT9M114_REG_P_R_P4Q2 0x374E
- #define MT9M114_REG_P_R_P4Q3 0x3750
- #define MT9M114_REG_P_R_P4Q4 0x3752
- #define MT9M114_REG_P_B_P4Q0 0x3754
- #define MT9M114_REG_P_B_P4Q1 0x3756
- #define MT9M114_REG_P_B_P4Q2 0x3758
- #define MT9M114_REG_P_B_P4Q3 0x375A
- #define MT9M114_REG_P_B_P4Q4 0x375C
- #define MT9M114_REG_P_G2_P4Q0 0x375E
- #define MT9M114_REG_P_G2_P4Q1 0x3760
- #define MT9M114_REG_P_G2_P4Q2 0x3762
- #define MT9M114_REG_P_G2_P4Q3 0x3764
- #define MT9M114_REG_P_G2_P4Q4 0x3766
- #define MT9M114_REG_CENTER_ROW 0x3782
- #define MT9M114_REG_CENTER_COLUMN 0x3784
- /* 4.SYSCTL registers */
- #define MT9M114_REG_CHIP_ID 0x0000
- #define MT9M114_REG_CLOCKS_CONTROL 0x0016
- #define MT9M114_REG_RESET_AND_MISC_CONTROL 0x001A
- #define MT9M114_REG_PAD_SLEW 0x001E
- #define MT9M114_REG_USER_DEFINED_DEVICE_ADDRESS_ID 0x002E
- #define MT9M114_REG_PAD_CONTROL 0x0032
- #define MT9M114_REG_COMMAND_REGISTER 0x0080
- /* 5.XDMA registers */
- #define MT9M114_REG_ACCESS_CTL_STAT 0x0982
- #define MT9M114_REG_PHYSICAL_ADDRESS_ACCESS 0x098A
- #define MT9M114_REG_LOGICAL_ADDRESS_ACCESS 0x098E
- #define MT9M114_REG_MCU_VARIABLE_DATA0 0x0990
- #define MT9M114_REG_MCU_VARIABLE_DATA1 0x0992
- #define MT9M114_REG_MCU_VARIABLE_DATA2 0x0994
- #define MT9M114_REG_MCU_VARIABLE_DATA3 0x0996
- #define MT9M114_REG_MCU_VARIABLE_DATA4 0x0998
- #define MT9M114_REG_MCU_VARIABLE_DATA5 0x099A
- #define MT9M114_REG_MCU_VARIABLE_DATA6 0x099C
- #define MT9M114_REG_MCU_VARIABLE_DATA7 0x099E
- /*! @brief MT9M114 variables definitions.*/
- /* 01.Monitor variables */
- #define MT9M114_VAR_MON_MAJOR_VERSION 0x8000
- #define MT9M114_VAR_MON_MINOR_VERSION 0x8002
- #define MT9M114_VAR_MON_RELEASE_VERSION 0x8004
- #define MT9M114_VAR_MON_HEARTBEAT 0x8006
- /* 02.Sequencer variables */
- #define MT9M114_VAR_SEQ_ERROR_CODE 0x8406
- /* 03.AE_Rule variables */
- #define MT9M114_VAR_AE_RULE_ALGO 0xA404
- #define MT9M114_VAR_AE_RULE_AVG_Y_FROM_STATS 0xA406
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_0_0 0xA407
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_0_1 0xA408
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_0_2 0xA409
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_0_3 0xA40A
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_0_4 0xA40B
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_1_0 0xA40C
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_1_1 0xA40D
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_1_2 0xA40E
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_1_3 0xA40F
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_1_4 0xA410
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_2_0 0xA411
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_2_1 0xA412
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_2_2 0xA413
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_2_3 0xA414
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_2_4 0xA415
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_3_0 0xA416
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_3_1 0xA417
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_3_2 0xA418
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_3_3 0xA419
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_3_4 0xA41A
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_4_0 0xA41B
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_4_1 0xA41C
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_4_2 0xA41D
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_4_3 0xA41E
- #define MT9M114_VAR_AE_RULE_AE_WEIGHT_TABLE_4_4 0xA41F
- #define MT9M114_VAR_AE_RULE_AE_ADAPTIVE_STRENGTH 0xA420
- /* 04.AE_Track variables */
- #define MT9M114_VAR_AE_TRACK_STATUS 0xA800
- #define MT9M114_VAR_AE_TRACK_ALGO 0xA804
- #define MT9M114_VAR_AE_TRACK_TARGET_AVERAGE_LUMA 0xA807
- #define MT9M114_VAR_AE_TRACK_GATE_PERCENTAGE 0xA808
- #define MT9M114_VAR_AE_TRACK_CURRENT_AVERAGE_LUMA 0xA809
- #define MT9M114_VAR_AE_TRACK_AE_TRACKING_DAMPENING_SPEED 0xA80A
- #define MT9M114_VAR_AE_TRACK_AE_DAMPENING_SPEED 0xA80B
- #define MT9M114_VAR_AE_TRACK_SKIP_FRAMES_COUNTER 0xA80D
- #define MT9M114_VAR_AE_TRACK_CURRENT_FLICKER_LINES 0xA80E
- #define MT9M114_VAR_AE_TRACK_FDZONE 0xA818
- #define MT9M114_VAR_AE_TRACK_ZONE 0xA81B
- #define MT9M114_VAR_AE_TRACK_FLICKER_LINES_50HZ 0xA826
- #define MT9M114_VAR_AE_TRACK_VIRT_EXPOSURE_LOG 0xA828
- #define MT9M114_VAR_AE_TRACK_MIN_VIRT_EXPOSURE_LOG_ZONE0 0xA82A
- #define MT9M114_VAR_AE_TRACK_MAX_VIRT_EXPOSURE_LOG_ZONE0 0xA82C
- #define MT9M114_VAR_AE_TRACK_MAX_VIRT_EXPOSURE_LOG_ZONE1 0xA82E
- #define MT9M114_VAR_AE_TRACK_VIRT_GAIN 0xA838
- /* 05.AWB variables */
- #define MT9M114_VAR_AWB_STATUS 0xAC00
- #define MT9M114_VAR_AWB_MODE 0xAC02
- #define MT9M114_VAR_AWB_R_RATIO_LOWER 0xAC06
- #define MT9M114_VAR_AWB_R_RATIO_UPPER 0xAC07
- #define MT9M114_VAR_AWB_B_RATIO_LOWER 0xAC08
- #define MT9M114_VAR_AWB_B_RATIO_UPPER 0xAC09
- #define MT9M114_VAR_AWB_R_SCENE_RATIO_LOWER 0xAC0A
- #define MT9M114_VAR_AWB_R_SCENE_RATIO_UPPER 0xAC0B
- #define MT9M114_VAR_AWB_B_SCENE_RATIO_LOWER 0xAC0C
- #define MT9M114_VAR_AWB_B_SCENE_RATIO_UPPER 0xAC0D
- #define MT9M114_VAR_AWB_R_RATIO_PRE_AWB 0xAC0E
- #define MT9M114_VAR_AWB_B_RATIO_PRE_AWB 0xAC0F
- #define MT9M114_VAR_AWB_R_GAIN 0xAC12
- #define MT9M114_VAR_AWB_B_GAIN 0xAC14
- #define MT9M114_VAR_AWB_PRE_AWB_RATIOS_TRACKING_SPEED 0xAC16
- #define MT9M114_VAR_AWB_PIXEL_THRESHOLD_COUNT 0xAC18
- /* 06.BlackLevel variables */
- #define MT9M114_VAR_BLACKLEVEL_ALGO 0xB004
- #define MT9M114_VAR_BLACKLEVEL_MAX_BLACK_LEVEL 0xB00C
- #define MT9M114_VAR_BLACKLEVEL_BLACK_LEVEL_DAMPENING 0xB00D
- /* 07.CCM variables */
- #define MT9M114_VAR_CCM_ALGO 0xB404
- #define MT9M114_VAR_CCM_0 0xB406
- #define MT9M114_VAR_CCM_1 0xB408
- #define MT9M114_VAR_CCM_2 0xB40A
- #define MT9M114_VAR_CCM_3 0xB40C
- #define MT9M114_VAR_CCM_4 0xB40E
- #define MT9M114_VAR_CCM_5 0xB410
- #define MT9M114_VAR_CCM_6 0xB412
- #define MT9M114_VAR_CCM_7 0xB414
- #define MT9M114_VAR_CCM_8 0xB416
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_0 0xB418
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_1 0xB41A
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_2 0xB41C
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_3 0xB41E
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_4 0xB420
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_5 0xB422
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_6 0xB424
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_7 0xB426
- #define MT9M114_VAR_CCM_LL_DELTA_CCM_8 0xB428
- #define MT9M114_VAR_CCM_DELTA_GAIN 0xB42A
- #define MT9M114_VAR_CCM_DELTA_THRESH 0xB42B
- /* 08.LowLight variables */
- #define MT9M114_VAR_LL_MODE 0xBC02
- #define MT9M114_VAR_LL_ALGO 0xBC04
- #define MT9M114_VAR_LL_GAMMA_SELECT 0xBC07
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_0 0xBC0A
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_1 0xBC0B
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_2 0xBC0C
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_3 0xBC0D
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_4 0xBC0E
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_5 0xBC0F
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_6 0xBC10
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_7 0xBC11
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_8 0xBC12
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_9 0xBC13
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_10 0xBC14
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_11 0xBC15
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_12 0xBC16
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_13 0xBC17
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_14 0xBC18
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_15 0xBC19
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_16 0xBC1A
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_17 0xBC1B
- #define MT9M114_VAR_LL_GAMMA_CONTRAST_CURVE_18 0xBC1C
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_0 0xBC1D
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_1 0xBC1E
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_2 0xBC1F
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_3 0xBC20
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_4 0xBC21
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_5 0xBC22
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_6 0xBC23
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_7 0xBC24
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_8 0xBC25
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_9 0xBC26
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_10 0xBC27
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_11 0xBC28
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_12 0xBC29
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_13 0xBC2A
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_14 0xBC2B
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_15 0xBC2C
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_16 0xBC2D
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_17 0xBC2E
- #define MT9M114_VAR_LL_GAMMA_NRCURVE_18 0xBC2F
- #define MT9M114_VAR_LL_BM_PRECISION_BITS 0xBC31
- #define MT9M114_VAR_LL_AVERAGE_LUMA_FADE_TO_BLACK 0xBC3A
- #define MT9M114_VAR_LL_FADE_TO_BLACK_DAMPENING_SPEED 0xBC3C
- /* 09.CameraControl variables */
- #define MT9M114_VAR_CAM_SENSOR_CFG_Y_ADDR_START 0xC800
- #define MT9M114_VAR_CAM_SENSOR_CFG_X_ADDR_START 0xC802
- #define MT9M114_VAR_CAM_SENSOR_CFG_Y_ADDR_END 0xC804
- #define MT9M114_VAR_CAM_SENSOR_CFG_X_ADDR_END 0xC806
- #define MT9M114_VAR_CAM_SENSOR_CFG_PIXCLK 0xC808
- #define MT9M114_VAR_CAM_SENSOR_CFG_ROW_SPEED 0xC80C
- #define MT9M114_VAR_CAM_SENSOR_CFG_FINE_INTEG_TIME_MIN 0xC80E
- #define MT9M114_VAR_CAM_SENSOR_CFG_FINE_INTEG_TIME_MAX 0xC810
- #define MT9M114_VAR_CAM_SENSOR_CFG_FRAME_LENGTH_LINES 0xC812
- #define MT9M114_VAR_CAM_SENSOR_CFG_LINE_LENGTH_PCK 0xC814
- #define MT9M114_VAR_CAM_SENSOR_CFG_FINE_CORRECTION 0xC816
- #define MT9M114_VAR_CAM_SENSOR_CFG_CPIPE_LAST_ROW 0xC818
- #define MT9M114_VAR_CAM_SENSOR_CFG_REG_0_DATA 0xC826
- #define MT9M114_VAR_CAM_SENSOR_CONTROL_READ_MODE 0xC834
- #define MT9M114_VAR_CAM_SENSOR_CONTROL_ANALOG_GAIN 0xC836
- #define MT9M114_VAR_CAM_SENSOR_CONTROL_VIRT_COLUMN_GAIN 0xC838
- #define MT9M114_VAR_CAM_SENSOR_CONTROL_FRAME_LENGTH_LINES 0xC83A
- #define MT9M114_VAR_CAM_SENSOR_CONTROL_COARSE_INTEGRATION_TIME 0xC83C
- #define MT9M114_VAR_CAM_SENSOR_CONTROL_FINE_INTEGRATION_TIME 0xC83E
- #define MT9M114_VAR_CAM_CPIPE_CONTROL_DGAIN_RED 0xC840
- #define MT9M114_VAR_CAM_CPIPE_CONTROL_DGAIN_GREEN1 0xC842
- #define MT9M114_VAR_CAM_CPIPE_CONTROL_DGAIN_GREEN2 0xC844
- #define MT9M114_VAR_CAM_CPIPE_CONTROL_DGAIN_BLUE 0xC846
- #define MT9M114_VAR_CAM_CPIPE_CONTROL_DGAIN_SECOND 0xC848
- #define MT9M114_VAR_CAM_CPIPE_CONTROL_SECOND_BLACK_LEVEL 0xC84B
- #define MT9M114_VAR_CAM_MODE_SELECT 0xC84C
- #define MT9M114_VAR_CAM_MODE_TEST_PATTERN_SELECT 0xC84D
- #define MT9M114_VAR_CAM_MODE_TEST_PATTERN_RED 0xC84E
- #define MT9M114_VAR_CAM_MODE_TEST_PATTERN_GREEN 0xC850
- #define MT9M114_VAR_CAM_MODE_TEST_PATTERN_BLUE 0xC852
- #define MT9M114_VAR_CAM_CROP_WINDOW_XOFFSET 0xC854
- #define MT9M114_VAR_CAM_CROP_WINDOW_YOFFSET 0xC856
- #define MT9M114_VAR_CAM_CROP_WINDOW_WIDTH 0xC858
- #define MT9M114_VAR_CAM_CROP_WINDOW_HEIGHT 0xC85A
- #define MT9M114_VAR_CAM_CROP_CROPMODE 0xC85C
- #define MT9M114_VAR_CAM_SCALE_VERTICAL_TC_MODE 0xC85E
- #define MT9M114_VAR_CAM_SCALE_VERTICAL_TC_PERCENTAGE 0xC860
- #define MT9M114_VAR_CAM_SCALE_VERTICAL_TC_STRETCH_FACTOR 0xC862
- #define MT9M114_VAR_CAM_OUTPUT_WIDTH 0xC868
- #define MT9M114_VAR_CAM_OUTPUT_HEIGHT 0xC86A
- #define MT9M114_VAR_CAM_OUTPUT_FORMAT 0xC86C
- #define MT9M114_VAR_CAM_OUTPUT_FORMAT_YUV 0xC86E
- #define MT9M114_VAR_CAM_OUTPUT_Y_OFFSET 0xC870
- #define MT9M114_VAR_CAM_HUE_ANGLE 0xC873
- #define MT9M114_VAR_CAM_SFX_CONTROL 0xC874
- #define MT9M114_VAR_CAM_SFX_SOLARIZATION_THRESH 0xC875
- #define MT9M114_VAR_CAM_SFX_SEPIA_CR 0xC876
- #define MT9M114_VAR_CAM_SFX_SEPIA_CB 0xC877
- #define MT9M114_VAR_CAM_AET_AEMODE 0xC878
- #define MT9M114_VAR_CAM_AET_SKIP_FRAMES 0xC879
- #define MT9M114_VAR_CAM_AET_TARGET_AVERAGE_LUMA 0xC87A
- #define MT9M114_VAR_CAM_AET_TARGET_AVERAGE_LUMA_DARK 0xC87B
- #define MT9M114_VAR_CAM_AET_BLACK_CLIPPING_TARGET 0xC87C
- #define MT9M114_VAR_CAM_AET_AE_MIN_VIRT_INT_TIME_PCLK 0xC87E
- #define MT9M114_VAR_CAM_AET_AE_MIN_VIRT_DGAIN 0xC880
- #define MT9M114_VAR_CAM_AET_AE_MAX_VIRT_DGAIN 0xC882
- #define MT9M114_VAR_CAM_AET_AE_MIN_VIRT_AGAIN 0xC884
- #define MT9M114_VAR_CAM_AET_AE_MAX_VIRT_AGAIN 0xC886
- #define MT9M114_VAR_CAM_AET_AE_VIRT_GAIN_TH_EG 0xC888
- #define MT9M114_VAR_CAM_AET_AE_EG_GATE_PERCENTAGE 0xC88A
- #define MT9M114_VAR_CAM_AET_FLICKER_FREQ_HZ 0xC88B
- #define MT9M114_VAR_CAM_AET_MAX_FRAME_RATE 0xC88C
- #define MT9M114_VAR_CAM_AET_MIN_FRAME_RATE 0xC88E
- #define MT9M114_VAR_CAM_AET_TARGET_GAIN 0xC890
- #define MT9M114_VAR_CAM_AWB_CCM_L_0 0xC892
- #define MT9M114_VAR_CAM_AWB_CCM_L_1 0xC894
- #define MT9M114_VAR_CAM_AWB_CCM_L_2 0xC896
- #define MT9M114_VAR_CAM_AWB_CCM_L_3 0xC898
- #define MT9M114_VAR_CAM_AWB_CCM_L_4 0xC89A
- #define MT9M114_VAR_CAM_AWB_CCM_L_5 0xC89C
- #define MT9M114_VAR_CAM_AWB_CCM_L_6 0xC89E
- #define MT9M114_VAR_CAM_AWB_CCM_L_7 0xC8A0
- #define MT9M114_VAR_CAM_AWB_CCM_L_8 0xC8A2
- #define MT9M114_VAR_CAM_AWB_CCM_M_0 0xC8A4
- #define MT9M114_VAR_CAM_AWB_CCM_M_1 0xC8A6
- #define MT9M114_VAR_CAM_AWB_CCM_M_2 0xC8A8
- #define MT9M114_VAR_CAM_AWB_CCM_M_3 0xC8AA
- #define MT9M114_VAR_CAM_AWB_CCM_M_4 0xC8AC
- #define MT9M114_VAR_CAM_AWB_CCM_M_5 0xC8AE
- #define MT9M114_VAR_CAM_AWB_CCM_M_6 0xC8B0
- #define MT9M114_VAR_CAM_AWB_CCM_M_7 0xC8B2
- #define MT9M114_VAR_CAM_AWB_CCM_M_8 0xC8B4
- #define MT9M114_VAR_CAM_AWB_CCM_R_0 0xC8B6
- #define MT9M114_VAR_CAM_AWB_CCM_R_1 0xC8B8
- #define MT9M114_VAR_CAM_AWB_CCM_R_2 0xC8BA
- #define MT9M114_VAR_CAM_AWB_CCM_R_3 0xC8BC
- #define MT9M114_VAR_CAM_AWB_CCM_R_4 0xC8BE
- #define MT9M114_VAR_CAM_AWB_CCM_R_5 0xC8C0
- #define MT9M114_VAR_CAM_AWB_CCM_R_6 0xC8C2
- #define MT9M114_VAR_CAM_AWB_CCM_R_7 0xC8C4
- #define MT9M114_VAR_CAM_AWB_CCM_R_8 0xC8C6
- #define MT9M114_VAR_CAM_AWB_CCM_L_RG_GAIN 0xC8C8
- #define MT9M114_VAR_CAM_AWB_CCM_L_BG_GAIN 0xC8CA
- #define MT9M114_VAR_CAM_AWB_CCM_M_RG_GAIN 0xC8CC
- #define MT9M114_VAR_CAM_AWB_CCM_M_BG_GAIN 0xC8CE
- #define MT9M114_VAR_CAM_AWB_CCM_R_RG_GAIN 0xC8D0
- #define MT9M114_VAR_CAM_AWB_CCM_R_BG_GAIN 0xC8D2
- #define MT9M114_VAR_CAM_AWB_CCM_L_CTEMP 0xC8D4
- #define MT9M114_VAR_CAM_AWB_CCM_M_CTEMP 0xC8D6
- #define MT9M114_VAR_CAM_AWB_CCM_R_CTEMP 0xC8D8
- #define MT9M114_VAR_CAM_AWB_LL_CCM_0 0xC8DA
- #define MT9M114_VAR_CAM_AWB_LL_CCM_1 0xC8DC
- #define MT9M114_VAR_CAM_AWB_LL_CCM_2 0xC8DE
- #define MT9M114_VAR_CAM_AWB_LL_CCM_3 0xC8E0
- #define MT9M114_VAR_CAM_AWB_LL_CCM_4 0xC8E2
- #define MT9M114_VAR_CAM_AWB_LL_CCM_5 0xC8E4
- #define MT9M114_VAR_CAM_AWB_LL_CCM_6 0xC8E6
- #define MT9M114_VAR_CAM_AWB_LL_CCM_7 0xC8E8
- #define MT9M114_VAR_CAM_AWB_LL_CCM_8 0xC8EA
- #define MT9M114_VAR_CAM_AWB_COLOR_TEMPERATURE_MIN 0xC8EC
- #define MT9M114_VAR_CAM_AWB_COLOR_TEMPERATURE_MAX 0xC8EE
- #define MT9M114_VAR_CAM_AWB_COLOR_TEMPERATURE 0xC8F0
- #define MT9M114_VAR_CAM_AWB_AWB_XSCALE 0xC8F2
- #define MT9M114_VAR_CAM_AWB_AWB_YSCALE 0xC8F3
- #define MT9M114_VAR_CAM_AWB_AWB_WEIGHTS_0 0xC8F4
- #define MT9M114_VAR_CAM_AWB_AWB_WEIGHTS_1 0xC8F6
- #define MT9M114_VAR_CAM_AWB_AWB_WEIGHTS_2 0xC8F8
- #define MT9M114_VAR_CAM_AWB_AWB_WEIGHTS_3 0xC8FA
- #define MT9M114_VAR_CAM_AWB_AWB_WEIGHTS_4 0xC8FC
- #define MT9M114_VAR_CAM_AWB_AWB_WEIGHTS_5 0xC8FE
- #define MT9M114_VAR_CAM_AWB_AWB_WEIGHTS_6 0xC900
- #define MT9M114_VAR_CAM_AWB_AWB_WEIGHTS_7 0xC902
- #define MT9M114_VAR_CAM_AWB_AWB_XSHIFT_PRE_ADJ 0xC904
- #define MT9M114_VAR_CAM_AWB_AWB_YSHIFT_PRE_ADJ 0xC906
- #define MT9M114_VAR_CAM_AWB_AWBMODE 0xC909
- #define MT9M114_VAR_CAM_AWB_TINTS_CTEMP_THRESHOLD 0xC90A
- #define MT9M114_VAR_CAM_AWB_K_R_L 0xC90C
- #define MT9M114_VAR_CAM_AWB_K_G_L 0xC90D
- #define MT9M114_VAR_CAM_AWB_K_B_L 0xC90E
- #define MT9M114_VAR_CAM_AWB_K_R_R 0xC90F
- #define MT9M114_VAR_CAM_AWB_K_G_R 0xC910
- #define MT9M114_VAR_CAM_AWB_K_B_R 0xC911
- #define MT9M114_VAR_CAM_STAT_AWB_CLIP_WINDOW_XSTART 0xC914
- #define MT9M114_VAR_CAM_STAT_AWB_CLIP_WINDOW_YSTART 0xC916
- #define MT9M114_VAR_CAM_STAT_AWB_CLIP_WINDOW_XEND 0xC918
- #define MT9M114_VAR_CAM_STAT_AWB_CLIP_WINDOW_YEND 0xC91A
- #define MT9M114_VAR_CAM_STAT_AE_INITIAL_WINDOW_XSTART 0xC91C
- #define MT9M114_VAR_CAM_STAT_AE_INITIAL_WINDOW_YSTART 0xC91E
- #define MT9M114_VAR_CAM_STAT_AE_INITIAL_WINDOW_XEND 0xC920
- #define MT9M114_VAR_CAM_STAT_AE_INITIAL_WINDOW_YEND 0xC922
- #define MT9M114_VAR_CAM_LL_LLMODE 0xC924
- #define MT9M114_VAR_CAM_LL_START_BRIGHTNESS 0xC926
- #define MT9M114_VAR_CAM_LL_STOP_BRIGHTNESS 0xC928
- #define MT9M114_VAR_CAM_LL_START_SATURATION 0xC92A
- #define MT9M114_VAR_CAM_LL_END_SATURATION 0xC92B
- #define MT9M114_VAR_CAM_LL_START_DESATURATION 0xC92C
- #define MT9M114_VAR_CAM_LL_END_DESATURATION 0xC92D
- #define MT9M114_VAR_CAM_LL_START_DEMOSAIC 0xC92E
- #define MT9M114_VAR_CAM_LL_START_AP_GAIN 0xC92F
- #define MT9M114_VAR_CAM_LL_START_AP_THRESH 0xC930
- #define MT9M114_VAR_CAM_LL_STOP_DEMOSAIC 0xC931
- #define MT9M114_VAR_CAM_LL_STOP_AP_GAIN 0xC932
- #define MT9M114_VAR_CAM_LL_STOP_AP_THRESH 0xC933
- #define MT9M114_VAR_CAM_LL_START_NR_RED 0xC934
- #define MT9M114_VAR_CAM_LL_START_NR_GREEN 0xC935
- #define MT9M114_VAR_CAM_LL_START_NR_BLUE 0xC936
- #define MT9M114_VAR_CAM_LL_START_NR_THRESH 0xC937
- #define MT9M114_VAR_CAM_LL_STOP_NR_RED 0xC938
- #define MT9M114_VAR_CAM_LL_STOP_NR_GREEN 0xC939
- #define MT9M114_VAR_CAM_LL_STOP_NR_BLUE 0xC93A
- #define MT9M114_VAR_CAM_LL_STOP_NR_THRESH 0xC93B
- #define MT9M114_VAR_CAM_LL_START_CONTRAST_BM 0xC93C
- #define MT9M114_VAR_CAM_LL_STOP_CONTRAST_BM 0xC93E
- #define MT9M114_VAR_CAM_LL_GAMMA 0xC940
- #define MT9M114_VAR_CAM_LL_START_CONTRAST_GRADIENT 0xC942
- #define MT9M114_VAR_CAM_LL_STOP_CONTRAST_GRADIENT 0xC943
- #define MT9M114_VAR_CAM_LL_START_CONTRAST_LUMA_PERCENTAGE 0xC944
- #define MT9M114_VAR_CAM_LL_STOP_CONTRAST_LUMA_PERCENTAGE 0xC945
- #define MT9M114_VAR_CAM_LL_START_GAIN_METRIC 0xC946
- #define MT9M114_VAR_CAM_LL_STOP_GAIN_METRIC 0xC948
- #define MT9M114_VAR_CAM_LL_START_FADE_TO_BLACK_LUMA 0xC94A
- #define MT9M114_VAR_CAM_LL_STOP_FADE_TO_BLACK_LUMA 0xC94C
- #define MT9M114_VAR_CAM_LL_CLUSTER_DC_TH_BM 0xC94E
- #define MT9M114_VAR_CAM_LL_CLUSTER_DC_GATE_PERCENTAGE 0xC950
- #define MT9M114_VAR_CAM_LL_SUMMING_SENSITIVITY_FACTOR 0xC951
- #define MT9M114_VAR_CAM_LL_START_TARGET_LUMA_BM 0xC952
- #define MT9M114_VAR_CAM_LL_STOP_TARGET_LUMA_BM 0xC954
- #define MT9M114_VAR_CAM_LL_INV_BRIGHTNESS_METRIC 0xC956
- #define MT9M114_VAR_CAM_LL_GAIN_METRIC 0xC958
- #define MT9M114_VAR_CAM_SEQ_UV_COLOR_BOOST 0xC95A
- #define MT9M114_VAR_CAM_PGA_PGA_CONTROL 0xC95E
- #define MT9M114_VAR_CAM_PGA_L_CONFIG_COLOUR_TEMP 0xC960
- #define MT9M114_VAR_CAM_PGA_L_CONFIG_GREEN_RED_Q14 0xC962
- #define MT9M114_VAR_CAM_PGA_L_CONFIG_RED_Q14 0xC964
- #define MT9M114_VAR_CAM_PGA_L_CONFIG_GREEN_BLUE_Q14 0xC966
- #define MT9M114_VAR_CAM_PGA_L_CONFIG_BLUE_Q14 0xC968
- #define MT9M114_VAR_CAM_PGA_M_CONFIG_COLOUR_TEMP 0xC96A
- #define MT9M114_VAR_CAM_PGA_M_CONFIG_GREEN_RED_Q14 0xC96C
- #define MT9M114_VAR_CAM_PGA_M_CONFIG_RED_Q14 0xC96E
- #define MT9M114_VAR_CAM_PGA_M_CONFIG_GREEN_BLUE_Q14 0xC970
- #define MT9M114_VAR_CAM_PGA_M_CONFIG_BLUE_Q14 0xC972
- #define MT9M114_VAR_CAM_PGA_R_CONFIG_COLOUR_TEMP 0xC974
- #define MT9M114_VAR_CAM_PGA_R_CONFIG_GREEN_RED_Q14 0xC976
- #define MT9M114_VAR_CAM_PGA_R_CONFIG_RED_Q14 0xC978
- #define MT9M114_VAR_CAM_PGA_R_CONFIG_GREEN_BLUE_Q14 0xC97A
- #define MT9M114_VAR_CAM_PGA_R_CONFIG_BLUE_Q14 0xC97C
- #define MT9M114_VAR_CAM_SYSCTL_PLL_ENABLE 0xC97E
- #define MT9M114_VAR_CAM_SYSCTL_PLL_DIVIDER_M_N 0xC980
- #define MT9M114_VAR_CAM_SYSCTL_PLL_DIVIDER_P 0xC982
- #define MT9M114_VAR_CAM_PORT_OUTPUT_CONTROL 0xC984
- #define MT9M114_VAR_CAM_PORT_PORCH 0xC986
- #define MT9M114_VAR_CAM_PORT_MIPI_TIMING_T_HS_ZERO 0xC988
- #define MT9M114_VAR_CAM_PORT_MIPI_TIMING_T_HS_EXIT_HS_TRAIL 0xC98A
- #define MT9M114_VAR_CAM_PORT_MIPI_TIMING_T_CLK_POST_CLK_PRE 0xC98C
- #define MT9M114_VAR_CAM_PORT_MIPI_TIMING_T_CLK_TRAIL_CLK_ZERO 0xC98E
- #define MT9M114_VAR_CAM_PORT_MIPI_TIMING_T_LPX 0xC990
- #define MT9M114_VAR_CAM_PORT_MIPI_TIMING_INIT_TIMING 0xC992
- /* 10.UVC_Control variables */
- #define MT9M114_VAR_UVC_AE_MODE_CONTROL 0xCC00
- #define MT9M114_VAR_UVC_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL 0xCC01
- #define MT9M114_VAR_UVC_AE_PRIORITY_CONTROL 0xCC02
- #define MT9M114_VAR_UVC_POWER_LINE_FREQUENCY_CONTROL 0xCC03
- #define MT9M114_VAR_UVC_EXPOSURE_TIME_ABSOLUTE_CONTROL 0xCC04
- #define MT9M114_VAR_UVC_BACKLIGHT_COMPENSATION_CONTROL 0xCC08
- #define MT9M114_VAR_UVC_BRIGHTNESS_CONTROL 0xCC0A
- #define MT9M114_VAR_UVC_CONTRAST_CONTROL 0xCC0C
- #define MT9M114_VAR_UVC_GAIN_CONTROL 0xCC0E
- #define MT9M114_VAR_UVC_HUE_CONTROL 0xCC10
- #define MT9M114_VAR_UVC_SATURATION_CONTROL 0xCC12
- #define MT9M114_VAR_UVC_SHARPNESS_CONTROL 0xCC14
- #define MT9M114_VAR_UVC_GAMMA_CONTROL 0xCC16
- #define MT9M114_VAR_UVC_WHITE_BALANCE_TEMPERATURE_CONTROL 0xCC18
- #define MT9M114_VAR_UVC_FRAME_INTERVAL_CONTROL 0xCC1C
- #define MT9M114_VAR_UVC_MANUAL_EXPOSURE_CONFIGURATION 0xCC20
- #define MT9M114_VAR_UVC_FLICKER_AVOIDANCE_CONFIGURATION 0xCC21
- #define MT9M114_VAR_UVC_ALGO 0xCC22
- #define MT9M114_VAR_UVC_RESULT_STATUS 0xCC24
- /* 11.SystemManager variables */
- #define MT9M114_VAR_SYSMGR_NEXT_STATE 0xDC00
- #define MT9M114_VAR_SYSMGR_CURRENT_STATE 0xDC01
- #define MT9M114_VAR_SYSMGR_CMD_STATUS 0xDC02
- /* 12.PatchLoader variables */
- #define MT9M114_VAR_PATCHLDR_LOADER_ADDRESS 0xE000
- #define MT9M114_VAR_PATCHLDR_PATCH_ID 0xE002
- #define MT9M114_VAR_PATCHLDR_FIRMWARE_ID 0xE004
- #define MT9M114_VAR_PATCHLDR_APPLY_STATUS 0xE008
- #define MT9M114_VAR_PATCHLDR_NUM_PATCHES 0xE009
- #define MT9M114_VAR_PATCHLDR_PATCH_ID_0 0xE00A
- #define MT9M114_VAR_PATCHLDR_PATCH_ID_1 0xE00C
- #define MT9M114_VAR_PATCHLDR_PATCH_ID_2 0xE00E
- #define MT9M114_VAR_PATCHLDR_PATCH_ID_3 0xE010
- #define MT9M114_VAR_PATCHLDR_PATCH_ID_4 0xE012
- #define MT9M114_VAR_PATCHLDR_PATCH_ID_5 0xE014
- #define MT9M114_VAR_PATCHLDR_PATCH_ID_6 0xE016
- #define MT9M114_VAR_PATCHLDR_PATCH_ID_7 0xE018
- /* 13.Patch variables */
- #define MT9M114_VAR_PATCHVARS_DELTA_DK_CORRECTION_FACTOR 0xE400
- #define MT9M114_VAR_CAM_AUTO_BINNING_MODE (0xE801)
- /* 14.CommandHandler variables */
- #define MT9M114_VAR_CMD_HANDLER_WAIT_EVENT_ID 0xFC00
- #define MT9M114_VAR_CMD_HANDLER_NUM_EVENTS 0xFC02
- /*! @brief MT9M114 command definitions. */
- #define MT9M114_COMMAND_APPLY_PATCH 0x0001
- #define MT9M114_COMMAND_SET_STATE 0x0002
- #define MT9M114_COMMAND_REFRESH 0x0004
- #define MT9M114_COMMAND_WAIT_FOR_EVENT 0x0008
- #define MT9M114_COMMAND_OK 0x8000
- /*! @brief MT9M114 system state definitions. */
- #define MT9M114_SYS_STATE_ENTER_CONFIG_CHANGE 0x28
- #define MT9M114_SYS_STATE_STREAMING 0x31
- #define MT9M114_SYS_STATE_START_STREAMING 0x34
- #define MT9M114_SYS_STATE_ENTER_SUSPEND 0x40
- #define MT9M114_SYS_STATE_SUSPENDED 0x41
- #define MT9M114_SYS_STATE_ENTER_STANDBY 0x50
- #define MT9M114_SYS_STATE_STANDBY 0x52
- #define MT9M114_SYS_STATE_LEAVE_STANDBY 0x54
- /*! @brief MT9M114 system set-state command retults. */
- #define MT9M114_SYS_STATE_SET_RESULT_ENOERR 0x00 /* command successful */
- #define MT9M114_SYS_STATE_SET_RESULTEINVAL 0x0C /* invalid configuration */
- #define MT9M114_SYS_STATE_SET_RESULTENOSPC 0x0D /* resource not available */
- #define MT9M114_OUTPUT_FORMAT_SWAP_RB (1 << 0)
- #define MT9M114_OUTPUT_FORMAT_SWAP_BYTES (1 << 1)
- #define MT9M114_OUTPUT_FORMAT_MONO (1 << 2)
- #define MT9M114_OUTPUT_FORMAT_BT656 (1 << 3)
- #define MT9M114_OUTPUT_FORMAT_BT656_FIXED (1 << 4)
- #define MT9M114_OUTPUT_FORMAT_YUV (0 << 8)
- #define MT9M114_OUTPUT_FORMAT_RGB (1 << 8)
- #define MT9M114_OUTPUT_FORMAT_BAYER (2 << 8)
- #define MT9M114_OUTPUT_FORMAT_RAW_BAYER_10 (0 << 10)
- #define MT9M114_OUTPUT_FORMAT_RAW_BAYER_10_PRE (1 << 10)
- #define MT9M114_OUTPUT_FORMAT_RAW_BAYER_10_POST (2 << 10)
- #define MT9M114_OUTPUT_FORMAT_PROCESSED_BAYER (3 << 10)
- #define MT9M114_OUTPUT_FORMAT_RGB565 (0 << 12)
- #define MT9M114_OUTPUT_FORMAT_RGB555 (1 << 12)
- #define MT9M114_OUTPUT_FORMAT_XRGB444 (2 << 12)
- #define MT9M114_OUTPUT_FORMAT_RGB444X (3 << 12)
- #define MT9M114_SENSOR_CONTROL_READ_MODE_HMIRROR (0x1)
- #define MT9M114_SENSOR_CONTROL_READ_MODE_VFLIP (0x2)
- #define MT9M114_SENSOR_CONTROL_READ_MODE_HBIN_MASK (0x30)
- #define MT9M114_SENSOR_CONTROL_READ_MODE_HBIN (0x30)
- #define MT9M114_SENSOR_CONTROL_READ_MODE_VBIN_MASK (0x300)
- #define MT9M114_SENSOR_CONTROL_READ_MODE_VBIN (0x300)
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct {
- uint16_t reg; /* 16bit reg address */
- uint8_t size; /* reg size in byte */
- uint32_t value; /* reg value */
- } mt9m114_reg_t;
- /*!
- * @brief MT9M114 read register.
- *
- * @param[in] context camera_operate_context.
- * @param[in] reg reg address(16 bits)
- * @param[in] reg_size reg size in bytes
- * @param[out] value reg data from device
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_read_register(camera_context_t *context, uint32_t reg, uint32_t reg_size, void *value);
- /*!
- * @brief MT9M114 write register.
- *
- * @param[in] context camera_operate_context.
- * @param[in] reg reg address(16 bits)
- * @param[in] reg_size reg size in bytes
- * @param[in] value reg data to device
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_write_register(camera_context_t *context, uint32_t reg, uint32_t reg_size, uint32_t value);
- /*!
- * @brief MT9M114 modify register.
- *
- * @param[in] context camera_operate_context.
- * @param[in] reg reg address(16 bits)
- * @param[in] reg_size reg size in bytes
- * @param[in] mask bits can be modified
- * @param[in] value value should be set
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_modify_register(camera_context_t *context, uint32_t reg, uint32_t reg_size, uint32_t mask, uint32_t value);
- /*!
- * @brief MT9M114 multiwrite registers.
- *
- * @param[in] context camera_operate_context.
- * @param[in] regs pointer to array of mt9m114_reg_t, include reg addr, reg size and value
- * @param[in] num array size of [regs]
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_multiwrite(camera_context_t *context, const mt9m114_reg_t regs[], uint32_t num);
- /*!
- * @brief MT9M114 check chipid.
- *
- * @param[in] context camera_operate_context.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_check_chip_id(camera_context_t *context);
- /*!
- * @brief MT9M114 set next state and switch to it.
- *
- * @param[in] context camera_operate_context.
- * @param[in] next_state next device state.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_setstate(camera_context_t *context, uint16_t next_state);
- /*!
- * @brief MT9M114 get current state.
- *
- * @param[in] context camera_operate_context.
- * @param[out] state current device state.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_get_current_state(camera_context_t *context, uint8_t *state);
- /*!
- * @brief MT9M114 soft reset.
- *
- * @param[in] context camera_operate_context.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_software_reset(camera_context_t *context);
- /*!
- * @brief MT9M114 set pixformat.
- *
- * @param[in] context camera_operate_context.
- * @param[in] pixformat pixformat.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_set_pixformat(camera_context_t *context, display_pixel_format_t pixformat);
- /*!
- * @brief MT9M114 set framerate.
- *
- * @param[in] context camera_operate_context.
- * @param[in] framerate framerate.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_set_framerate(camera_context_t *context, int framerate);
- /*!
- * @brief MT9M114 set brightness.
- *
- * @param[in] context camera_operate_context.
- * @param[in] level brightness.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_set_brightness(camera_context_t *context, int level);
- /*!
- * @brief MT9M114 start to transfer image data.
- *
- * @param[in] context camera_operate_context.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_start(camera_context_t *context);
- /*!
- * @brief MT9M114 stop working and enter SUSPEND mode.
- *
- * @param[in] context camera_operate_context.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_stop(camera_context_t *context);
- /*!
- * @brief MT9M114 enable or disable MONO mode.
- *
- * @param[in] context camera_operate_context.
- * @param[in] enable enable or disable mono.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_enable_mono(camera_context_t *context, bool enable);
- /*!
- * @brief MT9M114 initialization.
- *
- * @param[in] context camera_operate_context.
- *
- * @retval status_success if success.
- * @retval status_fail if fail.
- */
- hpm_stat_t mt9m114_init(camera_context_t *context, camera_config_t *camera_config);
- #ifdef __cplusplus
- }
- #endif
- /**
- * @}
- *
- */
- #endif /* HPM_MT9M114_H */
|