添加3518 开发板 例子代码 用于二次开发

master
a74589669 2019-09-10 01:17:53 +08:00
parent 0379b744ce
commit bb8ea8fe7e
593 changed files with 121460 additions and 32 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*.o
*.yuv

View File

@ -4,35 +4,3 @@
流媒体监控服务器
一个 demo
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 码云特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

207
device/mpp/Makefile.param Normal file
View File

@ -0,0 +1,207 @@
# Makefile.param
# Only global variable should be defined here.
# All the variables must be used as "export" and "?=".
# Otherwise, there will be some errors, when Makefile.param is nested.
# Use this file as the following sample
# ifeq ($(PARAM_FILE), )
# PARAM_FILE:=../Makefile.param
# include $(PARAM_FILE)
# endif
# Define the default OS link directory.
export HIWORK_PATH?=/hiwork
export ARCH=arm
export MPP_BUILD=n
#Change ISP parameter config mode
#Default "y" is ini config mode, else "n" source code config mode
export ISP_INI_CONFIG=n
# use HIARCH indicate chip, use libc to choose cross compiler.
export HIARCH?=hi3518e
export LIBC?=uclibc
# Whether support the debug information. HI_DEBUG or HI_RELEASE
export HIDBG?=HI_RELEASE
# Whether open -g
#export HIGDB?=y
export HIGDB?=n
# FPGA board or not
export FPGA?=n
ifeq ($(HIARCH), )
$(error HIARCH not defined! Please check!)
endif
ifeq ($(LIBC), )
$(error LIBC not defined! Please check!)
endif
ifeq ($(HIARCH),hi3516a)
export HICHIP?=0x3516A100
export ARCH_DIR?=hi3516a
endif
ifeq ($(HIARCH),hi3519)
export HICHIP?=0x3519100
export ARCH_DIR?=hi3519
endif
ifeq ($(HIARCH),hi3518e)
export HICHIP?=0x3518E200
export ARCH_DIR?=hi3518e
endif
ifeq ($(HIDBG),HI_DEBUG)
DBG_FLAG=0
else
DBG_FLAG=0
endif
ifeq ($(HIARCH),hi3536)
export PRODUCT?=NVRDVR
else
export PRODUCT?=IPC
endif
# use C01 to indicate uclibc, C02 to indicate glibc, C00 to indicate FPGA.
ifeq ($(LIBC),glibc)
export CVER?=.C$(DBG_FLAG)2
else ifeq ($(FPGA), y)
export CVER?=.C$(DBG_FLAG)0
else
export CVER?=.C$(DBG_FLAG)1
endif
ifeq ($(FPGA),y)
export HI_FPGA:=HI_FPGA
export EXTDRV:=extdrv/$(HIARCH)_fpga
else
export HI_FPGA:=HI_XXXX
export EXTDRV:=extdrv/$(HIARCH)
endif
# Get the local SDK_ROOT path or RELEASE_ROOT path by PARAM_FILE.
# PARAM_FILE is configed at Makefile before include this file
export PARAM_FILE
export SDK_PATH?=$(shell cd $(shell pwd)/`dirname $(PARAM_FILE)`/..; pwd)
export MPP_PATH?=$(shell cd $(shell pwd)/`dirname $(PARAM_FILE)`; pwd)
export SHELF_ROOT?=$(MPP_PATH)/code/shelf
export DRV_ROOT?=$(SDK_PATH)/drv
##############################################################################
export KERNEL_NAME="linux-3.4.y"
ifeq ($(HIARCH), hi3519)
export KERNEL_NAME="linux-3.10.y"
endif
# Allocated the linux position
ifneq ($(shell ls $(HIWORK_PATH)/osdrv$(HIARCH)$(CVER)), )
export LINUX_ROOT?=$(HIWORK_PATH)/osdrv$(HIARCH)$(CVER)/opensource/kernel/$(KERNEL_NAME)
else
export LINUX_ROOT?=$(SDK_PATH)/osdrv/opensource/kernel/$(KERNEL_NAME)
endif
##############################################################################
# Define cross compiler
ifeq ($(LIBC),glibc)
export CROSS_COMPILE?= arm-hisiv400-linux-
export CROSS?= arm-hisiv400-linux-
else
export CROSS_COMPILE?=arm-hisiv300-linux-
export CROSS?=arm-hisiv300-linux-
endif
export CC:=$(CROSS)gcc
export CPP:=$(CROSS)g++
export AR:=$(CROSS)ar
export MPP_CFLAGS:= -Wall
export DRV_CFLAGS:=
ifeq ($(HIGDB), y)
MPP_CFLAGS += -g
endif
# Define the object output directory
ifeq ($(MPP_BUILD), y)
REL_DIR=$(SDK_PATH)/mpp/release/$(HIARCH)
SAMPLE_DIR=$(SDK_PATH)/mpp/sample/$(HIARCH)
else
REL_DIR=$(SDK_PATH)/mpp
EXTDRV=extdrv
SAMPLE_DIR=$(SDK_PATH)/mpp/sample
endif
export REL_INC := $(REL_DIR)/include
export REL_LIB := $(REL_DIR)/lib
export REL_KO := $(REL_DIR)/ko
# Define the param of audio
export AUDIO_PATH?=$(SDK_PATH)/mpp/component/audio/lib/$(CROSS)
export AUDIO_LIBA ?= $(REL_LIB)/libVoiceEngine.a\
$(REL_LIB)/libupvqe.a\
$(REL_LIB)/libdnvqe.a
export AUDIO_LIBS ?= $(REL_LIB)/libVoiceEngine.so\
$(REL_LIB)/libupvqe.so\
$(REL_LIB)/libdnvqe.so
# include the audio config file of platform
# Define the lib of jpeg codec
export JPEGD_PATH?=$(SDK_PATH)/mpp/component/jpegd
export JPEGD_LIBA:=$(REL_LIB)/libjpeg.a
export HIMEM_LIBA := $(REL_LIB)/libmem.a
###############################################################################
# LIB GLOBAL CFLAGS
ifeq ($(HIARCH),hi3516a)
export LIBS_CFLAGS = -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -ffunction-sections
LIBS_CFLAGS += -mno-unaligned-access -fno-aggressive-loop-optimizations -ldl
export LIBS_LD_CFLAGS = -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4
LIBS_LD_CFLAGS += -mno-unaligned-access -fno-aggressive-loop-optimizations -ldl
endif
ifeq ($(HIARCH),hi3519)
export LIBS_CFLAGS = -ldl
export LIBS_LD_CFLAGS = -ldl
endif
# DRV GLOBAL CFLAGS
#DRV_CFLAGS += -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4
###############################################################################
#********************* Macro for version management*****************************
VER_X ?= 1
VER_Y ?= 0
VER_Z ?= 0
VER_P ?= 0
VER_B ?= 10
MPP_CFLAGS += -DVER_X=$(VER_X) -DVER_Y=$(VER_Y) -DVER_Z=$(VER_Z) -DVER_P=$(VER_P) -DVER_B=$(VER_B)
#*******************************************************************************
# include the config file of platform
-include $(SDK_PATH)/mpp/configs/config.mk
ifeq ($(CONFIG_JPEGEDCF), y)
MPP_CFLAGS += -D ENABLE_JPEGEDCF
endif
ifeq ($(CONFIG_LOWDELAY), y)
MPP_CFLAGS += -DENABLE_LOWDELAY
endif
# End!!

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,16 @@
.PHONY:clean all rel
all:
@echo -e "\e[0;32;1m--Compiling 'sensor'... Configs as follow:\e[0;36;1m"
@echo ---- CROSS=$(CROSS)
@echo ---- HIARCH=$(HIARCH), HICHIP=$(HICHIP), CVER=$(CVER), HIDBG=$(HIDBG)
@echo ---- SDK_PATH=$(SDK_PATH) , PARAM_FILE=$(PARAM_FILE)
@echo ---- LINUX_ROOT=$(LINUX_ROOT)
@echo -e "\e[0m"
@for x in `find ./ -maxdepth 2 -mindepth 2 -name "Makefile" `; \
do cd `dirname $$x`; if [ $$? ]; then make || exit 1; cd ../; fi; done
clean:
@for x in `find ./ -maxdepth 2 -mindepth 2 -name "Makefile" `; \
do cd `dirname $$x`; if [ $$? ]; then make clean; cd ../; fi; done

View File

@ -0,0 +1,75 @@
#
# sensor lib Makefile
#
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../../../Makefile.param
include $(PARAM_FILE)
endif
ISP_PATH := $(SDK_PATH)/mpp/component/isp
EXT_PATH := $(SDK_PATH)/mpp/$(EXTDRV)
3A_PATH := $(ISP_PATH)/3a
LIBPATH = $(ISP_PATH)/lib
OBJPATH = ./obj
ifeq ($(CONFIG_GPIO_I2C),y)
HI_GPIO_I2C:=HI_GPIO_I2C
else
HI_GPIO_I2C:=HI_GPIO_XXX
endif
ARFLAGS = rcv
ARFLAGS_SO = $(LIBS_LD_CFLAGS)
ARFLAGS_SO += -shared -fPIC -o
CFLAGS = -Wall -fPIC -D$(HI_FPGA) -D$(HI_GPIO_I2C)
CFLAGS += -O2
CFLAGS += $(LIBS_CFLAGS)
ifeq ($(ISP_INI_CONFIG), y)
CFLAGS += -D INIFILE_CONFIG_MODE
endif
ifeq ($(HIGDB),HI_GDB)
CFLAGS += -g
endif
ifeq ($(CONFIG_JPEGEDCF), y)
CFLAGS += -D ENABLE_JPEGEDCF
endif
BUS_DIR := $(EXT_PATH)/ssp-sony/
ISP_INC := $(ISP_PATH)/include
3A_INC := $(3A_PATH)/include
INC := -I$(BUS_DIR) -I$(REL_INC) -I$(ISP_INC) -I$(3A_INC)
ifeq ($(CONFIG_GPIO_I2C), y)
INC += -I$(EXT_PATH)/gpio-i2c-ex
INC += -I$(EXT_PATH)/gpio-i2c
else
INC += -I$(EXT_PATH)/i2c
INC += -I$(EXT_PATH)/hi_i2c
endif
COMPILE = $(CC) $(CFLAGS) $(DFLAGS) -lm
$(OBJPATH)/%.o: ./%.c
@[ -e $(LIBPATH) ] || mkdir $(LIBPATH)
@[ -e $(OBJPATH) ] || mkdir $(OBJPATH)
@$(COMPILE) -o $@ -c $< $(INC)
SRCS = $(wildcard ./*.c)
OBJS = $(SRCS:%.c=%.o)
OBJS := $(OBJS:./%=obj/%)
TARGETLIB := $(LIBPATH)/libsns_9m034.a
TARGETLIB_SO := $(LIBPATH)/libsns_9m034.so
all:$(TARGETLIB)
$(TARGETLIB):$(OBJS)
@($(AR) $(ARFLAGS) $(TARGETLIB) $(OBJS))
@($(CC) $(ARFLAGS_SO) $(TARGETLIB_SO) $(OBJS))
clean:
@$(RM) -rf $(TARGETLIB) $(OBJS)
@$(RM) -rf $(LIBPATH) $(OBJPATH)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,821 @@
//9m034 720P 30fps linear
static int sensor_rom_30_lin[] = {
// [Linear Mode 720p 30fps AE=on EMBEDDED=on]
//[Demo Initialization]
//Load = Reset
//[Reset]
0xFFFE00C8, // wait 8 frames
0x301A10D9,
0xFFFE0005, // delay 5ms after sensor reset
0x301A10D8,
//[Reset]//
0xFFFE00C8,
//Load = A-1000ERS Rev3 Hidy and linear sequencer load December 16 2010
//[A-1000ERS Rev3 Hidy and linear sequencer load December 16 2010]
//HiDY sequencer CR 31644
0x30888000, //SEQ_CTRL_PORT
0x30860025, //SEQ_DATA_PORT
0x30865050, //SEQ_DATA_PORT
0x30862D26, //SEQ_DATA_PORT
0x30860828, //SEQ_DATA_PORT
0x30860D17, //SEQ_DATA_PORT
0x30860926, //SEQ_DATA_PORT
0x30860028, //SEQ_DATA_PORT
0x30860526, //SEQ_DATA_PORT
0x3086A728, //SEQ_DATA_PORT
0x30860725, //SEQ_DATA_PORT
0x30868080, //SEQ_DATA_PORT
0x30862925, //SEQ_DATA_PORT
0x30860040, //SEQ_DATA_PORT
0x30862702, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30862706, //SEQ_DATA_PORT
//0x30888020, //write 0x3088 another time
0x30861F17, //SEQ_DATA_PORT
0x30863626, //SEQ_DATA_PORT
0x3086A617, //SEQ_DATA_PORT
0x30860326, //SEQ_DATA_PORT
0x3086A417, //SEQ_DATA_PORT
0x30861F28, //SEQ_DATA_PORT
0x30860526, //SEQ_DATA_PORT
0x30862028, //SEQ_DATA_PORT
0x30860425, //SEQ_DATA_PORT
0x30862020, //SEQ_DATA_PORT
0x30862700, //SEQ_DATA_PORT
0x3086171D, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30862017, //SEQ_DATA_PORT
0x30861028, //SEQ_DATA_PORT
0x30860519, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x30862706, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x30861741, //SEQ_DATA_PORT
0x30862660, //SEQ_DATA_PORT
0x3086175A, //SEQ_DATA_PORT
0x30862317, //SEQ_DATA_PORT
0x30861122, //SEQ_DATA_PORT
0x30861741, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30869027, //SEQ_DATA_PORT
0x30860026, //SEQ_DATA_PORT
0x30861828, //SEQ_DATA_PORT
0x3086002E, //SEQ_DATA_PORT
0x30862A28, //SEQ_DATA_PORT
0x3086081C, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867003, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867004, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867005, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867009, //SEQ_DATA_PORT
0x3086170C, //SEQ_DATA_PORT
0x30860014, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30860014, //SEQ_DATA_PORT
0x30860050, //SEQ_DATA_PORT
0x30860314, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30860314, //SEQ_DATA_PORT
0x30860050, //SEQ_DATA_PORT
0x30860414, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30860414, //SEQ_DATA_PORT
0x30860050, //SEQ_DATA_PORT
0x30860514, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30862405, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30865001, //SEQ_DATA_PORT
0x30862550, //SEQ_DATA_PORT
0x3086502D, //SEQ_DATA_PORT
0x30862608, //SEQ_DATA_PORT
0x3086280D, //SEQ_DATA_PORT
0x30861709, //SEQ_DATA_PORT
0x30862600, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x308626A7, //SEQ_DATA_PORT
0x30862807, //SEQ_DATA_PORT
0x30862580, //SEQ_DATA_PORT
0x30868029, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30864027, //SEQ_DATA_PORT
0x30860216, //SEQ_DATA_PORT
0x30861627, //SEQ_DATA_PORT
0x30860620, //SEQ_DATA_PORT
0x30861736, //SEQ_DATA_PORT
0x308626A6, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x308626A4, //SEQ_DATA_PORT
0x3086171F, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x30862620, //SEQ_DATA_PORT
0x30862804, //SEQ_DATA_PORT
0x30862520, //SEQ_DATA_PORT
0x30862027, //SEQ_DATA_PORT
0x30860017, //SEQ_DATA_PORT
0x30861D25, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30861710, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x30861A17, //SEQ_DATA_PORT
0x30860327, //SEQ_DATA_PORT
0x30860617, //SEQ_DATA_PORT
0x30860317, //SEQ_DATA_PORT
0x30864126, //SEQ_DATA_PORT
0x30866017, //SEQ_DATA_PORT
0x3086AE25, //SEQ_DATA_PORT
0x30860090, //SEQ_DATA_PORT
0x30862700, //SEQ_DATA_PORT
0x30862618, //SEQ_DATA_PORT
0x30862800, //SEQ_DATA_PORT
0x30862E2A, //SEQ_DATA_PORT
0x30862808, //SEQ_DATA_PORT
0x30861D05, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867009, //SEQ_DATA_PORT
0x30861720, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30862024, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30865002, //SEQ_DATA_PORT
0x30862550, //SEQ_DATA_PORT
0x3086502D, //SEQ_DATA_PORT
0x30862608, //SEQ_DATA_PORT
0x3086280D, //SEQ_DATA_PORT
0x30861709, //SEQ_DATA_PORT
0x30862600, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x308626A7, //SEQ_DATA_PORT
0x30862807, //SEQ_DATA_PORT
0x30862580, //SEQ_DATA_PORT
0x30868029, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30864027, //SEQ_DATA_PORT
0x30860216, //SEQ_DATA_PORT
0x30861627, //SEQ_DATA_PORT
0x30860617, //SEQ_DATA_PORT
0x30863626, //SEQ_DATA_PORT
0x3086A617, //SEQ_DATA_PORT
0x30860326, //SEQ_DATA_PORT
0x3086A417, //SEQ_DATA_PORT
0x30861F28, //SEQ_DATA_PORT
0x30860526, //SEQ_DATA_PORT
0x30862028, //SEQ_DATA_PORT
0x30860425, //SEQ_DATA_PORT
0x30862020, //SEQ_DATA_PORT
0x30862700, //SEQ_DATA_PORT
0x3086171D, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30862021, //SEQ_DATA_PORT
0x30861710, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x30861B17, //SEQ_DATA_PORT
0x30860327, //SEQ_DATA_PORT
0x30860617, //SEQ_DATA_PORT
0x30860317, //SEQ_DATA_PORT
0x30864126, //SEQ_DATA_PORT
0x30866017, //SEQ_DATA_PORT
0x3086AE25, //SEQ_DATA_PORT
0x30860090, //SEQ_DATA_PORT
0x30862700, //SEQ_DATA_PORT
0x30862618, //SEQ_DATA_PORT
0x30862800, //SEQ_DATA_PORT
0x30862E2A, //SEQ_DATA_PORT
0x30862808, //SEQ_DATA_PORT
0x30861E17, //SEQ_DATA_PORT
0x30860A05, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867009, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30862024, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x3086502B, //SEQ_DATA_PORT
0x3086302C, //SEQ_DATA_PORT
0x30862C2C, //SEQ_DATA_PORT
0x30862C00, //SEQ_DATA_PORT
0x30860225, //SEQ_DATA_PORT linear seq starts
0x30865050, //SEQ_DATA_PORT
0x30862D26, //SEQ_DATA_PORT
0x30860828, //SEQ_DATA_PORT
0x30860D17, //SEQ_DATA_PORT
0x30860926, //SEQ_DATA_PORT
0x30860028, //SEQ_DATA_PORT
0x30860526, //SEQ_DATA_PORT
0x3086A728, //SEQ_DATA_PORT
0x30860725, //SEQ_DATA_PORT
0x30868080, //SEQ_DATA_PORT
0x30862917, //SEQ_DATA_PORT
0x30860525, //SEQ_DATA_PORT
0x30860040, //SEQ_DATA_PORT
0x30862702, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30862706, //SEQ_DATA_PORT
0x30861736, //SEQ_DATA_PORT
0x308626A6, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x308626A4, //SEQ_DATA_PORT
0x3086171F, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x30862620, //SEQ_DATA_PORT
0x30862804, //SEQ_DATA_PORT
0x30862520, //SEQ_DATA_PORT
0x30862027, //SEQ_DATA_PORT
0x30860017, //SEQ_DATA_PORT
0x30861E25, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30862117, //SEQ_DATA_PORT
0x30861028, //SEQ_DATA_PORT
0x3086051B, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x30862706, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x30861747, //SEQ_DATA_PORT
0x30862660, //SEQ_DATA_PORT
0x308617AE, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30869027, //SEQ_DATA_PORT
0x30860026, //SEQ_DATA_PORT
0x30861828, //SEQ_DATA_PORT
0x3086002E, //SEQ_DATA_PORT
0x30862A28, //SEQ_DATA_PORT
0x3086081E, //SEQ_DATA_PORT
0x30860831, //SEQ_DATA_PORT
0x30861440, //SEQ_DATA_PORT
0x30864014, //SEQ_DATA_PORT
0x30862020, //SEQ_DATA_PORT
0x30861410, //SEQ_DATA_PORT
0x30861034, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30861014, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30864013, //SEQ_DATA_PORT
0x30861802, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867004, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867003, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867017, //SEQ_DATA_PORT
0x30862002, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30862002, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30865004, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30862004, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30865022, //SEQ_DATA_PORT
0x30860314, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30860314, //SEQ_DATA_PORT
0x30860050, //SEQ_DATA_PORT
0x30862C2C, //SEQ_DATA_PORT
0x30862C2C, //SEQ_DATA_PORT
0x309E018A, //set start address for linear seq
//[A-1000ERS Rev3 Hidy and linear sequencer load December 16 2010]//
0xFFFE00C8,
//Load = A-1000ERS Rev3 Optimized settings
//[A-1000ERS Rev3 Optimized settings]
0x301E00A8, // set datapedestal to 168
0x3EDA0F03, //Set vln_dac to 0x3 as recommended by Sergey
0x3EDEC007,
0x3ED801EF, // Vrst_low = +1
0x3EE2A46B,
//0x3EE0067D, // enable anti eclipse and adjust setting for high conversion gain
0x3EE0047D, // enable anti eclipse and adjust setting for high conversion gain, decrease vertical line.
0x3EDC0070, // adjust anti eclipse setting for low conversion gain
0x30440404, //enable digital row noise correction and cancels TX during column correction
0x3EE64303, // Helps with column noise at low light
0x3EE4D208, // enable analog row noise correction
0x3ED600BD,
//0x3EE68303, //improves low light FPN
// ADC settings to improve noise performance
// c55300 comment: resolve defect pixel problem.
0x30E46372,
0x30E27253,
0x30E05470,
0x30E6C4CC,
0x30E88050,
//[A-1000ERS Rev3 Optimized settings]//
//[HDR Mode Setup]//
//LOAD = Enable Parallel Mode //detect HSSAB board
//[Enable Parallel Mode]
0x301A10D8, // Disable Streaming and setup parallel
0x31D00001, // Set to 12 bits
//Load = PLL Enabled 27Mhz to 74.25Mhz
//[PLL Enabled 27Mhz to 74.25Mhz]
0x302C0002, // VT_SYS_CLK_DIV
0x302A0004, // VT_PIX_CLK_DIV
0x302E0002, // PRE_PLL_CLK_DIV
0x3030002C, // PLL_MULTIPLIER
0x30B00000, // Default is 0x1300????
0xFFFE0064,
//[PLL Enabled 27Mhz to 74.25Mhz]//
//[Enable Parallel Mode]//
//Load = Linear Mode Full Resolution
//[Linear Mode Full Resolution]
//LOAD= Linear Mode Setup
//[Linear Mode Setup]
0x301A10D8, // stop streaming
0x30820029, // Set Linear Mode register
//LOAD = Enable AE and Load Optimized Settings For HDR 16x Mode
//[Enable AE and Load Optimized Settings For Linear Mode]
//Load = Column Retriggering at start up
//[Column Retriggering at start up]
0x30B01300, //disable AGS, set Column gain to 1x
0x30D4E007, //enable double sampling for column correction
0x30BA0008, // disable auto re-trigger for change in DCG and col gain and enable col corr always
0x301A10DC, // enable streaming
0xFFFE00C8,
0x301A10D8, // disable streaming
0xFFFE00C8,
//[Column Retriggering at start up]//
0x301202A0, // coarse integration time
//Load = 720p 30fps Setup
//[720p 30fps Setup]
0x30320000, // digital binning
0x30020002, // y_addr_start
0x30040000, // x_addr_start
0x300602D1, // y_addr_end
0x300804FF, // x_addr_end
0x300A02EE, // frame_length_lines
0x300C0F78, // line_length_pck
//[720p 30fps Setup]//
//Load= Enable Embedded Data and Stats
//[Enable Embedded Data and Stats]
//0x30641982, //0x30641800
//[Enable Embedded Data and Stats]//
//[Disable Embedded Data and Stats]
0x30641802,
//remove vertical line, put here can not take effect. Why????
//[Enable AE and Load Optimized Settings For Linear Mode]//
0x3100001B, //FIELD_WR=AECTRLREG, 0x001B
0x3112029F, //FIELD_WR=AEDCGEXPOSUREHIGHREG, 0x029F
0x3114008C, //FIELD_WR=AEDCGEXPOSURELOWREG, 0x008C
0x311602C0, //FIELD_WR=AEDCGGAINFACTOR, 0x02C0
0x3118005B, //FIELD_WR=AEDCGGAININVREG, 0x005B
0x31020384, //FIELD_WR=AELUMATARGETREG, 0x0384
0x31041000, //FIELD_WR-AEHISTTARGETREG, 0x1000
0x31260080, //FIELD_WR=AEALPHAV1REG, 0x0080
0x311C03DD, //FIELD_WR=AEMAXEXPOSUREREG, 0x03C0
0x311E0002, //FIELD_WR=AEMINEXPOSUREREG, 0x0002
//[Enable AE and Load Optimized Settings For Linear Mode]//
//[Disable_AutoExposure]
0x3100001A, //FIELD_WR=AECTRLREG, 0x001A ????
0x301A10DC, //enable streaming.
//[Linear Mode Full Resolution]//
0xFFFFFFFF // END
};
//9m034 720P 30fps wdr
static int sensor_rom_30_wdr[] = {
// [Linear Mode 720p 30fps AE=on EMBEDDED=on]
//[Demo Initialization]
//Load = Reset
//[Reset]
0xFFFE00C8, // wait 8 frames
0x301A10D9,
0xFFFE0005, // delay 5ms after sensor reset
0x301A10D8,
//[Reset]//
0xFFFE00C8,
//Load = A-1000ERS Rev3 Hidy and linear sequencer load December 16 2010
//[A-1000ERS Rev3 Hidy and linear sequencer load December 16 2010]
//HiDY sequencer CR 31644
0x30888000, //SEQ_CTRL_PORT
0x30860025, //SEQ_DATA_PORT
0x30865050, //SEQ_DATA_PORT
0x30862D26, //SEQ_DATA_PORT
0x30860828, //SEQ_DATA_PORT
0x30860D17, //SEQ_DATA_PORT
0x30860926, //SEQ_DATA_PORT
0x30860028, //SEQ_DATA_PORT
0x30860526, //SEQ_DATA_PORT
0x3086A728, //SEQ_DATA_PORT
0x30860725, //SEQ_DATA_PORT
0x30868080, //SEQ_DATA_PORT
0x30862925, //SEQ_DATA_PORT
0x30860040, //SEQ_DATA_PORT
0x30862702, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30862706, //SEQ_DATA_PORT
0x30888020, //write 0x3088 another time
0x30861F17, //SEQ_DATA_PORT
0x30863626, //SEQ_DATA_PORT
0x3086A617, //SEQ_DATA_PORT
0x30860326, //SEQ_DATA_PORT
0x3086A417, //SEQ_DATA_PORT
0x30861F28, //SEQ_DATA_PORT
0x30860526, //SEQ_DATA_PORT
0x30862028, //SEQ_DATA_PORT
0x30860425, //SEQ_DATA_PORT
0x30862020, //SEQ_DATA_PORT
0x30862700, //SEQ_DATA_PORT
0x3086171D, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30862017, //SEQ_DATA_PORT
0x30861028, //SEQ_DATA_PORT
0x30860519, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x30862706, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x30861741, //SEQ_DATA_PORT
0x30862660, //SEQ_DATA_PORT
0x3086175A, //SEQ_DATA_PORT
0x30862317, //SEQ_DATA_PORT
0x30861122, //SEQ_DATA_PORT
0x30861741, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30869027, //SEQ_DATA_PORT
0x30860026, //SEQ_DATA_PORT
0x30861828, //SEQ_DATA_PORT
0x3086002E, //SEQ_DATA_PORT
0x30862A28, //SEQ_DATA_PORT
0x3086081C, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867003, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867004, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867005, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867009, //SEQ_DATA_PORT
0x3086170C, //SEQ_DATA_PORT
0x30860014, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30860014, //SEQ_DATA_PORT
0x30860050, //SEQ_DATA_PORT
0x30860314, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30860314, //SEQ_DATA_PORT
0x30860050, //SEQ_DATA_PORT
0x30860414, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30860414, //SEQ_DATA_PORT
0x30860050, //SEQ_DATA_PORT
0x30860514, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30862405, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30865001, //SEQ_DATA_PORT
0x30862550, //SEQ_DATA_PORT
0x3086502D, //SEQ_DATA_PORT
0x30862608, //SEQ_DATA_PORT
0x3086280D, //SEQ_DATA_PORT
0x30861709, //SEQ_DATA_PORT
0x30862600, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x308626A7, //SEQ_DATA_PORT
0x30862807, //SEQ_DATA_PORT
0x30862580, //SEQ_DATA_PORT
0x30868029, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30864027, //SEQ_DATA_PORT
0x30860216, //SEQ_DATA_PORT
0x30861627, //SEQ_DATA_PORT
0x30860620, //SEQ_DATA_PORT
0x30861736, //SEQ_DATA_PORT
0x308626A6, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x308626A4, //SEQ_DATA_PORT
0x3086171F, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x30862620, //SEQ_DATA_PORT
0x30862804, //SEQ_DATA_PORT
0x30862520, //SEQ_DATA_PORT
0x30862027, //SEQ_DATA_PORT
0x30860017, //SEQ_DATA_PORT
0x30861D25, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30861710, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x30861A17, //SEQ_DATA_PORT
0x30860327, //SEQ_DATA_PORT
0x30860617, //SEQ_DATA_PORT
0x30860317, //SEQ_DATA_PORT
0x30864126, //SEQ_DATA_PORT
0x30866017, //SEQ_DATA_PORT
0x3086AE25, //SEQ_DATA_PORT
0x30860090, //SEQ_DATA_PORT
0x30862700, //SEQ_DATA_PORT
0x30862618, //SEQ_DATA_PORT
0x30862800, //SEQ_DATA_PORT
0x30862E2A, //SEQ_DATA_PORT
0x30862808, //SEQ_DATA_PORT
0x30861D05, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867009, //SEQ_DATA_PORT
0x30861720, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30862024, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30865002, //SEQ_DATA_PORT
0x30862550, //SEQ_DATA_PORT
0x3086502D, //SEQ_DATA_PORT
0x30862608, //SEQ_DATA_PORT
0x3086280D, //SEQ_DATA_PORT
0x30861709, //SEQ_DATA_PORT
0x30862600, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x308626A7, //SEQ_DATA_PORT
0x30862807, //SEQ_DATA_PORT
0x30862580, //SEQ_DATA_PORT
0x30868029, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30864027, //SEQ_DATA_PORT
0x30860216, //SEQ_DATA_PORT
0x30861627, //SEQ_DATA_PORT
0x30860617, //SEQ_DATA_PORT
0x30863626, //SEQ_DATA_PORT
0x3086A617, //SEQ_DATA_PORT
0x30860326, //SEQ_DATA_PORT
0x3086A417, //SEQ_DATA_PORT
0x30861F28, //SEQ_DATA_PORT
0x30860526, //SEQ_DATA_PORT
0x30862028, //SEQ_DATA_PORT
0x30860425, //SEQ_DATA_PORT
0x30862020, //SEQ_DATA_PORT
0x30862700, //SEQ_DATA_PORT
0x3086171D, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30862021, //SEQ_DATA_PORT
0x30861710, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x30861B17, //SEQ_DATA_PORT
0x30860327, //SEQ_DATA_PORT
0x30860617, //SEQ_DATA_PORT
0x30860317, //SEQ_DATA_PORT
0x30864126, //SEQ_DATA_PORT
0x30866017, //SEQ_DATA_PORT
0x3086AE25, //SEQ_DATA_PORT
0x30860090, //SEQ_DATA_PORT
0x30862700, //SEQ_DATA_PORT
0x30862618, //SEQ_DATA_PORT
0x30862800, //SEQ_DATA_PORT
0x30862E2A, //SEQ_DATA_PORT
0x30862808, //SEQ_DATA_PORT
0x30861E17, //SEQ_DATA_PORT
0x30860A05, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867009, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30862024, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x3086502B, //SEQ_DATA_PORT
0x3086302C, //SEQ_DATA_PORT
0x30862C2C, //SEQ_DATA_PORT
0x30862C00, //SEQ_DATA_PORT
0x30860225, //SEQ_DATA_PORT linear seq starts
0x30865050, //SEQ_DATA_PORT
0x30862D26, //SEQ_DATA_PORT
0x30860828, //SEQ_DATA_PORT
0x30860D17, //SEQ_DATA_PORT
0x30860926, //SEQ_DATA_PORT
0x30860028, //SEQ_DATA_PORT
0x30860526, //SEQ_DATA_PORT
0x3086A728, //SEQ_DATA_PORT
0x30860725, //SEQ_DATA_PORT
0x30868080, //SEQ_DATA_PORT
0x30862917, //SEQ_DATA_PORT
0x30860525, //SEQ_DATA_PORT
0x30860040, //SEQ_DATA_PORT
0x30862702, //SEQ_DATA_PORT
0x30861616, //SEQ_DATA_PORT
0x30862706, //SEQ_DATA_PORT
0x30861736, //SEQ_DATA_PORT
0x308626A6, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x308626A4, //SEQ_DATA_PORT
0x3086171F, //SEQ_DATA_PORT
0x30862805, //SEQ_DATA_PORT
0x30862620, //SEQ_DATA_PORT
0x30862804, //SEQ_DATA_PORT
0x30862520, //SEQ_DATA_PORT
0x30862027, //SEQ_DATA_PORT
0x30860017, //SEQ_DATA_PORT
0x30861E25, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30862117, //SEQ_DATA_PORT
0x30861028, //SEQ_DATA_PORT
0x3086051B, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x30862706, //SEQ_DATA_PORT
0x30861703, //SEQ_DATA_PORT
0x30861747, //SEQ_DATA_PORT
0x30862660, //SEQ_DATA_PORT
0x308617AE, //SEQ_DATA_PORT
0x30862500, //SEQ_DATA_PORT
0x30869027, //SEQ_DATA_PORT
0x30860026, //SEQ_DATA_PORT
0x30861828, //SEQ_DATA_PORT
0x3086002E, //SEQ_DATA_PORT
0x30862A28, //SEQ_DATA_PORT
0x3086081E, //SEQ_DATA_PORT
0x30860831, //SEQ_DATA_PORT
0x30861440, //SEQ_DATA_PORT
0x30864014, //SEQ_DATA_PORT
0x30862020, //SEQ_DATA_PORT
0x30861410, //SEQ_DATA_PORT
0x30861034, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30861014, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30864013, //SEQ_DATA_PORT
0x30861802, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867004, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867003, //SEQ_DATA_PORT
0x30861470, //SEQ_DATA_PORT
0x30867017, //SEQ_DATA_PORT
0x30862002, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30862002, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30865004, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30862004, //SEQ_DATA_PORT
0x30861400, //SEQ_DATA_PORT
0x30865022, //SEQ_DATA_PORT
0x30860314, //SEQ_DATA_PORT
0x30860020, //SEQ_DATA_PORT
0x30860314, //SEQ_DATA_PORT
0x30860050, //SEQ_DATA_PORT
0x30862C2C, //SEQ_DATA_PORT
0x30862C2C, //SEQ_DATA_PORT
0x309E018A, //set start address for linear seq
//[A-1000ERS Rev3 Hidy and linear sequencer load December 16 2010]//
0xFFFE00C8,
//Load = A-1000ERS Rev3 Optimized settings
//[A-1000ERS Rev3 Optimized settings]
0x301E00C0, // set datapedestal to 192 to avoid clipping near saturation
0x3EDA0F03, //Set vln_dac to 0x3 as recommended by Sergey
0x3EDEC007,
0x3ED801EF, // Vrst_low = +1
0x3EE2A46B,
//0x3EE0067D, // enable anti eclipse and adjust setting for high conversion gain
0x3EE0047D, // enable anti eclipse and adjust setting for high conversion gain, decrease vertical line.
0x3EDC0070, // adjust anti eclipse setting for low conversion gain
0x30440404, //enable digital row noise correction and cancels TX during column correction
0x3EE64303, // Helps with column noise at low light
0x3EE4D208, // enable analog row noise correction
0x3ED600BD,
//0x3EE68303, //improves low light FPN
// ADC settings to improve noise performance
// c55300 comment: resolve defect pixel problem.
0x30E46372,
0x30E27253,
0x30E05470,
0x30E6C4CC,
0x30E88050,
//[A-1000ERS Rev3 Optimized settings]//
//LOAD = Enable Parallel Mode //detect HSSAB board
//[Enable Parallel Mode]
0x301A10D8, // Disable Streaming and setup parallel
0x31D00001, // Set to 12 bits
//Load = PLL Enabled 27Mhz to 74.25Mhz
//[PLL Enabled 27Mhz to 74.25Mhz]
0x302C0002, // VT_SYS_CLK_DIV
0x302A0004, // VT_PIX_CLK_DIV
0x302E0002, // PRE_PLL_CLK_DIV
0x3030002C, // PLL_MULTIPLIER
0x30B00000, //????
0xFFFE0064,
//[PLL Enabled 27Mhz to 74.25Mhz]//
//[Enable Parallel Mode]//
//Load = HiDy 16x Mode Full Resolution
//[HiDy 16x Mode Full Resolution]
//Load = HDR Mode Setup
//[HDR Mode Setup]
0x301A10D8, // stop streaming
0x30820028, // Set HiDy 16x ratio
//[HDR Mode Setup]//
//Load = Column Retriggering at start up
//[Column Retriggering at start up]
0x30B01300, //disable AGS, set Column gain to 1x
0x30D4E007, //enable double sampling for column correction
0x30BA0008, // disable auto re-trigger for change in DCG and col gain and enable col corr always
0x301A10DC, // enable streaming
0xFFFE00C8,
0x301A10D8, // disable streaming
0xFFFE00C8,
//[Column Retriggering at start up]//
0x301202A0, // coarse integration time
//Load = 720p 25fps Setup
//[720p 25fps Setup]
0x30320000, // digital binning
0x30020002, // y_addr_start
0x30040000, // x_addr_start
0x300602D1, // y_addr_end
//0x300603C1, // y_addr_end
0x300804FF, // x_addr_end
0x300A02EE, // frame_length_lines
0x300C0F78, // line_length_pck
//[720p 30fps Setup]//
//LOAD = Enable AE and Load Optimized Settings For HDR 16x Mode
//Load= Enable Embedded Data and Stats
//[Enable Embedded Data and Stats]
//0x30641982, //0x30641800,
//[Enable Embedded Data and Stats]//
//[Disable Embedded Data and Stats]
0x30641802,
//[Enable AE and Load Optimized Settings For HDR 16x Mode]//
0x3100001B, //FIELD_WR=AECTRLREG, 0x001B
0x3112029F, //FIELD_WR=AEDCGEXPOSUREHIGHREG, 0x029F
0x3114008C, //FIELD_WR=AEDCGEXPOSURELOWREG, 0x0190
0x311602C0, //FIELD_WR=AEDCGGAINFACTOR, 0x02C0
0x3118005B, //FIELD_WR=AEDCGGAININVREG, 0x005B
0x31020708, //FIELD_WR=AELUMATARGETREG, 0x0708
0x31041000, //FIELD_WR-AEHISTTARGETREG, 0x1000
0x31260064, //FIELD_WR=AEALPHAV1REG, 0x0064
0x311C02A0, //FIELD_WR=AEMAXEXPOSUREREG, 0x02A0
0x311E0080, //FIELD_WR=AEMINEXPOSUREREG, 0x0080
//[2D motion compensation ON]
0x318A0FA0, // HDR_MC_CTRL1
0x31920800, // HDR_MC_CTRL5
0x318CC340, // HDR_MC_CTRL2
0x318E0320, // HDR_MC_CTRL3
// [Disable DLO]1: REG=0x3190, 0x0BA0
0x31900BA0, // HDR_MC_CTRL4
//[Disable_AutoExposure]
0x3100001A, //FIELD_WR=AECTRLREG, 0x001A
0x301A10DC, //enable streaming.
//[HiDy 16x Mode Full Resolution]//
0xFFFFFFFF // END
};

View File

@ -0,0 +1,236 @@
/******************************************************************************
Copyright (C), 2001-2013, Hisilicon Tech. Co., Ltd.
******************************************************************************
File Name : 9m034_sensor_ctl.c
Version : Initial Draft
Author : Hisilicon BVT ISP group
Created : 2014/10/1
Description : Aptina ar0330 sensor driver
History :
1.Date : 2014/10/1
Author : yy
Modification : Created file
******************************************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include "m034_sensor_config.h"
#include "hi_comm_video.h"
#ifdef HI_GPIO_I2C
#include "gpioi2c_ex.h"
#else
#include "hi_i2c.h"
#endif
static int g_fd = -1;
static int flag_init = 0;
const unsigned char sensor_i2c_addr = 0x20; /* I2C Address of 9m034 */
const unsigned int sensor_addr_byte = 2;
const unsigned int sensor_data_byte = 2;
extern WDR_MODE_E genSensorMode;
extern HI_U8 gu8SensorImageMode;
extern HI_BOOL bSensorInit;
int sensor_i2c_init(void)
{
if(g_fd >= 0)
{
return 0;
}
#ifdef HI_GPIO_I2C
int ret;
g_fd = open("/dev/gpioi2c_ex", 0);
if(g_fd < 0)
{
printf("Open gpioi2c_ex error!\n");
return -1;
}
#else
int ret;
g_fd = open("/dev/i2c-0", O_RDWR);
if(g_fd < 0)
{
printf("Open /dev/i2c-0 error!\n");
return -1;
}
ret = ioctl(g_fd, I2C_SLAVE_FORCE, sensor_i2c_addr);
if (ret < 0)
{
printf("CMD_SET_DEV error!\n");
return ret;
}
#endif
return 0;
}
int sensor_i2c_exit(void)
{
if (g_fd >= 0)
{
close(g_fd);
g_fd = -1;
return 0;
}
return -1;
}
int sensor_read_register(int addr)
{
// TODO:
return 0;
}
int sensor_write_register(int addr, int data)
{
#ifdef HI_GPIO_I2C
i2c_data.dev_addr = sensor_i2c_addr;
i2c_data.reg_addr = addr;
i2c_data.addr_byte_num = sensor_addr_byte;
i2c_data.data = data;
i2c_data.data_byte_num = sensor_data_byte;
ret = ioctl(g_fd, GPIO_I2C_WRITE, &i2c_data);
if (ret)
{
printf("GPIO-I2C write faild!\n");
return ret;
}
#else
if(flag_init == 0)
{
sensor_i2c_init();
flag_init = 1;
}
int idx = 0;
int ret;
char buf[8];
buf[idx++] = addr & 0xFF;
if (sensor_addr_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_REG, 1);
buf[idx++] = addr >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_REG, 0);
}
if (ret < 0)
{
printf("CMD_SET_REG_WIDTH error!\n");
return -1;
}
buf[idx++] = data;
if (sensor_data_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 1);
buf[idx++] = data >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 0);
}
if (ret)
{
printf("hi_i2c write faild!\n");
return -1;
}
ret = write(g_fd, buf, idx);
if(ret < 0)
{
printf("I2C_WRITE error!\n");
return -1;
}
#endif
return 0;
}
static void delay_ms(int ms) {
usleep(ms*1000);
}
void sensor_prog(int* rom)
{
int i = 0;
while (1) {
int lookup = rom[i++];
int addr = (lookup >> 16) & 0xFFFF;
int data = lookup & 0xFFFF;
if (addr == 0xFFFE) {
delay_ms(data);
} else if (addr == 0xFFFF) {
return;
} else {
sensor_write_register(addr, data);
}
}
}
void sensor_init()
{
//sensor_i2c_init();
switch(genSensorMode)
{
//720P30 linear
case WDR_MODE_NONE:
sensor_prog(sensor_rom_30_lin);
// sensor_write_register(0x3100, 0x0000);
/* Disable 1.25x analog gain */
//sensor_write_register(0x3EE4, 0xD208);
bSensorInit = HI_TRUE;
printf("linear mode========================\n");
break;
case WDR_MODE_BUILT_IN:
sensor_prog(sensor_rom_30_wdr);
/* program sensor to wdr mode */
/* Disable DCG */
printf("wdr mode========================\n");
sensor_write_register(0x3100, 0x001A);
/* Disable 1.25x analog gain */
sensor_write_register(0x3EE4, 0xD208);
bSensorInit = HI_TRUE;
break;
default:
printf("NOT support this mode!\n");
return;
break;
}
}
void sensor_exit()
{
sensor_i2c_exit();
flag_init = 0;
return;
}

