/*****************************************************************************
*
* Filename:
* ---------
* sensor.c
*
* Project:
* --------
* DUMA
*
* Description:
* ------------
* Source code of Sensor driver
*
*
* Author:
* -------
* PC Huang (MTK02204)
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by CC/CQ. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* $Revision:$
* $Modtime:$
* $Log:$
*
* 04 26 2012 guoqing.liu
* [ALPS00271165] [FPB&ICS Done]modify sensor driver for MT6577
* modify for mt6577 sensor driver
*
* 01 04 2012 hao.wang
* [ALPS00109603] getsensorid func check in
* .
*
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by CC/CQ. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#include <linux/videodev2.h>
#include <linux/i2c.h>
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/cdev.h>
#include <linux/uaccess.h>
#include <linux/fs.h>
#include <asm/atomic.h>
#include <asm/system.h>
//#include <mach/mt6516_pll.h>
#include "kd_camera_hw.h"
#include "kd_imgsensor.h"
#include "kd_imgsensor_define.h"
#include "kd_imgsensor_errcode.h"
#include "kd_camera_feature.h"
#include "mt9v114yuv_Sensor.h"
#include "mt9v114yuv_Camera_Sensor_para.h"
#include "mt9v114yuv_CameraCustomized.h"
#define MT9V114YUV_DEBUG
#ifdef MT9V114YUV_DEBUG
#define SENSORDB(fmt, arg...) printk( "[MT9V114YUV] " fmt, ##arg)
#else
#define SENSORDB(x,...)
#endif
typedef struct
{
UINT16 iSensorVersion;
UINT16 iNightMode;
UINT16 iWB;
UINT16 iEffect;
UINT16 iEV;
UINT16 iBanding;
UINT16 iMirror;
UINT16 iFrameRate;
//0 :No-Fix FrameRate
//other:Fixed FrameRate
} MT9V114Status;
MT9V114Status MT9V114CurrentStatus;
static kal_bool MT9V114_AWB_ENABLE = KAL_TRUE;
static kal_bool MT9V114_AE_ENABLE = KAL_TRUE;
static DEFINE_SPINLOCK(mt9v114yuv_drv_lock);
extern int iReadRegI2C(u8 *a_pSendData , u16 a_sizeSendData, u8 * a_pRecvData, u16 a_sizeRecvData, u16 i2cId);
extern int iWriteRegI2C(u8 *a_pSendData , u16 a_sizeSendData, u16 i2cId);
kal_uint16 MT9V114_write_cmos_sensor(kal_uint32 addr, kal_uint32 para)
{
char puSendCmd[4] = {(char)(addr >> 8) , (char)(addr & 0xFF) ,(char)(para >> 8),(char)(para & 0xFF)};
iWriteRegI2C(puSendCmd , 4,MT9V114_WRITE_ID);
return 0;
}
kal_uint16 MT9V114_read_cmos_sensor(kal_uint32 addr)
{
kal_uint16 get_byte=0;
char puSendCmd[2] = {(char)(addr >> 8) , (char)(addr & 0xFF) };
iReadRegI2C(puSendCmd , 2, (u8*)&get_byte,2,MT9V114_WRITE_ID);
return ((get_byte<<8)&0xff00)|((get_byte>>8)&0x00ff);
}
/*******************************************************************************
* // Adapter for Winmo typedef
********************************************************************************/
#define WINMO_USE 0
#define Sleep(ms) mdelay(ms)
#define RETAILMSG(x,...)
MSDK_SENSOR_CONFIG_STRUCT MT9V114SensorConfigData;
static struct
{
kal_uint16 sensor_id;
kal_uint32 Digital_Zoom_Factor;
} MT9V114Sensor;
typedef struct _SENSOR_INIT_INFO
{
kal_uint16 address;
kal_uint16 data;
}SOCSensorInitInfo;
const SOCSensorInitInfo MT9V114SensorInitialSetting[]=
{
/*BEGIN*/
{0x098A, 0x0000},
{0x8082, 0x0194},
{0x8084, 0x0163},
{0x8086, 0x0107},
{0x8088, 0x01C7},
{0x808A, 0x01A1},
{0x808C, 0x022A},
{0x098E, 0x0000},
{0x0982, 0x0000},
{0x098A, 0x0000},
{0x8098, 0x3C3C},
{0x809A, 0x1300},
{0x809C, 0x0147},
{0x809E, 0xCC31},
{0x80A0, 0x8230},
{0x80A2, 0xED02},
{0x80A4, 0xCC00},
{0x80A6, 0x90ED},
{0x80A8, 0x00C6}, /////
{0x80AA, 0x04BD},
{0x80AC, 0xDDBD},
{0x80AE, 0x5FD7},
{0x80B0, 0x8E86},
{0x80B2, 0x90BD},
{0x80B4, 0x0330},
{0x80B6, 0xDD90},
{0x80B8, 0xCC92},
{0x80BA, 0x02BD},
{0x80BC, 0x0330},
{0x80BE, 0xDD92},
{0x80C0, 0xCC94},
{0x80C2, 0x04BD},
{0x80C4, 0x0330},
{0x80C6, 0xDD94},
{0x80C8, 0xCC96},
{0x80CA, 0x00BD},
{0x80CC, 0x0330},
{0x80CE, 0xDD96},
{0x80D0, 0xCC07},
{0x80D2, 0xFFDD},
{0x80D4, 0x8ECC},
{0x80D6, 0x3180},
{0x80D8, 0x30ED},
{0x80DA, 0x02CC},
{0x80DC, 0x008E},
{0x80DE, 0xED00},
{0x80E0, 0xC605},
{0x80E2, 0xBDDE},
{0x80E4, 0x13BD},
{0x80E6, 0x03FA},
{0x80E8, 0x3838},
{0x80EA, 0x3913},
{0x80EC, 0x0001},
{0x80EE, 0x0109},
{0x80F0, 0xBC01},
{0x80F2, 0x9D26},
{0x80F4, 0x0813},
{0x80F6, 0x0004},
{0x80F8, 0x0108},
{0x80FA, 0xFF02},
{0x80FC, 0xEF7E},
{0x80FE, 0xC278},
{0x8330, 0x364F},
{0x8332, 0x36CE},
{0x8334, 0x02F3},
{0x8336, 0x3AEC},
{0x8338, 0x00CE},
{0x833A, 0x0018},
{0x833C, 0xBDE4},
{0x833E, 0x5197},
{0x8340, 0x8F38},
{0x8342, 0xEC00},
{0x8344, 0x938E},
{0x8346, 0x2C02},
{0x8348, 0x4F5F},
{0x834A, 0x3900},
{0x83E4, 0x3C13},
{0x83E6, 0x0001},
{0x83E8, 0x0CCC},
{0x83EA, 0x3180},
{0x83EC, 0x30ED},
{0x83EE, 0x00CC},
{0x83F0, 0x87FF},
{0x83F2, 0xBDDD},
{0x83F4, 0xF5BD},
{0x83F6, 0xC2A9},
{0x83F8, 0x3839},
{0x83FA, 0xFE02},
{0x83FC, 0xEF7E},
{0x83FE, 0x00EB},
{0x098E, 0x0000},
{0x098A, 0x0000},
{0x83E0, 0x0098},
{0x83E2, 0x03E4},
{0x098E, 0x0000},
{0x098E, 0x1000},
{0x300A, 0x01F9},
{0x300C, 0x02D6},
{0x3010, 0x0012},
{0x098e, 0x9803},
{0x9803, 0x0730}, /// 9803 = 0x07
{0xA06E, 0x0098},
{0xA070, 0x007E},
{0xA072, 0x1113},
//0xA073, 0x13 ,
{0xA074, 0x1416},
//0xA075, 0x16 ,
{0xA076, 0x0003},
{0xA078, 0x0004},
{0xA01A, 0x0003},
{0x8C00, 0x0201}, // ?
{0x3E22, 0x3307},
{0x3ECE, 0x4311},
{0x3ED0, 0x16AF},
{0x3640, 0x00F0},
{0x3642, 0x2667},
{0x3644, 0x0510},
{0x3646, 0x3CEC},
{0x3648, 0x830F},
{0x364A, 0x00F0},
{0x364C, 0x9625},
{0x364E, 0x696F},
{0x3650, 0x04CB},
{0x3652, 0xB36E},
{0x3654, 0x00B0},
{0x3656, 0x5B26},
{0x3658, 0x7BAF},
{0x365A, 0x1888},
{0x365C, 0x9D4F},
{0x365E, 0x0210},
{0x3660, 0x9729},
{0x3662, 0x0630},
{0x3664, 0x48CC},
{0x3666, 0x88CF},
{0x3680, 0x1F6A},
{0x3682, 0xCDE9},
{0x3684, 0x14EE},
{0x3686, 0x4CA8},
{0x3688, 0x95CE},
{0x368A, 0x168C},
{0x368C, 0x8ECC},
{0x368E, 0x5DEC},
{0x3690, 0x076D},
{0x3692, 0xCB29},
{0x3694, 0x62AA},
{0x3696, 0x83AC},
{0x3698, 0x2A8D},
{0x369A, 0x256D},
{0x369C, 0x754C},
{0x369E, 0x3808},
{0x36A0, 0x8B6B},
{0x36A2, 0x348E},
{0x36A4, 0x66EC},
{0x36A6, 0xB5EE},
{0x36C0, 0x5D0F},
{0x36C2, 0xB3CD},
{0x36C4, 0xE850},
{0x36C6, 0x304E},
{0x36C8, 0x2DF0},
{0x36CA, 0x776F},
{0x36CC, 0x0C6F},
{0x36CE, 0x9030},
{0x36D0, 0xA131},
{0x36D2, 0xAF30},
{0x36D4, 0x7EAF},
{0x36D6, 0x0D2F},
{0x36D8, 0x87F1},
{0x36DA, 0x9071},
{0x36DC, 0x6DAF},
{0x36DE, 0x5A2F},
{0x36E0, 0xC5EC},
{0x36E2, 0xE4F0},
{0x36E4, 0xEB6C},
{0x36E6, 0x582F},
{0x3700, 0x110E},
{0x3702, 0xA10F},
{0x3704, 0xDA70},
{0x3706, 0x2A91},
{0x3708, 0x3F92},
{0x370A, 0xB9EC},
{0x370C, 0x028E},
{0x370E, 0x058D},
{0x3710, 0xBBCC},
{0x3712, 0x0A30},
{0x3714, 0x044B},
{0x3716, 0x294E},
{0x3718, 0x31CE},
{0x371A, 0xBEEF},
{0x371C, 0x9E11},
{0x371E, 0x0EEE},
{0x3720, 0xEECE},
{0x3722, 0x8271},
{0x3724, 0x01F1},
{0x3726, 0x4952},
{0x3740, 0xEF4E},
{0x3742, 0x5DAF},
{0x3744, 0x69D1},
{0x3746, 0xC7D2},
{0x3748, 0xAA33},
{0x374A, 0x9CF0},
{0x374C, 0x96B1},
{0x374E, 0x534F},
{0x3750, 0x16B3},
{0x3752, 0x6172},
{0x3754, 0xC7B0},
{0x3756, 0xA151},
{0x3758, 0x3951},
{0x375A, 0x1F73},
{0x375C, 0x1FD2},
{0x375E, 0xC76E},
{0x3760, 0x534E},
{0x3762, 0x3451},
{0x3764, 0xCD51},
{0x3766, 0x
没有合适的资源?快使用搜索试试~ 我知道了~
MT9V114 驱动 YUV
共4个文件
h:3个
c:1个
需积分: 5 2 下载量 72 浏览量
2023-03-09
15:24:26
上传
评论
收藏 11KB RAR 举报
温馨提示
MT9V114 驱动 YUV
资源推荐
资源详情
资源评论
收起资源包目录
mt9v114_yuv.rar (4个子文件)
mt9v114_yuv
mt9v114yuv_CameraCustomized.h 3KB
mt9v114yuv_Camera_Sensor_para.h 3KB
mt9v114yuv_Sensor.c 42KB
mt9v114yuv_Sensor.h 2KB
共 4 条
- 1
资源评论
diouyf
- 粉丝: 12
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功