GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
ifneq ($(MCU), )
|
||||
include Makefile.riscv
|
||||
else
|
||||
include Makefile.linux
|
||||
endif
|
||||
@@ -0,0 +1,20 @@
|
||||
ISP_DIR := $(shell cd ../.. && /bin/pwd)
|
||||
SDK_DIR ?= $(shell cd $(ISP_DIR)/../../../.. && /bin/pwd)
|
||||
|
||||
include $(SDK_DIR)/build/base.mk
|
||||
include $(ISP_DIR)/sensor/plat.mk
|
||||
|
||||
LIB_NAME := libsns_sc450ai
|
||||
|
||||
SRCS := $(wildcard *.c)
|
||||
|
||||
SDK_USR_CFLAGS += -I$(GMP_DIR)/include
|
||||
SDK_USR_CFLAGS += -I$(GMP_DIR)/usr/include
|
||||
SDK_USR_CFLAGS += -I$(ISP_DIR)/include
|
||||
SDK_USR_CFLAGS += -I$(ISP_DIR)/../include
|
||||
SDK_USR_CFLAGS += -I.
|
||||
AT := @
|
||||
|
||||
$(info SRCS=$(SRCS))
|
||||
|
||||
include $(SDK_DIR)/build/sdk_lib_rules.mk
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
SRCS-y += sc450ai.c
|
||||
SRCS-y += sc450ai_ctrl.c
|
||||
|
||||
+1715
File diff suppressed because it is too large
Load Diff
+78
@@ -0,0 +1,78 @@
|
||||
#ifndef __SC450AI_H__
|
||||
#define __SC450AI_H__
|
||||
|
||||
#include "sns_comm.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// sensor fps mode
|
||||
#define SC450AI_FULL_LINES_MAX 0x7FFF
|
||||
#define SC450AI_VMAX_4M_1440_LINEAR 1600
|
||||
#define SC450AI_VMAX_4M_1440_WDR 3200
|
||||
#define SC450AI_VMAX_4M_1520_LINEAR 1560
|
||||
#define SC450AI_VMAX_1M_760_LINEAR 780
|
||||
|
||||
#define SC450AI_EXP_OFFSET_LINEAR 8
|
||||
|
||||
#define SC450AI_FRAME_RATE_MIN 0x4B00
|
||||
|
||||
#define SC450AI_EXP_OFFSET_WDR 13
|
||||
|
||||
#define SC450AI_S_EXP_MAX_DEFAULT 0xc6
|
||||
|
||||
// the value of the sc450ai exposure register is in half line units, (<< 1) for AE calculation, (>> 1) for EXP reg
|
||||
#define SC450AI_EXP_SHIFT 1
|
||||
|
||||
#define SC450AI_REG_ADDR_EXP_H 0x3e00
|
||||
#define SC450AI_REG_ADDR_EXP_M 0x3e01
|
||||
#define SC450AI_REG_ADDR_EXP_L 0x3e02
|
||||
#define SC450AI_REG_ADDR_AGAIN_H 0x3e08
|
||||
#define SC450AI_REG_ADDR_AGAIN_L 0x3e09
|
||||
#define SC450AI_REG_ADDR_DGAIN_H 0x3e06
|
||||
#define SC450AI_REG_ADDR_DGAIN_L 0x3e07
|
||||
#define SC450AI_REG_ADDR_VMAX_H 0x320e
|
||||
#define SC450AI_REG_ADDR_VMAX_L 0x320f
|
||||
#define SC450AI_REG_ADDR_GROUP_HOLD_0 0x3812
|
||||
#define SC450AI_REG_ADDR_GROUP_HOLD_1 0x363a
|
||||
#define SC450AI_REG_ADDR_GROUP_HOLD_2 0x3812
|
||||
|
||||
#define SC450AI_REG_ADDR_S_EXP_H 0x3e04
|
||||
#define SC450AI_REG_ADDR_S_EXP_L 0x3e05
|
||||
#define SC450AI_REG_ADDR_S_AGAIN_H 0x3e12
|
||||
#define SC450AI_REG_ADDR_S_AGAIN_L 0x3e13
|
||||
#define SC450AI_REG_ADDR_S_DGAIN_H 0x3e10
|
||||
#define SC450AI_REG_ADDR_S_DGAIN_L 0x3e11
|
||||
#define SC450AI_REG_ADDR_S_EXP_MAX_H 0x3e23
|
||||
#define SC450AI_REG_ADDR_S_EXP_MAX_L 0x3e24
|
||||
|
||||
typedef enum {
|
||||
SC450AI_REG_EXP_H = 0,
|
||||
SC450AI_REG_EXP_M,
|
||||
SC450AI_REG_EXP_L,
|
||||
SC450AI_REG_AGAIN_H,
|
||||
SC450AI_REG_AGAIN_L,
|
||||
SC450AI_REG_DGAIN_H,
|
||||
SC450AI_REG_DGAIN_L,
|
||||
SC450AI_REG_VMAX_H,
|
||||
SC450AI_REG_VMAX_L,
|
||||
SC450AI_REG_L_MAX_NUM,
|
||||
|
||||
// short frame reg info from here
|
||||
SC450AI_REG_S_EXP_H = SC450AI_REG_L_MAX_NUM,
|
||||
SC450AI_REG_S_EXP_L,
|
||||
SC450AI_REG_S_AGAIN_H,
|
||||
SC450AI_REG_S_AGAIN_L,
|
||||
SC450AI_REG_S_DGAIN_H,
|
||||
SC450AI_REG_S_DGAIN_L,
|
||||
SC450AI_REG_S_EXP_MAX_H,
|
||||
SC450AI_REG_S_EXP_MAX_L,
|
||||
SC450AI_REG_MAX_NUM
|
||||
} sc450ai_reg_info;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __SC450AI_H__
|
||||
+1059
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,32 @@
|
||||
#ifndef __SC450AI_CTRL_H__
|
||||
#define __SC450AI_CTRL_H__
|
||||
|
||||
#include "sns_comm.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define SC450AI_I2C_ADDR 0x60
|
||||
#define SC450AI_ADDR_BYTE 2
|
||||
#define SC450AI_DATA_BYTE 1
|
||||
|
||||
// sc450ai specs list
|
||||
#define SC450AI_4M_1440_10BIT_LINEAR_MODE 1
|
||||
#define SC450AI_4M_1440_10BIT_WDR_MODE 2
|
||||
#define SC450AI_4M_1520_10BIT_LINEAR_MODE 3
|
||||
#define SC450AI_1M_760_10BIT_LINEAR_MODE 4
|
||||
|
||||
xmedia_s32 sc450ai_i2c_init(xmedia_u32 dev, xmedia_s8 i2c_dev, xmedia_u32 i2c_addr);
|
||||
xmedia_s32 sc450ai_i2c_exit(xmedia_u32 dev);
|
||||
xmedia_s32 sc450ai_read_reg(xmedia_u32 dev, xmedia_u32 addr, xmedia_u32 *data);
|
||||
xmedia_s32 sc450ai_write_reg(xmedia_u32 dev, xmedia_u32 addr, xmedia_u32 data);
|
||||
xmedia_s32 sc450ai_set_mirror_flip(xmedia_u32 dev, xmedia_bool mirror_en, xmedia_bool flip_en);
|
||||
xmedia_s32 sc450ai_init_image(xmedia_u32 dev, xmedia_u8 img_mode);
|
||||
xmedia_s32 sc450ai_set_slave_addr(xmedia_u32 dev, xmedia_u32 slave_addr);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif //__SC450AI_CTRL_H__
|
||||
+1238
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user