View File

@ -0,0 +1,75 @@
#
# sensor lib Makefile
#
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../../../Makefile.param
include $(PARAM_FILE)
endif
ISP_PATH := $(SDK_PATH)/mpp/component/isp
EXT_PATH := $(SDK_PATH)/mpp/$(EXTDRV)
3A_PATH := $(ISP_PATH)/3a
LIBPATH = $(ISP_PATH)/lib
OBJPATH = ./obj
ifeq ($(CONFIG_GPIO_I2C),y)
HI_GPIO_I2C:=HI_GPIO_I2C
else
HI_GPIO_I2C:=HI_GPIO_XXX
endif
ARFLAGS = rcv
ARFLAGS_SO = $(LIBS_LD_CFLAGS)
ARFLAGS_SO += -shared -fPIC -o
CFLAGS = -Wall -fPIC -D$(HI_FPGA) -D$(HI_GPIO_I2C)
CFLAGS += -O2
CFLAGS += $(LIBS_CFLAGS)
ifeq ($(ISP_INI_CONFIG), y)
CFLAGS += -D INIFILE_CONFIG_MODE
endif
ifeq ($(HIGDB),HI_GDB)
CFLAGS += -g
endif
ifeq ($(CONFIG_JPEGEDCF), y)
CFLAGS += -D ENABLE_JPEGEDCF
endif
BUS_DIR := $(EXT_PATH)/ssp-sony/
ISP_INC := $(ISP_PATH)/include
3A_INC := $(3A_PATH)/include
INC := -I$(BUS_DIR) -I$(REL_INC) -I$(ISP_INC) -I$(3A_INC)
ifeq ($(CONFIG_GPIO_I2C), y)
INC += -I$(EXT_PATH)/gpio-i2c-ex
INC += -I$(EXT_PATH)/gpio-i2c
else
INC += -I$(EXT_PATH)/i2c
INC += -I$(EXT_PATH)/hi_i2c
endif
COMPILE = $(CC) $(CFLAGS) $(DFLAGS) -lm
$(OBJPATH)/%.o: ./%.c
@[ -e $(LIBPATH) ] || mkdir $(LIBPATH)
@[ -e $(OBJPATH) ] || mkdir $(OBJPATH)
@$(COMPILE) -o $@ -c $< $(INC)
SRCS = $(wildcard ./*.c)
OBJS = $(SRCS:%.c=%.o)
OBJS := $(OBJS:./%=obj/%)
TARGETLIB := $(LIBPATH)/libsns_ar0230.a
TARGETLIB_SO := $(LIBPATH)/libsns_ar0230.so
all:$(TARGETLIB)
$(TARGETLIB):$(OBJS)
@($(AR) $(ARFLAGS) $(TARGETLIB) $(OBJS))
@($(CC) $(ARFLAGS_SO) $(TARGETLIB_SO) $(OBJS))
clean:
@$(RM) -rf $(TARGETLIB) $(OBJS)
@$(RM) -rf $(LIBPATH) $(OBJPATH)

View File

@ -0,0 +1,147 @@
[AE]
AEModeNumber = 2
;AE [Mode 0] for linear
AeCompensation_0 = 0x38 ;linear mode
MaxIntTimeTarget_0 = 65535
MinIntTimeTarget_0 = 2
MaxAgainTarget_0 = 12288
MinAgainTarget_0 = 1024
MaxDgainTarget_0 = 2046
MinDgainTarget_0 = 128
ISPDgainShift_0 = 8
MinISPDgainTarget_0 = 256
MaxISPDgainTarget_0 = 1024
;AE [Mode 1] for Built-in wdr
AeCompensation_1 = 0x38 ;wdr mode
MaxIntTimeTarget_1 = 65535
MinIntTimeTarget_1 = 2
MaxAgainTarget_1 = 2048
MinAgainTarget_1 = 1719
MaxDgainTarget_1 = 384
MinDgainTarget_1 = 128
ISPDgainShift_1 = 8
MinISPDgainTarget_1 = 256
MaxISPDgainTarget_1 = 2048
[AWB]
AWBModeNumber = 1
;AWB [Mode 0] for linear
HighColorTemp_0 = 6315 ;AWB CCM Matrix
HighCCM_0 = 0x01c6|0x809b|0x802b|0x8035|0x014f|0x801a|0x8002|0x809d|0x019f|
MidColorTemp_0 = 3810
MidCCM_0 = 0x01d6|0x80af|0x8027|0x803e|0x012e|0x0010|0x8004|0x80c8|0x01cc|
LowColorTemp_0 = 2650
LowCCM_0 = 0x01c8|0x8076|0x8052|0x8048|0x0154|0x800c|0x8036|0x8101|0x0237|
WbRefTemp_0 = 5000
GainOffset_0 = 0x180|0x100|0x100|0x1ca|
WbPara_0 = 37|107|-111|200420|128|-148673|
SatValid_0 = 1 ;linear mode saturation
Saturation_0 = 0x80|0x80|0x7e|0x72|0x68|0x60|0x58|0x50|0x48|0x40|0x38|0x38|0x38|0x38|0x38|0x38|
[ISP]
ISPModeNumber = 2
;ISP [Mode 0] for linear
AgcValid_0 = 1 ;ISP agc default parameter for linear mode
SharpenAltD_0 = 0x3c|0x3c|0x3a|0x36|0x32|0x30|0x2a|0x26|0x22|0x20|0x20|0x20|0x20|0x20|0x20|0x20|
SharpenAltUd_0 = 0x6a|0x6a|0x68|0x60|0x58|0x50|0x40|0x30|0x20|0x10|0x10|0x10|0x10|0x10|0x10|0x10|
SnrThresh_0 = 0x08|0x0a|0x0c|0x10|0x16|0x1b|0x22|0x28|0x2a|0x3a|0x3a|0x3a|0x3a|0x3a|0x3a|0x3a|
DemosaicLumThresh_0 = 0x50|0x50|0x4e|0x49|0x45|0x45|0x40|0x3a|0x30|0x20|0x20|0x20|0x20|0x20|0x20|0x20|
DemosaicNpOffset_0 = 0x00|0x0a|0x12|0x1a|0x20|0x28|0x30|0x32|0x34|0x38|0x38|0x38|0x38|0x38|0x38|0x38|
GeStrength_0 = 0x55|0x55|0x55|0x55|0x55|0x55|0x37|0x37|0x37|0x35|0x35|0x35|0x35|0x35|0x35|0x35|
SharpenRGB_0 = 0x86|0x86|0x84|0x7a|0x60|0x50|0x40|0x30|0x20|0x10|0x10|0x10|0x10|0x10|0x10|0x10|
WeightValid_0 = 1 ;ISP noise/demosaic weight lut for linear mode
NoiseProfileWeight_0 = 0x0,0x0,0x0,0x0,0x0,0x3,0xC,0x11,0x15,0x17,0x1A,0x1B,0x1D,0x1E,0x1F,0x21,0x22,0x23,0x23,0x24,0x25,0x26,0x26,0x27,0x27,0x28,0x29,0x29,0x2A,0x2A,0x2A,0x2B,0x2B,0x2C,0x2C,0x2C,0x2D,0x2D,0x2E,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F,0x30,0x30,0x30,0x30,0x31,0x31,0x31,0x31,0x32,0x32,0x32,0x32,0x33,0x33,0x33,0x33,0x33,0x34,0x34,0x34,0x34,0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x37,0x37,0x37,0x37,0x37,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
DemosaicWeight_0 = 0x3,0xC,0x11,0x15,0x17,0x1A,0x1B,0x1D,0x1E,0x1F,0x21,0x22,0x23,0x23,0x24,0x25,0x26,0x26,0x27,0x27,0x28,0x29,0x29,0x2A,0x2A,0x2A,0x2B,0x2B,0x2C,0x2C,0x2C,0x2D,0x2D,0x2E,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F,0x30,0x30,0x30,0x30,0x31,0x31,0x31,0x31,0x32,0x32,0x32,0x32,0x33,0x33,0x33,0x33,0x33,0x34,0x34,0x34,0x34,0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x37,0x37,0x37,0x37,0x37,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
demosaicValid_0 = 1 ;ISP demosaic default parameter for linear mode
VhSlope_0 = 0xac
AaSlope_0 = 0xaa
VaSlope_0 = 0xa8
UuSlope_0 = 0xa0
SatSlope_0 = 0x5d
AcSlope_0 = 0xa0
FcSlope_0 = 0x8a
VhThresh_0 = 0x0
AaThresh_0 = 0x0
VaThresh_0 = 0x0
UuThresh_0 = 0x08
SatThresh_0 = 0x0
AcThresh_0 = 0x1b3
gammaRGBValid_0 = 1 ;gamma for linear mode
gammaRGB0_0 = 0,180,320,426,516,590,660,730,786,844,896,946,994,1040,1090,1130,1170,1210,1248,1296,1336,1372,1416,1452,1486,1516,1546,1580,1616,1652,1678,1714,1742,1776,1798,1830,1862,1886,1912,1940,1968,1992,2010,2038,2062,2090,2114,2134,2158,2178,2202,2222,2246,2266,2282,2300,2324,2344,2360,2372,2390,2406,2422,2438,2458,2478,2494,2510,2526,2546,2562,2582,2598,2614,2630,2648,2660,2670,2682,2698,2710,2724,2736,2752,2764,2780,2792,2808,2820,2836,
gammaRGB1_0 = 2848,2864,2876,2888,2896,2908,2920,2928,2940,2948,2960,2972,2984,2992,3004,3014,3028,3036,3048,3056,3068,3080,3088,3100,3110,3120,3128,3140,3148,3160,3168,3174,3182,3190,3202,3210,3218,3228,3240,3256,3266,3276,3288,3300,3306,3318,3326,3334,3342,3350,3360,3370,3378,3386,3394,3398,3406,3414,3422,3426,3436,3444,3454,3466,3476,3486,3498,3502,3510,3518,3526,3530,3538,3546,3554,3558,3564,3570,3574,3582,3590,3598,3604,3610,3618,3628,3634,3640,3644,3652,
gammaRGB2_0 = 3656,3664,3670,3678,3688,3696,3700,3708,3712,3716,3722,3730,3736,3740,3748,3752,3756,3760,3766,3774,3778,3786,3790,3800,3808,3812,3816,3824,3830,3832,3842,3846,3850,3854,3858,3862,3864,3870,3874,3878,3882,3888,3894,3900,3908,3912,3918,3924,3928,3934,3940,3946,3952,3958,3966,3974,3978,3982,3986,3990,3994,4002,4006,4010,4018,4022,4032,4038,4046,4050,4056,4062,4072,4076,4084,4090,4095,
RGBsharpenLutValid_0 = 1 ;ISP RGB sharpening default parameter for linear mode
LutCore_0 = 192
LutStrength_0 = 127
LutMagnitude_0 = 6
DrcEnable_0 = 0 ;drc default parameter for linear mode
BlackLevel_0 = 0x0
WhiteLevel_0 = 0x4ff
SlopeMax_0 = 0x30
SlopeMin_0 = 0x0
VarianceSpace_0 = 0x4
VarianceIntensity_0 = 0x1
;ISP [Mode 1] for Built-in WDR
AgcValid_1 = 1 ;ISP agc default parameter for linear mode
SharpenAltD_1 = 0x40|0x40|0x40|0x40|0x38|0x30|0x28|0x20|0x20|0x20|0x20|0x20|0x20|0x20|0x20|0x20|
SharpenAltUd_1 = 0x60|0x60|0x60|0x60|0x50|0x40|0x30|0x20|0x10|0x10|0x10|0x10|0x10|0x10|0x10|0x10|
SnrThresh_1 = 0x8|0xC|0x10|0x14|0x18|0x20|0x28|0x30|0x30|0x30|0x30|0x30|0x30|0x30|0x30|0x30|
DemosaicLumThresh_1 = 0x50|0x50|0x40|0x40|0x30|0x30|0x20|0x20|0x20|0x20|0x20|0x20|0x20|0x20|0x20|0x20|
DemosaicNpOffset_1 = 0x0|0xa|0x12|0x1a|0x20|0x28|0x30|0x30|0x30|0x30|0x30|0x30|0x30|0x30|0x30|0x30|
GeStrength_1 = 0x55|0x55|0x55|0x55|0x55|0x55|0x37|0x37|0x37|0x37|0x37|0x37|0x37|0x37|0x37|0x37|
SharpenRGB_1 = 0x60|0x60|0x60|0x60|0x50|0x40|0x30|0x20|0x20|0x20|0x20|0x20|0x20|0x20|0x20|0x20|
WeightValid_1 = 1 ;ISP noise/demosaic weight lut for linear mode
NoiseProfileWeight_1 = 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0xF,0x13,0x15,0x18,0x1A,0x1C,0x1D,0x1E,0x20,0x21,0x22,0x23,0x23,0x24,0x25,0x26,0x26,0x26,0x27,0x28,0x28,0x29,0x29,0x2A,0x2A,0x2B,0x2B,0x2C,0x2C,0x2C,0x2D,0x2D,0x2D,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F,0x2F,0x30,0x30,0x30,0x31,0x31,0x31,0x31,0x31,0x32,0x32,0x32,0x32,0x33,0x33,0x33,0x33,0x33,0x34,0x34,0x34,0x34,0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x37,0x37,0x37,0x37,0x37,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3C,0x3C,0x3C,
DemosaicWeight_1 = 0x0,0x0,0x8,0xF,0x13,0x15,0x18,0x1A,0x1C,0x1D,0x1E,0x20,0x21,0x22,0x23,0x23,0x24,0x25,0x26,0x26,0x26,0x27,0x28,0x28,0x29,0x29,0x2A,0x2A,0x2B,0x2B,0x2C,0x2C,0x2C,0x2D,0x2D,0x2D,0x2E,0x2E,0x2E,0x2F,0x2F,0x2F,0x2F,0x30,0x30,0x30,0x31,0x31,0x31,0x31,0x31,0x32,0x32,0x32,0x32,0x33,0x33,0x33,0x33,0x33,0x34,0x34,0x34,0x34,0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x37,0x37,0x37,0x37,0x37,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
demosaicValid_1 = 1 ;ISP demosaic default parameter for linear mode
VhSlope_1 = 0xdc
AaSlope_1 = 0xc8
VaSlope_1 = 0xb9
UuSlope_1 = 0xa8
SatSlope_1 = 0x5d
AcSlope_1 = 0xa0
FcSlope_1 = 0x8a
VhThresh_1 = 0x0
AaThresh_1 = 0x0
VaThresh_1 = 0x0
UuThresh_1 = 0x08
SatThresh_1 = 0x0
AcThresh_1 = 0x1b3
gammaRGBValid_1 = 1 ;gamma for linear mode
gammaRGB0_1 = 0,11,22,33,45,57,70,82,95,109,122,136,151,165,180,195,211,226,241,256,272,288,304,321,337,353,370,387,404,422,439,457,476,494,512,531,549,567,585,603,621,639,658,676,694,713,731,750,769,793,816,839,863,887,910,933,958,983,1008,1033,1059,1084,1109,1133,1157,1180,1204,1228,1252,1277,1301,1326,1348,1366,1387,1410,1432,1453,1475,1496,1518,1542,1565,1586,1607,1628,1648,1669,1689,1711,1730,1751,1771,1793,1815,1835,1854,1871,1889,1908,1928,1947,1965,1983,2003,2023,2040,
gammaRGB1_1 = 2060,2079,2096,2113,2132,2149,2167,2184,2203,2220,2238,2257,2275,2293,2310,2326,2344,2359,2377,2392,2408,2426,2442,2460,2477,2492,2510,2527,2545,2561,2577,2592,2608,2623,2638,2654,2669,2685,2700,2716,2732,2748,2764,2779,2796,2811,2827,2842,2855,2870,2884,2898,2913,2926,2941,2955,2969,2985,2998,3014,3027,3042,3057,3071,3086,3100,3114,3127,3142,3155,3168,3182,3196,3209,3222,3237,3250,3264,3277,3292,3305,3319,3332,3347,3360,3374,3385,3398,3411,3424,3437,3448,3462,3475,
gammaRGB2_1 = 3487,3501,3513,3526,3537,3550,3561,3573,3585,3596,3609,3621,3632,3644,3655,3666,3678,3689,3701,3712,3723,3735,3746,3757,3767,3779,3791,3802,3812,3823,3834,3845,3855,3866,3877,3888,3899,3907,3919,3929,3940,3951,3962,3973,3984,3994,4003,4014,4025,4034,4045,4056,4065,4076,4085,4095
gammafevalid_1 = 1 ;gammafe0 and gammafe1 for wdr mode
gammafe0_1 = 0,2048,34816,35840,36864,37888,38912,39936,40960,41984,43008,44032,45056,46080,47104,48128,49152,50176,51200,52224,53248,54272,55296,56320,57344,58368,59392,60416,61440,62464,63488,64512,65535
gammafe1.0_1 = 0,156,320,495,682,885,1108,1358,1650,1671,1691,1712,1733,1754,1776,1798,1821,1844,1867,1891,1915,1939,1965,1990,2017,2044,2071,2100,2129,2159,2190,2222,2255,2290,2326,2363,2403,2445,2489,2537,2589,2647,2712,2790,2891,3135,3379,3480,3558,3623,3681,3733,3781,3825,3867,3907,3944,3980,4015,4048,4080,4111,4141,4170,4199,4226,4253,4280,4305,4331,4355,4379,4403,4426,4449,4472,4494,4516,4537,4558,4579,4599,4620,4639,4659,4679,4698,4717,4735,4754,4772,4790,
gammafe1.1_1 = 4808,4826,4843,4861,4878,4895,4912,4928,4945,4961,4978,4994,5010,5025,5041,5057,5072,5087,5103,5118,5133,5148,5162,5177,5191,5206,5220,5234,5249,5263,5277,5290,5304,5318,5332,5345,5358,5372,5385,5398,5411,5424,5437,5450,5463,5842,6174,6472,6747,7002,7241,7467,7681,7886,8083,8272,8454,8630,8801,8967,9128,9285,9438,9588,9734,9877,10016,10154,10288,10550,10803,11043,11281,11512,11736,11955,12168,12377,12581,12781,12976,13168,13356,13541,13723,13901,14077,
gammafe1.2_1 = 14250,14420,14588,14753,14916,15076,15235,15392,15546,15699,15850,15999,16146,16292,16436,16578,16719,16859,16997,17134,17269,17404,17537,17668,17799,17928,18057,18184,18310,18435,20282,21977,23531,24974,26328,27608,28824,29984,31097,32167,33199,34196,35163,36101,37014,37901,38768,39613,40440,41249,42040,42816,43577,44325,45058,45779,46488,47186,48533,49856,51144,52398,53620,54815,55981,57123,58240,59336,60410,61466,62502,63520,64522,65507,65535,65535,65535,65535
RGBsharpenLutValid_1 = 1 ;ISP RGB sharpening default parameter for linear mode
LutCore_1 = 255
LutStrength_1 = 127
LutMagnitude_1 = 8
DrcEnable_1 = 1 ;drc default parameter for linear mode
BlackLevel_1 = 0x0
WhiteLevel_1 = 0xfff
SlopeMax_1 = 0x38
SlopeMin_1 = 0x0
VarianceSpace_1 = 0xa
VarianceIntensity_1 = 0x4

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,75 @@
#
# sensor lib Makefile
#
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../../../Makefile.param
include $(PARAM_FILE)
endif
ISP_PATH := $(SDK_PATH)/mpp/component/isp
EXT_PATH := $(SDK_PATH)/mpp/$(EXTDRV)
3A_PATH := $(ISP_PATH)/3a
LIBPATH = $(ISP_PATH)/lib
OBJPATH = ./obj
ifeq ($(CONFIG_GPIO_I2C),y)
HI_GPIO_I2C:=HI_GPIO_I2C
else
HI_GPIO_I2C:=HI_GPIO_XXX
endif
ARFLAGS = rcv
ARFLAGS_SO = $(LIBS_LD_CFLAGS)
ARFLAGS_SO += -shared -fPIC -o
CFLAGS = -Wall -fPIC -D$(HI_FPGA) -D$(HI_GPIO_I2C)
CFLAGS += -O2
CFLAGS += $(LIBS_CFLAGS)
ifeq ($(ISP_INI_CONFIG), y)
CFLAGS += -D INIFILE_CONFIG_MODE
endif
ifeq ($(HIGDB),HI_GDB)
CFLAGS += -g
endif
ifeq ($(CONFIG_JPEGEDCF), y)
CFLAGS += -D ENABLE_JPEGEDCF
endif
BUS_DIR := $(EXT_PATH)/ssp-sony/
ISP_INC := $(ISP_PATH)/include
3A_INC := $(3A_PATH)/include
INC := -I$(BUS_DIR) -I$(REL_INC) -I$(ISP_INC) -I$(3A_INC)
ifeq ($(CONFIG_GPIO_I2C), y)
INC += -I$(EXT_PATH)/gpio-i2c-ex
INC += -I$(EXT_PATH)/gpio-i2c
else
INC += -I$(EXT_PATH)/i2c
INC += -I$(EXT_PATH)/hi_i2c
endif
COMPILE = $(CC) $(CFLAGS) $(DFLAGS) -lm
$(OBJPATH)/%.o: ./%.c
@[ -e $(LIBPATH) ] || mkdir $(LIBPATH)
@[ -e $(OBJPATH) ] || mkdir $(OBJPATH)
@$(COMPILE) -o $@ -c $< $(INC)
SRCS = $(wildcard ./*.c)
OBJS = $(SRCS:%.c=%.o)
OBJS := $(OBJS:./%=obj/%)
TARGETLIB := $(LIBPATH)/libsns_ar0130.a
TARGETLIB_SO := $(LIBPATH)/libsns_ar0130.so
all:$(TARGETLIB)
$(TARGETLIB):$(OBJS)
@($(AR) $(ARFLAGS) $(TARGETLIB) $(OBJS))
@($(CC) $(ARFLAGS_SO) $(TARGETLIB_SO) $(OBJS))
clean:
@$(RM) -rf $(TARGETLIB) $(OBJS)
@$(RM) -rf $(LIBPATH) $(OBJPATH)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,358 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include "hi_comm_video.h"
#ifdef HI_GPIO_I2C
#include "gpioi2c_ex.h"
#else
#include "hi_i2c.h"
#endif
static int g_fd = -1;
static int flag_init = 0;
const unsigned char sensor_i2c_addr = 0x20; /* I2C Address of 9m034 */
const unsigned int sensor_addr_byte = 2;
const unsigned int sensor_data_byte = 2;
extern WDR_MODE_E genSensorMode;
extern HI_U8 gu8SensorImageMode;
extern HI_BOOL bSensorInit;
int sensor_i2c_init(void)
{
if(g_fd >= 0)
{
return 0;
}
#ifdef HI_GPIO_I2C
int ret;
g_fd = open("/dev/gpioi2c_ex", 0);
if(g_fd < 0)
{
printf("Open gpioi2c_ex error!\n");
return -1;
}
#else
int ret;
g_fd = open("/dev/i2c-0", O_RDWR);
if(g_fd < 0)
{
printf("Open /dev/i2c-0 error!\n");
return -1;
}
ret = ioctl(g_fd, I2C_SLAVE_FORCE, sensor_i2c_addr);
if (ret < 0)
{
printf("CMD_SET_DEV error!\n");
return ret;
}
#endif
return 0;
}
int sensor_i2c_exit(void)
{
if (g_fd >= 0)
{
close(g_fd);
g_fd = -1;
return 0;
}
return -1;
}
int sensor_read_register(int addr)
{
// TODO:
return 0;
}
int sensor_write_register(int addr, int data)
{
#ifdef HI_GPIO_I2C
i2c_data.dev_addr = sensor_i2c_addr;
i2c_data.reg_addr = addr;
i2c_data.addr_byte_num = sensor_addr_byte;
i2c_data.data = data;
i2c_data.data_byte_num = sensor_data_byte;
ret = ioctl(g_fd, GPIO_I2C_WRITE, &i2c_data);
if (ret)
{
printf("GPIO-I2C write faild!\n");
return ret;
}
#else
if(flag_init == 0)
{
sensor_i2c_init();
flag_init = 1;
}
int idx = 0;
int ret;
char buf[8];
buf[idx++] = addr & 0xFF;
if (sensor_addr_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_REG, 1);
buf[idx++] = addr >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_REG, 0);
}
if (ret < 0)
{
printf("CMD_SET_REG_WIDTH error!\n");
return -1;
}
buf[idx++] = data;
if (sensor_data_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 1);
buf[idx++] = data >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 0);
}
if (ret)
{
printf("hi_i2c write faild!\n");
return -1;
}
ret = write(g_fd, buf, idx);
if(ret < 0)
{
printf("I2C_WRITE error!\n");
return -1;
}
#endif
return 0;
}
static void delay_ms(int ms) {
usleep(ms*1000);
}
void sensor_prog(int* rom)
{
int i = 0;
while (1) {
int lookup = rom[i++];
int addr = (lookup >> 16) & 0xFFFF;
int data = lookup & 0xFFFF;
if (addr == 0xFFFE) {
delay_ms(data);
} else if (addr == 0xFFFF) {
return;
} else {
sensor_write_register(addr, data);
}
}
}
void sensor_init()
{
//[720p30]
sensor_write_register( 0x301A, 0x0001 ); // RESET_REGISTER
delay_ms(200); //ms
sensor_write_register( 0x301A, 0x10D8 ); // RESET_REGISTER
delay_ms(200); //ms
//Linear Mode Setup
//AR0130 Rev1 Linear sequencer load 8-2-2011
sensor_write_register( 0x3088, 0x8000 );// SEQ_CTRL_PORT
sensor_write_register( 0x3086, 0x0225 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x5050 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2D26 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0828 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0D17 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0926 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0028 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0526 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0xA728 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0725 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x8080 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2917 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0525 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0040 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2702 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1616 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2706 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1736 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x26A6 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1703 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x26A4 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x171F );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2805 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2620 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2804 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2520 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2027 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0017 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1E25 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0020 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2117 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1028 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x051B );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1703 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2706 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1703 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1747 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2660 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x17AE );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2500 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x9027 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0026 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1828 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x002E );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2A28 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x081E );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0831 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1440 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x4014 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2020 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1410 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1034 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1400 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1014 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0020 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1400 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x4013 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1802 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1470 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x7004 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1470 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x7003 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1470 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x7017 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2002 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1400 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2002 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1400 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x5004 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1400 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2004 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x1400 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x5022 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0314 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0020 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0314 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x0050 );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2C2C );// SEQ_DATA_PORT
sensor_write_register( 0x3086, 0x2C2C );// SEQ_DATA_PORT
sensor_write_register( 0x309E, 0x0000 );// DCDS_PROG_START_ADDR
sensor_write_register( 0x30E4, 0x6372 );// ADC_BITS_6_7
sensor_write_register( 0x30E2, 0x7253 );// ADC_BITS_4_5
sensor_write_register( 0x30E0, 0x5470 );// ADC_BITS_2_3
sensor_write_register( 0x30E6, 0xC4CC );// ADC_CONFIG1
sensor_write_register( 0x30E8, 0x8050 );// ADC_CONFIG2
delay_ms(200); //ms
sensor_write_register( 0x3082, 0x0029 ); // OPERATION_MODE_CTRL
//AR0130 Rev1 Optimized settings
sensor_write_register( 0x301E, 0x00C8); // DATA_PEDESTAL
sensor_write_register( 0x3EDA, 0x0F03); // DAC_LD_14_15
sensor_write_register( 0x3EDE, 0xC005); // DAC_LD_18_19
sensor_write_register( 0x3ED8, 0x09EF); // DAC_LD_12_13
sensor_write_register( 0x3EE2, 0xA46B); // DAC_LD_22_23
sensor_write_register( 0x3EE0, 0x047D); // DAC_LD_20_21
sensor_write_register( 0x3EDC, 0x0070); // DAC_LD_16_17
sensor_write_register( 0x3044, 0x0404); // DARK_CONTROL
sensor_write_register( 0x3EE6, 0x8303); // DAC_LD_26_27
sensor_write_register( 0x3EE4, 0xD208); // DAC_LD_24_25
sensor_write_register( 0x3ED6, 0x00BD); // DAC_LD_10_11
sensor_write_register( 0x30B0, 0x1300); // DIGITAL_TEST
sensor_write_register( 0x30D4, 0xE007); // COLUMN_CORRECTION
sensor_write_register( 0x301A, 0x10DC); // RESET_REGISTER
delay_ms(500 );//ms
sensor_write_register( 0x301A, 0x10D8); // RESET_REGISTER
delay_ms(500); //ms
sensor_write_register( 0x3044, 0x0400); // DARK_CONTROL
sensor_write_register( 0x3012, 0x02A0); // COARSE_INTEGRATION_TIME
//720p 30fps Setup
sensor_write_register( 0x3032, 0x0000); // DIGITAL_BINNING
sensor_write_register( 0x3002, 0x0002); // Y_ADDR_START
sensor_write_register( 0x3004, 0x0000); // X_ADDR_START
sensor_write_register( 0x3006, 0x02D1);//Row End (A) = 721
sensor_write_register( 0x3008, 0x04FF);//Column End (A) = 1279
sensor_write_register( 0x300A, 0x02EA);//Frame Lines (A) = 746
sensor_write_register( 0x300C, 0x08ba);
sensor_write_register( 0x3012, 0x0133);//Coarse_IT_Time (A) = 307
sensor_write_register( 0x306e, 0x9211);//Coarse_IT_Time (A) = 307
//Enable Parallel Mode
sensor_write_register( 0x301A, 0x10D8); // RESET_REGISTER
sensor_write_register( 0x31D0, 0x0001); // HDR_COMP
//PLL Enabled 27Mhz to 50Mhz
sensor_write_register( 0x302A, 0x0009 );//VT_PIX_CLK_DIV = 9
sensor_write_register( 0x302C, 0x0001 );//VT_SYS_CLK_DIV = 1
sensor_write_register( 0x302E, 0x0003 );//PRE_PLL_CLK_DIV = 3
sensor_write_register( 0x3030, 0x0032 );//PLL_MULTIPLIER = 50
sensor_write_register( 0x30B0, 0x1300 ); // DIGITAL_TEST
delay_ms(100); //ms
sensor_write_register( 0x301A, 0x10DC ); // RESET_REGISTER
sensor_write_register( 0x301A, 0x10DC ); // RESET_REGISTER
//exposure
sensor_write_register( 0x3012, 0x0671 ); // COARSE_INTEGRATION_TIME
sensor_write_register( 0x30B0, 0x1330 ); // DIGITAL_TEST
sensor_write_register( 0x3056, 0x003B ); // GREEN1_GAIN
sensor_write_register( 0x305C, 0x003B ); // GREEN2_GAIN
sensor_write_register( 0x305A, 0x003B ); // RED_GAIN
sensor_write_register( 0x3058, 0x003B ); // BLUE_GAIN
//High Conversion gain
sensor_write_register( 0x3100, 0x0004 ); // AE_CTRL_REG
//LOAD= Disable Embedded Data and Stats
sensor_write_register(0x3064, 0x1802); // SMIA_TEST, EMBEDDED_STATS_EN, 0x0000
sensor_write_register(0x3064, 0x1802); // SMIA_TEST, EMBEDDED_DATA, 0x0000
sensor_write_register(0x30BA, 0x0008); //20120502
sensor_write_register(0x3EE4, 0xD308); //the default value former is 0xd208
sensor_write_register(0x301A, 0x10DC); // RESET_REGISTER
delay_ms(200); //DELAY= 200
printf("Aptina AR0130 sensor 720P30fps init success!\n");
}
void sensor_exit()
{
sensor_i2c_exit();
flag_init = 0;
return;
}

