85 lines
2.6 KiB
C
Executable File
85 lines
2.6 KiB
C
Executable File
#ifndef __OS08A20_H__
|
|
#define __OS08A20_H__
|
|
|
|
#include "sns_comm.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define OS08A20_BIT_WIDTH_10
|
|
|
|
#ifdef OS08A20_BIT_WIDTH_10
|
|
#define OS08A20_VMAX_8M_LINEAR 2314 // 10bit
|
|
#define OS08A20_VMAX_5M_LINEAR OS08A20_VMAX_8M_LINEAR // crop from 8M
|
|
#define OS08A20_VMAX_4M_LINEAR OS08A20_VMAX_8M_LINEAR
|
|
#define OS08A20_VMAX_4M_1440P_LINEAR OS08A20_VMAX_8M_LINEAR
|
|
#define OS08A20_VMAX_3M_LINEAR OS08A20_VMAX_8M_LINEAR
|
|
#define OS08A20_VMAX_2M_LINEAR 4628
|
|
#else
|
|
#ifdef FPGA
|
|
#define OS08A20_VMAX_8M_LINEAR 4000 // 0xfa0 12bit
|
|
#else
|
|
#define OS08A20_VMAX_8M_LINEAR 2314
|
|
#endif
|
|
#define OS08A20_VMAX_5M_LINEAR OS08A20_VMAX_8M_LINEAR // crop from 8M
|
|
#define OS08A20_VMAX_4M_LINEAR OS08A20_VMAX_8M_LINEAR
|
|
#define OS08A20_VMAX_4M_1440P_LINEAR OS08A20_VMAX_8M_LINEAR
|
|
#define OS08A20_VMAX_3M_LINEAR OS08A20_VMAX_8M_LINEAR
|
|
#define OS08A20_VMAX_2M_LINEAR OS08A20_VMAX_8M_LINEAR
|
|
#endif
|
|
|
|
#define OS08A20_VMAX_8M_WDR 2317 // 10bit
|
|
#define OS08A20_VMAX_5M_WDR OS08A20_VMAX_8M_WDR // crop from 8M
|
|
#define OS08A20_VMAX_4M_WDR OS08A20_VMAX_8M_WDR
|
|
#define OS08A20_VMAX_4M_1440P_WDR OS08A20_VMAX_8M_WDR
|
|
#define OS08A20_VMAX_3M_WDR OS08A20_VMAX_8M_WDR
|
|
#define OS08A20_VMAX_2M_WDR OS08A20_VMAX_8M_WDR
|
|
|
|
#define OS08A20_EXP_OFFSET_LINEAR 10
|
|
#define OS08A20_EXP_OFFSET_WDR 18
|
|
|
|
#define OS08A20_REG_DELAY_CONFIG_NUM 0
|
|
|
|
// OS08A20 Register Address
|
|
#define OS08A20_REG_ADDR_EXP_H 0x3501
|
|
#define OS08A20_REG_ADDR_EXP_L 0x3502
|
|
#define OS08A20_REG_ADDR_AGAIN_H 0x3508
|
|
#define OS08A20_REG_ADDR_AGAIN_L 0x3509
|
|
#define OS08A20_REG_ADDR_DGAIN_H 0x350a
|
|
#define OS08A20_REG_ADDR_DGAIN_L 0x350b
|
|
#define OS08A20_REG_ADDR_VMAX_H 0x380e
|
|
#define OS08A20_REG_ADDR_VMAX_L 0x380f
|
|
#define OS08A20_REG_ADDR_S_EXP_H 0x3511
|
|
#define OS08A20_REG_ADDR_S_EXP_L 0x3512
|
|
#define OS08A20_REG_ADDR_S_AGAIN_H 0x350c
|
|
#define OS08A20_REG_ADDR_S_AGAIN_L 0x350d
|
|
#define OS08A20_REG_ADDR_S_DGAIN_H 0x350e
|
|
#define OS08A20_REG_ADDR_S_DGAIN_L 0x350f
|
|
|
|
typedef enum {
|
|
OS08A20_REG_EXP_H_IDX = 0,
|
|
OS08A20_REG_EXP_L_IDX,
|
|
OS08A20_REG_AGAIN_H_IDX,
|
|
OS08A20_REG_AGAIN_L_IDX,
|
|
OS08A20_REG_DGAIN_H_IDX,
|
|
OS08A20_REG_DGAIN_L_IDX,
|
|
OS08A20_REG_VMAX_H_IDX,
|
|
OS08A20_REG_VMAX_L_IDX,
|
|
OS08A20_REG_L_MAX_NUM,
|
|
|
|
OS08A20_REG_S_EXP_H_IDX = OS08A20_REG_L_MAX_NUM,
|
|
OS08A20_REG_S_EXP_L_IDX,
|
|
OS08A20_REG_S_AGAIN_H_IDX,
|
|
OS08A20_REG_S_AGAIN_L_IDX,
|
|
OS08A20_REG_S_DGAIN_H_IDX,
|
|
OS08A20_REG_S_DGAIN_L_IDX,
|
|
OS08A20_REG_MAX_NUM
|
|
} os08a20_reg_index;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // __OS08A20_H__
|