Files
gk-sdk/source/gmp/usr/isp/sensor/sony_imx678/imx678.h
T

82 lines
2.0 KiB
C
Executable File

#ifndef _IMX678_COMM_H_
#define _IMX678_COMM_H_
#include "sns_comm.h"
#ifdef __cplusplus
extern "C" {
#endif
// Imx678 Register Address
#define IMX678_REG_ADDR_SHR0_H 0x3050
#define IMX678_REG_ADDR_SHR0_M 0x3051
#define IMX678_REG_ADDR_SHR0_L 0x3052
#define IMX678_REG_ADDR_GAIN 0x3070 //增益调节
#define IMX678_REG_ADDR_HCG 0x3030 //LCG与HCG的设置
#define IMX678_REG_ADDR_VMAX_H 0x3028
#define IMX678_REG_ADDR_VMAX_M 0x3029
#define IMX678_REG_ADDR_VMAX_L 0x302A
#define IMX678_REG_ADDR_SHR1_H 0x3054
#define IMX678_REG_ADDR_SHR1_M 0x3055
#define IMX678_REG_ADDR_SHR1_L 0x3056
#define IMX678_REG_ADDR_RHS1_H 0x3060
#define IMX678_REG_ADDR_RHS1_M 0x3061
#define IMX678_REG_ADDR_RHS1_L 0x3062
#define IMX678_REG_ADDR_HCG_SEL1 0x3031
#define IMX678_REG_ADDR_HCG_SEL2 0x3032
#define IMX678_HMAX_ADDR 0x302c
#define IMX678_WDR_BRL 2210
typedef enum {
IMX678_REG_SHR0_H = 0,
IMX678_REG_SHR0_M,
IMX678_REG_SHR0_L,
IMX678_REG_GAIN,
IMX678_REG_HCG,
IMX678_REG_VMAX_H,
IMX678_REG_VMAX_M,
IMX678_REG_VMAX_L,
IMX678_REG_L_MAX_NUM,
// short frame reg info from here
IMX678_REG_SHR1_H = IMX678_REG_L_MAX_NUM,
IMX678_REG_SHR1_M,
IMX678_REG_SHR1_L,
IMX678_REG_RHS1_H,
IMX678_REG_RHS1_M,
IMX678_REG_RHS1_L,
IMX678_REG__HCG_SEL1,
IMX678_REG__HCG_SEL2,
IMX678_REG_MAX_NUM
}imx678_reg_info;
typedef struct {
xmedia_u8 hcg;
xmedia_u32 brl;
xmedia_u32 rhs1_max;
xmedia_u32 rhs2_max;
} imx678_state_s;
#define IMX678_LINEAR_REG_INFO_MAX_NUM IMX678_REG_L_MAX_NUM
#define IMX678_2TO1_WDR_REG_INFO_MAX_NUM IMX678_REG_MAX_NUM
// local variables
#define IMX678_FULL_LINES_MAX 0xFFFFF
#define IMX678_FULL_LINES_MAX_2TO1_WDR 9000
#define IMX678_VMAX_8M_LINEAR 3750
#define IMX678_VMAX_8M_WDR 2250 // 10bit
extern sensor_context *g_imx678_ctx[XMEDIA_SENSOR_DEV_MAX_NUM];
#define IMX678_GET_CTX(dev, ctx) ctx = g_imx678_ctx[dev]
#ifdef __cplusplus
}
#endif
#endif