View File

@ -0,0 +1,74 @@
#
# hi_iniparser lib Makefile
#
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../../../Makefile.param
include $(PARAM_FILE)
endif
ISP_PATH := $(SDK_PATH)/mpp/component/isp
LIBPATH = $(ISP_PATH)/lib
OBJPATH = ./obj
INI_INC := $(ISP_PATH)/iniparser
3A_PATH := $(ISP_PATH)/include
ifeq ($(MPP_BUILD), y)
EXT_PATH := $(SDK_PATH)/mpp/$(EXTDRV)
else
EXT_PATH := $(SDK_PATH)/mpp/extdrv
endif
BUS_DIR := $(EXT_PATH)/pwm
ARFLAGS = rcv
CFLAGS = -Wall -fPIC
ifeq ($(ISP_INI_CONFIG), y)
CFLAGS += -D INIFILE_CONFIG_MODE
endif
ifeq ($(HIGDB),HI_GDB)
CFLAGS += -g
endif
ifeq ($(CONFIG_JPEGEDCF), y)
CFLAGS += -D ENABLE_JPEGEDCF
endif
CFLAGS += -O2
CFLAGS += $(LIBS_CFLAGS)
DFLAGS := -DEXT_REG
ISP_INC := $(ISP_PATH)/include
3A_INC := $(3A_PATH)/include
INC := -I$(REL_INC) -I$(ISP_INC) -I$(BUS_DIR) -I$(INI_INC) -I$(3A_INC)
#-I$(SRC_INC) -I$(VREG_INC) -I$(VREG_INC)/arch/$(HIARCH)
COMPILE = $(CC) $(CFLAGS) $(DFLAGS) -lm
$(OBJPATH)/%.o: ./%.c
@(echo "compiling $< ...")
@[ -e $(LIBPATH) ] || mkdir $(LIBPATH)
@[ -e $(OBJPATH) ] || mkdir $(OBJPATH)
@($(COMPILE) -o $@ -c $< $(INC))
SRCS = $(wildcard ./*.c)
OBJS = $(SRCS:%.c=%.o)
OBJS := $(OBJS:./%=obj/%)
LIB_A := $(LIBPATH)/lib_cmoscfg.a
LIB_S := $(LIBPATH)/lib_cmoscfg.so
all:$(OBJS)
@($(AR) $(ARFLAGS) $(LIB_A) $(OBJS))
@($(CC) $(LIBS_LD_CFLAGS) -shared -fPIC -o $(LIB_S) $(OBJS))
clean:
@$(RM) -rf $(LIB_A) $(LIB_S) $(OBJS)
@$(RM) -rf $(LIBPATH) $(OBJPATH)
show:
@echo "$(QUICK_CONFIG)"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,75 @@
#
# sensor lib Makefile
#
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../../../Makefile.param
include $(PARAM_FILE)
endif
ISP_PATH := $(SDK_PATH)/mpp/component/isp
EXT_PATH := $(SDK_PATH)/mpp/$(EXTDRV)
3A_PATH := $(ISP_PATH)/3a
LIBPATH = $(ISP_PATH)/lib
OBJPATH = ./obj
ifeq ($(CONFIG_GPIO_I2C),y)
HI_GPIO_I2C:=HI_GPIO_I2C
else
HI_GPIO_I2C:=HI_GPIO_XXX
endif
ARFLAGS = rcv
ARFLAGS_SO = $(LIBS_LD_CFLAGS)
ARFLAGS_SO += -shared -fPIC -o
CFLAGS = -Wall -fPIC -D$(HI_FPGA) -D$(HI_GPIO_I2C)
CFLAGS += -O2
CFLAGS += $(LIBS_CFLAGS)
ifeq ($(ISP_INI_CONFIG), y)
CFLAGS += -D INIFILE_CONFIG_MODE
endif
ifeq ($(HIGDB),HI_GDB)
CFLAGS += -g
endif
ifeq ($(CONFIG_JPEGEDCF), y)
CFLAGS += -D ENABLE_JPEGEDCF
endif
BUS_DIR := $(EXT_PATH)/ssp-sony/
ISP_INC := $(ISP_PATH)/include
3A_INC := $(3A_PATH)/include
INC := -I$(BUS_DIR) -I$(REL_INC) -I$(ISP_INC) -I$(3A_INC) -I$(ISP_PATH)/iniparser
ifeq ($(CONFIG_GPIO_I2C), y)
INC += -I$(EXT_PATH)/gpio-i2c-ex
INC += -I$(EXT_PATH)/gpio-i2c
else
INC += -I$(EXT_PATH)/i2c
INC += -I$(EXT_PATH)/hi_i2c
endif
COMPILE = $(CC) $(CFLAGS) $(DFLAGS) -lm
$(OBJPATH)/%.o: ./%.c
@[ -e $(LIBPATH) ] || mkdir $(LIBPATH)
@[ -e $(OBJPATH) ] || mkdir $(OBJPATH)
@$(COMPILE) -o $@ -c $< $(INC)
SRCS = $(wildcard ./*.c)
OBJS = $(SRCS:%.c=%.o)
OBJS := $(OBJS:./%=obj/%)
TARGETLIB := $(LIBPATH)/libsns_ov9712.a
TARGETLIB_SO := $(LIBPATH)/libsns_ov9712.so
all:$(TARGETLIB)
$(TARGETLIB):$(OBJS)
@($(AR) $(ARFLAGS) $(TARGETLIB) $(OBJS))
@($(CC) $(ARFLAGS_SO) $(TARGETLIB_SO) $(OBJS))
clean:
@$(RM) -rf $(TARGETLIB) $(OBJS)
@$(RM) -rf $(LIBPATH) $(OBJPATH)

View File

@ -0,0 +1,3 @@
make clean;make
cp ../../lib/libsns_ov9712.so /home/x00226337/hi3518e/release_3518E/libs;
echo "cp down!!"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,310 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include "hi_comm_video.h"
#ifdef HI_GPIO_I2C
#include "gpioi2c_ex.h"
#else
#include "hi_i2c.h"
#endif
const unsigned char sensor_i2c_addr = 0x60; /* I2C Address of OV9712 */
const unsigned int sensor_addr_byte = 1;
const unsigned int sensor_data_byte = 1;
static int g_fd = -1;
static int flag_init = 0;
extern WDR_MODE_E genSensorMode;
extern HI_U8 gu8SensorImageMode;
extern HI_BOOL bSensorInit;
int sensor_i2c_init(void)
{
if(g_fd >= 0)
{
return 0;
}
#ifdef HI_GPIO_I2C
int ret;
g_fd = open("/dev/gpioi2c_ex", 0);
if(g_fd < 0)
{
printf("Open gpioi2c_ex error!\n");
return -1;
}
#else
int ret;
g_fd = open("/dev/i2c-0", O_RDWR);
if(g_fd < 0)
{
printf("Open /dev/i2c-0 error!\n");
return -1;
}
ret = ioctl(g_fd, I2C_SLAVE_FORCE, sensor_i2c_addr);
if (ret < 0)
{
printf("CMD_SET_DEV error!\n");
return ret;
}
#endif
return 0;
}
int sensor_i2c_exit(void)
{
if (g_fd >= 0)
{
close(g_fd);
g_fd = -1;
return 0;
}
return -1;
}
int sensor_read_register(int addr)
{
// TODO:
return 0;
}
int sensor_write_register(int addr, int data)
{
#ifdef HI_GPIO_I2C
i2c_data.dev_addr = sensor_i2c_addr;
i2c_data.reg_addr = addr;
i2c_data.addr_byte_num = sensor_addr_byte;
i2c_data.data = data;
i2c_data.data_byte_num = sensor_data_byte;
ret = ioctl(g_fd, GPIO_I2C_WRITE, &i2c_data);
if (ret)
{
printf("GPIO-I2C write faild!\n");
return ret;
}
#else
if(flag_init == 0)
{
sensor_i2c_init();
flag_init = 1;
}
int idx = 0;
int ret;
char buf[8];
buf[idx++] = addr & 0xFF;
if (sensor_addr_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_REG, 1);
buf[idx++] = addr >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_REG, 0);
}
if (ret < 0)
{
printf("CMD_SET_REG_WIDTH error!\n");
return -1;
}
buf[idx++] = data;
if (sensor_data_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 1);
buf[idx++] = data >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 0);
}
if (ret)
{
printf("hi_i2c write faild!\n");
return -1;
}
ret = write(g_fd, buf, idx);
if(ret < 0)
{
printf("I2C_WRITE error!\n");
return -1;
}
#endif
return 0;
}
static void delay_ms(int ms) {
usleep(ms*1000);
}
void sensor_prog(int* rom)
{
int i = 0;
while (1) {
int lookup = rom[i++];
int addr = (lookup >> 16) & 0xFFFF;
int data = lookup & 0xFFFF;
if (addr == 0xFFFE) {
delay_ms(data);
} else if (addr == 0xFFFF) {
return;
} else {
sensor_write_register(addr, data);
}
}
}
void sensor_linear_720p25_init();
#define SENSOR_720P_25FPS_MODE (1)
void sensor_init()
{
sensor_i2c_init();
#if 0
/* When sensor first init, config all registers */
if (HI_FALSE == bSensorInit)
{
if(SENSOR_720P_25FPS_MODE == gu8SensorImageMode)
{
sensor_linear_720p25_init();
}
}
/* When sensor switch mode(linear<->WDR or resolution), config different registers(if possible) */
else
{
if(SENSOR_720P_25FPS_MODE == gu8SensorImageMode)
{
sensor_linear_720p25_init();
}
}
#endif
sensor_linear_720p25_init();
return ;
}
void sensor_exit()
{
sensor_i2c_exit();
flag_init = 0;
return;
}
/* 720P30 and 720P25 */
void sensor_linear_720p25_init()
{
//Reset
sensor_write_register(0x12, 0x80);
sensor_write_register(0x09, 0x10);
//Core Settings
sensor_write_register(0x1e, 0x07);
sensor_write_register(0x5f, 0x18);
sensor_write_register(0x69, 0x04);
sensor_write_register(0x65, 0x2a);
sensor_write_register(0x68, 0x0a);
sensor_write_register(0x39, 0x28);
sensor_write_register(0x4d, 0x90);
sensor_write_register(0xc1, 0x80);
sensor_write_register(0x0c, 0x30);
sensor_write_register(0x6d, 0x02);
//DSP
//sensor_write_register(0x96, 0xf1);
sensor_write_register(0x96, 0x01);
sensor_write_register(0xbc, 0x68);
//Resolution and Format
sensor_write_register(0x12, 0x00);
sensor_write_register(0x3b, 0x00);
sensor_write_register(0x97, 0x80);
sensor_write_register(0x17, 0x25);
sensor_write_register(0x18, 0xA2);
sensor_write_register(0x19, 0x01);
sensor_write_register(0x1a, 0xCA);
sensor_write_register(0x03, 0x0A);
sensor_write_register(0x32, 0x07);
sensor_write_register(0x98, 0x00);
sensor_write_register(0x99, 0x28);
sensor_write_register(0x9a, 0x00);
sensor_write_register(0x57, 0x00);
sensor_write_register(0x58, 0xB4);
sensor_write_register(0x59, 0xA0);
sensor_write_register(0x4c, 0x13);
sensor_write_register(0x4b, 0x36);
sensor_write_register(0x3d, 0x3c);
sensor_write_register(0x3e, 0x03);
sensor_write_register(0xbd, 0xA0);
sensor_write_register(0xbe, 0xb4);
sensor_write_register(0x37, 0x02);
sensor_write_register(0x60, 0x9d);
//YAVG
sensor_write_register(0x4e, 0x55);
sensor_write_register(0x4f, 0x55);
sensor_write_register(0x50, 0x55);
sensor_write_register(0x51, 0x55);
sensor_write_register(0x24, 0x55);
sensor_write_register(0x25, 0x40);
sensor_write_register(0x26, 0xa1);
//Clock
sensor_write_register(0x5c, 0x52);
sensor_write_register(0x5d, 0x00);
sensor_write_register(0x11, 0x01);
sensor_write_register(0x2a, 0x9c);
sensor_write_register(0x2b, 0x06);
sensor_write_register(0x2d, 0x00);
sensor_write_register(0x2e, 0x00);
//General
sensor_write_register(0x13, 0xA5);
sensor_write_register(0x14, 0x40);
//Banding
sensor_write_register(0x4a, 0x00);
sensor_write_register(0x49, 0xce);
sensor_write_register(0x22, 0x03);
sensor_write_register(0x09, 0x00);
//close AE_AWB
sensor_write_register(0x13, 0x80);
sensor_write_register(0x16, 0x00);
sensor_write_register(0x10, 0xf0);
sensor_write_register(0x00, 0x3f);
sensor_write_register(0x38, 0x00);
sensor_write_register(0x01, 0x40);
sensor_write_register(0x02, 0x40);
sensor_write_register(0x05, 0x40);
sensor_write_register(0x06, 0x00);
sensor_write_register(0x07, 0x00);
//BLC
sensor_write_register(0x41, 0x84);
bSensorInit = HI_TRUE;
printf("=========================================================\n");
printf("===ominivision ov9712 sensor 720P30fps(Parallel port) init success!=====\n");
printf("=========================================================\n");
return;
}

View File

@ -0,0 +1,75 @@
#
# sensor lib Makefile
#
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../../../Makefile.param
include $(PARAM_FILE)
endif
ISP_PATH := $(SDK_PATH)/mpp/component/isp
EXT_PATH := $(SDK_PATH)/mpp/$(EXTDRV)
3A_PATH := $(ISP_PATH)/3a
LIBPATH = $(ISP_PATH)/lib
OBJPATH = ./obj
ifeq ($(CONFIG_GPIO_I2C),y)
HI_GPIO_I2C:=HI_GPIO_I2C
else
HI_GPIO_I2C:=HI_GPIO_XXX
endif
ARFLAGS = rcv
ARFLAGS_SO = $(LIBS_LD_CFLAGS)
ARFLAGS_SO += -shared -fPIC -o
CFLAGS = -Wall -fPIC -D$(HI_FPGA) -D$(HI_GPIO_I2C)
CFLAGS += -O2
CFLAGS += $(LIBS_CFLAGS)
ifeq ($(ISP_INI_CONFIG), y)
CFLAGS += -D INIFILE_CONFIG_MODE
endif
ifeq ($(HIGDB),HI_GDB)
CFLAGS += -g
endif
ifeq ($(CONFIG_JPEGEDCF), y)
CFLAGS += -D ENABLE_JPEGEDCF
endif
BUS_DIR := $(EXT_PATH)/ssp-sony/
ISP_INC := $(ISP_PATH)/include
3A_INC := $(3A_PATH)/include
INC := -I$(BUS_DIR) -I$(REL_INC) -I$(ISP_INC) -I$(3A_INC) -I$(ISP_PATH)/iniparser
ifeq ($(CONFIG_GPIO_I2C), y)
INC += -I$(EXT_PATH)/gpio-i2c-ex
INC += -I$(EXT_PATH)/gpio-i2c
else
INC += -I$(EXT_PATH)/i2c
INC += -I$(EXT_PATH)/hi_i2c
endif
COMPILE = $(CC) $(CFLAGS) $(DFLAGS) -lm
$(OBJPATH)/%.o: ./%.c
@[ -e $(LIBPATH) ] || mkdir $(LIBPATH)
@[ -e $(OBJPATH) ] || mkdir $(OBJPATH)
@$(COMPILE) -o $@ -c $< $(INC)
SRCS = $(wildcard ./*.c)
OBJS = $(SRCS:%.c=%.o)
OBJS := $(OBJS:./%=obj/%)
TARGETLIB := $(LIBPATH)/libsns_ov9752.a
TARGETLIB_SO := $(LIBPATH)/libsns_ov9752.so
all:$(TARGETLIB)
$(TARGETLIB):$(OBJS)
@($(AR) $(ARFLAGS) $(TARGETLIB) $(OBJS))
@($(CC) $(ARFLAGS_SO) $(TARGETLIB_SO) $(OBJS))
clean:
@$(RM) -rf $(TARGETLIB) $(OBJS)
@$(RM) -rf $(LIBPATH) $(OBJPATH)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,461 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include "hi_comm_video.h"
#ifdef HI_GPIO_I2C
#include "gpioi2c_ex.h"
#else
#include "hi_i2c.h"
#endif
const unsigned char sensor_i2c_addr = 0x42; /* I2C Address of OV4682 */
const unsigned int sensor_addr_byte = 2;
const unsigned int sensor_data_byte = 1;
static int g_fd = -1;
extern WDR_MODE_E genSensorMode;
extern HI_U8 gu8SensorImageMode;
extern HI_BOOL bSensorInit;
int sensor_i2c_init(void)
{
if(g_fd >= 0)
{
return 0;
}
#ifdef HI_GPIO_I2C
int ret;
g_fd = open("/dev/gpioi2c_ex", 0);
if(g_fd < 0)
{
printf("Open gpioi2c_ex error!\n");
return -1;
}
#else
int ret;
g_fd = open("/dev/i2c-0", O_RDWR);
if(g_fd < 0)
{
printf("Open /dev/i2c-0 error!\n");
return -1;
}
ret = ioctl(g_fd, I2C_SLAVE_FORCE, sensor_i2c_addr);
if (ret < 0)
{
printf("CMD_SET_DEV error!\n");
return ret;
}
#endif
return 0;
}
int sensor_i2c_exit(void)
{
if (g_fd >= 0)
{
close(g_fd);
g_fd = -1;
return 0;
}
return -1;
}
int sensor_read_register(int addr)
{
// TODO:
return 0;
}
int sensor_write_register(int addr, int data)
{
#ifdef HI_GPIO_I2C
i2c_data.dev_addr = sensor_i2c_addr;
i2c_data.reg_addr = addr;
i2c_data.addr_byte_num = sensor_addr_byte;
i2c_data.data = data;
i2c_data.data_byte_num = sensor_data_byte;
ret = ioctl(g_fd, GPIO_I2C_WRITE, &i2c_data);
if (ret)
{
printf("GPIO-I2C write faild!\n");
return ret;
}
#else
int idx = 0;
int ret;
char buf[8];
buf[idx++] = addr & 0xFF;
if (sensor_addr_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_REG, 1);
buf[idx++] = addr >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_REG, 0);
}
if (ret < 0)
{
printf("CMD_SET_REG_WIDTH error!\n");
return -1;
}
buf[idx++] = data;
if (sensor_data_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 1);
buf[idx++] = data >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 0);
}
if (ret)
{
printf("hi_i2c write faild!\n");
return -1;
}
ret = write(g_fd, buf, idx);
if(ret < 0)
{
printf("I2C_WRITE error!\n");
return -1;
}
#endif
return 0;
}
static void delay_ms(int ms) {
usleep(ms*1000);
}
void sensor_prog(int* rom)
{
int i = 0;
while (1) {
int lookup = rom[i++];
int addr = (lookup >> 16) & 0xFFFF;
int data = lookup & 0xFFFF;
if (addr == 0xFFFE) {
delay_ms(data);
} else if (addr == 0xFFFF) {
return;
} else {
sensor_write_register(addr, data);
}
}
}
void sensor_linear_720p30_init();
#define SENSOR_720P_30FPS_MODE (1)
void sensor_init()
{
sensor_i2c_init();
/* When sensor first init, config all registers */
if (HI_FALSE == bSensorInit)
{
if(SENSOR_720P_30FPS_MODE == gu8SensorImageMode)
{
sensor_linear_720p30_init();
}
}
/* When sensor switch mode(linear<->WDR or resolution), config different registers(if possible) */
else
{
if(SENSOR_720P_30FPS_MODE == gu8SensorImageMode)
{
sensor_linear_720p30_init();
}
}
return ;
}
void sensor_exit()
{
sensor_i2c_exit();
return;
}
/* 720P30 and 720P25 */
void sensor_linear_720p30_init()
{
/* #!/bin/sh
#MCLK=24MHz
# OV9752 720P 30FPS MIPI 480Mbps 2 lane Test ADC12bits*/
sensor_write_register (0x0103, 0x01);
sensor_write_register (0x0100, 0x00);
sensor_write_register (0x0300, 0x04);
sensor_write_register (0x0302, 0x78); //#;64
sensor_write_register (0x0303, 0x03); //#;00
sensor_write_register (0x0304, 0x03);
sensor_write_register (0x0305, 0x01);
sensor_write_register (0x0306, 0x01);
sensor_write_register (0x030a, 0x00);
sensor_write_register (0x030b, 0x00);
sensor_write_register (0x030d, 0x1e);
sensor_write_register (0x030e, 0x01);
sensor_write_register (0x030f, 0x04);
sensor_write_register (0x0312, 0x01);
sensor_write_register (0x031e, 0x04);
sensor_write_register (0x3000, 0x00);
sensor_write_register (0x3001, 0x00);
sensor_write_register (0x3002, 0x21);
sensor_write_register (0x3005, 0xf0);
sensor_write_register (0x3011, 0x00);
sensor_write_register (0x3016, 0x53);
sensor_write_register (0x3018, 0x32);
sensor_write_register (0x301a, 0xf0);
sensor_write_register (0x301b, 0xf0);
sensor_write_register (0x301c, 0xf0);
sensor_write_register (0x301d, 0xf0);
sensor_write_register (0x301e, 0xf0);
sensor_write_register (0x3022, 0x01);
sensor_write_register (0x3031, 0x0a);
sensor_write_register (0x3032, 0x80);
sensor_write_register (0x303c, 0xff);
sensor_write_register (0x303e, 0xff);
sensor_write_register (0x3040, 0xf0);
sensor_write_register (0x3041, 0x00);
sensor_write_register (0x3042, 0xf0);
sensor_write_register (0x3104, 0x01);
sensor_write_register (0x3106, 0x15);
sensor_write_register (0x3107, 0x01);
sensor_write_register (0x3500, 0x00);
sensor_write_register (0x3501, 0x1d);
sensor_write_register (0x3502, 0x00);
sensor_write_register (0x3503, 0x78);//GAIN/SHUTTER delay config
sensor_write_register (0x3504, 0x03);
sensor_write_register (0x3505, 0x83);
sensor_write_register (0x3508, 0x02);
sensor_write_register (0x3509, 0x80);
sensor_write_register (0x3600, 0x65);
sensor_write_register (0x3601, 0x60);
sensor_write_register (0x3602, 0x22);
sensor_write_register (0x3610, 0xe8);
sensor_write_register (0x3611, 0x56);
sensor_write_register (0x3612, 0x18);
sensor_write_register (0x3613, 0x5a);
sensor_write_register (0x3614, 0x91);
sensor_write_register (0x3615, 0x79);
sensor_write_register (0x3617, 0x57);
sensor_write_register (0x3621, 0x90);
sensor_write_register (0x3622, 0x00);
sensor_write_register (0x3623, 0x00);
sensor_write_register (0x3633, 0x10);
sensor_write_register (0x3634, 0x10);
sensor_write_register (0x3635, 0x14);
sensor_write_register (0x3636, 0x13);
sensor_write_register (0x3650, 0x00);
sensor_write_register (0x3652, 0xff);
sensor_write_register (0x3654, 0x00);
sensor_write_register (0x3653, 0x34);
sensor_write_register (0x3655, 0x20);
sensor_write_register (0x3656, 0xff);
sensor_write_register (0x3657, 0xc4);
sensor_write_register (0x365a, 0xff);
sensor_write_register (0x365b, 0xff);
sensor_write_register (0x365e, 0xff);
sensor_write_register (0x365f, 0x00);
sensor_write_register (0x3668, 0x00);
sensor_write_register (0x366a, 0x07);
sensor_write_register (0x366d, 0x00);
sensor_write_register (0x366e, 0x10);
sensor_write_register (0x3702, 0x1d);
sensor_write_register (0x3703, 0x10);
sensor_write_register (0x3704, 0x14);
sensor_write_register (0x3705, 0x00);
sensor_write_register (0x3706, 0x27);
sensor_write_register (0x3709, 0x24);
sensor_write_register (0x370a, 0x00);
sensor_write_register (0x370b, 0x7d);
sensor_write_register (0x3714, 0x24);
sensor_write_register (0x371a, 0x5e);
sensor_write_register (0x3730, 0x82);
sensor_write_register (0x3733, 0x10);
sensor_write_register (0x373e, 0x18);
sensor_write_register (0x3755, 0x00);
sensor_write_register (0x3758, 0x00);
sensor_write_register (0x375b, 0x13);
sensor_write_register (0x3772, 0x23);
sensor_write_register (0x3773, 0x05);
sensor_write_register (0x3774, 0x16);
sensor_write_register (0x3775, 0x12);
sensor_write_register (0x3776, 0x08);
sensor_write_register (0x37a8, 0x38);
sensor_write_register (0x37b5, 0x36);
sensor_write_register (0x37c2, 0x04);
sensor_write_register (0x37c5, 0x00);
sensor_write_register (0x37c7, 0x30);
sensor_write_register (0x37c8, 0x00);
sensor_write_register (0x37d1, 0x13);
sensor_write_register (0x3800, 0x00);
sensor_write_register (0x3801, 0x00);
sensor_write_register (0x3802, 0x00);
sensor_write_register (0x3803, 0x04);
sensor_write_register (0x3804, 0x05);
sensor_write_register (0x3805, 0x0f);
sensor_write_register (0x3806, 0x02); //#;03
sensor_write_register (0x3807, 0xdc); //#;cb
sensor_write_register (0x3808, 0x05);
sensor_write_register (0x3809, 0x00);
sensor_write_register (0x380a, 0x02);
sensor_write_register (0x380b, 0xd0);
sensor_write_register (0x380c, 0x06); //#;03
sensor_write_register (0x380d, 0x53); //#;2a
sensor_write_register (0x380e, 0x03);
sensor_write_register (0x380f, 0xdc);
sensor_write_register (0x3810, 0x00);
sensor_write_register (0x3811, 0x08);
sensor_write_register (0x3812, 0x00);
sensor_write_register (0x3813, 0x04);
sensor_write_register (0x3814, 0x01);
sensor_write_register (0x3815, 0x01);
sensor_write_register (0x3816, 0x00);
sensor_write_register (0x3817, 0x00);
sensor_write_register (0x3818, 0x00);
sensor_write_register (0x3819, 0x00);
sensor_write_register (0x3820, 0x86);//flip V
sensor_write_register (0x3821, 0x46);//flip H
sensor_write_register (0x450b, 0x20);
sensor_write_register (0x3826, 0x00);
sensor_write_register (0x3827, 0x08);
sensor_write_register (0x382a, 0x01);
sensor_write_register (0x382b, 0x01);
sensor_write_register (0x3836, 0x02);
sensor_write_register (0x3838, 0x10);
sensor_write_register (0x3861, 0x00);
sensor_write_register (0x3862, 0x00);
sensor_write_register (0x3863, 0x02);
sensor_write_register (0x3b00, 0x00);
sensor_write_register (0x3c00, 0x89);
sensor_write_register (0x3c01, 0xab);
sensor_write_register (0x3c02, 0x01);
sensor_write_register (0x3c03, 0x00);
sensor_write_register (0x3c04, 0x00);
sensor_write_register (0x3c05, 0x03);
sensor_write_register (0x3c06, 0x00);
sensor_write_register (0x3c07, 0x05);
sensor_write_register (0x3c0c, 0x00);
sensor_write_register (0x3c0d, 0x00);
sensor_write_register (0x3c0e, 0x00);
sensor_write_register (0x3c0f, 0x00);
sensor_write_register (0x3c40, 0x00);
sensor_write_register (0x3c41, 0xa3);
sensor_write_register (0x3c43, 0x7d);
sensor_write_register (0x3c56, 0x80);
sensor_write_register (0x3c80, 0x08);
sensor_write_register (0x3c82, 0x01);
sensor_write_register (0x3c83, 0x61);
sensor_write_register (0x3d85, 0x17);
sensor_write_register (0x3f08, 0x08);
sensor_write_register (0x3f0a, 0x00);
sensor_write_register (0x3f0b, 0x30);
sensor_write_register (0x4000, 0xcd);
sensor_write_register (0x4003, 0x40);
sensor_write_register (0x4009, 0x0d);
sensor_write_register (0x4010, 0xf0);
sensor_write_register (0x4011, 0x70);
sensor_write_register (0x4017, 0x10);
sensor_write_register (0x4040, 0x00);
sensor_write_register (0x4041, 0x00);
sensor_write_register (0x4303, 0x00);
sensor_write_register (0x4307, 0x30);
sensor_write_register (0x4500, 0x30);
sensor_write_register (0x4502, 0x40);
sensor_write_register (0x4503, 0x06);
sensor_write_register (0x4508, 0xaa);
//sensor_write_register (0x450b, 0x20);
sensor_write_register (0x450c, 0x00);
sensor_write_register (0x4600, 0x00);
sensor_write_register (0x4601, 0x80);
sensor_write_register (0x4700, 0x04);
sensor_write_register (0x4704, 0x00);
sensor_write_register (0x4705, 0x04);
sensor_write_register (0x4837, 0x14);
sensor_write_register (0x484a, 0x3f);
sensor_write_register (0x5000, 0x10);
sensor_write_register (0x5001, 0x01);
sensor_write_register (0x5002, 0x28);
sensor_write_register (0x5004, 0x0c);
sensor_write_register (0x5006, 0x0c);
sensor_write_register (0x5007, 0xe0);
sensor_write_register (0x5008, 0x01);
sensor_write_register (0x5009, 0xb0);
sensor_write_register (0x502a, 0x18);
sensor_write_register (0x5901, 0x00);
sensor_write_register (0x5a01, 0x00);
sensor_write_register (0x5a03, 0x00);
sensor_write_register (0x5a04, 0x0c);
sensor_write_register (0x5a05, 0xe0);
sensor_write_register (0x5a06, 0x09);
sensor_write_register (0x5a07, 0xb0);
sensor_write_register (0x5a08, 0x06);
sensor_write_register (0x5e00, 0x00);
sensor_write_register (0x5e10, 0xfc);
sensor_write_register (0x300f, 0x00);
sensor_write_register (0x3733, 0x10);
sensor_write_register (0x3610, 0xe8);
sensor_write_register (0x3611, 0x56);
sensor_write_register (0x3635, 0x14);
sensor_write_register (0x3636, 0x13);
sensor_write_register (0x3620, 0x84);
sensor_write_register (0x3614, 0x96);
sensor_write_register (0x481f, 0x30);
sensor_write_register (0x3788, 0x00);
sensor_write_register (0x3789, 0x04);
sensor_write_register (0x378a, 0x01);
sensor_write_register (0x378b, 0x60);
sensor_write_register (0x3799, 0x27); //#;;12bits
sensor_write_register (0x300f, 0x00);
sensor_write_register (0x3602, 0x32);
sensor_write_register (0x3706, 0x48);
sensor_write_register (0x370b, 0xfa);
sensor_write_register (0x5000, 0x30);
sensor_write_register (0x502a, 0x14);
sensor_write_register (0x3031, 0x0c);
//sleep 1
//# ADC 12 Bits (MIPI); frame rate * 3/4
sensor_write_register (0x0100, 0x00);
sensor_write_register (0x300f, 0x00);
sensor_write_register (0x3602, 0x32);
sensor_write_register (0x3706, 0x48);
sensor_write_register (0x370b, 0xfa);
sensor_write_register (0x5000, 0x30);
sensor_write_register (0x502a, 0x14);
sensor_write_register (0x3031, 0x0c);
sensor_write_register (0x0100, 0x01);
bSensorInit = HI_TRUE;
printf("=========================================================\n");
printf("===panasonic ov9752 sensor 720P30fps(MIPI port) init success!=====\n");
printf("=========================================================\n");
return;
}

View File

@ -0,0 +1,75 @@
#
# sensor lib Makefile
#
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../../../Makefile.param
include $(PARAM_FILE)
endif
ISP_PATH := $(SDK_PATH)/mpp/component/isp
EXT_PATH := $(SDK_PATH)/mpp/$(EXTDRV)
3A_PATH := $(ISP_PATH)/3a
LIBPATH = $(ISP_PATH)/lib
OBJPATH = ./obj
ifeq ($(CONFIG_GPIO_I2C),y)
HI_GPIO_I2C:=HI_GPIO_I2C
else
HI_GPIO_I2C:=HI_GPIO_XXX
endif
ARFLAGS = rcv
ARFLAGS_SO = $(LIBS_LD_CFLAGS)
ARFLAGS_SO += -shared -fPIC -o
CFLAGS = -Wall -fPIC -D$(HI_FPGA) -D$(HI_GPIO_I2C)
CFLAGS += -O2
CFLAGS += $(LIBS_CFLAGS)
ifeq ($(ISP_INI_CONFIG), y)
CFLAGS += -D INIFILE_CONFIG_MODE
endif
ifeq ($(HIGDB),HI_GDB)
CFLAGS += -g
endif
ifeq ($(CONFIG_JPEGEDCF), y)
CFLAGS += -D ENABLE_JPEGEDCF
endif
BUS_DIR := $(EXT_PATH)/ssp-sony/
ISP_INC := $(ISP_PATH)/include
3A_INC := $(3A_PATH)/include
INC := -I$(BUS_DIR) -I$(REL_INC) -I$(ISP_INC) -I$(3A_INC) -I$(ISP_PATH)/iniparser
ifeq ($(CONFIG_GPIO_I2C), y)
INC += -I$(EXT_PATH)/gpio-i2c-ex
INC += -I$(EXT_PATH)/gpio-i2c
else
INC += -I$(EXT_PATH)/i2c
INC += -I$(EXT_PATH)/hi_i2c
endif
COMPILE = $(CC) $(CFLAGS) $(DFLAGS) -lm
$(OBJPATH)/%.o: ./%.c
@[ -e $(LIBPATH) ] || mkdir $(LIBPATH)
@[ -e $(OBJPATH) ] || mkdir $(OBJPATH)
@$(COMPILE) -o $@ -c $< $(INC)
SRCS = $(wildcard ./*.c)
OBJS = $(SRCS:%.c=%.o)
OBJS := $(OBJS:./%=obj/%)
TARGETLIB := $(LIBPATH)/libsns_mn34222.a
TARGETLIB_SO := $(LIBPATH)/libsns_mn34222.so
all:$(TARGETLIB)
$(TARGETLIB):$(OBJS)
@($(AR) $(ARFLAGS) $(TARGETLIB) $(OBJS))
@($(CC) $(ARFLAGS_SO) $(TARGETLIB_SO) $(OBJS))
clean:
@$(RM) -rf $(TARGETLIB) $(OBJS)
@$(RM) -rf $(LIBPATH) $(OBJPATH)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,307 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include "hi_comm_video.h"
#ifdef HI_GPIO_I2C
#include "gpioi2c_ex.h"
#else
#include "hi_i2c.h"
#endif
const unsigned char sensor_i2c_addr = 0x6c; /* I2C Address of MN34222 */
const unsigned int sensor_addr_byte = 2;
const unsigned int sensor_data_byte = 1;
static int g_fd = -1;
extern WDR_MODE_E genSensorMode;
extern HI_U8 gu8SensorImageMode;
extern HI_BOOL bSensorInit;
int sensor_i2c_init(void)
{
if(g_fd >= 0)
{
return 0;
}
#ifdef HI_GPIO_I2C
int ret;
g_fd = open("/dev/gpioi2c_ex", 0);
if(g_fd < 0)
{
printf("Open gpioi2c_ex error!\n");
return -1;
}
#else
int ret;
g_fd = open("/dev/i2c-0", O_RDWR);
if(g_fd < 0)
{
printf("Open /dev/i2c-0 error!\n");
return -1;
}
ret = ioctl(g_fd, I2C_SLAVE_FORCE, sensor_i2c_addr);
if (ret < 0)
{
printf("CMD_SET_DEV error!\n");
return ret;
}
#endif
return 0;
}
int sensor_i2c_exit(void)
{
if (g_fd >= 0)
{
close(g_fd);
g_fd = -1;
return 0;
}
return -1;
}
int sensor_read_register(int addr)
{
// TODO:
return 0;
}
int sensor_write_register(int addr, int data)
{
#ifdef HI_GPIO_I2C
i2c_data.dev_addr = sensor_i2c_addr;
i2c_data.reg_addr = addr;
i2c_data.addr_byte_num = sensor_addr_byte;
i2c_data.data = data;
i2c_data.data_byte_num = sensor_data_byte;
ret = ioctl(g_fd, GPIO_I2C_WRITE, &i2c_data);
if (ret)
{
printf("GPIO-I2C write faild!\n");
return ret;
}
#else
int idx = 0;
int ret;
char buf[8];
buf[idx++] = addr & 0xFF;
if (sensor_addr_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_REG, 1);
buf[idx++] = addr >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_REG, 0);
}
if (ret < 0)
{
printf("CMD_SET_REG_WIDTH error!\n");
return -1;
}
buf[idx++] = data;
if (sensor_data_byte == 2)
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 1);
buf[idx++] = data >> 8;
}
else
{
ret = ioctl(g_fd, I2C_16BIT_DATA, 0);
}
if (ret)
{
printf("hi_i2c write faild!\n");
return -1;
}
ret = write(g_fd, buf, idx);
if(ret < 0)
{
printf("I2C_WRITE error!\n");
return -1;
}
#endif
return 0;
}
static void delay_ms(int ms) {
usleep(ms*1000);
}
void sensor_prog(int* rom)
{
int i = 0;
while (1) {
int lookup = rom[i++];
int addr = (lookup >> 16) & 0xFFFF;
int data = lookup & 0xFFFF;
if (addr == 0xFFFE) {
delay_ms(data);
} else if (addr == 0xFFFF) {
return;
} else {
sensor_write_register(addr, data);
}
}
}
void sensor_linear_1080p30_init();
void sensor_init()
{
sensor_i2c_init();
/* When sensor first init, config all registers */
if (HI_FALSE == bSensorInit)
{
sensor_linear_1080p30_init();
}
/* When sensor switch mode(linear<->WDR or resolution), config different registers(if possible) */
else
{
sensor_linear_1080p30_init();
}
return ;
}
void sensor_exit()
{
sensor_i2c_exit();
return;
}
/* 1080P30 and 1080P25 */
void sensor_linear_1080p30_init()
{
/*# N340M_S12_P2_FHD_V1125_12b_445MHz_30fps_vM17e_150703_MCLK37_Mst_I2C_d.txt
# VCYCLE:1125 HCYCLE:1100 (@MCLK)*/
sensor_write_register (0x300E, 0x01);
sensor_write_register (0x300F, 0x00);
sensor_write_register (0x0305, 0x02);
sensor_write_register (0x0307, 0x24);
sensor_write_register (0x3000, 0x00);
sensor_write_register (0x3001, 0x03);
sensor_write_register (0x0112, 0x0C);
sensor_write_register (0x0113, 0x0C);
sensor_write_register (0x3004, 0x01);
sensor_write_register (0x3005, 0x64);
sensor_write_register (0x3008, 0xF1);
sensor_write_register (0x3009, 0x0E);//mipi:bit3=1 lvds:bit3=0
sensor_write_register (0x300B, 0x00);
sensor_write_register (0x3018, 0x43);
sensor_write_register (0x3019, 0x10);
sensor_write_register (0x301A, 0xB9);
sensor_write_register (0x3000, 0x00);
sensor_write_register (0x3001, 0x53);
sensor_write_register (0x300E, 0x00);
sensor_write_register (0x300F, 0x00);
sensor_write_register (0x0202, 0x04);
sensor_write_register (0x0203, 0x63);
sensor_write_register (0x3036, 0x00);
sensor_write_register (0x3039, 0x2E);
sensor_write_register (0x3058, 0x0F);
sensor_write_register (0x3059, 0xFF);
sensor_write_register (0x305B, 0x00);
sensor_write_register (0x3062, 0x10);
sensor_write_register (0x3063, 0x24);
sensor_write_register (0x306E, 0x0C);
sensor_write_register (0x306F, 0x00);
sensor_write_register (0x3074, 0x01);
sensor_write_register (0x3076, 0x40);
sensor_write_register (0x307C, 0x2C);
sensor_write_register (0x3085, 0x33);
sensor_write_register (0x3088, 0x0E);
sensor_write_register (0x3089, 0x00);
sensor_write_register (0x308B, 0x00);
sensor_write_register (0x308C, 0x06);
sensor_write_register (0x308D, 0x03);
sensor_write_register (0x308E, 0x03);
sensor_write_register (0x308F, 0x06);
sensor_write_register (0x3090, 0x04);
sensor_write_register (0x3094, 0x0B);
sensor_write_register (0x3095, 0x76);
sensor_write_register (0x3098, 0x00);
sensor_write_register (0x3099, 0x00);
sensor_write_register (0x309A, 0x01);
sensor_write_register (0x3104, 0x04);
sensor_write_register (0x3106, 0x00);
sensor_write_register (0x3107, 0xC0);
sensor_write_register (0x3141, 0x40);
sensor_write_register (0x3143, 0x02);
sensor_write_register (0x3144, 0x02);
sensor_write_register (0x3145, 0x02);
sensor_write_register (0x3146, 0x00);
sensor_write_register (0x3147, 0x02);
sensor_write_register (0x314A, 0x01);
sensor_write_register (0x314B, 0x02);
sensor_write_register (0x314C, 0x02);
sensor_write_register (0x314D, 0x02);
sensor_write_register (0x314E, 0x01);
sensor_write_register (0x314F, 0x02);
sensor_write_register (0x3150, 0x02);
sensor_write_register (0x3152, 0x04);
sensor_write_register (0x3153, 0xE3);
sensor_write_register (0x316F, 0xC6);
sensor_write_register (0x3175, 0x80);
sensor_write_register (0x318E, 0x20);
sensor_write_register (0x318F, 0x70);
sensor_write_register (0x3196, 0x08);
sensor_write_register (0x3211, 0x0C);
sensor_write_register (0x323A, 0x80);
sensor_write_register (0x323B, 0x91);
sensor_write_register (0x323D, 0x90);
sensor_write_register (0x3243, 0xD7);
sensor_write_register (0x3246, 0x03);
sensor_write_register (0x3247, 0x27);
sensor_write_register (0x3248, 0x03);
sensor_write_register (0x3249, 0x79);
sensor_write_register (0x324A, 0x30);
sensor_write_register (0x324B, 0x18);
sensor_write_register (0x324C, 0x02);
sensor_write_register (0x3253, 0xDE);
sensor_write_register (0x3258, 0x03);
sensor_write_register (0x3259, 0x17);
sensor_write_register (0x3272, 0x46);
sensor_write_register (0x3280, 0x30);
sensor_write_register (0x3288, 0x01);
sensor_write_register (0x330E, 0x05);
sensor_write_register (0x3310, 0x02);
sensor_write_register (0x3315, 0x1F);
sensor_write_register (0x332C, 0x02);
sensor_write_register (0x3339, 0x02);
sensor_write_register (0x3000, 0x00);
sensor_write_register (0x3001, 0xD3);
sensor_write_register (0x0100, 0x01);
sensor_write_register (0x0101, 0x00);
printf("===panasonic mn34222 sensor lvds 1ch2lane 1080P30fps linear mode init success!=====\n");
bSensorInit = HI_TRUE;
return;
}

View File

@ -0,0 +1,57 @@
#
# sensor lib Makefile
#
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../../../Makefile.param
include $(PARAM_FILE)
endif
ISP_PATH := $(SDK_PATH)/mpp/component/isp
EXT_PATH := $(SDK_PATH)/mpp/$(EXTDRV)
3A_PATH := $(ISP_PATH)/3a
LIBPATH = $(ISP_PATH)/lib
OBJPATH = ./obj
ARFLAGS = rcv
ARFLAGS_SO = $(LIBS_LD_CFLAGS)
ARFLAGS_SO += -shared -fPIC -o
CFLAGS = -Wall
CFLAGS += -O2 -fPIC
CFLAGS += $(LIBS_CFLAGS)
ifeq ($(HIGDB),HI_GDB)
CFLAGS += -g
endif
ifeq ($(CONFIG_JPEGEDCF), y)
CFLAGS += -D ENABLE_JPEGEDCF
endif
BUS_DIR := $(EXT_PATH)/ssp-sony/
ISP_INC := $(ISP_PATH)/include
3A_INC := $(3A_PATH)/include
INC := -I$(BUS_DIR) -I$(REL_INC) -I$(ISP_INC) -I$(3A_INC)
COMPILE = $(CC) $(CFLAGS) $(DFLAGS) -lm
$(OBJPATH)/%.o: ./%.c
@[ -e $(LIBPATH) ] || mkdir $(LIBPATH)
@[ -e $(OBJPATH) ] || mkdir $(OBJPATH)
@$(COMPILE) -o $@ -c $< $(INC)
SRCS = $(wildcard ./*.c)
OBJS = $(SRCS:%.c=%.o)
OBJS := $(OBJS:./%=obj/%)
TARGETLIB := $(LIBPATH)/libsns_imx122.a
TARGETLIB_SO := $(LIBPATH)/libsns_imx122.so
all:$(TARGETLIB)
$(TARGETLIB):$(OBJS)
@($(AR) $(ARFLAGS) $(TARGETLIB) $(OBJS))
@($(CC) $(ARFLAGS_SO) $(TARGETLIB_SO) $(OBJS))
clean:
@$(RM) -rf $(TARGETLIB) $(OBJS)
@$(RM) -rf $(LIBPATH) $(OBJPATH)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
# $(ROOT)/mpp/Mafile
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../Makefile.param
include $(PARAM_FILE)
endif
EXTDRV_KO=$(REL_KO)/extdrv
.PHONY:clean all rel
all:
@echo -e "\e[0;32;1m--Compiling 'extdrv'... Configs as follow:\e[0;36;1m"
@echo ---- CROSS=$(CROSS)
@echo ---- HIARCH=$(HIARCH), HICHIP=$(HICHIP), CVER=$(CVER), HIDBG=$(HIDBG)
@echo ---- SDK_PATH=$(SDK_PATH) , PARAM_FILE=$(PARAM_FILE)
@echo ---- LINUX_ROOT=$(LINUX_ROOT)
@echo -e "\e[0m"
@mkdir -p $(EXTDRV_KO)
@for x in `find ./ -maxdepth 2 -mindepth 2 -name "Makefile" `; do\
{ cd `dirname $$x`; if [ $$? ]; then make || exit 1; cp *.ko $(EXTDRV_KO); cd ../; fi;}& done; wait
clean:
@for x in `find ./ -maxdepth 2 -mindepth 2 -name "Makefile" `; do\
{ cd `dirname $$x`; if [ $$? ]; then make clean; cd ../; fi;}& done; wait
@if [ -e $(EXTDRV_KO) ];then rm $(EXTDRV_KO) -fr; fi
@if [ -e $(REL_KO) ];then rmdir --ignore-fail-on-non-empty "$(REL_KO)"; fi

View File

@ -0,0 +1,568 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o := arm-hisiv300-linux-gcc -Wp,-MD,/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/.adv7179.o.d -nostdinc -isystem /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include -I/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-hi3518ev200/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -marm -fno-dwarf2-cfi-asm -fno-aggressive-loop-optimizations -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DHI_I2C -I/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/../hi_i2c -I/home/pub/temp/platform_ipc/mpp/release/hi3518e/include -DHI_XXXX -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(adv7179)" -D"KBUILD_MODNAME=KBUILD_STR(adv_7179)" -c -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.c
source_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o := /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.c
deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o := \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
include/linux/compiler-gcc4.h \
include/linux/types.h \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/types.h \
include/asm-generic/int-ll64.h \
arch/arm/include/generated/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/linux/posix_types.h \
include/linux/stddef.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/posix_types.h \
include/asm-generic/posix_types.h \
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include/stdarg.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/string.h \
include/linux/slab.h \
$(wildcard include/config/slab/debug.h) \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/failslab.h) \
$(wildcard include/config/slub.h) \
$(wildcard include/config/slob.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/debug/slab.h) \
$(wildcard include/config/slab.h) \
$(wildcard include/config/tracing.h) \
include/linux/gfp.h \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/pm/sleep.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/sparsemem.h) \
$(wildcard include/config/compaction.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/cgroup/mem/res/ctlr.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/nodes/span/other/nodes.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/typecheck.h \
include/linux/preempt.h \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/preempt/notifiers.h) \
include/linux/thread_info.h \
$(wildcard include/config/compat.h) \
include/linux/bitops.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bitops.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irqflags.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ptrace.h \
$(wildcard include/config/cpu/endian/be8.h) \
$(wildcard include/config/arm/thumb.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hwcap.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/le.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/linux/swab.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/swab.h \
include/linux/byteorder/generic.h \
include/asm-generic/bitops/ext2-atomic-setbit.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/thread_info.h \
$(wildcard include/config/arm/thumbee.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fpstate.h \
$(wildcard include/config/vfpv3.h) \
$(wildcard include/config/iwmmxt.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/domain.h \
$(wildcard include/config/io/36.h) \
$(wildcard include/config/cpu/use/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/barrier.h \
$(wildcard include/config/cpu/32v6k.h) \
$(wildcard include/config/cpu/xsc3.h) \
$(wildcard include/config/cpu/fa526.h) \
$(wildcard include/config/arch/has/barriers.h) \
$(wildcard include/config/arm/dma/mem/bufferable.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/outercache.h \
$(wildcard include/config/outer/cache/sync.h) \
$(wildcard include/config/outer/cache.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/memory.h \
$(wildcard include/config/need/mach/memory/h.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/page/offset.h) \
$(wildcard include/config/thumb2/kernel.h) \
$(wildcard include/config/dram/size.h) \
$(wildcard include/config/dram/base.h) \
$(wildcard include/config/have/tcm.h) \
$(wildcard include/config/arm/patch/phys/virt.h) \
$(wildcard include/config/phys/offset.h) \
$(wildcard include/config/hisi/snapshot/boot.h) \
include/linux/const.h \
arch/arm/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
arch/arm/mach-hi3518ev200/include/mach/memory.h \
include/asm-generic/memory_model.h \
$(wildcard include/config/sparsemem/vmemmap.h) \
include/linux/linkage.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/linkage.h \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/ring/buffer.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
include/linux/sysinfo.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/printk.h \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/init.h \
$(wildcard include/config/modules.h) \
$(wildcard include/config/hotplug.h) \
include/linux/dynamic_debug.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/div64.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/compiler.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/debug/bugverbose.h) \
$(wildcard include/config/arm/lpae.h) \
include/asm-generic/bug.h \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/generic/bug/relative/pointers.h) \
include/linux/stringify.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
include/linux/spinlock_types_up.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
$(wildcard include/config/prove/rcu.h) \
include/linux/rwlock_types.h \
include/linux/spinlock_up.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/processor.h \
$(wildcard include/config/have/hw/breakpoint.h) \
$(wildcard include/config/arm/errata/754327.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hw_breakpoint.h \
include/linux/rwlock.h \
include/linux/spinlock_api_up.h \
include/linux/atomic.h \
$(wildcard include/config/arch/has/atomic/or.h) \
$(wildcard include/config/generic/atomic64.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/atomic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cmpxchg.h \
$(wildcard include/config/cpu/sa1100.h) \
$(wildcard include/config/cpu/sa110.h) \
$(wildcard include/config/cpu/v6.h) \
include/asm-generic/cmpxchg-local.h \
include/asm-generic/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/asm-generic/atomic64.h \
include/linux/wait.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/current.h \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cache.h \
$(wildcard include/config/arm/l1/cache/shift.h) \
$(wildcard include/config/aeabi.h) \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/seqlock.h \
include/linux/nodemask.h \
include/linux/bitmap.h \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/generated/bounds.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/page.h \
$(wildcard include/config/cpu/copy/v3.h) \
$(wildcard include/config/cpu/copy/v4wt.h) \
$(wildcard include/config/cpu/copy/v4wb.h) \
$(wildcard include/config/cpu/copy/feroceon.h) \
$(wildcard include/config/cpu/copy/fa.h) \
$(wildcard include/config/cpu/xscale.h) \
$(wildcard include/config/cpu/copy/v6.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/glue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/pgtable-2level-types.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
include/linux/notifier.h \
include/linux/errno.h \
arch/arm/include/generated/asm/errno.h \
include/asm-generic/errno.h \
include/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/debug/mutexes.h) \
$(wildcard include/config/have/arch/mutex/cpu/relax.h) \
include/linux/mutex-debug.h \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/rwsem-spinlock.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/rcu/torture/test.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/tree/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tiny/preempt/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/preempt/rt.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
$(wildcard include/config/disable/obsolete/cpumask/functions.h) \
include/linux/bug.h \
include/linux/completion.h \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects/free.h) \
include/linux/rcutiny.h \
include/linux/topology.h \
$(wildcard include/config/sched/smt.h) \
$(wildcard include/config/sched/mc.h) \
$(wildcard include/config/sched/book.h) \
$(wildcard include/config/use/percpu/numa/node/id.h) \
include/linux/smp.h \
$(wildcard include/config/use/generic/smp/helpers.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/pfn.h \
arch/arm/include/generated/asm/percpu.h \
include/asm-generic/percpu.h \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/topology.h \
$(wildcard include/config/arm/cpu/topology.h) \
include/asm-generic/topology.h \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
include/linux/slub_def.h \
$(wildcard include/config/slub/stats.h) \
$(wildcard include/config/slub/debug.h) \
$(wildcard include/config/sysfs.h) \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
include/linux/timer.h \
$(wildcard include/config/timer/stats.h) \
$(wildcard include/config/debug/objects/timers.h) \
include/linux/ktime.h \
$(wildcard include/config/ktime/scalar.h) \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/math64.h \
include/linux/jiffies.h \
include/linux/timex.h \
include/linux/param.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/param.h \
$(wildcard include/config/hz.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/timex.h \
arch/arm/mach-hi3518ev200/include/mach/timex.h \
include/linux/kobject.h \
include/linux/sysfs.h \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/kmemleak.h \
$(wildcard include/config/debug/kmemleak.h) \
include/linux/module.h \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/module/unload.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/debug/set/module/ronx.h) \
include/linux/stat.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/stat.h \
include/linux/kmod.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/linux/elf.h \
include/linux/elf-em.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/elf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/user.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/tracepoint.h \
include/linux/static_key.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/export.h \
$(wildcard include/config/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/module.h \
$(wildcard include/config/arm/unwind.h) \
include/linux/miscdevice.h \
include/linux/major.h \
include/linux/pm.h \
$(wildcard include/config/pm.h) \
$(wildcard include/config/pm/runtime.h) \
$(wildcard include/config/pm/clk.h) \
$(wildcard include/config/pm/generic/domains.h) \
include/linux/fcntl.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fcntl.h \
include/asm-generic/fcntl.h \
include/linux/delay.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/delay.h \
include/linux/proc_fs.h \
$(wildcard include/config/proc/fs.h) \
$(wildcard include/config/proc/devicetree.h) \
$(wildcard include/config/proc/kcore.h) \
include/linux/fs.h \
$(wildcard include/config/fs/posix/acl.h) \
$(wildcard include/config/security.h) \
$(wildcard include/config/quota.h) \
$(wildcard include/config/fsnotify.h) \
$(wildcard include/config/ima.h) \
$(wildcard include/config/epoll.h) \
$(wildcard include/config/debug/writecount.h) \
$(wildcard include/config/file/locking.h) \
$(wildcard include/config/auditsyscall.h) \
$(wildcard include/config/block.h) \
$(wildcard include/config/fs/xip.h) \
$(wildcard include/config/migration.h) \
include/linux/limits.h \
include/linux/ioctl.h \
arch/arm/include/generated/asm/ioctl.h \
include/asm-generic/ioctl.h \
include/linux/blk_types.h \
$(wildcard include/config/blk/dev/integrity.h) \
include/linux/kdev_t.h \
include/linux/dcache.h \
include/linux/rculist.h \
include/linux/rculist_bl.h \
include/linux/list_bl.h \
include/linux/bit_spinlock.h \
include/linux/path.h \
include/linux/radix-tree.h \
include/linux/prio_tree.h \
include/linux/pid.h \
include/linux/capability.h \
include/linux/semaphore.h \
include/linux/fiemap.h \
include/linux/shrinker.h \
include/linux/migrate_mode.h \
include/linux/quota.h \
$(wildcard include/config/quota/netlink/interface.h) \
include/linux/percpu_counter.h \
include/linux/dqblk_xfs.h \
include/linux/dqblk_v1.h \
include/linux/dqblk_v2.h \
include/linux/dqblk_qtree.h \
include/linux/nfs_fs_i.h \
include/linux/err.h \
include/linux/magic.h \
include/linux/poll.h \
arch/arm/include/generated/asm/poll.h \
include/asm-generic/poll.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/uaccess.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/unified.h \
$(wildcard include/config/arm/asm/unified.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irq.h \
$(wildcard include/config/sparse/irq.h) \
arch/arm/mach-hi3518ev200/include/mach/irqs.h \
include/linux/ioport.h \
include/linux/interrupt.h \
$(wildcard include/config/generic/hardirqs.h) \
$(wildcard include/config/irq/forced/threading.h) \
$(wildcard include/config/generic/irq/probe.h) \
include/linux/irqreturn.h \
include/linux/irqnr.h \
include/linux/hardirq.h \
$(wildcard include/config/virt/cpu/accounting.h) \
$(wildcard include/config/irq/time/accounting.h) \
include/linux/ftrace_irq.h \
$(wildcard include/config/ftrace/nmi/enter.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hardirq.h \
include/linux/irq_cpustat.h \
include/linux/hrtimer.h \
$(wildcard include/config/high/res/timers.h) \
$(wildcard include/config/timerfd.h) \
include/linux/timerqueue.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/io.h \
$(wildcard include/config/need/mach/io/h.h) \
$(wildcard include/config/pcmcia/soc/common.h) \
$(wildcard include/config/pci.h) \
$(wildcard include/config/isa.h) \
$(wildcard include/config/pccard.h) \
include/asm-generic/pci_iomap.h \
$(wildcard include/config/no/generic/pci/ioport/map.h) \
$(wildcard include/config/generic/pci/iomap.h) \
arch/arm/mach-hi3518ev200/include/mach/io.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/exec.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/switch_to.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system_info.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system_misc.h \
include/linux/i2c.h \
$(wildcard include/config/i2c.h) \
$(wildcard include/config/i2c/boardinfo.h) \
include/linux/mod_devicetable.h \
include/linux/device.h \
$(wildcard include/config/debug/devres.h) \
$(wildcard include/config/devtmpfs.h) \
$(wildcard include/config/sysfs/deprecated.h) \
include/linux/klist.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/device.h \
$(wildcard include/config/dmabounce.h) \
$(wildcard include/config/iommu/api.h) \
$(wildcard include/config/arch/omap.h) \
include/linux/pm_wakeup.h \
include/linux/sched.h \
$(wildcard include/config/sched/debug.h) \
$(wildcard include/config/no/hz.h) \
$(wildcard include/config/lockup/detector.h) \
$(wildcard include/config/detect/hung/task.h) \
$(wildcard include/config/core/dump/default/elf/headers.h) \
$(wildcard include/config/sched/autogroup.h) \
$(wildcard include/config/bsd/process/acct.h) \
$(wildcard include/config/taskstats.h) \
$(wildcard include/config/audit.h) \
$(wildcard include/config/cgroups.h) \
$(wildcard include/config/inotify/user.h) \
$(wildcard include/config/fanotify.h) \
$(wildcard include/config/posix/mqueue.h) \
$(wildcard include/config/keys.h) \
$(wildcard include/config/perf/events.h) \
$(wildcard include/config/schedstats.h) \
$(wildcard include/config/task/delay/acct.h) \
$(wildcard include/config/fair/group/sched.h) \
$(wildcard include/config/rt/group/sched.h) \
$(wildcard include/config/cgroup/sched.h) \
$(wildcard include/config/blk/dev/io/trace.h) \
$(wildcard include/config/rcu/boost.h) \
$(wildcard include/config/compat/brk.h) \
$(wildcard include/config/cc/stackprotector.h) \
$(wildcard include/config/sysvipc.h) \
$(wildcard include/config/rt/mutexes.h) \
$(wildcard include/config/task/xacct.h) \
$(wildcard include/config/cpusets.h) \
$(wildcard include/config/futex.h) \
$(wildcard include/config/fault/injection.h) \
$(wildcard include/config/latencytop.h) \
$(wildcard include/config/function/graph/tracer.h) \
$(wildcard include/config/have/unstable/sched/clock.h) \
$(wildcard include/config/cfs/bandwidth.h) \
$(wildcard include/config/stack/growsup.h) \
$(wildcard include/config/debug/stack/usage.h) \
$(wildcard include/config/mm/owner.h) \
include/linux/mm_types.h \
$(wildcard include/config/split/ptlock/cpus.h) \
$(wildcard include/config/have/cmpxchg/double.h) \
$(wildcard include/config/have/aligned/struct/page.h) \
$(wildcard include/config/want/page/debug/flags.h) \
$(wildcard include/config/aio.h) \
$(wildcard include/config/mmu/notifier.h) \
$(wildcard include/config/transparent/hugepage.h) \
include/linux/auxvec.h \
arch/arm/include/generated/asm/auxvec.h \
include/asm-generic/auxvec.h \
include/linux/page-debug-flags.h \
$(wildcard include/config/page/poisoning.h) \
$(wildcard include/config/page/guard.h) \
$(wildcard include/config/page/debug/something/else.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/mmu.h \
$(wildcard include/config/cpu/has/asid.h) \
arch/arm/include/generated/asm/cputime.h \
include/asm-generic/cputime.h \
include/linux/sem.h \
include/linux/ipc.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ipcbuf.h \
include/asm-generic/ipcbuf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/sembuf.h \
include/linux/signal.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/signal.h \
include/asm-generic/signal-defs.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/sigcontext.h \
arch/arm/include/generated/asm/siginfo.h \
include/asm-generic/siginfo.h \
include/linux/proportions.h \
include/linux/seccomp.h \
$(wildcard include/config/seccomp.h) \
include/linux/rtmutex.h \
$(wildcard include/config/debug/rt/mutexes.h) \
include/linux/plist.h \
$(wildcard include/config/debug/pi/list.h) \
include/linux/resource.h \
arch/arm/include/generated/asm/resource.h \
include/asm-generic/resource.h \
include/linux/task_io_accounting.h \
$(wildcard include/config/task/io/accounting.h) \
include/linux/latencytop.h \
include/linux/cred.h \
$(wildcard include/config/debug/credentials.h) \
$(wildcard include/config/user/ns.h) \
include/linux/key.h \
include/linux/selinux.h \
$(wildcard include/config/security/selinux.h) \
include/linux/llist.h \
$(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
include/linux/aio.h \
include/linux/aio_abi.h \
include/linux/uio.h \
include/linux/of.h \
$(wildcard include/config/sparc.h) \
$(wildcard include/config/of/dynamic.h) \
$(wildcard include/config/of.h) \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o: $(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o)
$(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o):

View File

@ -0,0 +1 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.ko := arm-hisiv300-linux-ld -EL -r -T /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/scripts/module-common.lds --build-id -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.ko /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.o

View File

@ -0,0 +1,345 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.o := arm-hisiv300-linux-gcc -Wp,-MD,/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/.adv_7179.mod.o.d -nostdinc -isystem /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include -I/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-hi3518ev200/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -marm -fno-dwarf2-cfi-asm -fno-aggressive-loop-optimizations -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DHI_I2C -I/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/../hi_i2c -I/home/pub/temp/platform_ipc/mpp/release/hi3518e/include -DHI_XXXX -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(adv_7179.mod)" -D"KBUILD_MODNAME=KBUILD_STR(adv_7179)" -DMODULE -c -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.c
source_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.o := /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.c
deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.o := \
$(wildcard include/config/module/unload.h) \
include/linux/module.h \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/modules.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/debug/set/module/ronx.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/types.h \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/types.h \
include/asm-generic/int-ll64.h \
arch/arm/include/generated/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/linux/posix_types.h \
include/linux/stddef.h \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
include/linux/compiler-gcc4.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/posix_types.h \
include/asm-generic/posix_types.h \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
include/linux/const.h \
include/linux/stat.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/ring/buffer.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/compaction.h) \
include/linux/sysinfo.h \
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include/stdarg.h \
include/linux/linkage.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/linkage.h \
include/linux/bitops.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bitops.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
include/linux/typecheck.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irqflags.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ptrace.h \
$(wildcard include/config/cpu/endian/be8.h) \
$(wildcard include/config/arm/thumb.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hwcap.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/le.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/linux/swab.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/swab.h \
include/linux/byteorder/generic.h \
include/asm-generic/bitops/ext2-atomic-setbit.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/printk.h \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/init.h \
$(wildcard include/config/hotplug.h) \
include/linux/dynamic_debug.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/div64.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/compiler.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/thumb2/kernel.h) \
$(wildcard include/config/debug/bugverbose.h) \
$(wildcard include/config/arm/lpae.h) \
include/asm-generic/bug.h \
$(wildcard include/config/generic/bug/relative/pointers.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cache.h \
$(wildcard include/config/arm/l1/cache/shift.h) \
$(wildcard include/config/aeabi.h) \
include/linux/seqlock.h \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/preempt.h \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/preempt/notifiers.h) \
include/linux/thread_info.h \
$(wildcard include/config/compat.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/thread_info.h \
$(wildcard include/config/arm/thumbee.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fpstate.h \
$(wildcard include/config/vfpv3.h) \
$(wildcard include/config/iwmmxt.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/domain.h \
$(wildcard include/config/io/36.h) \
$(wildcard include/config/cpu/use/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/barrier.h \
$(wildcard include/config/cpu/32v6k.h) \
$(wildcard include/config/cpu/xsc3.h) \
$(wildcard include/config/cpu/fa526.h) \
$(wildcard include/config/arch/has/barriers.h) \
$(wildcard include/config/arm/dma/mem/bufferable.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/outercache.h \
$(wildcard include/config/outer/cache/sync.h) \
$(wildcard include/config/outer/cache.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/memory.h \
$(wildcard include/config/need/mach/memory/h.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/page/offset.h) \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/dram/size.h) \
$(wildcard include/config/dram/base.h) \
$(wildcard include/config/have/tcm.h) \
$(wildcard include/config/arm/patch/phys/virt.h) \
$(wildcard include/config/phys/offset.h) \
$(wildcard include/config/hisi/snapshot/boot.h) \
arch/arm/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
arch/arm/mach-hi3518ev200/include/mach/memory.h \
include/asm-generic/memory_model.h \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/sparsemem/vmemmap.h) \
$(wildcard include/config/sparsemem.h) \
include/linux/stringify.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
include/linux/spinlock_types_up.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
$(wildcard include/config/prove/rcu.h) \
include/linux/rwlock_types.h \
include/linux/spinlock_up.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/processor.h \
$(wildcard include/config/have/hw/breakpoint.h) \
$(wildcard include/config/arm/errata/754327.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hw_breakpoint.h \
include/linux/rwlock.h \
include/linux/spinlock_api_up.h \
include/linux/atomic.h \
$(wildcard include/config/arch/has/atomic/or.h) \
$(wildcard include/config/generic/atomic64.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/atomic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cmpxchg.h \
$(wildcard include/config/cpu/sa1100.h) \
$(wildcard include/config/cpu/sa110.h) \
$(wildcard include/config/cpu/v6.h) \
include/asm-generic/cmpxchg-local.h \
include/asm-generic/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/asm-generic/atomic64.h \
include/linux/math64.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/pm/sleep.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/cgroup/mem/res/ctlr.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/nodes/span/other/nodes.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/current.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
include/linux/bitmap.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/string.h \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/generated/bounds.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/page.h \
$(wildcard include/config/cpu/copy/v3.h) \
$(wildcard include/config/cpu/copy/v4wt.h) \
$(wildcard include/config/cpu/copy/v4wb.h) \
$(wildcard include/config/cpu/copy/feroceon.h) \
$(wildcard include/config/cpu/copy/fa.h) \
$(wildcard include/config/cpu/xscale.h) \
$(wildcard include/config/cpu/copy/v6.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/glue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/pgtable-2level-types.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
include/linux/notifier.h \
include/linux/errno.h \
arch/arm/include/generated/asm/errno.h \
include/asm-generic/errno.h \
include/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/debug/mutexes.h) \
$(wildcard include/config/have/arch/mutex/cpu/relax.h) \
include/linux/mutex-debug.h \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/rwsem-spinlock.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/rcu/torture/test.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/tree/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tiny/preempt/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/preempt/rt.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
$(wildcard include/config/disable/obsolete/cpumask/functions.h) \
include/linux/bug.h \
include/linux/completion.h \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/rcutiny.h \
include/linux/topology.h \
$(wildcard include/config/sched/smt.h) \
$(wildcard include/config/sched/mc.h) \
$(wildcard include/config/sched/book.h) \
$(wildcard include/config/use/percpu/numa/node/id.h) \
include/linux/smp.h \
$(wildcard include/config/use/generic/smp/helpers.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/pfn.h \
arch/arm/include/generated/asm/percpu.h \
include/asm-generic/percpu.h \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/topology.h \
$(wildcard include/config/arm/cpu/topology.h) \
include/asm-generic/topology.h \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
include/linux/timer.h \
$(wildcard include/config/timer/stats.h) \
$(wildcard include/config/debug/objects/timers.h) \
include/linux/ktime.h \
$(wildcard include/config/ktime/scalar.h) \
include/linux/jiffies.h \
include/linux/timex.h \
include/linux/param.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/param.h \
$(wildcard include/config/hz.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/timex.h \
arch/arm/mach-hi3518ev200/include/mach/timex.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/linux/elf.h \
include/linux/elf-em.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/elf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/user.h \
include/linux/kobject.h \
include/linux/sysfs.h \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/tracepoint.h \
include/linux/static_key.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/export.h \
$(wildcard include/config/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/module.h \
$(wildcard include/config/arm/unwind.h) \
include/linux/vermagic.h \
include/generated/utsrelease.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.o: $(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.o)
$(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.mod.o):

View File

@ -0,0 +1 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.o := arm-hisiv300-linux-ld -EL -r -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o

View File

@ -0,0 +1,2 @@
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.ko
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv7179.o

View File

@ -0,0 +1,28 @@
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../Makefile.param
include $(PARAM_FILE)
endif
ifeq ($(CONFIG_GPIO_I2C),y)
EXTRA_CFLAGS += -DHI_GPIO_I2C
EXTRA_CFLAGS+=-I$(PWD)/../gpio-i2c
else
EXTRA_CFLAGS += -DHI_I2C
EXTRA_CFLAGS+=-I$(PWD)/../hi_i2c
endif
EXTRA_CFLAGS += -I$(REL_INC)
EXTRA_CFLAGS += $(DRV_CFLAGS)
EXTRA_CFLAGS += -D$(HI_FPGA)
obj-m := adv_7179.o
adv_7179-y += adv7179.o
default:
echo $(LINUX_ROOT)
make -C $(LINUX_ROOT) M=$(PWD) modules
clean:
# make -C $(LINUX_ROOT) M=$(PWD) clean
@make -C $(LINUX_ROOT) M=$(PWD) clean

View File

View File

@ -0,0 +1,6 @@
1.Module parameter description
BT656 PAL:insmod adv_7179.ko norm_mode=0
BT656 NTSC:insmod adv_7179.ko norm_mode=1
BT656 PAL is defualt

View File

@ -0,0 +1,612 @@
/* extdrv/peripheral/vda/adv7179.c
*
*
* Copyright (c) 2006 Hisilicon Co., Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.
*
*
* History:
* 17-Apr-2006 create this file
*
*/
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/module.h>
// BEGIN: Modified by x00132463, 2010-8-20 15 : 57 : 28
//#include <linux/config.h>
//#include <linux/autoconf.h>
#include <linux/errno.h>
#include <linux/miscdevice.h>
#include <linux/fcntl.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/proc_fs.h>
#include <linux/workqueue.h>
#include <linux/proc_fs.h>
#include <linux/poll.h>
//#include <asm/hardware.h>
#include <asm/bitops.h>
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <linux/moduleparam.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
//#include <linux/kcom.h>
//#include <kcom/gpio_i2c.h>
#include "adv7179.h"
#include <asm/io.h>
#include <asm/system.h>
#include <linux/miscdevice.h>
#include <linux/i2c.h>
//#define HI_GPIO_I2C
//#ifdef HI_GPIO_I2C
//#include "gpio_i2c.h"
//#else
//#include "hi_i2c.h"
//#endif
//#ifdef HI_GPIO_I2C
//#define hi_i2c_write(chip_addr,reg_addr,value) gpio_i2c_write(chip_addr,reg_addr,value)
//#define hi_i2c_read(chip_addr,reg_addr) gpio_i2c_read(chip_addr,reg_addr)
//#else
//#define hi_i2c_write(chip_addr,reg_addr,value) HI_I2C_Write(chip_addr,reg_addr,1,value,1)
//#define hi_i2c_read(chip_addr,reg_addr) HI_I2C_Read(chip_addr,reg_addr,1,1)
//#endif
#define I2C_ADV7179 0x56
static struct i2c_client* sil_client;
static struct i2c_board_info sil_i2c_info =
{
I2C_BOARD_INFO("sil9034", I2C_ADV7179),
};
unsigned char _hi_i2c_read_byte(unsigned char devaddress, unsigned char address)
{
unsigned char ret_data = 0xFF;
int ret;
struct i2c_client* client = sil_client;
unsigned char buf[2];
buf[0] = address;
ret = i2c_master_recv(client, buf, 1);
if (ret >= 0)
{
ret_data = buf[0];
}
return ret_data;
}
int _hi_i2c_write_byte(unsigned char devaddress, unsigned char address, unsigned char data)
{
int ret;
unsigned char buf[2];
struct i2c_client* client = sil_client;
buf[0] = address;
buf[1] = data;
ret = i2c_master_send(client, buf, 2);
return ret;
}
static int i2c_client_init(void)
{
struct i2c_adapter* i2c_adap;
// use i2c1
i2c_adap = i2c_get_adapter(1);
sil_client = i2c_new_device(i2c_adap, &sil_i2c_info);
i2c_put_adapter(i2c_adap);
return 0;
}
static void i2c_client_exit(void)
{
i2c_unregister_device(sil_client);
}
#define I2CReadByte _hi_i2c_read_byte
#define I2CWriteByte _hi_i2c_write_byte
/* adv7179 i2c slaver address micro-definition. */
#define ADV7179_NUM 1
#define ADV7179_REG_WIDTH 1
#define ADV7179_DAT_WIDTH 1
#define adv7179_NUM_REGISTERS 128
/* Output filter: S-Video Composite */
#define MR050 0x11
#define MR060 0x14
#define TR0MODE_656 0x08
#define TR0MODE_601 0x0c
#define TR0RST 0x80
#define TR1CAPT 0x00
#define TR1PLAY 0x00
static int norm_mode = VIDEO_NORM_PAL;
static const unsigned char init_656_NTSC[] =
{
0x00, 0x00, /* MR0 */
0x01, 0x00, /* MR1 */
0x02, 0x00, /* MR2 RTC control: bits 2 and 1 */
0x03, 0x00, /* MR3 */
0x04, 0x15, /* MR4 */
0x05, 0x00, /* Reserved */
0x06, 0x00, /* Reserved */
0x07, TR0MODE_656, /* TM0 */
0x08, TR1CAPT, /* TM1 */
0x09, 0x16, /* Fsc0 */
0x0a, 0x7c, /* Fsc1 */
0x0b, 0xf0, /* Fsc2 */
0x0c, 0x21, /* Fsc3 */
0x0d, 0x00, /* Subcarrier Phase */
0x0e, 0x00, /* Closed Capt. Ext 0 */
0x0f, 0x00, /* Closed Capt. Ext 1 */
0x10, 0x00, /* Closed Capt. 0 */
0x11, 0x00, /* Closed Capt. 1 */
0x12, 0x00, /* Pedestal Ctl 0 */
0x13, 0x00, /* Pedestal Ctl 1 */
0x14, 0x00, /* Pedestal Ctl 2 */
0x15, 0x00, /* Pedestal Ctl 3 */
0x16, 0x00, /* CGMS_WSS_0 */
0x17, 0x00, /* CGMS_WSS_1 */
0x18, 0x00, /* CGMS_WSS_2 */
0x19, 0x00, /* Teletext Ctl */
};
static const unsigned char init_656_PAL[] =
{
0x00, 0x05, /* MR0, PAL BDGHI */
0x01, 0x00, /* MR1 */
0x02, 0x00, /* MR2 RTC control: bits 2 and 1 */
0x03, 0x00, /* MR3 */
0x04, 0x15, /* MR4, RGB OUTPUT */
0x05, 0x00, /* Reserved */
0x06, 0x00, /* Reserved */
0x07, TR0MODE_656, /* TM0 */
0x08, TR1CAPT, /* TM1 */
0x09, 0xcb, /* Fsc0 */
0x0a, 0x8a, /* Fsc1 */
0x0b, 0x09, /* Fsc2 */
0x0c, 0x2a, /* Fsc3 */
0x0d, 0x00, /* Subcarrier Phase */
0x0e, 0x00, /* Closed Capt. Ext 0 */
0x0f, 0x00, /* Closed Capt. Ext 1 */
0x10, 0x00, /* Closed Capt. 0 */
0x11, 0x00, /* Closed Capt. 1 */
0x12, 0x00, /* Pedestal Ctl 0 */
0x13, 0x00, /* Pedestal Ctl 1 */
0x14, 0x00, /* Pedestal Ctl 2 */
0x15, 0x00, /* Pedestal Ctl 3 */
0x16, 0x00, /* CGMS_WSS_0 */
0x17, 0x00, /* CGMS_WSS_1 */
0x18, 0x00, /* CGMS_WSS_2 */
0x19, 0x00, /* Teletext Ctl */
};
static unsigned char init_601_NTSC[] =
{
0x00, 0x00, /* MR0 */
0x01, 0x00, /* MR1 */
0x02, 0x08, /* MR2 RTC control: bits 2 and 1 */
0x03, 0x04, /* MR3 */
0x04, 0x0C, /* MR4 */
0x05, 0x00, /* Reserved */
0x06, 0x00, /* Reserved */
0x07, TR0MODE_601, /* TM0 */
0x08, TR1CAPT, /* TM1 */
0x09, 0x16, /* Fsc0 */
0x0a, 0x7c, /* Fsc1 */
0x0b, 0xf0, /* Fsc2 */
0x0c, 0x21, /* Fsc3 */
0x0d, 0x00, /* Subcarrier Phase */
0x0e, 0x00, /* Closed Capt. Ext 0 */
0x0f, 0x00, /* Closed Capt. Ext 1 */
0x10, 0x00, /* Closed Capt. 0 */
0x11, 0x00, /* Closed Capt. 1 */
0x12, 0x00, /* Pedestal Ctl 0 */
0x13, 0x00, /* Pedestal Ctl 1 */
0x14, 0x00, /* Pedestal Ctl 2 */
0x15, 0x00, /* Pedestal Ctl 3 */
0x16, 0x00, /* CGMS_WSS_0 */
0x17, 0x00, /* CGMS_WSS_1 */
0x18, 0x00, /* CGMS_WSS_2 */
0x19, 0x00, /* Teletext Ctl */
};
static unsigned char init_601_PAL[] =
{
0x00, 0x05, /* MR0, PAL BDGHI */
0x01, 0x00, /* MR1 */
0x02, 0x08, /* MR2 RTC control: bits 2 and 1 */
0x03, 0x04, /* MR3 */
0x04, 0x1C, /* MR4, RGB OUTPUT */
0x05, 0x00, /* Reserved */
0x06, 0x00, /* Reserved */
0x07, TR0MODE_601, /* TM0 */
0x08, TR1CAPT, /* TM1 */
0x09, 0xcb, /* Fsc0 */
0x0a, 0x8a, /* Fsc1 */
0x0b, 0x09, /* Fsc2 */
0x0c, 0x2a, /* Fsc3 */
0x0d, 0x00, /* Subcarrier Phase */
0x0e, 0x00, /* Closed Capt. Ext 0 */
0x0f, 0x00, /* Closed Capt. Ext 1 */
0x10, 0x00, /* Closed Capt. 0 */
0x11, 0x00, /* Closed Capt. 1 */
0x12, 0x00, /* Pedestal Ctl 0 */
0x13, 0x00, /* Pedestal Ctl 1 */
0x14, 0x00, /* Pedestal Ctl 2 */
0x15, 0x00, /* Pedestal Ctl 3 */
0x16, 0x00, /* CGMS_WSS_0 */
0x17, 0x00, /* CGMS_WSS_1 */
0x18, 0x00, /* CGMS_WSS_2 */
0x19, 0x00, /* Teletext Ctl */
};
static int write_regs(unsigned char* pdevdata, unsigned long datalen)
{
int i = 0;
while (i < datalen)
{
I2CWriteByte(I2C_ADV7179, pdevdata[i], pdevdata[i + 1]);
i += 2;
}
return 0;
}
/*
* adv7179 initialise routine.
*
* @param vdaccir: adv7179's working mode:0--VIDEO_MODE_CCIR656; 1--VIDEO_MODE_CCIR601
* @param vdanorm: adv7179's norm mode;
* @param vdamaster: adv7179's slave or master mode;
*
* @return value:0--success; -1--error.
*
*/
int init_vda(int vdaccir, int vdanorm, int vdamaster)
{
if ((vdaccir == VIDEO_MODE_CCIR656) && (vdanorm == VIDEO_NORM_PAL))
{
if (write_regs((unsigned char*)&init_656_PAL, sizeof(init_656_PAL)) != 0)
{
goto err_out;
}
}
else if ((vdaccir == VIDEO_MODE_CCIR656) && (vdanorm == VIDEO_NORM_NTSC))
{
if (write_regs((unsigned char*)&init_656_NTSC, sizeof(init_656_NTSC)) != 0)
{
goto err_out;
}
}
else if ((vdaccir == VIDEO_MODE_CCIR601) && (vdanorm == VIDEO_NORM_PAL))
{
if (vdamaster == VIDEO_MODE_MASTER)
{
init_601_PAL[15] |= VIDEO_MODE_MASTER;
}
else if (vdamaster == VIDEO_MODE_SLAVER)
{
init_601_PAL[15] &= ~VIDEO_MODE_MASTER;
}
if (write_regs((unsigned char*)&init_601_PAL, sizeof(init_601_PAL)) != 0)
{
goto err_out;
}
}
else if ((vdaccir == VIDEO_MODE_CCIR601) && (vdanorm == VIDEO_NORM_NTSC))
{
if (vdamaster == VIDEO_MODE_MASTER)
{
init_601_NTSC[15] |= VIDEO_MODE_MASTER;
}
if (vdamaster == VIDEO_MODE_SLAVER)
{
init_601_NTSC[15] &= ~VIDEO_MODE_MASTER;
}
if (write_regs((unsigned char*)&init_601_NTSC, sizeof(init_601_NTSC)) != 0)
{
goto err_out;
}
}
if (vdaccir == VIDEO_MODE_CCIR656)
{
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_656 | TR0RST));
I2CWriteByte(I2C_ADV7179, 0x07, TR0MODE_656);
}
else if (vdaccir == VIDEO_MODE_CCIR601)
{
if (vdamaster == VIDEO_MODE_MASTER)
{
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | TR0RST | VIDEO_MODE_MASTER));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | VIDEO_MODE_MASTER));
}
else
{
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | TR0RST));
I2CWriteByte(I2C_ADV7179, 0x07, TR0MODE_601);
}
}
return (0);
err_out:
printk("err_out\n");
return -1;
}
/*
* adv7179 open routine.
* do nothing.
*
*/
int adv7179_open(struct inode* inode, struct file* file)
{
return 0;
}
/*
* adv7179 close routine.
* do nothing.
*
*/
int adv7179_close(struct inode* inode, struct file* file)
{
return 0;
}
/*
* adv7179 ioctl routine.
* @param inode: pointer of the node;
* @param file: pointer of the file;
*
* @param cmd: command from the app:
* ENCODER_SET_NORM(2):set adv7179's work mode.
*
* @param arg:arg from app layer.
*
* @return value:0-- set success; -1-- set error.
*
*/
static long adv7179_ioctl(struct file* file, unsigned int cmd, unsigned long arg)
{
switch (cmd)
{
case ENCODER_SET_NORM:
{
int iarg = (int) arg;
switch (iarg)
{
case VIDEO_MODE_656_PAL:
write_regs((unsigned char*)&init_656_PAL, sizeof(init_656_PAL));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_656 | TR0RST));
I2CWriteByte(I2C_ADV7179, 0x07, TR0MODE_656);
break;
case VIDEO_MODE_656_NTSC:
write_regs((unsigned char*)&init_656_NTSC, sizeof(init_656_NTSC));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_656 | TR0RST));
I2CWriteByte(I2C_ADV7179, 0x07, TR0MODE_656);
break;
case VIDEO_MODE_601_PAL_MASTER:
init_601_PAL[15] |= VIDEO_MODE_MASTER;
write_regs((unsigned char*)&init_601_PAL, sizeof(init_601_PAL));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | TR0RST | VIDEO_MODE_MASTER));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | VIDEO_MODE_MASTER));
break;
case VIDEO_MODE_601_NTSC_MASTER:
init_601_NTSC[15] |= VIDEO_MODE_MASTER;
write_regs((unsigned char*)&init_601_NTSC, sizeof(init_601_NTSC));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | TR0RST | VIDEO_MODE_MASTER));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | VIDEO_MODE_MASTER));
break;
case VIDEO_MODE_601_PAL_SLAVER:
init_601_PAL[15] &= ~VIDEO_MODE_MASTER;
write_regs((unsigned char*)&init_601_PAL, sizeof(init_601_PAL));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | TR0RST));
I2CWriteByte(I2C_ADV7179, 0x07, TR0MODE_601);
break;
case VIDEO_MODE_601_NTSC_SLAVER:
init_601_NTSC[15] &= ~VIDEO_MODE_MASTER;
write_regs((unsigned char*)&init_601_NTSC, sizeof(init_601_NTSC));
I2CWriteByte(I2C_ADV7179, 0x07, (TR0MODE_601 | TR0RST));
I2CWriteByte(I2C_ADV7179, 0x07, TR0MODE_601);
break;
default:
return -1;
}
}
break;
default:
return -1;
}
return 0;
}
/*
* The various file operations we support.
*/
static struct file_operations adv7179_fops =
{
.owner = THIS_MODULE,
.unlocked_ioctl = adv7179_ioctl,
.open = adv7179_open ,
.release = adv7179_close
};
static struct miscdevice adv7179_dev =
{
MISC_DYNAMIC_MINOR,
"adv7179",
&adv7179_fops,
};
static int adv7179_device_init(void)
{
unsigned char regvalue1, regvalue2;
regvalue1 = I2CReadByte(I2C_ADV7179, 0x07);
I2CWriteByte(I2C_ADV7179, 0x07, 0xa5);
regvalue2 = I2CReadByte(I2C_ADV7179, 0x07);
if (regvalue2 != 0xa5)
{
printk("read adv7179 register is %x\n", regvalue2);
printk("check adv7179 error.\n");
return -EFAULT;
}
I2CWriteByte(I2C_ADV7179, 0x07, regvalue1);
if (norm_mode == VIDEO_NORM_NTSC)
{
if (init_vda(VIDEO_MODE_CCIR656, VIDEO_NORM_NTSC, VIDEO_MODE_MASTER) == 0)
{
return 0;
}
else
{
return -EFAULT;
}
}
else
{
if (init_vda(VIDEO_MODE_CCIR656, VIDEO_NORM_PAL, VIDEO_MODE_MASTER) == 0)
{
return 0;
}
else
{
return -EFAULT;
}
}
}
//DECLARE_KCOM_GPIO_I2C();
static int __init adv7179_init(void)
{
int ret = 0;
#if 0
ret = KCOM_GPIO_I2C_INIT();
if (ret)
{
printk("GPIO I2C module is not load.\n");
return -1;
}
#endif
i2c_client_init();
ret = misc_register(&adv7179_dev);
if (ret)
{
//KCOM_GPIO_I2C_EXIT();
printk("could not register adv7179 devices. \n");
return -1;
}
if (adv7179_device_init() < 0)
{
misc_deregister(&adv7179_dev);
//KCOM_GPIO_I2C_EXIT();
printk("adv7179 driver init fail for device init error!\n");
return -1;
}
printk("adv7179 driver init successful!\n");
return ret;
}
static void __exit adv7179_exit(void)
{
i2c_client_exit();
misc_deregister(&adv7179_dev);
//KCOM_GPIO_I2C_EXIT();
}
module_init(adv7179_init);
module_exit(adv7179_exit);
#ifdef MODULE
//#include <linux/compile.h>
#endif
module_param(norm_mode, int, S_IRUGO);
//MODULE_INFO(build, UTS_VERSION);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("hisilicon");

View File

@ -0,0 +1,42 @@
/* extdrv/include/adv7179.h for Linux .
*
*
* This file defines ov9653 micro-definitions for user.
*
* History:
* 03-Apr-2006 Start of Hi3510 Digital Camera GPIO control support
*
*/
#ifndef _ADV7179_H
#define _ADV7179_H
#define ENCODER_SET_NORM 0x02
#define VIDEO_MODE_656_PAL 0
#define VIDEO_MODE_656_NTSC 1
#define VIDEO_MODE_601_PAL_MASTER 2
#define VIDEO_MODE_601_NTSC_MASTER 3
#define VIDEO_MODE_601_PAL_SLAVER 4
#define VIDEO_MODE_601_NTSC_SLAVER 5
#define VIDEO_MODE_CCIR656 0
#define VIDEO_MODE_CCIR601 1
#define VIDEO_MODE_LCD 2
#define VIDEO_NORM_PAL 0
#define VIDEO_NORM_NTSC 1
#define VIDEO_NORM_SUPPORT 2
#define VIDEO_MODE_SECAM 2
#define VIDEO_MODE_AUTO 3
#define VIDEO_MODE_MASTER 1
#define VIDEO_MODE_SLAVER 0
#endif

Binary file not shown.

View File

@ -0,0 +1,21 @@
#include <linux/module.h>
#include <linux/vermagic.h>
#include <linux/compiler.h>
MODULE_INFO(vermagic, VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,
.init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
.arch = MODULE_ARCH_INIT,
};
static const char __module_depends[]
__used
__attribute__((section(".modinfo"))) =
"depends=";

View File

@ -0,0 +1,6 @@
#ifndef _LINUX_CONFIG_H
#define _LINUX_CONFIG_H
#include <linux/autoconf.h>
#endif

View File

@ -0,0 +1,14 @@
#ifndef _GPIO_I2C_H
#define _GPIO_I2C_H
#define GPIO_I2C_READ 0x01
#define GPIO_I2C_WRITE 0x02
unsigned char gpio_i2c_read(unsigned char devaddress, unsigned char address);
void gpio_i2c_write(unsigned char devaddress, unsigned char address, unsigned char value);
#endif

View File

@ -0,0 +1 @@
kernel//home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/adv7179/adv_7179.ko

View File

@ -0,0 +1,26 @@
/*
* include/video_def.h for Linux .
*
* This file defines video_def micro-definitions for user.
* History:
* 10-April-2006 create this file
*/
#ifndef _VIDEO_DEF_H
#define _VIDEO_DEF_H
#define VIDEO_MODE_CCIR656 0
#define VIDEO_MODE_CCIR601 1
#define VIDEO_MODE_LCD 2
#define VIDEO_NORM_PAL 0
#define VIDEO_NORM_NTSC 1
#define VIDEO_NORM_SUPPORT 2
#define VIDEO_MODE_SECAM 2
#define VIDEO_MODE_AUTO 3
#define VIDEO_MODE_MASTER 1
#define VIDEO_MODE_SLAVER 0
#endif

View File

@ -0,0 +1 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.ko := arm-hisiv300-linux-ld -EL -r -T /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/scripts/module-common.lds --build-id -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.ko /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.o

View File

@ -0,0 +1,345 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.o := arm-hisiv300-linux-gcc -Wp,-MD,/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/.piris.mod.o.d -nostdinc -isystem /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include -I/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-hi3518ev200/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -marm -fno-dwarf2-cfi-asm -fno-aggressive-loop-optimizations -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/home/pub/temp/platform_ipc/mpp/release/hi3518e/include -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(piris.mod)" -D"KBUILD_MODNAME=KBUILD_STR(piris)" -DMODULE -c -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.c
source_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.o := /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.c
deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.o := \
$(wildcard include/config/module/unload.h) \
include/linux/module.h \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/modules.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/debug/set/module/ronx.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/types.h \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/types.h \
include/asm-generic/int-ll64.h \
arch/arm/include/generated/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/linux/posix_types.h \
include/linux/stddef.h \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
include/linux/compiler-gcc4.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/posix_types.h \
include/asm-generic/posix_types.h \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
include/linux/const.h \
include/linux/stat.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/ring/buffer.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/compaction.h) \
include/linux/sysinfo.h \
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include/stdarg.h \
include/linux/linkage.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/linkage.h \
include/linux/bitops.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bitops.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
include/linux/typecheck.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irqflags.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ptrace.h \
$(wildcard include/config/cpu/endian/be8.h) \
$(wildcard include/config/arm/thumb.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hwcap.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/le.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/linux/swab.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/swab.h \
include/linux/byteorder/generic.h \
include/asm-generic/bitops/ext2-atomic-setbit.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/printk.h \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/init.h \
$(wildcard include/config/hotplug.h) \
include/linux/dynamic_debug.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/div64.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/compiler.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/thumb2/kernel.h) \
$(wildcard include/config/debug/bugverbose.h) \
$(wildcard include/config/arm/lpae.h) \
include/asm-generic/bug.h \
$(wildcard include/config/generic/bug/relative/pointers.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cache.h \
$(wildcard include/config/arm/l1/cache/shift.h) \
$(wildcard include/config/aeabi.h) \
include/linux/seqlock.h \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/preempt.h \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/preempt/notifiers.h) \
include/linux/thread_info.h \
$(wildcard include/config/compat.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/thread_info.h \
$(wildcard include/config/arm/thumbee.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fpstate.h \
$(wildcard include/config/vfpv3.h) \
$(wildcard include/config/iwmmxt.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/domain.h \
$(wildcard include/config/io/36.h) \
$(wildcard include/config/cpu/use/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/barrier.h \
$(wildcard include/config/cpu/32v6k.h) \
$(wildcard include/config/cpu/xsc3.h) \
$(wildcard include/config/cpu/fa526.h) \
$(wildcard include/config/arch/has/barriers.h) \
$(wildcard include/config/arm/dma/mem/bufferable.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/outercache.h \
$(wildcard include/config/outer/cache/sync.h) \
$(wildcard include/config/outer/cache.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/memory.h \
$(wildcard include/config/need/mach/memory/h.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/page/offset.h) \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/dram/size.h) \
$(wildcard include/config/dram/base.h) \
$(wildcard include/config/have/tcm.h) \
$(wildcard include/config/arm/patch/phys/virt.h) \
$(wildcard include/config/phys/offset.h) \
$(wildcard include/config/hisi/snapshot/boot.h) \
arch/arm/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
arch/arm/mach-hi3518ev200/include/mach/memory.h \
include/asm-generic/memory_model.h \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/sparsemem/vmemmap.h) \
$(wildcard include/config/sparsemem.h) \
include/linux/stringify.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
include/linux/spinlock_types_up.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
$(wildcard include/config/prove/rcu.h) \
include/linux/rwlock_types.h \
include/linux/spinlock_up.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/processor.h \
$(wildcard include/config/have/hw/breakpoint.h) \
$(wildcard include/config/arm/errata/754327.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hw_breakpoint.h \
include/linux/rwlock.h \
include/linux/spinlock_api_up.h \
include/linux/atomic.h \
$(wildcard include/config/arch/has/atomic/or.h) \
$(wildcard include/config/generic/atomic64.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/atomic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cmpxchg.h \
$(wildcard include/config/cpu/sa1100.h) \
$(wildcard include/config/cpu/sa110.h) \
$(wildcard include/config/cpu/v6.h) \
include/asm-generic/cmpxchg-local.h \
include/asm-generic/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/asm-generic/atomic64.h \
include/linux/math64.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/pm/sleep.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/cgroup/mem/res/ctlr.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/nodes/span/other/nodes.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/current.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
include/linux/bitmap.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/string.h \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/generated/bounds.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/page.h \
$(wildcard include/config/cpu/copy/v3.h) \
$(wildcard include/config/cpu/copy/v4wt.h) \
$(wildcard include/config/cpu/copy/v4wb.h) \
$(wildcard include/config/cpu/copy/feroceon.h) \
$(wildcard include/config/cpu/copy/fa.h) \
$(wildcard include/config/cpu/xscale.h) \
$(wildcard include/config/cpu/copy/v6.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/glue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/pgtable-2level-types.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
include/linux/notifier.h \
include/linux/errno.h \
arch/arm/include/generated/asm/errno.h \
include/asm-generic/errno.h \
include/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/debug/mutexes.h) \
$(wildcard include/config/have/arch/mutex/cpu/relax.h) \
include/linux/mutex-debug.h \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/rwsem-spinlock.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/rcu/torture/test.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/tree/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tiny/preempt/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/preempt/rt.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
$(wildcard include/config/disable/obsolete/cpumask/functions.h) \
include/linux/bug.h \
include/linux/completion.h \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/rcutiny.h \
include/linux/topology.h \
$(wildcard include/config/sched/smt.h) \
$(wildcard include/config/sched/mc.h) \
$(wildcard include/config/sched/book.h) \
$(wildcard include/config/use/percpu/numa/node/id.h) \
include/linux/smp.h \
$(wildcard include/config/use/generic/smp/helpers.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/pfn.h \
arch/arm/include/generated/asm/percpu.h \
include/asm-generic/percpu.h \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/topology.h \
$(wildcard include/config/arm/cpu/topology.h) \
include/asm-generic/topology.h \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
include/linux/timer.h \
$(wildcard include/config/timer/stats.h) \
$(wildcard include/config/debug/objects/timers.h) \
include/linux/ktime.h \
$(wildcard include/config/ktime/scalar.h) \
include/linux/jiffies.h \
include/linux/timex.h \
include/linux/param.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/param.h \
$(wildcard include/config/hz.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/timex.h \
arch/arm/mach-hi3518ev200/include/mach/timex.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/linux/elf.h \
include/linux/elf-em.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/elf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/user.h \
include/linux/kobject.h \
include/linux/sysfs.h \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/tracepoint.h \
include/linux/static_key.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/export.h \
$(wildcard include/config/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/module.h \
$(wildcard include/config/arm/unwind.h) \
include/linux/vermagic.h \
include/generated/utsrelease.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.o: $(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.o)
$(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.mod.o):

View File

@ -0,0 +1,440 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o := arm-hisiv300-linux-gcc -Wp,-MD,/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/.piris.o.d -nostdinc -isystem /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include -I/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-hi3518ev200/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -marm -fno-dwarf2-cfi-asm -fno-aggressive-loop-optimizations -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/home/pub/temp/platform_ipc/mpp/release/hi3518e/include -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(piris)" -D"KBUILD_MODNAME=KBUILD_STR(piris)" -c -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.c
source_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o := /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.c
deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o := \
include/linux/module.h \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/modules.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/module/unload.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/debug/set/module/ronx.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/types.h \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/types.h \
include/asm-generic/int-ll64.h \
arch/arm/include/generated/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/linux/posix_types.h \
include/linux/stddef.h \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
include/linux/compiler-gcc4.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/posix_types.h \
include/asm-generic/posix_types.h \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
include/linux/const.h \
include/linux/stat.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/ring/buffer.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/compaction.h) \
include/linux/sysinfo.h \
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include/stdarg.h \
include/linux/linkage.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/linkage.h \
include/linux/bitops.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bitops.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
include/linux/typecheck.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irqflags.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ptrace.h \
$(wildcard include/config/cpu/endian/be8.h) \
$(wildcard include/config/arm/thumb.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hwcap.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/le.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/linux/swab.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/swab.h \
include/linux/byteorder/generic.h \
include/asm-generic/bitops/ext2-atomic-setbit.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/printk.h \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/init.h \
$(wildcard include/config/hotplug.h) \
include/linux/dynamic_debug.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/div64.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/compiler.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/thumb2/kernel.h) \
$(wildcard include/config/debug/bugverbose.h) \
$(wildcard include/config/arm/lpae.h) \
include/asm-generic/bug.h \
$(wildcard include/config/generic/bug/relative/pointers.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cache.h \
$(wildcard include/config/arm/l1/cache/shift.h) \
$(wildcard include/config/aeabi.h) \
include/linux/seqlock.h \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/preempt.h \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/preempt/notifiers.h) \
include/linux/thread_info.h \
$(wildcard include/config/compat.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/thread_info.h \
$(wildcard include/config/arm/thumbee.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fpstate.h \
$(wildcard include/config/vfpv3.h) \
$(wildcard include/config/iwmmxt.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/domain.h \
$(wildcard include/config/io/36.h) \
$(wildcard include/config/cpu/use/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/barrier.h \
$(wildcard include/config/cpu/32v6k.h) \
$(wildcard include/config/cpu/xsc3.h) \
$(wildcard include/config/cpu/fa526.h) \
$(wildcard include/config/arch/has/barriers.h) \
$(wildcard include/config/arm/dma/mem/bufferable.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/outercache.h \
$(wildcard include/config/outer/cache/sync.h) \
$(wildcard include/config/outer/cache.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/memory.h \
$(wildcard include/config/need/mach/memory/h.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/page/offset.h) \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/dram/size.h) \
$(wildcard include/config/dram/base.h) \
$(wildcard include/config/have/tcm.h) \
$(wildcard include/config/arm/patch/phys/virt.h) \
$(wildcard include/config/phys/offset.h) \
$(wildcard include/config/hisi/snapshot/boot.h) \
arch/arm/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
arch/arm/mach-hi3518ev200/include/mach/memory.h \
include/asm-generic/memory_model.h \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/sparsemem/vmemmap.h) \
$(wildcard include/config/sparsemem.h) \
include/linux/stringify.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
include/linux/spinlock_types_up.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
$(wildcard include/config/prove/rcu.h) \
include/linux/rwlock_types.h \
include/linux/spinlock_up.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/processor.h \
$(wildcard include/config/have/hw/breakpoint.h) \
$(wildcard include/config/arm/errata/754327.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hw_breakpoint.h \
include/linux/rwlock.h \
include/linux/spinlock_api_up.h \
include/linux/atomic.h \
$(wildcard include/config/arch/has/atomic/or.h) \
$(wildcard include/config/generic/atomic64.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/atomic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cmpxchg.h \
$(wildcard include/config/cpu/sa1100.h) \
$(wildcard include/config/cpu/sa110.h) \
$(wildcard include/config/cpu/v6.h) \
include/asm-generic/cmpxchg-local.h \
include/asm-generic/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/asm-generic/atomic64.h \
include/linux/math64.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/pm/sleep.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/cgroup/mem/res/ctlr.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/nodes/span/other/nodes.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/current.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
include/linux/bitmap.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/string.h \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/generated/bounds.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/page.h \
$(wildcard include/config/cpu/copy/v3.h) \
$(wildcard include/config/cpu/copy/v4wt.h) \
$(wildcard include/config/cpu/copy/v4wb.h) \
$(wildcard include/config/cpu/copy/feroceon.h) \
$(wildcard include/config/cpu/copy/fa.h) \
$(wildcard include/config/cpu/xscale.h) \
$(wildcard include/config/cpu/copy/v6.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/glue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/pgtable-2level-types.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
include/linux/notifier.h \
include/linux/errno.h \
arch/arm/include/generated/asm/errno.h \
include/asm-generic/errno.h \
include/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/debug/mutexes.h) \
$(wildcard include/config/have/arch/mutex/cpu/relax.h) \
include/linux/mutex-debug.h \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/rwsem-spinlock.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/rcu/torture/test.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/tree/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tiny/preempt/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/preempt/rt.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
$(wildcard include/config/disable/obsolete/cpumask/functions.h) \
include/linux/bug.h \
include/linux/completion.h \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/rcutiny.h \
include/linux/topology.h \
$(wildcard include/config/sched/smt.h) \
$(wildcard include/config/sched/mc.h) \
$(wildcard include/config/sched/book.h) \
$(wildcard include/config/use/percpu/numa/node/id.h) \
include/linux/smp.h \
$(wildcard include/config/use/generic/smp/helpers.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/pfn.h \
arch/arm/include/generated/asm/percpu.h \
include/asm-generic/percpu.h \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/topology.h \
$(wildcard include/config/arm/cpu/topology.h) \
include/asm-generic/topology.h \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
include/linux/timer.h \
$(wildcard include/config/timer/stats.h) \
$(wildcard include/config/debug/objects/timers.h) \
include/linux/ktime.h \
$(wildcard include/config/ktime/scalar.h) \
include/linux/jiffies.h \
include/linux/timex.h \
include/linux/param.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/param.h \
$(wildcard include/config/hz.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/timex.h \
arch/arm/mach-hi3518ev200/include/mach/timex.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/linux/elf.h \
include/linux/elf-em.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/elf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/user.h \
include/linux/kobject.h \
include/linux/sysfs.h \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/tracepoint.h \
include/linux/static_key.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/export.h \
$(wildcard include/config/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/module.h \
$(wildcard include/config/arm/unwind.h) \
include/linux/miscdevice.h \
include/linux/major.h \
include/linux/pm.h \
$(wildcard include/config/pm.h) \
$(wildcard include/config/pm/runtime.h) \
$(wildcard include/config/pm/clk.h) \
$(wildcard include/config/pm/generic/domains.h) \
include/linux/fcntl.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fcntl.h \
include/asm-generic/fcntl.h \
include/linux/delay.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/delay.h \
include/linux/proc_fs.h \
$(wildcard include/config/proc/fs.h) \
$(wildcard include/config/proc/devicetree.h) \
$(wildcard include/config/proc/kcore.h) \
include/linux/slab.h \
$(wildcard include/config/slab/debug.h) \
$(wildcard include/config/failslab.h) \
$(wildcard include/config/slub.h) \
$(wildcard include/config/slob.h) \
$(wildcard include/config/debug/slab.h) \
$(wildcard include/config/slab.h) \
include/linux/slub_def.h \
$(wildcard include/config/slub/stats.h) \
$(wildcard include/config/slub/debug.h) \
include/linux/kmemleak.h \
$(wildcard include/config/debug/kmemleak.h) \
include/linux/fs.h \
$(wildcard include/config/fs/posix/acl.h) \
$(wildcard include/config/security.h) \
$(wildcard include/config/quota.h) \
$(wildcard include/config/fsnotify.h) \
$(wildcard include/config/ima.h) \
$(wildcard include/config/epoll.h) \
$(wildcard include/config/debug/writecount.h) \
$(wildcard include/config/file/locking.h) \
$(wildcard include/config/auditsyscall.h) \
$(wildcard include/config/block.h) \
$(wildcard include/config/fs/xip.h) \
$(wildcard include/config/migration.h) \
include/linux/limits.h \
include/linux/ioctl.h \
arch/arm/include/generated/asm/ioctl.h \
include/asm-generic/ioctl.h \
include/linux/blk_types.h \
$(wildcard include/config/blk/dev/integrity.h) \
include/linux/kdev_t.h \
include/linux/dcache.h \
include/linux/rculist.h \
include/linux/rculist_bl.h \
include/linux/list_bl.h \
include/linux/bit_spinlock.h \
include/linux/path.h \
include/linux/radix-tree.h \
include/linux/prio_tree.h \
include/linux/pid.h \
include/linux/capability.h \
include/linux/semaphore.h \
include/linux/fiemap.h \
include/linux/shrinker.h \
include/linux/migrate_mode.h \
include/linux/quota.h \
$(wildcard include/config/quota/netlink/interface.h) \
include/linux/percpu_counter.h \
include/linux/dqblk_xfs.h \
include/linux/dqblk_v1.h \
include/linux/dqblk_v2.h \
include/linux/dqblk_qtree.h \
include/linux/nfs_fs_i.h \
include/linux/err.h \
include/linux/magic.h \
include/linux/hrtimer.h \
$(wildcard include/config/high/res/timers.h) \
$(wildcard include/config/timerfd.h) \
include/linux/timerqueue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/uaccess.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/unified.h \
$(wildcard include/config/arm/asm/unified.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/exec.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/switch_to.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system_info.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system_misc.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/io.h \
$(wildcard include/config/need/mach/io/h.h) \
$(wildcard include/config/pcmcia/soc/common.h) \
$(wildcard include/config/pci.h) \
$(wildcard include/config/isa.h) \
$(wildcard include/config/pccard.h) \
include/asm-generic/pci_iomap.h \
$(wildcard include/config/no/generic/pci/ioport/map.h) \
$(wildcard include/config/generic/pci/iomap.h) \
arch/arm/mach-hi3518ev200/include/mach/io.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris_ext.h \
/home/pub/temp/platform_ipc/mpp/release/hi3518e/include/hi_type.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o: $(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o)
$(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o):

View File

@ -0,0 +1,2 @@
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.ko
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/piris/piris.o

View File

@ -0,0 +1,19 @@
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../Makefile.param
include $(PARAM_FILE)
endif
obj-m := piris.o
hi_pwm-y += piris.o
EXTRA_CFLAGS += -I$(REL_INC)
EXTRA_CFLAGS += $(DRV_CFLAGS)
default:
$(CC) -g -Wall -o piris_test piris_test.c strfunc.c
@$(MAKE) -C $(LINUX_ROOT) M=$(PWD) modules
@rm -f *.o modules.* *.symvers *.mod.c
clean:
@make -C $(LINUX_ROOT) M=$(PWD) clean
@rm -f piris_test *.bak

View File

@ -0,0 +1,419 @@
/* isp/piris.c
*
* Copyright (c) 2006 Hisilicon Co., Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program;
*
* History:
* 23-march-2011 create this file
*/
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/miscdevice.h>
#include <linux/fcntl.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/proc_fs.h>
#include <linux/workqueue.h>
#include <linux/hrtimer.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/io.h>
#include "piris.h"
#include "piris_ext.h"
#define PIRISI_ADRESS_BASE 0x20210000 // Piris use GPIO13
void __iomem* reg_pirisI_base_va = 0;
#define HI_IO_PIRISI_ADDRESS(x) (reg_pirisI_base_va + ((x)-(PIRISI_ADRESS_BASE)))
#define PIRIS_CFG_REG HI_IO_PIRISI_ADDRESS(PIRISI_ADRESS_BASE + 0x007C)
#define PIRIS_CTRL_REG HI_IO_PIRISI_ADDRESS(PIRISI_ADRESS_BASE + 0x0400)
#define PIRIS_WRITE_REG(Addr, Value) ((*(volatile unsigned int *)(Addr)) = (Value))
#define PIRIS_READ_REG(Addr) (*(volatile unsigned int *)(Addr))
#define MAX(a, b) (a > b? a : b)
#define MIN(a, b) (a < b? a : b)
#define MAX_MOTOR_PAHSE 4
#define MAX_STEPS 92
#define PIRIS_PPS 100
static const unsigned char motor_phase_tbl[MAX_MOTOR_PAHSE] = { 0x0, 0x1, 0x2, 0x3};
typedef struct hiPIRIS_DEV
{
int src_pos;
int dest_pos;
unsigned int pps;
int phase;
const unsigned char* phase_tbl;
struct semaphore sem;
struct timer_list timer;
} PIRIS_DEV;
static PIRIS_DEV* p_piris_dev;
DECLARE_COMPLETION(piris_comp);
int piris_gpio_update(int* pPirisPos)
{
p_piris_dev->dest_pos = *pPirisPos;
p_piris_dev->pps = PIRIS_PPS;
p_piris_dev->pps = MAX(MIN(p_piris_dev->pps, HZ), 1);
p_piris_dev->timer.expires = jiffies + HZ / p_piris_dev->pps;
/* whether piris timer already at the kerbel timer pending list */
if (p_piris_dev->timer.entry.next != NULL)
{
return -1;
}
add_timer(&p_piris_dev->timer);
return 0;
}
/* first go to the full open iris step, set the full open as origin */
int piris_origin_set(PIRIS_DATA_S* pstPirisData)
{
int piris_pos;
piris_pos = pstPirisData->CurPos;
piris_gpio_update(&piris_pos);
// wait for piris origin done
init_completion(&piris_comp);
wait_for_completion(&piris_comp);
if (pstPirisData->ZeroIsMax == 1)
{
p_piris_dev->src_pos = 0;
p_piris_dev->dest_pos = 0;
}
else
{
p_piris_dev->src_pos = pstPirisData->TotalStep - 1;
p_piris_dev->dest_pos = pstPirisData->TotalStep - 1;
}
return 0;
}
/* go to the full close iris step */
int piris_close_set(PIRIS_DATA_S* pstPirisData)
{
int piris_pos;
piris_pos = pstPirisData->CurPos;
piris_gpio_update(&piris_pos);
// wait for piris origin done
init_completion(&piris_comp);
wait_for_completion(&piris_comp);
if (pstPirisData->ZeroIsMax == 1)
{
p_piris_dev->src_pos = pstPirisData->TotalStep - 1;
p_piris_dev->dest_pos = pstPirisData->TotalStep - 1;
}
else
{
p_piris_dev->src_pos = 0;
p_piris_dev->dest_pos = 0;
}
return 0;
}
/* file operation */
int piris_open(struct inode* inode, struct file* file)
{
file->private_data = p_piris_dev;
return 0 ;
}
int piris_close(struct inode* inode, struct file* file)
{
return 0;
}
#if 0
static int PIRIS_DRV_Disable(void)
{
PIRIS_WRITE_REG(PIRIS_CTRL_REG, 0x1F);
PIRIS_WRITE_REG(PIRIS_CFG_REG, 0x10);
return 0;
}
#endif
int PIRIS_DRV_Write(unsigned char bits)
{
switch (bits)
{
case 0:
PIRIS_WRITE_REG(PIRIS_CTRL_REG, 0x1F);
PIRIS_WRITE_REG(PIRIS_CFG_REG , 0x15);
break;
case 1:
PIRIS_WRITE_REG(PIRIS_CTRL_REG, 0x1F);
PIRIS_WRITE_REG(PIRIS_CFG_REG , 0x16);
break;
case 2:
PIRIS_WRITE_REG(PIRIS_CTRL_REG, 0x1F);
PIRIS_WRITE_REG(PIRIS_CFG_REG , 0x1A);
break;
case 3:
PIRIS_WRITE_REG(PIRIS_CTRL_REG, 0x1F);
PIRIS_WRITE_REG(PIRIS_CFG_REG , 0x19);
break;
default:
break;
}
return 0;
}
static long piris_ioctl(struct file* file, unsigned int cmd, unsigned long arg)
{
int __user* pPirisPos;
PIRIS_DATA_S __user* argp;
PIRIS_STATUS_E __user* pPirisStatus;
PIRIS_DEV* pstPirisDev = (PIRIS_DEV*) file->private_data;
int err = 0;
if (_IOC_TYPE(cmd) != PIRIS_IOC_MAGIC)
{
return -ENOTTY;
}
if (_IOC_NR(cmd) > PIRIS_IOC_MAXNR)
{
return -ENOTTY;
}
if (_IOC_DIR(cmd) & _IOC_READ)
{
err = !access_ok(VERIFY_WRITE, (void __user*)arg, _IOC_SIZE(cmd));
}
else if (_IOC_DIR(cmd) & _IOC_WRITE)
{
err = !access_ok(VERIFY_READ, (void __user*)arg, _IOC_SIZE(cmd));
}
if (err)
{
return -EFAULT;
}
// lock pstPirisDev
if (down_interruptible(&pstPirisDev->sem))
{
return -ERESTARTSYS;
}
switch (cmd)
{
case PIRIS_SET_ACT_ARGS:
pPirisPos = (int __user*)arg;
piris_gpio_update(pPirisPos);
break;
case PIRIS_SET_ORGIN:
argp = (PIRIS_DATA_S __user*)arg;
piris_origin_set(argp);
break;
case PIRIS_SET_CLOSE:
argp = (PIRIS_DATA_S __user*)arg;
piris_close_set(argp);
break;
case PIRIS_GET_STATUS:
pPirisStatus = (PIRIS_STATUS_E __user*)arg;
if (pstPirisDev->dest_pos != pstPirisDev->src_pos)
{
*pPirisStatus = PIRIS_BUSY;
}
else
{
*pPirisStatus = PIRIS_IDLE;
//PIRIS_DRV_Disable();
}
break;
default: /* redundant, as cmd was checked against MAXNR */
break;
}
// unlock pstPirisDev
up(&pstPirisDev->sem);
return 0 ;
}
static struct file_operations piris_fops =
{
.owner = THIS_MODULE,
.unlocked_ioctl = piris_ioctl ,
.open = piris_open ,
.release = piris_close ,
};
static struct miscdevice gstPirisDev =
{
.minor = MISC_DYNAMIC_MINOR,
.name = "piris" ,
.fops = &piris_fops,
};
void piris_timer_cb(unsigned long arg)
{
int sign = 1;
unsigned char bits;
PIRIS_DEV* pstPirisDev = (PIRIS_DEV*)arg;
if (pstPirisDev->src_pos == pstPirisDev->dest_pos)
{
return ;
}
sign = (pstPirisDev->dest_pos - pstPirisDev->src_pos < 0) ? -1 : 1;
pstPirisDev->src_pos += sign;
// close iris: 0->1->2->3->0; open iris: 3->2->1->0->3
pstPirisDev->phase = (pstPirisDev->phase + MAX_MOTOR_PAHSE + sign) % MAX_MOTOR_PAHSE;
bits = pstPirisDev->phase_tbl[pstPirisDev->phase];
PIRIS_DRV_Write(bits);
if (pstPirisDev->dest_pos == pstPirisDev->src_pos)
{
complete(&piris_comp);
}
pstPirisDev->timer.expires = jiffies + HZ / pstPirisDev->pps;
add_timer(&pstPirisDev->timer);
//printk("%s, pos :%d @ pps:%d\n", __FUNCTION__, pstPirisDev->src_pos, pstPirisDev->pps);
return ;
}
static int hi_piris_isp_register(void)
{
ISP_PIRIS_CALLBACK_S stPirisCb = {0};
stPirisCb.pfn_piris_gpio_update = (HI_S32 (*)(HI_S32))piris_gpio_update;
if (CKFN_ISP_RegisterPirisCallBack())
{
CALL_ISP_RegisterPirisCallBack(0, &stPirisCb);
}
else
{
printk("register piris_gpio_write_callback to isp failed, hi_piris init is failed!\n");
return -1;
}
return 0;
}
/* module init and exit */
static int __init piris_init(void)
{
int ret;
p_piris_dev = kmalloc(sizeof(PIRIS_DEV), GFP_KERNEL);
if (!p_piris_dev)
{
return -1;
}
memset(p_piris_dev, 0x0, sizeof(PIRIS_DEV));
sema_init(&p_piris_dev->sem, 1);
init_completion(&piris_comp);
// init timer
init_timer(&p_piris_dev->timer);
p_piris_dev->timer.function = piris_timer_cb;
p_piris_dev->timer.data = (unsigned long)p_piris_dev;
p_piris_dev->timer.expires = jiffies + HZ; /* one second */
p_piris_dev->phase_tbl = motor_phase_tbl;
reg_pirisI_base_va = ioremap_nocache(PIRISI_ADRESS_BASE, 0x10000);
ret = misc_register(&gstPirisDev);
hi_piris_isp_register();
if (ret != 0)
{
printk("register piris device failed with %#x!\n", ret);
return -1;
}
return 0;
}
static void __exit piris_exit(void)
{
del_timer(&p_piris_dev->timer);
kfree(p_piris_dev);
misc_deregister(&gstPirisDev);
}
module_init(piris_init);
module_exit(piris_exit);
MODULE_DESCRIPTION("piris driver");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("hisilicon");

View File

@ -0,0 +1,49 @@
#ifndef __HI_PIRIS_H__
#define __HI_PIRIS_H__
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* __cplusplus */
#include <linux/ioctl.h> /* needed for the _IOW etc stuff used later */
typedef enum hiPIRIS_STATUS_E
{
PIRIS_IDLE = 0,
PIRIS_BUSY,
PIRIS_BUTT,
} PIRIS_STATUS_E;
typedef struct hiPIRIS_DATA_S
{
unsigned char ZeroIsMax;
unsigned int TotalStep;
int CurPos;
} PIRIS_DATA_S;
#define PIRIS_IOC_MAGIC 'p'
#define PIRIS_SET_ACT_ARGS _IOW(PIRIS_IOC_MAGIC, 1, int)
#define PIRIS_SET_ORGIN _IOW(PIRIS_IOC_MAGIC, 2, int)
#define PIRIS_SET_CLOSE _IOW(PIRIS_IOC_MAGIC, 3, int)
#define PIRIS_GET_STATUS _IOR(PIRIS_IOC_MAGIC, 5, int)
#define PIRIS_IOC_MAXNR 5
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */
#endif /* __HI_PIRIS_H__ */

Binary file not shown.

View File

@ -0,0 +1,51 @@
/******************************************************************************
Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd.
******************************************************************************
File Name : piris_ext.h
Version : Initial Draft
Author : Hisilicon multimedia software group
Created : 2015/01/28
Description :
History :
1.Date : 2015/01/28
Author : h00191408
Modification: Created file
******************************************************************************/
#ifndef __PIRIS_EXT_H__
#define __PIRIS_EXT_H__
#include "hi_type.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* End of #ifdef __cplusplus */
typedef struct hiISP_PIRIS_CALLBACK_S
{
HI_S32 (*pfn_piris_gpio_update)(HI_S32 s32Pos);
} ISP_PIRIS_CALLBACK_S;
typedef struct hiISP_PIRIS_EXPORT_FUNC_S
{
HI_S32 (*pfnISPRegisterPirisCallBack) (HI_S32 IspDev, ISP_PIRIS_CALLBACK_S* pstPirisCb);
} ISP_PIRIS_EXPORT_FUNC_S;
extern ISP_PIRIS_EXPORT_FUNC_S g_stIspPirisExpFunc;
#define CKFN_ISP_RegisterPirisCallBack()\
(NULL != g_stIspPirisExpFunc.pfnISPRegisterPirisCallBack)
#define CALL_ISP_RegisterPirisCallBack(IspDev,pstPirisCb)\
g_stIspPirisExpFunc.pfnISPRegisterPirisCallBack(IspDev,pstPirisCb)
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */
#endif

Binary file not shown.

View File

@ -0,0 +1,133 @@
#include <stdio.h>
#include <ctype.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include "strfunc.h"
#include "piris.h"
int main(int argc , char* argv[])
{
int fd = -1;
int ret = 0;
unsigned int piris_pos;
PIRIS_STATUS_E sta;
int step = 0;
int toclose = 0;
int i = 0;
unsigned int TestSample = 0;
if (argc < 2)
{
printf("usage: %s \n <cmd(a: action, o: origin, s: status, t: test IRIS sample)> \n <pos> . \n sample: %s a 92\n", argv[0], argv[0]);
return -1;
}
fd = open("/dev/piris", 0);
if (fd < 0)
{
printf("Open piris error!\n");
return -1;
}
if (*argv[1] == 'a')
{
if (StrToNumber(argv[2], (unsigned int*)&piris_pos))
{
close(fd);
return 0;
}
ret = ioctl(fd, PIRIS_SET_ACT_ARGS, &piris_pos);
}
else if (*argv[1] == 'o')
{
ret = ioctl(fd, PIRIS_SET_ORGIN, &piris_pos);
}
else if (*argv[1] == 's')
{
ret = ioctl(fd, PIRIS_GET_STATUS, &sta);
if (sta == PIRIS_BUSY)
{
printf("piris running!!!\n");
}
else
{
printf("piris idle!!\n");
}
}
else if (*argv[1] == 't')
{
if (StrToNumber(argv[2], (unsigned int*)&TestSample))
{
close(fd);
return 0;
}
switch (TestSample)
{
case 0:
i = 0;
step = 0;
toclose = 0;
while (i < 10000)
{
ioctl(fd, PIRIS_GET_STATUS, &sta);
if (sta != PIRIS_BUSY)
{
if (toclose == 1)
{
step = 92;
toclose = 0;
}
else
{
step = 0;
toclose = 1;
}
piris_pos = step;
ioctl(fd, PIRIS_SET_ACT_ARGS, &piris_pos);
i++;
}
}
break;
case 1:
step = 0;
toclose = 0;
while (step != 92)
{
ioctl(fd, PIRIS_GET_STATUS, &sta);
if (sta != PIRIS_BUSY)
{
if (toclose == 1)
{
step -= 19;
toclose = 0;
}
else
{
step += 20;
toclose = 1;
}
piris_pos = step;
ioctl(fd, PIRIS_SET_ACT_ARGS, &piris_pos);
}
}
break;
default:
break;
}
}
close(fd);
return ret;
}

View File

@ -0,0 +1,174 @@
/******************************************************************************
Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd.
******************************************************************************
File Name : strfunc.c
Version : Initial Draft
Author : Hisilicon multimedia software group
Created : 2005/7/27
Last Modified :
Description : String functions
Function List :
History :
1.Date : 2005/7/27
Author : T41030
Modification: Created file
******************************************************************************/
#include <stdio.h>
#include <ctype.h>
#include "strfunc.h"
static int atoul(char* str, unsigned int* pulValue);
static int atoulx(char* str, unsigned int* pulValue);
/*****************************************************************************
Prototype : StrToNumber
Description : 10/16
Input args : IN CHAR *str
10,
16, 0x. ABCDE
Output args : U32* pulValue,
Return value : HI_RET HI_SUCCESS
HI_FAILURE
Calls : isdigit
Called By :
History :
1.Date : 2005710
Author : t41030
Modification : Created function
*****************************************************************************/
int StrToNumber(char* str , unsigned int* pulValue)
{
/*判断是否16进制的字符串*/
if ( *str == '0' && (*(str + 1) == 'x' || *(str + 1) == 'X') )
{
if (*(str + 2) == '\0')
{
return -1;
}
else
{
return atoulx(str + 2, pulValue);
}
}
else
{
return atoul(str, pulValue);
}
}
/*****************************************************************************
Prototype : atoul
Description : 10
Input args : IN CHAR *str 10
Output args : U32* pulValue,
Return value : HI_RET HI_SUCCESS
HI_FAILURE
Calls : isdigit
Called By :
History :
1.Date : 2005710
Author : t41030
Modification : Created function
*****************************************************************************/
static int atoul(char* str, unsigned int* pulValue)
{
unsigned int ulResult = 0;
while (*str)
{
unsigned char ch = toupper(*str);
if (isdigit(ch))
{
/*最大支持到0xFFFFFFFF(4294967295),
X * 10 + (*str)-48 <= 4294967295
X = 429496729 */
if ((ulResult < 429496729) || ((ulResult == 429496729) && (*str < '6')))
{
ulResult = ulResult * 10 + (*str) - 48;
}
else
{
*pulValue = ulResult;
return -1;
}
}
else
{
*pulValue = ulResult;
return -1;
}
str++;
}
*pulValue = ulResult;
return 0;
}
/*****************************************************************************
Prototype : atoulx
Description : 16160x
Input args : IN CHAR *str 16, 0x. ABCDE
Output args : U32* pulValue,
Return value : HI_RET HI_SUCCESS
HI_FAILURE
Calls : toupper
isdigit
Called By :
History :
1.Date : 2005710
Author : t41030
Modification : Created function
*****************************************************************************/
#define ASC2NUM(ch) (ch - '0')
#define HEXASC2NUM(ch) (ch - 'A' + 10)
int atoulx(char* str, unsigned int* pulValue)
{
unsigned int ulResult = 0;
unsigned char ch;
while (*str)
{
ch = toupper(*str);
if (isdigit(ch) || ((ch >= 'A') && (ch <= 'F' )))
{
if (ulResult < 0x10000000)
{
ulResult = (ulResult << 4) + ((ch <= '9') ? (ASC2NUM(ch)) : (HEXASC2NUM(ch)));
}
else
{
*pulValue = ulResult;
return -1;
}
}
else
{
*pulValue = ulResult;
return -1;
}
str++;
}
*pulValue = ulResult;
return 0;
}

View File

@ -0,0 +1,44 @@
/******************************************************************************
Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd.
******************************************************************************
File Name : strfunc.h
Version : Initial Draft
Author : Hisilicon multimedia software group
Created : 2005/7/27
Last Modified :
Description : strfunc.c header file
Function List :
History :
1.Date : 2005/7/27
Author : T41030
Modification: Created file
******************************************************************************/
#ifndef __STRFUNC_H__
#define __STRFUNC_H__
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* __cplusplus */
#define STRFMT_ADDR32 "%#010lX"
#define STRFMT_ADDR32_2 "0x%08lX"
extern int StrToNumber(char* str , unsigned int* ulValue);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */
#endif /* __STRFUNC_H__ */

View File

@ -0,0 +1 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.ko := arm-hisiv300-linux-ld -EL -r -T /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/scripts/module-common.lds --build-id -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.ko /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.o

View File

@ -0,0 +1,345 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.o := arm-hisiv300-linux-gcc -Wp,-MD,/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/.pwm.mod.o.d -nostdinc -isystem /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include -I/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-hi3518ev200/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -marm -fno-dwarf2-cfi-asm -fno-aggressive-loop-optimizations -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/home/pub/temp/platform_ipc/mpp/release/hi3518e/include -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(pwm.mod)" -D"KBUILD_MODNAME=KBUILD_STR(pwm)" -DMODULE -c -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.c
source_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.o := /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.c
deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.o := \
$(wildcard include/config/module/unload.h) \
include/linux/module.h \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/modules.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/debug/set/module/ronx.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/types.h \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/types.h \
include/asm-generic/int-ll64.h \
arch/arm/include/generated/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/linux/posix_types.h \
include/linux/stddef.h \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
include/linux/compiler-gcc4.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/posix_types.h \
include/asm-generic/posix_types.h \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
include/linux/const.h \
include/linux/stat.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/ring/buffer.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/compaction.h) \
include/linux/sysinfo.h \
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include/stdarg.h \
include/linux/linkage.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/linkage.h \
include/linux/bitops.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bitops.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
include/linux/typecheck.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irqflags.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ptrace.h \
$(wildcard include/config/cpu/endian/be8.h) \
$(wildcard include/config/arm/thumb.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hwcap.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/le.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/linux/swab.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/swab.h \
include/linux/byteorder/generic.h \
include/asm-generic/bitops/ext2-atomic-setbit.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/printk.h \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/init.h \
$(wildcard include/config/hotplug.h) \
include/linux/dynamic_debug.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/div64.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/compiler.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/thumb2/kernel.h) \
$(wildcard include/config/debug/bugverbose.h) \
$(wildcard include/config/arm/lpae.h) \
include/asm-generic/bug.h \
$(wildcard include/config/generic/bug/relative/pointers.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cache.h \
$(wildcard include/config/arm/l1/cache/shift.h) \
$(wildcard include/config/aeabi.h) \
include/linux/seqlock.h \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/preempt.h \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/preempt/notifiers.h) \
include/linux/thread_info.h \
$(wildcard include/config/compat.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/thread_info.h \
$(wildcard include/config/arm/thumbee.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fpstate.h \
$(wildcard include/config/vfpv3.h) \
$(wildcard include/config/iwmmxt.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/domain.h \
$(wildcard include/config/io/36.h) \
$(wildcard include/config/cpu/use/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/barrier.h \
$(wildcard include/config/cpu/32v6k.h) \
$(wildcard include/config/cpu/xsc3.h) \
$(wildcard include/config/cpu/fa526.h) \
$(wildcard include/config/arch/has/barriers.h) \
$(wildcard include/config/arm/dma/mem/bufferable.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/outercache.h \
$(wildcard include/config/outer/cache/sync.h) \
$(wildcard include/config/outer/cache.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/memory.h \
$(wildcard include/config/need/mach/memory/h.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/page/offset.h) \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/dram/size.h) \
$(wildcard include/config/dram/base.h) \
$(wildcard include/config/have/tcm.h) \
$(wildcard include/config/arm/patch/phys/virt.h) \
$(wildcard include/config/phys/offset.h) \
$(wildcard include/config/hisi/snapshot/boot.h) \
arch/arm/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
arch/arm/mach-hi3518ev200/include/mach/memory.h \
include/asm-generic/memory_model.h \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/sparsemem/vmemmap.h) \
$(wildcard include/config/sparsemem.h) \
include/linux/stringify.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
include/linux/spinlock_types_up.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
$(wildcard include/config/prove/rcu.h) \
include/linux/rwlock_types.h \
include/linux/spinlock_up.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/processor.h \
$(wildcard include/config/have/hw/breakpoint.h) \
$(wildcard include/config/arm/errata/754327.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hw_breakpoint.h \
include/linux/rwlock.h \
include/linux/spinlock_api_up.h \
include/linux/atomic.h \
$(wildcard include/config/arch/has/atomic/or.h) \
$(wildcard include/config/generic/atomic64.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/atomic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cmpxchg.h \
$(wildcard include/config/cpu/sa1100.h) \
$(wildcard include/config/cpu/sa110.h) \
$(wildcard include/config/cpu/v6.h) \
include/asm-generic/cmpxchg-local.h \
include/asm-generic/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/asm-generic/atomic64.h \
include/linux/math64.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/pm/sleep.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/cgroup/mem/res/ctlr.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/nodes/span/other/nodes.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/current.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
include/linux/bitmap.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/string.h \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/generated/bounds.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/page.h \
$(wildcard include/config/cpu/copy/v3.h) \
$(wildcard include/config/cpu/copy/v4wt.h) \
$(wildcard include/config/cpu/copy/v4wb.h) \
$(wildcard include/config/cpu/copy/feroceon.h) \
$(wildcard include/config/cpu/copy/fa.h) \
$(wildcard include/config/cpu/xscale.h) \
$(wildcard include/config/cpu/copy/v6.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/glue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/pgtable-2level-types.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
include/linux/notifier.h \
include/linux/errno.h \
arch/arm/include/generated/asm/errno.h \
include/asm-generic/errno.h \
include/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/debug/mutexes.h) \
$(wildcard include/config/have/arch/mutex/cpu/relax.h) \
include/linux/mutex-debug.h \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/rwsem-spinlock.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/rcu/torture/test.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/tree/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tiny/preempt/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/preempt/rt.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
$(wildcard include/config/disable/obsolete/cpumask/functions.h) \
include/linux/bug.h \
include/linux/completion.h \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/rcutiny.h \
include/linux/topology.h \
$(wildcard include/config/sched/smt.h) \
$(wildcard include/config/sched/mc.h) \
$(wildcard include/config/sched/book.h) \
$(wildcard include/config/use/percpu/numa/node/id.h) \
include/linux/smp.h \
$(wildcard include/config/use/generic/smp/helpers.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/pfn.h \
arch/arm/include/generated/asm/percpu.h \
include/asm-generic/percpu.h \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/topology.h \
$(wildcard include/config/arm/cpu/topology.h) \
include/asm-generic/topology.h \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
include/linux/timer.h \
$(wildcard include/config/timer/stats.h) \
$(wildcard include/config/debug/objects/timers.h) \
include/linux/ktime.h \
$(wildcard include/config/ktime/scalar.h) \
include/linux/jiffies.h \
include/linux/timex.h \
include/linux/param.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/param.h \
$(wildcard include/config/hz.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/timex.h \
arch/arm/mach-hi3518ev200/include/mach/timex.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/linux/elf.h \
include/linux/elf-em.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/elf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/user.h \
include/linux/kobject.h \
include/linux/sysfs.h \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/tracepoint.h \
include/linux/static_key.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/export.h \
$(wildcard include/config/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/module.h \
$(wildcard include/config/arm/unwind.h) \
include/linux/vermagic.h \
include/generated/utsrelease.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.o: $(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.o)
$(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.mod.o):

View File

@ -0,0 +1,445 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o := arm-hisiv300-linux-gcc -Wp,-MD,/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/.pwm.o.d -nostdinc -isystem /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include -I/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-hi3518ev200/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -marm -fno-dwarf2-cfi-asm -fno-aggressive-loop-optimizations -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/home/pub/temp/platform_ipc/mpp/release/hi3518e/include -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(pwm)" -D"KBUILD_MODNAME=KBUILD_STR(pwm)" -c -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.c
source_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o := /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.c
deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o := \
$(wildcard include/config/hisi/snapshot/boot.h) \
include/linux/module.h \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/modules.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/module/unload.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/debug/set/module/ronx.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/types.h \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/types.h \
include/asm-generic/int-ll64.h \
arch/arm/include/generated/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/linux/posix_types.h \
include/linux/stddef.h \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
include/linux/compiler-gcc4.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/posix_types.h \
include/asm-generic/posix_types.h \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
include/linux/const.h \
include/linux/stat.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/ring/buffer.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/compaction.h) \
include/linux/sysinfo.h \
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include/stdarg.h \
include/linux/linkage.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/linkage.h \
include/linux/bitops.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bitops.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
include/linux/typecheck.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irqflags.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ptrace.h \
$(wildcard include/config/cpu/endian/be8.h) \
$(wildcard include/config/arm/thumb.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hwcap.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/le.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/linux/swab.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/swab.h \
include/linux/byteorder/generic.h \
include/asm-generic/bitops/ext2-atomic-setbit.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/printk.h \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/init.h \
$(wildcard include/config/hotplug.h) \
include/linux/dynamic_debug.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/div64.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/compiler.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/thumb2/kernel.h) \
$(wildcard include/config/debug/bugverbose.h) \
$(wildcard include/config/arm/lpae.h) \
include/asm-generic/bug.h \
$(wildcard include/config/generic/bug/relative/pointers.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cache.h \
$(wildcard include/config/arm/l1/cache/shift.h) \
$(wildcard include/config/aeabi.h) \
include/linux/seqlock.h \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/preempt.h \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/preempt/notifiers.h) \
include/linux/thread_info.h \
$(wildcard include/config/compat.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/thread_info.h \
$(wildcard include/config/arm/thumbee.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fpstate.h \
$(wildcard include/config/vfpv3.h) \
$(wildcard include/config/iwmmxt.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/domain.h \
$(wildcard include/config/io/36.h) \
$(wildcard include/config/cpu/use/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/barrier.h \
$(wildcard include/config/cpu/32v6k.h) \
$(wildcard include/config/cpu/xsc3.h) \
$(wildcard include/config/cpu/fa526.h) \
$(wildcard include/config/arch/has/barriers.h) \
$(wildcard include/config/arm/dma/mem/bufferable.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/outercache.h \
$(wildcard include/config/outer/cache/sync.h) \
$(wildcard include/config/outer/cache.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/memory.h \
$(wildcard include/config/need/mach/memory/h.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/page/offset.h) \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/dram/size.h) \
$(wildcard include/config/dram/base.h) \
$(wildcard include/config/have/tcm.h) \
$(wildcard include/config/arm/patch/phys/virt.h) \
$(wildcard include/config/phys/offset.h) \
arch/arm/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
arch/arm/mach-hi3518ev200/include/mach/memory.h \
include/asm-generic/memory_model.h \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/sparsemem/vmemmap.h) \
$(wildcard include/config/sparsemem.h) \
include/linux/stringify.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
include/linux/spinlock_types_up.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
$(wildcard include/config/prove/rcu.h) \
include/linux/rwlock_types.h \
include/linux/spinlock_up.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/processor.h \
$(wildcard include/config/have/hw/breakpoint.h) \
$(wildcard include/config/arm/errata/754327.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hw_breakpoint.h \
include/linux/rwlock.h \
include/linux/spinlock_api_up.h \
include/linux/atomic.h \
$(wildcard include/config/arch/has/atomic/or.h) \
$(wildcard include/config/generic/atomic64.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/atomic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cmpxchg.h \
$(wildcard include/config/cpu/sa1100.h) \
$(wildcard include/config/cpu/sa110.h) \
$(wildcard include/config/cpu/v6.h) \
include/asm-generic/cmpxchg-local.h \
include/asm-generic/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/asm-generic/atomic64.h \
include/linux/math64.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/pm/sleep.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/cgroup/mem/res/ctlr.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/nodes/span/other/nodes.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/current.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
include/linux/bitmap.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/string.h \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/generated/bounds.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/page.h \
$(wildcard include/config/cpu/copy/v3.h) \
$(wildcard include/config/cpu/copy/v4wt.h) \
$(wildcard include/config/cpu/copy/v4wb.h) \
$(wildcard include/config/cpu/copy/feroceon.h) \
$(wildcard include/config/cpu/copy/fa.h) \
$(wildcard include/config/cpu/xscale.h) \
$(wildcard include/config/cpu/copy/v6.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/glue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/pgtable-2level-types.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
include/linux/notifier.h \
include/linux/errno.h \
arch/arm/include/generated/asm/errno.h \
include/asm-generic/errno.h \
include/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/debug/mutexes.h) \
$(wildcard include/config/have/arch/mutex/cpu/relax.h) \
include/linux/mutex-debug.h \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/rwsem-spinlock.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/rcu/torture/test.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/tree/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tiny/preempt/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/preempt/rt.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
$(wildcard include/config/disable/obsolete/cpumask/functions.h) \
include/linux/bug.h \
include/linux/completion.h \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/rcutiny.h \
include/linux/topology.h \
$(wildcard include/config/sched/smt.h) \
$(wildcard include/config/sched/mc.h) \
$(wildcard include/config/sched/book.h) \
$(wildcard include/config/use/percpu/numa/node/id.h) \
include/linux/smp.h \
$(wildcard include/config/use/generic/smp/helpers.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/pfn.h \
arch/arm/include/generated/asm/percpu.h \
include/asm-generic/percpu.h \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/topology.h \
$(wildcard include/config/arm/cpu/topology.h) \
include/asm-generic/topology.h \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
include/linux/timer.h \
$(wildcard include/config/timer/stats.h) \
$(wildcard include/config/debug/objects/timers.h) \
include/linux/ktime.h \
$(wildcard include/config/ktime/scalar.h) \
include/linux/jiffies.h \
include/linux/timex.h \
include/linux/param.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/param.h \
$(wildcard include/config/hz.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/timex.h \
arch/arm/mach-hi3518ev200/include/mach/timex.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/linux/elf.h \
include/linux/elf-em.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/elf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/user.h \
include/linux/kobject.h \
include/linux/sysfs.h \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/tracepoint.h \
include/linux/static_key.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/export.h \
$(wildcard include/config/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/module.h \
$(wildcard include/config/arm/unwind.h) \
include/linux/fcntl.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fcntl.h \
include/asm-generic/fcntl.h \
include/linux/delay.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/delay.h \
include/linux/proc_fs.h \
$(wildcard include/config/proc/fs.h) \
$(wildcard include/config/proc/devicetree.h) \
$(wildcard include/config/proc/kcore.h) \
include/linux/slab.h \
$(wildcard include/config/slab/debug.h) \
$(wildcard include/config/failslab.h) \
$(wildcard include/config/slub.h) \
$(wildcard include/config/slob.h) \
$(wildcard include/config/debug/slab.h) \
$(wildcard include/config/slab.h) \
include/linux/slub_def.h \
$(wildcard include/config/slub/stats.h) \
$(wildcard include/config/slub/debug.h) \
include/linux/kmemleak.h \
$(wildcard include/config/debug/kmemleak.h) \
include/linux/fs.h \
$(wildcard include/config/fs/posix/acl.h) \
$(wildcard include/config/security.h) \
$(wildcard include/config/quota.h) \
$(wildcard include/config/fsnotify.h) \
$(wildcard include/config/ima.h) \
$(wildcard include/config/epoll.h) \
$(wildcard include/config/debug/writecount.h) \
$(wildcard include/config/file/locking.h) \
$(wildcard include/config/auditsyscall.h) \
$(wildcard include/config/block.h) \
$(wildcard include/config/fs/xip.h) \
$(wildcard include/config/migration.h) \
include/linux/limits.h \
include/linux/ioctl.h \
arch/arm/include/generated/asm/ioctl.h \
include/asm-generic/ioctl.h \
include/linux/blk_types.h \
$(wildcard include/config/blk/dev/integrity.h) \
include/linux/kdev_t.h \
include/linux/dcache.h \
include/linux/rculist.h \
include/linux/rculist_bl.h \
include/linux/list_bl.h \
include/linux/bit_spinlock.h \
include/linux/path.h \
include/linux/radix-tree.h \
include/linux/prio_tree.h \
include/linux/pid.h \
include/linux/capability.h \
include/linux/semaphore.h \
include/linux/fiemap.h \
include/linux/shrinker.h \
include/linux/migrate_mode.h \
include/linux/quota.h \
$(wildcard include/config/quota/netlink/interface.h) \
include/linux/percpu_counter.h \
include/linux/dqblk_xfs.h \
include/linux/dqblk_v1.h \
include/linux/dqblk_v2.h \
include/linux/dqblk_qtree.h \
include/linux/nfs_fs_i.h \
include/linux/err.h \
include/linux/magic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/uaccess.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/unified.h \
$(wildcard include/config/arm/asm/unified.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/exec.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/switch_to.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system_info.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/system_misc.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/io.h \
$(wildcard include/config/need/mach/io/h.h) \
$(wildcard include/config/pcmcia/soc/common.h) \
$(wildcard include/config/pci.h) \
$(wildcard include/config/isa.h) \
$(wildcard include/config/pccard.h) \
include/asm-generic/pci_iomap.h \
$(wildcard include/config/no/generic/pci/ioport/map.h) \
$(wildcard include/config/generic/pci/iomap.h) \
arch/arm/mach-hi3518ev200/include/mach/io.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.h \
/home/pub/temp/platform_ipc/mpp/release/hi3518e/include/himedia.h \
include/linux/major.h \
include/linux/device.h \
$(wildcard include/config/debug/devres.h) \
$(wildcard include/config/devtmpfs.h) \
$(wildcard include/config/sysfs/deprecated.h) \
include/linux/ioport.h \
include/linux/klist.h \
include/linux/pm.h \
$(wildcard include/config/pm.h) \
$(wildcard include/config/pm/runtime.h) \
$(wildcard include/config/pm/clk.h) \
$(wildcard include/config/pm/generic/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/device.h \
$(wildcard include/config/dmabounce.h) \
$(wildcard include/config/iommu/api.h) \
$(wildcard include/config/arch/omap.h) \
include/linux/pm_wakeup.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o: $(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o)
$(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o):

View File

@ -0,0 +1,2 @@
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.ko
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/pwm/pwm.o

View File

@ -0,0 +1,20 @@
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../Makefile.param
include $(PARAM_FILE)
endif
obj-m := pwm.o
hi_pwm-y += pwm.o
EXTRA_CFLAGS += -I$(REL_INC)
EXTRA_CFLAGS += $(DRV_CFLAGS)
default:
$(CC) -g -Wall -o pwm_write pwm_write.c strfunc.c
$(CC) -g -Wall -o pwm_test pwm_test.c strfunc.c
@$(MAKE) -C $(LINUX_ROOT) M=$(PWD) modules
@rm -f *.o modules.* *.symvers *.mod.c
clean:
@make -C $(LINUX_ROOT) M=$(PWD) clean
@rm -f pwm_write pwm_test *.bak

441
device/mpp/extdrv/pwm/pwm.c Normal file
View File

@ -0,0 +1,441 @@
/* extdrv/interface/pwm.c
*
* Copyright (c) 2006 Hisilicon Co., Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program;
*
* History:
* 23-march-2011 create this file
*/
#include <linux/module.h>
#include <linux/errno.h>
#ifndef CONFIG_HISI_SNAPSHOT_BOOT
#include <linux/miscdevice.h>
#endif
#include <linux/fcntl.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/proc_fs.h>
#include <linux/workqueue.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/io.h>
#include "pwm.h"
#ifdef CONFIG_HISI_SNAPSHOT_BOOT
#include "himedia.h"
#endif
#define PWMI_ADRESS_BASE 0x20130000
void __iomem* reg_pwmI_base_va = 0;
#define HI_IO_PWMI_ADDRESS(x) (reg_pwmI_base_va + ((x)-(PWMI_ADRESS_BASE)))
//PWMI
#define PWM0_CFG_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0000)
#define PWM0_CFG_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0004)
#define PWM0_CFG_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0008)
#define PWM0_CTRL_REG HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x000C)
#define PWM0_STATE_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0010)
#define PWM0_STATE_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0014)
#define PWM0_STATE_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0018)
#define PWM1_CFG_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0020)
#define PWM1_CFG_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0024)
#define PWM1_CFG_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0028)
#define PWM1_CTRL_REG HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x002C)
#define PWM1_STATE_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0030)
#define PWM1_STATE_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0034)
#define PWM1_STATE_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0038)
#define PWM2_CFG_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0040)
#define PWM2_CFG_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0044)
#define PWM2_CFG_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0048)
#define PWM2_CTRL_REG HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x004C)
#define PWM2_STATE_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0050)
#define PWM2_STATE_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0054)
#define PWM2_STATE_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0058)
#define PWM3_CFG_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0060)
#define PWM3_CFG_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0064)
#define PWM3_CFG_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0068)
#define PWM3_CTRL_REG HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x006C)
#define PWM3_STATE_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0070)
#define PWM3_STATE_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0074)
#define PWM3_STATE_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x0078)
#define PWM4_CFG_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1000)
#define PWM4_CFG_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1004)
#define PWM4_CFG_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1008)
#define PWM4_CTRL_REG HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x100C)
#define PWM4_STATE_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1010)
#define PWM4_STATE_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1014)
#define PWM4_STATE_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1018)
#define PWM5_CFG_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1020)
#define PWM5_CFG_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1024)
#define PWM5_CFG_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1028)
#define PWM5_CTRL_REG HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x102C)
#define PWM5_STATE_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1030)
#define PWM5_STATE_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1034)
#define PWM5_STATE_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1038)
#define PWM6_CFG_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1040)
#define PWM6_CFG_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1044)
#define PWM6_CFG_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1048)
#define PWM6_CTRL_REG HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x104C)
#define PWM6_STATE_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1050)
#define PWM6_STATE_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1054)
#define PWM6_STATE_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1058)
#define PWM7_CFG_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1060)
#define PWM7_CFG_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1064)
#define PWM7_CFG_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1068)
#define PWM7_CTRL_REG HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x106C)
#define PWM7_STATE_REG0 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1070)
#define PWM7_STATE_REG1 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1074)
#define PWM7_STATE_REG2 HI_IO_PWMI_ADDRESS(PWMI_ADRESS_BASE + 0x1078)
#define PWM_WRITE_REG(Addr, Value) ((*(volatile unsigned int *)(Addr)) = (Value))
#define PWM_READ_REG(Addr) (*(volatile unsigned int *)(Addr))
//PWM
#define PWM_NUM_MAX 0x08
#define PWM_ENABLE 0x01
#define PWM_DISABLE 0x00
#ifdef CONFIG_HISI_SNAPSHOT_BOOT
#define DEV_NAME "pwm"
static struct himedia_device s_stPwmDevice;
#endif
static int PWM_DRV_Disable(unsigned char pwm_num)
{
if (pwm_num >= PWM_NUM_MAX)
{
printk("The pwm number is big than the max value!\n");
return -1;
}
switch (pwm_num)
{
case 0:
PWM_WRITE_REG(PWM0_CTRL_REG, PWM_DISABLE);
break;
case 1:
PWM_WRITE_REG(PWM1_CTRL_REG, PWM_DISABLE);
break;
case 2:
PWM_WRITE_REG(PWM2_CTRL_REG, PWM_DISABLE);
break;
case 3:
PWM_WRITE_REG(PWM3_CTRL_REG, PWM_DISABLE);
break;
case 4:
PWM_WRITE_REG(PWM4_CTRL_REG, PWM_DISABLE);
break;
case 5:
PWM_WRITE_REG(PWM5_CTRL_REG, PWM_DISABLE);
break;
case 6:
PWM_WRITE_REG(PWM6_CTRL_REG, PWM_DISABLE);
break;
case 7:
PWM_WRITE_REG(PWM7_CTRL_REG, PWM_DISABLE);
break;
default:
break;
}
return 0;
}
int PWM_DRV_Write(unsigned char pwm_num, unsigned short duty, unsigned short period, unsigned char enable)
{
if (pwm_num >= PWM_NUM_MAX)
{
printk("The pwm number is big than the max value!\n");
return -1;
}
if (enable)
{
switch (pwm_num)
{
case 0:
PWM_WRITE_REG(PWM0_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM0_CFG_REG0, period);
PWM_WRITE_REG(PWM0_CFG_REG1, duty);
PWM_WRITE_REG(PWM0_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM0_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMI0 state %x\n",PWM_READ_REG(PWM0_STATE_REG));
break;
case 1:
PWM_WRITE_REG(PWM1_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM1_CFG_REG0, period);
PWM_WRITE_REG(PWM1_CFG_REG1, duty);
PWM_WRITE_REG(PWM1_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM1_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMI1 state %x\n",PWM_READ_REG(PWM1_STATE_REG));
break;
case 2:
PWM_WRITE_REG(PWM2_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM2_CFG_REG0, period);
PWM_WRITE_REG(PWM2_CFG_REG1, duty);
PWM_WRITE_REG(PWM2_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM2_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMI2 state %x\n",PWM_READ_REG(PWM2_STATE_REG));
break;
case 3:
PWM_WRITE_REG(PWM3_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM3_CFG_REG0, period);
PWM_WRITE_REG(PWM3_CFG_REG1, duty);
PWM_WRITE_REG(PWM3_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM3_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMI3 state %x\n",PWM_READ_REG(PWM3_STATE_REG));
break;
case 4:
PWM_WRITE_REG(PWM4_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM4_CFG_REG0, period);
PWM_WRITE_REG(PWM4_CFG_REG1, duty);
PWM_WRITE_REG(PWM4_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM4_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMI4 state %x\n",PWM_READ_REG(PWM4_STATE_REG));
break;
case 5:
PWM_WRITE_REG(PWM5_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM5_CFG_REG0, period);
PWM_WRITE_REG(PWM5_CFG_REG1, duty);
PWM_WRITE_REG(PWM5_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM5_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMI5 state %x\n",PWM_READ_REG(PWM5_STATE_REG));
break;
case 6:
PWM_WRITE_REG(PWM6_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM6_CFG_REG0, period);
PWM_WRITE_REG(PWM6_CFG_REG1, duty);
PWM_WRITE_REG(PWM6_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM6_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMI6 state %x\n",PWM_READ_REG(PWM6_STATE_REG));
break;
case 7:
PWM_WRITE_REG(PWM7_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM7_CFG_REG0, period);
PWM_WRITE_REG(PWM7_CFG_REG1, duty);
PWM_WRITE_REG(PWM7_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM7_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMI7 state %x\n",PWM_READ_REG(PWM7_STATE_REG));
break;
default:
PWM_WRITE_REG(PWM0_CTRL_REG, PWM_DISABLE);
PWM_WRITE_REG(PWM0_CFG_REG0, period);
PWM_WRITE_REG(PWM0_CFG_REG1, duty);
PWM_WRITE_REG(PWM0_CFG_REG2, 10); //pwm output number
PWM_WRITE_REG(PWM0_CTRL_REG, (1 << 2 | PWM_ENABLE)); // keep the pwm always output;
//printk("The PWMII0 state %x\n",PWM_READ_REG(PWM0_STATE_REG));
break;
}
}
else
{
PWM_DRV_Disable(pwm_num);
}
return 0;
}
/* file operation */
int PWM_Open(struct inode* inode, struct file* file)
{
return 0 ;
}
int PWM_Close(struct inode* inode, struct file* file)
{
return 0;
}
static long PWM_Ioctl(struct file* file, unsigned int cmd, unsigned long arg)
{
PWM_DATA_S __user* argp = (PWM_DATA_S __user*)arg;
unsigned char PwmNum;
unsigned int Duty;
unsigned int Period;
unsigned char enable;
switch (cmd)
{
case PWM_CMD_WRITE:
{
PwmNum = argp->pwm_num;
Duty = argp->duty;
Period = argp->period;
enable = argp->enable;
PWM_DRV_Write(PwmNum, Duty, Period, enable);
break;
}
case PWM_CMD_READ:
{
break;
}
default:
{
printk("invalid ioctl command!\n");
return -ENOIOCTLCMD;
}
}
return 0 ;
}
#ifdef CONFIG_HISI_SNAPSHOT_BOOT
static int PWM_freeze(struct himedia_device* pdev)
{
printk(KERN_ALERT "%s %d\n", __FUNCTION__, __LINE__);
return 0;
}
static int PWM_restore(struct himedia_device* pdev)
{
printk(KERN_ALERT "%s %d\n", __FUNCTION__, __LINE__);
return 0;
}
#endif
static struct file_operations pwm_fops =
{
.owner = THIS_MODULE,
.unlocked_ioctl = PWM_Ioctl ,
.open = PWM_Open ,
.release = PWM_Close ,
};
#ifdef CONFIG_HISI_SNAPSHOT_BOOT
struct himedia_ops stPwmDrvOps =
{
.pm_freeze = PWM_freeze,
.pm_restore = PWM_restore
};
#else
static struct miscdevice pwm_dev =
{
.minor = MISC_DYNAMIC_MINOR,
.name = "pwm" ,
.fops = &pwm_fops,
};
#endif
/* module init and exit */
static int __init pwm_init(void)
{
int ret;
reg_pwmI_base_va = (void __iomem*)IO_ADDRESS(PWMI_ADRESS_BASE);
#ifdef CONFIG_HISI_SNAPSHOT_BOOT
snprintf(s_stPwmDevice.devfs_name, sizeof(s_stPwmDevice.devfs_name), DEV_NAME);
s_stPwmDevice.minor = HIMEDIA_DYNAMIC_MINOR;
s_stPwmDevice.fops = &pwm_fops;
s_stPwmDevice.drvops = &stPwmDrvOps;
s_stPwmDevice.owner = THIS_MODULE;
ret = himedia_register(&s_stPwmDevice);
if (ret)
{
printk("register i2c device failed with %#x!\n", ret);
return -1;
}
#else
ret = misc_register(&pwm_dev);
if (ret != 0)
{
printk("register i2c device failed with %#x!\n", ret);
return -1;
}
#endif
return 0;
}
static void __exit pwm_exit(void)
{
int i;
for (i = 0; i < PWM_NUM_MAX; i++)
{
PWM_DRV_Disable(i);
}
reg_pwmI_base_va = NULL;
#ifdef CONFIG_HISI_SNAPSHOT_BOOT
himedia_unregister(&s_stPwmDevice);
#else
misc_deregister(&pwm_dev);
#endif
}
module_init(pwm_init);
module_exit(pwm_exit);
MODULE_DESCRIPTION("PWM Driver");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Hisilicon");

View File

@ -0,0 +1,38 @@
#ifndef __HI_PWM_H__
#define __HI_PWM_H__
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* __cplusplus */
typedef struct hiPWM_DATA_S
{
unsigned char pwm_num; //0:PWM0,1:PWM1,2:PWM2,3:PWMII0,4:PWMII1,5:PWMII2
unsigned int duty;
unsigned int period;
unsigned char enable;
} PWM_DATA_S;
#define PWM_CMD_WRITE 0x01
#define PWM_CMD_READ 0x03
int PWM_DRV_Write(unsigned char pwm_num, unsigned short duty, unsigned short period, unsigned char enable);
//unsigned int PWM_DRV_Read(unsigned int reg_addr);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */
#endif /* __HI_PWM_H__ */

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,90 @@
#include <stdio.h>
#include <ctype.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include "strfunc.h"
#include "pwm.h"
int main(int argc , char* argv[])
{
int fd = -1;
int ret = 0;
int i = 0;
unsigned int PwmDirector;
unsigned int Period;
PWM_DATA_S stPwmData;
if (argc < 3)
{
printf("usage: %s <Director> <Period> sample: %s 0x56 0x0 0x28\n", argv[0], argv[0]);
return -1;
}
fd = open("/dev/pwm", 0);
if (fd < 0)
{
printf("Open pwm error!\n");
return -1;
}
if (StrToNumber(argv[1], &PwmDirector))
{
close(fd);
return 0;
}
if (StrToNumber(argv[2], &Period))
{
close(fd);
return 0;
}
printf("PWM_Director:0x%4x; Period:0x%4x.\n", PwmDirector, Period);
stPwmData.pwm_num = 0;
stPwmData.period = 1000;
stPwmData.enable = 1;
if (PwmDirector == 0)
{
stPwmData.duty = Period;
}
else
{
stPwmData.duty = 1;
}
//for(i = 0;i < Period;i++)
while (i < 10)
{
/*
if(PwmDirector == 0)
{
stPwmData.duty--;
}
else
{
stPwmData.duty++;
}
*/
stPwmData.duty = 420;
ret = ioctl(fd, PWM_CMD_WRITE, &stPwmData);
printf("ret :%d\n", ret);
usleep(66000);
stPwmData.duty = 610;
ret = ioctl(fd, PWM_CMD_WRITE, &stPwmData);
printf("ret :%d\n", ret);
usleep(66000);
i++;
}
//printf("device_addr:0x%2x; reg_addr:0x%2x; reg_value:0x%2x.\n", device_addr, reg_addr, reg_value);
close(fd);
return 0;
}

Binary file not shown.

View File

@ -0,0 +1,79 @@
#include <stdio.h>
#include <ctype.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include "strfunc.h"
#include "pwm.h"
int main(int argc , char* argv[])
{
int fd = -1;
int ret = 0;
unsigned int PwmNum;
unsigned int Duty;
unsigned int Period;
unsigned int enable;
PWM_DATA_S stPwmData;
if (argc < 5)
{
printf("usage: %s <PwmNum> <Duty> <Period> <enable>. sample: %s 0x56 0x0 0x28\n", argv[0], argv[0]);
return -1;
}
fd = open("/dev/pwm", 0);
if (fd < 0)
{
printf("Open pwm error!\n");
return -1;
}
if (StrToNumber(argv[1], &PwmNum))
{
close(fd);
return 0;
}
if (StrToNumber(argv[2], &Duty))
{
close(fd);
return 0;
}
if (StrToNumber(argv[3], &Period))
{
close(fd);
return 0;
}
if (StrToNumber(argv[4], &enable))
{
close(fd);
return 0;
}
printf("PWM_NUM:0x%4x; Duty:0x%4x; Period:0x%4x;enable:0x%4x.\n", PwmNum, Duty, Period, enable);
stPwmData.pwm_num = PwmNum;
stPwmData.duty = Duty;
stPwmData.period = Period;
stPwmData.enable = enable;
ret = ioctl(fd, PWM_CMD_WRITE, &stPwmData);
printf("ret :%d\n", ret);
//printf("device_addr:0x%2x; reg_addr:0x%2x; reg_value:0x%2x.\n", device_addr, reg_addr, reg_value);
close(fd);
return 0;
}

View File

@ -0,0 +1,172 @@
/******************************************************************************
Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd.
******************************************************************************
File Name : strfunc.c
Version : Initial Draft
Author : Hisilicon multimedia software group
Created : 2005/7/27
Last Modified :
Description : String functions
Function List :
History :
1.Date : 2005/7/27
Author : T41030
Modification: Created file
******************************************************************************/
#include <stdio.h>
#include <ctype.h>
#include "strfunc.h"
static int atoul(char* str, unsigned int* pulValue);
static int atoulx(char* str, unsigned int* pulValue);
/*****************************************************************************
Prototype : StrToNumber
Description : 10/16
Input args : IN CHAR *str
10,
16, 0x. ABCDE
Output args : U32* pulValue,
Return value : HI_RET HI_SUCCESS
HI_FAILURE
Calls : isdigit
Called By :
History :
1.Date : 2005710
Author : t41030
Modification : Created function
*****************************************************************************/
int StrToNumber(char* str , unsigned int* pulValue)
{
/*判断是否16进制的字符串*/
if ( *str == '0' && (*(str + 1) == 'x' || *(str + 1) == 'X') )
{
if (*(str + 2) == '\0')
{
return -1;
}
else
{
return atoulx(str + 2, pulValue);
}
}
else
{
return atoul(str, pulValue);
}
}
/*****************************************************************************
Prototype : atoul
Description : 10
Input args : IN CHAR *str 10
Output args : U32* pulValue,
Return value : HI_RET HI_SUCCESS
HI_FAILURE
Calls : isdigit
Called By :
History :
1.Date : 2005710
Author : t41030
Modification : Created function
*****************************************************************************/
static int atoul(char* str, unsigned int* pulValue)
{
unsigned int ulResult = 0;
while (*str)
{
if (isdigit((int)*str))
{
/*最大支持到0xFFFFFFFF(4294967295),
X * 10 + (*str)-48 <= 4294967295
X = 429496729 */
if ((ulResult < 429496729) || ((ulResult == 429496729) && (*str < '6')))
{
ulResult = ulResult * 10 + (*str) - 48;
}
else
{
*pulValue = ulResult;
return -1;
}
}
else
{
*pulValue = ulResult;
return -1;
}
str++;
}
*pulValue = ulResult;
return 0;
}
/*****************************************************************************
Prototype : atoulx
Description : 16160x
Input args : IN CHAR *str 16, 0x. ABCDE
Output args : U32* pulValue,
Return value : HI_RET HI_SUCCESS
HI_FAILURE
Calls : toupper
isdigit
Called By :
History :
1.Date : 2005710
Author : t41030
Modification : Created function
*****************************************************************************/
#define ASC2NUM(ch) (ch - '0')
#define HEXASC2NUM(ch) (ch - 'A' + 10)
int atoulx(char* str, unsigned int* pulValue)
{
unsigned int ulResult = 0;
unsigned char ch;
while (*str)
{
ch = toupper(*str);
if (isdigit(ch) || ((ch >= 'A') && (ch <= 'F' )))
{
if (ulResult < 0x10000000)
{
ulResult = (ulResult << 4) + ((ch <= '9') ? (ASC2NUM(ch)) : (HEXASC2NUM(ch)));
}
else
{
*pulValue = ulResult;
return -1;
}
}
else
{
*pulValue = ulResult;
return -1;
}
str++;
}
*pulValue = ulResult;
return 0;
}

View File

@ -0,0 +1,44 @@
/******************************************************************************
Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd.
******************************************************************************
File Name : strfunc.h
Version : Initial Draft
Author : Hisilicon multimedia software group
Created : 2005/7/27
Last Modified :
Description : strfunc.c header file
Function List :
History :
1.Date : 2005/7/27
Author : T41030
Modification: Created file
******************************************************************************/
#ifndef __STRFUNC_H__
#define __STRFUNC_H__
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* __cplusplus */
#define STRFMT_ADDR32 "%#010lX"
#define STRFMT_ADDR32_2 "0x%08lX"
extern int StrToNumber(char* str , unsigned int* ulValue);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */
#endif /* __STRFUNC_H__ */

View File

@ -0,0 +1 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.ko := arm-hisiv300-linux-ld -EL -r -T /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/scripts/module-common.lds --build-id -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.ko /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.o

View File

@ -0,0 +1,345 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.o := arm-hisiv300-linux-gcc -Wp,-MD,/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/.sensor_i2c.mod.o.d -nostdinc -isystem /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include -I/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-hi3518ev200/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -marm -fno-dwarf2-cfi-asm -fno-aggressive-loop-optimizations -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/home/pub/temp/platform_ipc/mpp/release/hi3518e/include -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(sensor_i2c.mod)" -D"KBUILD_MODNAME=KBUILD_STR(sensor_i2c)" -DMODULE -c -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.c
source_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.o := /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.c
deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.o := \
$(wildcard include/config/module/unload.h) \
include/linux/module.h \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/modules.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/debug/set/module/ronx.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/types.h \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/types.h \
include/asm-generic/int-ll64.h \
arch/arm/include/generated/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/linux/posix_types.h \
include/linux/stddef.h \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
include/linux/compiler-gcc4.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/posix_types.h \
include/asm-generic/posix_types.h \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
include/linux/const.h \
include/linux/stat.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/ring/buffer.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/compaction.h) \
include/linux/sysinfo.h \
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include/stdarg.h \
include/linux/linkage.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/linkage.h \
include/linux/bitops.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bitops.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
include/linux/typecheck.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irqflags.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ptrace.h \
$(wildcard include/config/cpu/endian/be8.h) \
$(wildcard include/config/arm/thumb.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hwcap.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/le.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/linux/swab.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/swab.h \
include/linux/byteorder/generic.h \
include/asm-generic/bitops/ext2-atomic-setbit.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/printk.h \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/init.h \
$(wildcard include/config/hotplug.h) \
include/linux/dynamic_debug.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/div64.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/compiler.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/thumb2/kernel.h) \
$(wildcard include/config/debug/bugverbose.h) \
$(wildcard include/config/arm/lpae.h) \
include/asm-generic/bug.h \
$(wildcard include/config/generic/bug/relative/pointers.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cache.h \
$(wildcard include/config/arm/l1/cache/shift.h) \
$(wildcard include/config/aeabi.h) \
include/linux/seqlock.h \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/preempt.h \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/preempt/notifiers.h) \
include/linux/thread_info.h \
$(wildcard include/config/compat.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/thread_info.h \
$(wildcard include/config/arm/thumbee.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fpstate.h \
$(wildcard include/config/vfpv3.h) \
$(wildcard include/config/iwmmxt.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/domain.h \
$(wildcard include/config/io/36.h) \
$(wildcard include/config/cpu/use/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/barrier.h \
$(wildcard include/config/cpu/32v6k.h) \
$(wildcard include/config/cpu/xsc3.h) \
$(wildcard include/config/cpu/fa526.h) \
$(wildcard include/config/arch/has/barriers.h) \
$(wildcard include/config/arm/dma/mem/bufferable.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/outercache.h \
$(wildcard include/config/outer/cache/sync.h) \
$(wildcard include/config/outer/cache.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/memory.h \
$(wildcard include/config/need/mach/memory/h.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/page/offset.h) \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/dram/size.h) \
$(wildcard include/config/dram/base.h) \
$(wildcard include/config/have/tcm.h) \
$(wildcard include/config/arm/patch/phys/virt.h) \
$(wildcard include/config/phys/offset.h) \
$(wildcard include/config/hisi/snapshot/boot.h) \
arch/arm/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
arch/arm/mach-hi3518ev200/include/mach/memory.h \
include/asm-generic/memory_model.h \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/sparsemem/vmemmap.h) \
$(wildcard include/config/sparsemem.h) \
include/linux/stringify.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
include/linux/spinlock_types_up.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
$(wildcard include/config/prove/rcu.h) \
include/linux/rwlock_types.h \
include/linux/spinlock_up.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/processor.h \
$(wildcard include/config/have/hw/breakpoint.h) \
$(wildcard include/config/arm/errata/754327.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hw_breakpoint.h \
include/linux/rwlock.h \
include/linux/spinlock_api_up.h \
include/linux/atomic.h \
$(wildcard include/config/arch/has/atomic/or.h) \
$(wildcard include/config/generic/atomic64.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/atomic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cmpxchg.h \
$(wildcard include/config/cpu/sa1100.h) \
$(wildcard include/config/cpu/sa110.h) \
$(wildcard include/config/cpu/v6.h) \
include/asm-generic/cmpxchg-local.h \
include/asm-generic/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/asm-generic/atomic64.h \
include/linux/math64.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/pm/sleep.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/cgroup/mem/res/ctlr.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/nodes/span/other/nodes.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/current.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
include/linux/bitmap.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/string.h \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/generated/bounds.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/page.h \
$(wildcard include/config/cpu/copy/v3.h) \
$(wildcard include/config/cpu/copy/v4wt.h) \
$(wildcard include/config/cpu/copy/v4wb.h) \
$(wildcard include/config/cpu/copy/feroceon.h) \
$(wildcard include/config/cpu/copy/fa.h) \
$(wildcard include/config/cpu/xscale.h) \
$(wildcard include/config/cpu/copy/v6.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/glue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/pgtable-2level-types.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
include/linux/notifier.h \
include/linux/errno.h \
arch/arm/include/generated/asm/errno.h \
include/asm-generic/errno.h \
include/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/debug/mutexes.h) \
$(wildcard include/config/have/arch/mutex/cpu/relax.h) \
include/linux/mutex-debug.h \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/rwsem-spinlock.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/rcu/torture/test.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/tree/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tiny/preempt/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/preempt/rt.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
$(wildcard include/config/disable/obsolete/cpumask/functions.h) \
include/linux/bug.h \
include/linux/completion.h \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/rcutiny.h \
include/linux/topology.h \
$(wildcard include/config/sched/smt.h) \
$(wildcard include/config/sched/mc.h) \
$(wildcard include/config/sched/book.h) \
$(wildcard include/config/use/percpu/numa/node/id.h) \
include/linux/smp.h \
$(wildcard include/config/use/generic/smp/helpers.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/pfn.h \
arch/arm/include/generated/asm/percpu.h \
include/asm-generic/percpu.h \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/topology.h \
$(wildcard include/config/arm/cpu/topology.h) \
include/asm-generic/topology.h \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
include/linux/timer.h \
$(wildcard include/config/timer/stats.h) \
$(wildcard include/config/debug/objects/timers.h) \
include/linux/ktime.h \
$(wildcard include/config/ktime/scalar.h) \
include/linux/jiffies.h \
include/linux/timex.h \
include/linux/param.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/param.h \
$(wildcard include/config/hz.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/timex.h \
arch/arm/mach-hi3518ev200/include/mach/timex.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/linux/elf.h \
include/linux/elf-em.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/elf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/user.h \
include/linux/kobject.h \
include/linux/sysfs.h \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/tracepoint.h \
include/linux/static_key.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/export.h \
$(wildcard include/config/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/module.h \
$(wildcard include/config/arm/unwind.h) \
include/linux/vermagic.h \
include/generated/utsrelease.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.o: $(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.o)
$(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.mod.o):

View File

@ -0,0 +1,504 @@
cmd_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o := arm-hisiv300-linux-gcc -Wp,-MD,/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/.sensor_i2c.o.d -nostdinc -isystem /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include -I/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-hi3518ev200/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -marm -fno-dwarf2-cfi-asm -fno-aggressive-loop-optimizations -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/home/pub/temp/platform_ipc/mpp/release/hi3518e/include -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(sensor_i2c)" -D"KBUILD_MODNAME=KBUILD_STR(sensor_i2c)" -c -o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.c
source_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o := /home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.c
deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o := \
include/linux/init.h \
$(wildcard include/config/modules.h) \
$(wildcard include/config/hotplug.h) \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
include/linux/compiler-gcc4.h \
include/linux/types.h \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/types.h \
include/asm-generic/int-ll64.h \
arch/arm/include/generated/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/linux/posix_types.h \
include/linux/stddef.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/posix_types.h \
include/asm-generic/posix_types.h \
include/linux/module.h \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/module/unload.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/debug/set/module/ronx.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
include/linux/const.h \
include/linux/stat.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/ring/buffer.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/compaction.h) \
include/linux/sysinfo.h \
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/include/stdarg.h \
include/linux/linkage.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/linkage.h \
include/linux/bitops.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bitops.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
include/linux/typecheck.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/irqflags.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ptrace.h \
$(wildcard include/config/cpu/endian/be8.h) \
$(wildcard include/config/arm/thumb.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hwcap.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/le.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/linux/swab.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/swab.h \
include/linux/byteorder/generic.h \
include/asm-generic/bitops/ext2-atomic-setbit.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/printk.h \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/dynamic_debug.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/div64.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/compiler.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/thumb2/kernel.h) \
$(wildcard include/config/debug/bugverbose.h) \
$(wildcard include/config/arm/lpae.h) \
include/asm-generic/bug.h \
$(wildcard include/config/generic/bug/relative/pointers.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cache.h \
$(wildcard include/config/arm/l1/cache/shift.h) \
$(wildcard include/config/aeabi.h) \
include/linux/seqlock.h \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/preempt.h \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/preempt/notifiers.h) \
include/linux/thread_info.h \
$(wildcard include/config/compat.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/thread_info.h \
$(wildcard include/config/arm/thumbee.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/fpstate.h \
$(wildcard include/config/vfpv3.h) \
$(wildcard include/config/iwmmxt.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/domain.h \
$(wildcard include/config/io/36.h) \
$(wildcard include/config/cpu/use/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/barrier.h \
$(wildcard include/config/cpu/32v6k.h) \
$(wildcard include/config/cpu/xsc3.h) \
$(wildcard include/config/cpu/fa526.h) \
$(wildcard include/config/arch/has/barriers.h) \
$(wildcard include/config/arm/dma/mem/bufferable.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/outercache.h \
$(wildcard include/config/outer/cache/sync.h) \
$(wildcard include/config/outer/cache.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/memory.h \
$(wildcard include/config/need/mach/memory/h.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/page/offset.h) \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/dram/size.h) \
$(wildcard include/config/dram/base.h) \
$(wildcard include/config/have/tcm.h) \
$(wildcard include/config/arm/patch/phys/virt.h) \
$(wildcard include/config/phys/offset.h) \
$(wildcard include/config/hisi/snapshot/boot.h) \
arch/arm/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
arch/arm/mach-hi3518ev200/include/mach/memory.h \
include/asm-generic/memory_model.h \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/sparsemem/vmemmap.h) \
$(wildcard include/config/sparsemem.h) \
include/linux/stringify.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
include/linux/spinlock_types_up.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
$(wildcard include/config/prove/rcu.h) \
include/linux/rwlock_types.h \
include/linux/spinlock_up.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/processor.h \
$(wildcard include/config/have/hw/breakpoint.h) \
$(wildcard include/config/arm/errata/754327.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/hw_breakpoint.h \
include/linux/rwlock.h \
include/linux/spinlock_api_up.h \
include/linux/atomic.h \
$(wildcard include/config/arch/has/atomic/or.h) \
$(wildcard include/config/generic/atomic64.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/atomic.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/cmpxchg.h \
$(wildcard include/config/cpu/sa1100.h) \
$(wildcard include/config/cpu/sa110.h) \
$(wildcard include/config/cpu/v6.h) \
include/asm-generic/cmpxchg-local.h \
include/asm-generic/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/asm-generic/atomic64.h \
include/linux/math64.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/pm/sleep.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/cgroup/mem/res/ctlr.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/nodes/span/other/nodes.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/current.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
include/linux/bitmap.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/string.h \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/generated/bounds.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/page.h \
$(wildcard include/config/cpu/copy/v3.h) \
$(wildcard include/config/cpu/copy/v4wt.h) \
$(wildcard include/config/cpu/copy/v4wb.h) \
$(wildcard include/config/cpu/copy/feroceon.h) \
$(wildcard include/config/cpu/copy/fa.h) \
$(wildcard include/config/cpu/xscale.h) \
$(wildcard include/config/cpu/copy/v6.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/glue.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/pgtable-2level-types.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
include/linux/notifier.h \
include/linux/errno.h \
arch/arm/include/generated/asm/errno.h \
include/asm-generic/errno.h \
include/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/debug/mutexes.h) \
$(wildcard include/config/have/arch/mutex/cpu/relax.h) \
include/linux/mutex-debug.h \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/rwsem-spinlock.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/rcu/torture/test.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/tree/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tiny/preempt/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/preempt/rt.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
$(wildcard include/config/disable/obsolete/cpumask/functions.h) \
include/linux/bug.h \
include/linux/completion.h \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/rcutiny.h \
include/linux/topology.h \
$(wildcard include/config/sched/smt.h) \
$(wildcard include/config/sched/mc.h) \
$(wildcard include/config/sched/book.h) \
$(wildcard include/config/use/percpu/numa/node/id.h) \
include/linux/smp.h \
$(wildcard include/config/use/generic/smp/helpers.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/pfn.h \
arch/arm/include/generated/asm/percpu.h \
include/asm-generic/percpu.h \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/topology.h \
$(wildcard include/config/arm/cpu/topology.h) \
include/asm-generic/topology.h \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
include/linux/timer.h \
$(wildcard include/config/timer/stats.h) \
$(wildcard include/config/debug/objects/timers.h) \
include/linux/ktime.h \
$(wildcard include/config/ktime/scalar.h) \
include/linux/jiffies.h \
include/linux/timex.h \
include/linux/param.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/param.h \
$(wildcard include/config/hz.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/timex.h \
arch/arm/mach-hi3518ev200/include/mach/timex.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/linux/elf.h \
include/linux/elf-em.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/elf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/user.h \
include/linux/kobject.h \
include/linux/sysfs.h \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/tracepoint.h \
include/linux/static_key.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/export.h \
$(wildcard include/config/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/module.h \
$(wildcard include/config/arm/unwind.h) \
include/linux/slab.h \
$(wildcard include/config/slab/debug.h) \
$(wildcard include/config/failslab.h) \
$(wildcard include/config/slub.h) \
$(wildcard include/config/slob.h) \
$(wildcard include/config/debug/slab.h) \
$(wildcard include/config/slab.h) \
include/linux/slub_def.h \
$(wildcard include/config/slub/stats.h) \
$(wildcard include/config/slub/debug.h) \
include/linux/kmemleak.h \
$(wildcard include/config/debug/kmemleak.h) \
include/linux/io.h \
$(wildcard include/config/has/ioport.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/io.h \
$(wildcard include/config/need/mach/io/h.h) \
$(wildcard include/config/pcmcia/soc/common.h) \
$(wildcard include/config/pci.h) \
$(wildcard include/config/isa.h) \
$(wildcard include/config/pccard.h) \
include/asm-generic/pci_iomap.h \
$(wildcard include/config/no/generic/pci/ioport/map.h) \
$(wildcard include/config/generic/pci/iomap.h) \
arch/arm/mach-hi3518ev200/include/mach/io.h \
include/linux/i2c.h \
$(wildcard include/config/i2c.h) \
$(wildcard include/config/i2c/boardinfo.h) \
include/linux/mod_devicetable.h \
include/linux/device.h \
$(wildcard include/config/debug/devres.h) \
$(wildcard include/config/devtmpfs.h) \
$(wildcard include/config/sysfs/deprecated.h) \
include/linux/ioport.h \
include/linux/klist.h \
include/linux/pm.h \
$(wildcard include/config/pm.h) \
$(wildcard include/config/pm/runtime.h) \
$(wildcard include/config/pm/clk.h) \
$(wildcard include/config/pm/generic/domains.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/device.h \
$(wildcard include/config/dmabounce.h) \
$(wildcard include/config/iommu/api.h) \
$(wildcard include/config/arch/omap.h) \
include/linux/pm_wakeup.h \
include/linux/sched.h \
$(wildcard include/config/sched/debug.h) \
$(wildcard include/config/no/hz.h) \
$(wildcard include/config/lockup/detector.h) \
$(wildcard include/config/detect/hung/task.h) \
$(wildcard include/config/core/dump/default/elf/headers.h) \
$(wildcard include/config/sched/autogroup.h) \
$(wildcard include/config/virt/cpu/accounting.h) \
$(wildcard include/config/bsd/process/acct.h) \
$(wildcard include/config/taskstats.h) \
$(wildcard include/config/audit.h) \
$(wildcard include/config/cgroups.h) \
$(wildcard include/config/inotify/user.h) \
$(wildcard include/config/fanotify.h) \
$(wildcard include/config/epoll.h) \
$(wildcard include/config/posix/mqueue.h) \
$(wildcard include/config/keys.h) \
$(wildcard include/config/perf/events.h) \
$(wildcard include/config/schedstats.h) \
$(wildcard include/config/task/delay/acct.h) \
$(wildcard include/config/fair/group/sched.h) \
$(wildcard include/config/rt/group/sched.h) \
$(wildcard include/config/cgroup/sched.h) \
$(wildcard include/config/blk/dev/io/trace.h) \
$(wildcard include/config/rcu/boost.h) \
$(wildcard include/config/compat/brk.h) \
$(wildcard include/config/generic/hardirqs.h) \
$(wildcard include/config/cc/stackprotector.h) \
$(wildcard include/config/sysvipc.h) \
$(wildcard include/config/auditsyscall.h) \
$(wildcard include/config/rt/mutexes.h) \
$(wildcard include/config/block.h) \
$(wildcard include/config/task/xacct.h) \
$(wildcard include/config/cpusets.h) \
$(wildcard include/config/futex.h) \
$(wildcard include/config/fault/injection.h) \
$(wildcard include/config/latencytop.h) \
$(wildcard include/config/function/graph/tracer.h) \
$(wildcard include/config/have/unstable/sched/clock.h) \
$(wildcard include/config/irq/time/accounting.h) \
$(wildcard include/config/proc/fs.h) \
$(wildcard include/config/cfs/bandwidth.h) \
$(wildcard include/config/stack/growsup.h) \
$(wildcard include/config/debug/stack/usage.h) \
$(wildcard include/config/mm/owner.h) \
include/linux/capability.h \
include/linux/mm_types.h \
$(wildcard include/config/split/ptlock/cpus.h) \
$(wildcard include/config/have/cmpxchg/double.h) \
$(wildcard include/config/have/aligned/struct/page.h) \
$(wildcard include/config/want/page/debug/flags.h) \
$(wildcard include/config/aio.h) \
$(wildcard include/config/mmu/notifier.h) \
$(wildcard include/config/transparent/hugepage.h) \
include/linux/auxvec.h \
arch/arm/include/generated/asm/auxvec.h \
include/asm-generic/auxvec.h \
include/linux/prio_tree.h \
include/linux/page-debug-flags.h \
$(wildcard include/config/page/poisoning.h) \
$(wildcard include/config/page/guard.h) \
$(wildcard include/config/page/debug/something/else.h) \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/mmu.h \
$(wildcard include/config/cpu/has/asid.h) \
arch/arm/include/generated/asm/cputime.h \
include/asm-generic/cputime.h \
include/linux/sem.h \
include/linux/ipc.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/ipcbuf.h \
include/asm-generic/ipcbuf.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/sembuf.h \
include/linux/signal.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/signal.h \
include/asm-generic/signal-defs.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/sigcontext.h \
arch/arm/include/generated/asm/siginfo.h \
include/asm-generic/siginfo.h \
include/linux/pid.h \
include/linux/proportions.h \
include/linux/percpu_counter.h \
include/linux/seccomp.h \
$(wildcard include/config/seccomp.h) \
include/linux/rculist.h \
include/linux/rtmutex.h \
$(wildcard include/config/debug/rt/mutexes.h) \
include/linux/plist.h \
$(wildcard include/config/debug/pi/list.h) \
include/linux/resource.h \
arch/arm/include/generated/asm/resource.h \
include/asm-generic/resource.h \
include/linux/hrtimer.h \
$(wildcard include/config/high/res/timers.h) \
$(wildcard include/config/timerfd.h) \
include/linux/timerqueue.h \
include/linux/task_io_accounting.h \
$(wildcard include/config/task/io/accounting.h) \
include/linux/latencytop.h \
include/linux/cred.h \
$(wildcard include/config/debug/credentials.h) \
$(wildcard include/config/security.h) \
$(wildcard include/config/user/ns.h) \
include/linux/key.h \
include/linux/selinux.h \
$(wildcard include/config/security/selinux.h) \
include/linux/llist.h \
$(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
include/linux/aio.h \
include/linux/aio_abi.h \
include/linux/uio.h \
include/linux/of.h \
$(wildcard include/config/sparc.h) \
$(wildcard include/config/of/dynamic.h) \
$(wildcard include/config/of.h) \
include/linux/delay.h \
/home/pub/osdrv/hi3518e/hi3518eV200_OSDRV_V1.0.1.0.B010_20150822-133543/opensource/kernel/linux-3.4.y/arch/arm/include/asm/delay.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/isp_ext.h \
/home/pub/temp/platform_ipc/mpp/release/hi3518e/include/hi_type.h \
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o: $(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o)
$(deps_/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o):

View File

@ -0,0 +1,2 @@
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.ko
/home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.o

View File

@ -0,0 +1,15 @@
ifeq ($(PARAM_FILE), )
PARAM_FILE:=../../Makefile.param
include $(PARAM_FILE)
endif
obj-m := sensor_i2c.o
hi_sensor_i2c-y := sensor_i2c.o
EXTRA_CFLAGS += -I$(REL_INC)
EXTRA_CFLAGS += $(DRV_CFLAGS)
all:
make -C $(LINUX_ROOT) M=$(PWD) modules
clean:
@make -C $(LINUX_ROOT) M=$(PWD) clean

View File

@ -0,0 +1,62 @@
/******************************************************************************
Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd.
******************************************************************************
File Name : isp_ext.h
Version : Initial Draft
Author : Hisilicon multimedia software group
Created : 2013/07/17
Description :
History :
1.Date : 2013/07/17
Author : n00168968
Modification: Created file
******************************************************************************/
#ifndef __ISP_EXT_H__
#define __ISP_EXT_H__
#include "hi_type.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* End of #ifdef __cplusplus */
typedef enum hiISP_BUS_TYPE_E
{
ISP_BUS_TYPE_I2C = 0,
ISP_BUS_TYPE_SSP,
ISP_BUS_TYPE_BUTT,
} ISP_BUS_TYPE_E;
typedef struct hiISP_BUS_CALLBACK_S
{
HI_S32 (*pfnISPWriteI2CData) (HI_U8 u8DevAddr, HI_U32 u32RegAddr,
HI_U32 u32RegAddrByteNum, HI_U32 u32Data, HI_U32 u32DataByteNum);
HI_S32 (*pfnISPWriteSSPData) (HI_U32 u32DevAddr, HI_U32 u32DevAddrByteNum,
HI_U32 u32RegAddr, HI_U32 u32RegAddrByteNum, HI_U32 u32Data, HI_U32 u32DataByteNum);
} ISP_BUS_CALLBACK_S;
typedef struct hiISP_EXPORT_FUNC_S
{
HI_S32 (*pfnISPRegisterBusCallBack) (HI_S32 IspDev, ISP_BUS_TYPE_E enType, ISP_BUS_CALLBACK_S* pstBusCb);
} ISP_EXPORT_FUNC_S;
extern ISP_EXPORT_FUNC_S g_stIspExpFunc;
#define CKFN_ISP_RegisterBusCallBack()\
(NULL != g_stIspExpFunc.pfnISPRegisterBusCallBack)
#define CALL_ISP_RegisterBusCallBack(IspDev,enType,pstBusCb)\
g_stIspExpFunc.pfnISPRegisterBusCallBack(IspDev,enType,pstBusCb)
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */
#endif

View File

@ -0,0 +1 @@
kernel//home/pub/temp/platform_ipc/mpp/extdrv/hi3518e/sensor_i2c/sensor_i2c.ko

View File

@ -0,0 +1,149 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/io.h>
#include <linux/i2c.h>
#include <linux/delay.h>
#include "isp_ext.h"
static struct i2c_board_info hi_info =
{
I2C_BOARD_INFO("sensor_i2c", 0x6c),
};
static struct i2c_client* sensor_client;
int hi_i2c_read(unsigned char dev_addr, unsigned int reg_addr,
unsigned int reg_addr_num, unsigned int data_byte_num);
int hi_sensor_i2c_write(unsigned char dev_addr,
unsigned int reg_addr, unsigned int reg_addr_num,
unsigned int data, unsigned int data_byte_num)
{
unsigned char tmp_buf[8];
int ret = 0;
int idx = 0;
struct i2c_client* client = sensor_client;
sensor_client->addr = dev_addr;
/* reg_addr config */
tmp_buf[idx++] = reg_addr;
if (reg_addr_num == 2)
{
client->flags |= I2C_M_16BIT_REG;
tmp_buf[idx++] = (reg_addr >> 8);
}
else
{
client->flags &= ~I2C_M_16BIT_REG;
}
/* data config */
tmp_buf[idx++] = data;
if (data_byte_num == 2)
{
client->flags |= I2C_M_16BIT_DATA;
tmp_buf[idx++] = data >> 8;
}
else
{
client->flags &= ~I2C_M_16BIT_DATA;
}
ret = i2c_master_send(client, tmp_buf, idx);
return ret;
}
int hi_i2c_read(unsigned char dev_addr, unsigned int reg_addr,
unsigned int reg_addr_num, unsigned int data_byte_num)
{
unsigned char tmp_buf[8];
int ret = 0;
int ret_data = 0xFF;
int idx = 0;
struct i2c_client* client = sensor_client;
sensor_client->addr = dev_addr;
/* reg_addr config */
tmp_buf[idx++] = reg_addr;
if (reg_addr_num == 2)
{
client->flags |= I2C_M_16BIT_REG;
tmp_buf[idx++] = reg_addr >> 8;
}
else
{
client->flags &= ~I2C_M_16BIT_REG;
}
/* data config */
if (data_byte_num == 2)
{
client->flags |= I2C_M_16BIT_DATA;
}
else
{
client->flags &= ~I2C_M_16BIT_DATA;
}
ret = i2c_master_recv(client, tmp_buf, idx);
if (ret >= 0)
{
if (data_byte_num == 2)
{
ret_data = tmp_buf[0] | (tmp_buf[1] << 8);
}
else
{
ret_data = tmp_buf[0];
}
}
return ret_data;
}
static int hi_dev_isp_register(void)
{
ISP_BUS_CALLBACK_S stBusCb = {0};
stBusCb.pfnISPWriteI2CData = hi_sensor_i2c_write;
if (CKFN_ISP_RegisterBusCallBack())
{
CALL_ISP_RegisterBusCallBack(0, ISP_BUS_TYPE_I2C, &stBusCb);
}
else
{
printk("register i2c_write_callback to isp failed, hi_i2c init is failed!\n");
return -1;
}
return 0;
}
static int hi_dev_init(void)
{
struct i2c_adapter* i2c_adap;
// use i2c0
i2c_adap = i2c_get_adapter(0);
sensor_client = i2c_new_device(i2c_adap, &hi_info);
i2c_put_adapter(i2c_adap);
hi_dev_isp_register();
return 0;
}
static void hi_dev_exit(void)
{
i2c_unregister_device(sensor_client);
}
module_init(hi_dev_init);
module_exit(hi_dev_exit);
MODULE_LICENSE("GPL");

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More