2147 lines
80 KiB
C
2147 lines
80 KiB
C
/*
|
|
* Support for mt9d113 Camera Sensor.
|
|
*
|
|
* Copyright (c) 2012 Intel Corporation. All Rights Reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License version
|
|
* 2 as published by the Free Software Foundation.
|
|
*
|
|
* 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; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
* 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#ifndef __MT9D113_H__
|
|
#define __MT9D113_H__
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/types.h>
|
|
#include <linux/i2c.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/videodev2.h>
|
|
#include <linux/spinlock.h>
|
|
#include <media/v4l2-subdev.h>
|
|
#include <media/v4l2-device.h>
|
|
#include <media/v4l2-chip-ident.h>
|
|
#include <linux/v4l2-mediabus.h>
|
|
#include <media/media-entity.h>
|
|
#include <linux/atomisp_platform.h>
|
|
#include <linux/atomisp.h>
|
|
|
|
#define V4L2_IDENT_MT9D113 0x2580
|
|
|
|
#define MT9D113_FOCAL_LENGTH_NUM 439 /*4.39mm*/
|
|
#define MT9D113_FOCAL_LENGTH_DEM 100
|
|
#define MT9D113_F_NUMBER_DEFAULT_NUM 24
|
|
#define MT9D113_F_NUMBER_DEM 10
|
|
/*
|
|
* focal length bits definition:
|
|
* bits 31-16: numerator, bits 15-0: denominator
|
|
*/
|
|
#define MT9D113_FOCAL_LENGTH_DEFAULT 0xD00064
|
|
|
|
/*
|
|
* current f-number bits definition:
|
|
* bits 31-16: numerator, bits 15-0: denominator
|
|
*/
|
|
#define MT9D113_F_NUMBER_DEFAULT 0x18000a
|
|
|
|
/*
|
|
* f-number range bits definition:
|
|
* bits 31-24: max f-number numerator
|
|
* bits 23-16: max f-number denominator
|
|
* bits 15-8: min f-number numerator
|
|
* bits 7-0: min f-number denominator
|
|
*/
|
|
#define MT9D113_F_NUMBER_RANGE 0x180a180a
|
|
|
|
#define MT9D113_COL_EFF_MASK 0x7
|
|
#define MT9D113_COL_EFF_DISABLE 0x0
|
|
#define MT9D113_COL_EFF_MONO 0x1
|
|
#define MT9D113_COL_EFF_SEPIA 0x2
|
|
#define MT9D113_COL_EFF_NEG 0x3
|
|
|
|
#define MT9D113_BIT_FD_MANUAL 7
|
|
#define MT9D113_MASK_FD_MANUAL (1 << MT9D113_BIT_FD_MANUAL)
|
|
enum {
|
|
MT9D113_FD_MANUAL_DIS,
|
|
MT9D113_FD_MANUAL_EN,
|
|
};
|
|
#define MT9D113_BIT_FD_SET 6
|
|
#define MT9D113_MASK_FD_SET (1 << MT9D113_BIT_FD_SET)
|
|
enum {
|
|
MT9D113_FD_60HZ,
|
|
MT9D113_FD_50HZ,
|
|
};
|
|
|
|
#define MT9D113_REG_CHIPID 0x0
|
|
#define MT9D113_REG_PLL_DIV 0x0010
|
|
#define MT9D113_REG_PLL_P 0x0012
|
|
#define MT9D113_REG_PLL_CTRL 0x0014
|
|
#define MT9D113_REG_STBY_CTRL 0x0018
|
|
#define MT9D113_REG_MISC_CTRL 0x001a
|
|
#define MT9D113_REG_STBY_MODE 0x0028
|
|
|
|
#define MT9D113_REG_MIPI_CTRL 0x3400
|
|
#define MT9D113_REG_MIPI_STAT 0x3402
|
|
|
|
#define MT9D113_STBY_MODE_1 0x0
|
|
|
|
#define MIPI_STAT_BIT_MIPI_STBY 0
|
|
#define MIPI_STAT_MASK_MIPI_STBY (1 << MIPI_STAT_BIT_MIPI_STBY)
|
|
|
|
#define MIPI_CTRL_BIT_MIPI_STBY 1
|
|
#define MIPI_CTRL_MASK_MIPI_STBY (1 << MIPI_CTRL_BIT_MIPI_STBY)
|
|
|
|
#define MIPI_CTRL_BIT_MIPI_EOF 4
|
|
#define MIPI_CTRL_MASK_MIPI_EOF (1 << MIPI_CTRL_BIT_MIPI_EOF)
|
|
|
|
#define STBY_CTRL_BIT_STBY_STAT 14
|
|
#define STBY_CTRL_MASK_STBY_STAT (1 << STBY_CTRL_BIT_STBY_STAT)
|
|
|
|
#define STBY_CTRL_BIT_STBY_REQ 0
|
|
#define STBY_CTRL_MASK_STBY_REQ (1 << STBY_CTRL_BIT_STBY_REQ)
|
|
|
|
#define PLL_CTRL_BIT_PLL_STAT 15
|
|
#define PLL_CTRL_MASK_PLL_STAT (1 << PLL_CTRL_BIT_PLL_STAT)
|
|
|
|
#define MISC_CTRL_BIT_EN_PARALL 9
|
|
#define MISC_CTRL_MASK_EN_PARALL (1 << MISC_CTRL_BIT_EN_PARALL)
|
|
|
|
#define MISC_CTRL_BIT_EN_MIPI_TX 3
|
|
#define MISC_CTRL_MASK_EN_MIPI_TX (1 << MISC_CTRL_BIT_EN_MIPI_TX)
|
|
|
|
|
|
#define STBY_CTRL_BIT_STOP_MCU 2
|
|
#define STBY_CTRL_MASK_STOP_MCU (1 << STBY_CTRL_BIT_STOP_MCU)
|
|
|
|
#define MT9D113_MCU_VAR_ADDR 0x098c
|
|
#define MT9D113_MCU_VAR_DATA0 0x0990
|
|
#define MT9D113_MCU_VAR_DATA1 0x0992
|
|
#define MT9D113_MCU_VAR_DATA2 0x0994
|
|
#define MT9D113_MCU_VAR_DATA3 0x0996
|
|
#define MT9D113_MCU_VAR_DATA4 0x0998
|
|
#define MT9D113_MCU_VAR_DATA5 0x099a
|
|
#define MT9D113_MCU_VAR_DATA6 0x099c
|
|
#define MT9D113_MCU_VAR_DATA7 0x099e
|
|
|
|
#define MT9D113_VAR_MON_ID_0 0xa024
|
|
#define MT9D113_VAR_SEQ_CMD 0xa103
|
|
#define SEQ_CMD_RUN 0x0
|
|
#define SEQ_CMD_REFRESH_MODE 0x0006
|
|
#define SEQ_CMD_REFRESH 0x0005
|
|
#define MT9D113_VAR_SEQ_STATE 0xa104
|
|
|
|
#define MT9D113_VAR_COL_EFF_A 0x2759
|
|
#define MT9D113_VAR_FD_MODE 0x2404
|
|
|
|
/* current integration time access */
|
|
#define MT9D113_VAR_INTEGRATION_TIME 0x2222
|
|
|
|
#define MT9D113_VAR_AE_MAX_INDEX 0xa20c
|
|
#define MT9D113_AE_MAX_INDEX_0 0x0003
|
|
#define MT9D113_AE_MAX_INDEX_1 0x000b
|
|
|
|
#define MT9D113_VAR_AE_GAIN 0xa21c
|
|
#define MT9D113_VAR_AE_D_GAIN 0x221f
|
|
|
|
/* #defines for register writes and register array processing */
|
|
#define MISENSOR_8BIT 1
|
|
#define MISENSOR_16BIT 2
|
|
#define MISENSOR_32BIT 4
|
|
|
|
#define MISENSOR_FWBURST0 0x80
|
|
#define MISENSOR_FWBURST1 0x81
|
|
#define MISENSOR_FWBURST4 0x84
|
|
#define MISENSOR_FWBURST 0x88
|
|
|
|
#define MISENSOR_TOK_TERM 0xf000 /* terminating token for reg list */
|
|
#define MISENSOR_TOK_DELAY 0xfe00 /* delay token for reg list */
|
|
#define MISENSOR_TOK_FWLOAD 0xfd00 /* token indicating load FW */
|
|
#define MISENSOR_TOK_POLL 0xfc00 /* token indicating poll instruction */
|
|
#define MISENSOR_TOK_RMW 0x0010 /* RMW operation */
|
|
#define MISENSOR_TOK_MASK 0xfff0
|
|
#define MISENSOR_AWB_STEADY (1<<0) /* awb steady */
|
|
#define MISENSOR_AE_READY (1<<3) /* ae status ready */
|
|
|
|
#define I2C_RETRY_COUNT 5
|
|
#define MSG_LEN_OFFSET 2
|
|
|
|
/* Resolution Table */
|
|
enum {
|
|
MT9D113_RES_QCIF,
|
|
MT9D113_RES_QVGA,
|
|
MT9D113_RES_CIF,
|
|
MT9D113_RES_VGA_WIDE,
|
|
MT9D113_RES_VGA,
|
|
MT9D113_RES_480P,
|
|
MT9D113_RES_SVGA,
|
|
MT9D113_RES_720P,
|
|
MT9D113_RES_1M,
|
|
MT9D113_RES_2M,
|
|
};
|
|
|
|
#define MT9D113_RES_2M_SIZE_H 1600
|
|
#define MT9D113_RES_2M_SIZE_V 1200
|
|
#define MT9D113_RES_1M_SIZE_H 1024
|
|
#define MT9D113_RES_1M_SIZE_V 768
|
|
#define MT9D113_RES_720P_SIZE_H 1280
|
|
#define MT9D113_RES_720P_SIZE_V 720
|
|
#define MT9D113_RES_SVGA_SIZE_H 800
|
|
#define MT9D113_RES_SVGA_SIZE_V 600
|
|
#define MT9D113_RES_480P_SIZE_H 768
|
|
#define MT9D113_RES_480P_SIZE_V 480
|
|
#define MT9D113_RES_VGA_SIZE_H 640
|
|
#define MT9D113_RES_VGA_SIZE_V 480
|
|
#define MT9D113_RES_VGA_WIDE_SIZE_V 360
|
|
#define MT9D113_RES_CIF_SIZE_H 352
|
|
#define MT9D113_RES_CIF_SIZE_V 288
|
|
#define MT9D113_RES_QVGA_SIZE_H 320
|
|
#define MT9D113_RES_QVGA_SIZE_V 240
|
|
#define MT9D113_RES_QCIF_SIZE_H 176
|
|
#define MT9D113_RES_QCIF_SIZE_V 144
|
|
|
|
/* completion status polling requirements, usage based on Aptina .INI Rev2 */
|
|
enum poll_reg {
|
|
NO_POLLING,
|
|
PRE_POLLING,
|
|
POST_POLLING,
|
|
};
|
|
/*
|
|
* struct misensor_reg - MI sensor register format
|
|
* @length: length of the register
|
|
* @reg: 16-bit offset to register
|
|
* @val: 8/16/32-bit register value
|
|
* Define a structure for sensor register initialization values
|
|
*/
|
|
struct misensor_reg {
|
|
u32 length;
|
|
u32 reg;
|
|
u32 val; /* value or for read/mod/write, AND mask */
|
|
u32 val2; /* optional; for rmw, OR mask */
|
|
};
|
|
|
|
struct regval_list {
|
|
u16 reg_num;
|
|
u8 value;
|
|
};
|
|
|
|
struct mt9d113_device {
|
|
struct v4l2_subdev sd;
|
|
struct media_pad pad;
|
|
struct v4l2_mbus_framefmt format;
|
|
|
|
struct camera_sensor_platform_data *platform_data;
|
|
int real_model_id;
|
|
unsigned int res;
|
|
int color_effect;
|
|
int run_mode;
|
|
int last_run_mode;
|
|
};
|
|
|
|
struct mt9d113_format_struct {
|
|
u8 *desc;
|
|
u32 pixelformat;
|
|
struct regval_list *regs;
|
|
};
|
|
|
|
struct mt9d113_res_struct {
|
|
u8 *desc;
|
|
int res;
|
|
int width;
|
|
int height;
|
|
int fps;
|
|
int skip_frames;
|
|
int row_time;
|
|
bool used;
|
|
struct regval_list *regs;
|
|
};
|
|
|
|
struct mt9d113_control {
|
|
struct v4l2_queryctrl qc;
|
|
int (*query)(struct v4l2_subdev *sd, s32 *value);
|
|
int (*tweak)(struct v4l2_subdev *sd, int value);
|
|
};
|
|
|
|
#define MT9D113_MAX_WRITE_BUF_SIZE 32
|
|
struct mt9d113_write_buffer {
|
|
u16 addr;
|
|
u8 data[MT9D113_MAX_WRITE_BUF_SIZE];
|
|
};
|
|
|
|
struct mt9d113_write_ctrl {
|
|
int index;
|
|
struct mt9d113_write_buffer buffer;
|
|
};
|
|
|
|
/*
|
|
* Modes supported by the mt9d113 driver.
|
|
* Please, keep them in ascending order.
|
|
*/
|
|
static struct mt9d113_res_struct mt9d113_res[] = {
|
|
{
|
|
.desc = "QCIF",
|
|
.res = MT9D113_RES_QCIF,
|
|
.width = 176,
|
|
.height = 144,
|
|
.fps = 30,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 48,
|
|
},
|
|
{
|
|
.desc = "QVGA",
|
|
.res = MT9D113_RES_QVGA,
|
|
.width = 320,
|
|
.height = 240,
|
|
.fps = 30,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 48,
|
|
},
|
|
{
|
|
.desc = "CIF",
|
|
.res = MT9D113_RES_CIF,
|
|
.width = 352,
|
|
.height = 288,
|
|
.fps = 30,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 48,
|
|
},
|
|
{
|
|
.desc = "VGA_WIDE",
|
|
.res = MT9D113_RES_VGA_WIDE,
|
|
.width = 640,
|
|
.height = 360,
|
|
.fps = 29,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 48,
|
|
},
|
|
{
|
|
.desc = "VGA",
|
|
.res = MT9D113_RES_VGA,
|
|
.width = 640,
|
|
.height = 480,
|
|
.fps = 30,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 48,
|
|
},
|
|
{
|
|
.desc = "SVGA",
|
|
.res = MT9D113_RES_SVGA,
|
|
.width = 800,
|
|
.height = 600,
|
|
.fps = 30,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 48,
|
|
},
|
|
{
|
|
.desc = "720p",
|
|
.res = MT9D113_RES_720P,
|
|
.width = 1280,
|
|
.height = 720,
|
|
.fps = 29,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 42,
|
|
},
|
|
{
|
|
.desc = "1M",
|
|
.res = MT9D113_RES_1M,
|
|
.width = 1024,
|
|
.height = 768,
|
|
.fps = 15,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 52,
|
|
},
|
|
{
|
|
.desc = "2M",
|
|
.res = MT9D113_RES_2M,
|
|
.width = 1600,
|
|
.height = 1200,
|
|
.fps = 10,
|
|
.used = 0,
|
|
.regs = NULL,
|
|
.skip_frames = 3,
|
|
.row_time = 52,
|
|
},
|
|
};
|
|
#define N_RES (ARRAY_SIZE(mt9d113_res))
|
|
|
|
static const struct i2c_device_id mt9d113_id[] = {
|
|
{"mt9d113", 0},
|
|
{}
|
|
};
|
|
|
|
/*
|
|
* Context A setting for 176x144
|
|
*
|
|
; Max Frame Time: 33.3333 msec
|
|
; Max Frame Clocks: 1413333.3 clocks (42.400 MHz)
|
|
; Pixel Clock: divided by 1
|
|
; Skip Mode: 2x cols, 2x rows, Bin Mode: Yes
|
|
; Horiz clks: 808 active + 1237 blank = 2045 total
|
|
; Vert rows: 608 active + 83 blank = 691 total
|
|
; Extra Delay: 238 clocks
|
|
;
|
|
; Actual Frame Clocks: 1413333 clocks
|
|
; Row Time: 48.231 usec / 2045 clocks
|
|
; Frame time: 33.333325 msec
|
|
; Frames per Sec: 30 fps
|
|
;
|
|
; 50Hz Flicker Period: 207.33 lines
|
|
; 60Hz Flicker Period: 172.78 lines
|
|
|
|
; hblank: 29.17us
|
|
; vblank: 4ms
|
|
*/
|
|
static struct misensor_reg const mt9d113_qcif_30_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00b0},/* = 176*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0090},/* = 144*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270d},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bd},/* = 1213*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064d},/* = 1613*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x046f},/* = 1135*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x005a},/* = 90*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x01be},/* = 446*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271d},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0131},/* = 305*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x02b3},/* = 691*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x07fd},/* = 2045*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272d},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x031f},/* = 799*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273d},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0257},/* = 599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274d},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222d},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2a},/* = 42*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2c},/* = 44*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x32},/* = 50*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x34},/* = 52*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00cf},/* = 207*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fd Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40d},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/*
|
|
* Context A setting for 352x288
|
|
*
|
|
; Max Frame Time: 33.3333 msec
|
|
; Max Frame Clocks: 1413333.3 clocks (42.400 MHz)
|
|
; Pixel Clock: divided by 1
|
|
; Skip Mode: 2x cols, 2x rows, Bin Mode: Yes
|
|
; Horiz clks: 808 active + 1237 blank = 2045 total
|
|
; Vert rows: 608 active + 83 blank = 691 total
|
|
; Extra Delay: 238 clocks
|
|
;
|
|
; Actual Frame Clocks: 1413333 clocks
|
|
; Row Time: 48.231 usec / 2045 clocks
|
|
; Frame time: 33.333325 msec
|
|
; Frames per Sec: 30 fps
|
|
;
|
|
; 50Hz Flicker Period: 207.33 lines
|
|
; 60Hz Flicker Period: 172.78 lines
|
|
|
|
; hblank: 29.17us
|
|
; vblank: 4ms
|
|
*/
|
|
static struct misensor_reg const mt9d113_cif_30_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0160},/* = 352*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0120},/* = 288*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270d},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bd},/* = 1213*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064d},/* = 1613*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x046f},/* = 1135*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x005a},/* = 90*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x01be},/* = 446*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271d},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0131},/* = 305*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x02b3},/* = 691*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x07fd},/* = 2045*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272d},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x031f},/* = 799*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273d},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0257},/* = 599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274d},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222d},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2a},/* = 42*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2c},/* = 44*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x32},/* = 50*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x34},/* = 52*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00cf},/* = 207*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fd Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40d},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/*
|
|
* Context A setting for 320x240
|
|
*
|
|
; Max Frame Time: 33.3333 msec
|
|
; Max Frame Clocks: 1413333.3 clocks (42.400 MHz)
|
|
; Pixel Clock: divided by 1
|
|
; Skip Mode: 2x cols, 2x rows, Bin Mode: Yes
|
|
; Horiz clks: 808 active + 1237 blank = 2045 total
|
|
; Vert rows: 608 active + 83 blank = 691 total
|
|
; Extra Delay: 238 clocks
|
|
;
|
|
; Actual Frame Clocks: 1413333 clocks
|
|
; Row Time: 48.231 usec / 2045 clocks
|
|
; Frame time: 33.333325 msec
|
|
; Frames per Sec: 30 fps
|
|
;
|
|
; 50Hz Flicker Period: 207.33 lines
|
|
; 60Hz Flicker Period: 172.78 lines
|
|
|
|
; hblank: 29.17us
|
|
; vblank: 4ms
|
|
*/
|
|
static struct misensor_reg const mt9d113_qvga_30_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0140},/* = 320*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f0},/* = 240*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270d},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bd},/* = 1213*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064d},/* = 1613*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x046f},/* = 1135*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x005a},/* = 90*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x01be},/* = 446*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271d},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0131},/* = 305*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x02b3},/* = 691*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x07fd},/* = 2045*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272d},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x031f},/* = 799*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273d},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0257},/* = 599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274d},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222d},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2a},/* = 42*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2c},/* = 44*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x32},/* = 50*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x34},/* = 52*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00cf},/* = 207*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fd Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40d},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/*
|
|
* Context A setting for 640x480
|
|
*
|
|
; Max Frame Time: 33.3333 msec
|
|
; Max Frame Clocks: 1413333.3 clocks (42.400 MHz)
|
|
; Pixel Clock: divided by 1
|
|
; Skip Mode: 2x cols, 2x rows, Bin Mode: Yes
|
|
; Horiz clks: 808 active + 1237 blank = 2045 total
|
|
; Vert rows: 608 active + 83 blank = 691 total
|
|
; Extra Delay: 238 clocks
|
|
;
|
|
; Actual Frame Clocks: 1413333 clocks
|
|
; Row Time: 48.231 usec / 2045 clocks
|
|
; Frame time: 33.333325 msec
|
|
; Frames per Sec: 30 fps
|
|
;
|
|
; 50Hz Flicker Period: 207.33 lines
|
|
; 60Hz Flicker Period: 172.78 lines
|
|
|
|
; hblank: 29.17us
|
|
; vblank: 4ms
|
|
*/
|
|
static struct misensor_reg const mt9d113_vga_30_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0280},/* = 640*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x01e0},/* = 480*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270d},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bd},/* = 1213*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064d},/* = 1613*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x046f},/* = 1135*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x005a},/* = 90*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x01be},/* = 446*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271d},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0131},/* = 305*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x02b3},/* = 691*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x07fd},/* = 2045*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272d},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x031f},/* = 799*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273d},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0257},/* = 599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274d},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222d},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2a},/* = 42*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2c},/* = 44*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x32},/* = 50*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x34},/* = 52*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00cf},/* = 207*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fd Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40d},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
static struct misensor_reg const mt9d113_vga_wide_29_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0280},/* = 640*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0168},/* = 360*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270d},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a6},/* = 166*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x03cd},/* = 973*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x05ad},/* = 1453*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0027},/* = 39*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271d},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x032d},/* = 813*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0706},/* = 1798*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272d},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04ff},/* = 1279*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273d},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x02cf},/* = 719*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274d},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222d},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00c5},/* = 197*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x30},/* = 48*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x32},/* = 50*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x3a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x3c},/* = 60*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00c5},/* = 197*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ec},/* = 236*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fd Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40d},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/*
|
|
* Context A setting for 1280x720
|
|
; Max Frame Time: 34.4828 msec
|
|
; Max Frame Clocks: 1462068.9 clocks (42.400 MHz)
|
|
; Pixel Clock: divided by 1
|
|
; Skip Mode: 1x cols, 1x rows, Bin Mode: No
|
|
; Horiz clks: 1288 active + 510 blank = 1798 total
|
|
; Vert rows: 728 active + 85 blank = 813 total
|
|
; Extra Delay: 294 clocks
|
|
;
|
|
; Actual Frame Clocks: 1462068 clocks
|
|
; Row Time: 42.406 usec / 1798 clocks
|
|
; Frame time: 34.482736 msec
|
|
; Frames per Sec: 29 fps
|
|
;
|
|
; 50Hz Flicker Period: 235.82 lines
|
|
; 60Hz Flicker Period: 196.51 lines
|
|
|
|
; hblank: 12us
|
|
; vblank: 3.6ms
|
|
*/
|
|
static struct misensor_reg const mt9d113_720p_29_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0500},/* = 1280*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x02d0},/* = 720*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270d},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a6},/* = 166*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x03cd},/* = 973*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x05ad},/* = 1453*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0027},/* = 39*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271d},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x032d},/* = 813*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0706},/* = 1798*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272d},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04ff},/* = 1279*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273d},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x02cf},/* = 719*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274d},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222d},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00c5},/* = 197*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x30},/* = 48*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x32},/* = 50*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x3a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x3c},/* = 60*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00c5},/* = 197*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ec},/* = 236*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fd Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40d},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/*
|
|
* Context A setting for 800x600
|
|
; Max Frame Time: 33.3333 msec
|
|
; Max Frame Clocks: 1413333.3 clocks (42.400 MHz)
|
|
; Pixel Clock: divided by 1
|
|
; Skip Mode: 2x cols, 2x rows, Bin Mode: Yes
|
|
; Horiz clks: 808 active + 1237 blank = 2045 total
|
|
; Vert rows: 608 active + 83 blank = 691 total
|
|
; Extra Delay: 238 clocks
|
|
;
|
|
; Actual Frame Clocks: 1413333 clocks
|
|
; Row Time: 48.231 usec / 2045 clocks
|
|
; Frame time: 33.333325 msec
|
|
; Frames per Sec: 30 fps
|
|
;
|
|
; 50Hz Flicker Period: 207.33 lines
|
|
; 60Hz Flicker Period: 172.78 lines
|
|
|
|
; hblank: 29.17us
|
|
; vblank: 4ms
|
|
*/
|
|
static struct misensor_reg const mt9d113_svga_30_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0320},/* = 800*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0258},/* = 600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270d},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bd},/* = 1213*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064d},/* = 1613*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x046f},/* = 1135*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x005a},/* = 90*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x01be},/* = 446*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271d},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0131},/* = 305*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x02b3},/* = 691*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x07fd},/* = 2045*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272d},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x031f},/* = 799*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273d},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0257},/* = 599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274d},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222d},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2a},/* = 42*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x2c},/* = 44*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x32},/* = 50*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x34},/* = 52*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00ad},/* = 173*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00cf},/* = 207*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fd Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40d},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/*
|
|
* Context A setting for 1024x768
|
|
; Max Frame Time: 66.8896 msec
|
|
; Max Frame Clocks: 2836120.4 clocks (42.400 MHz)
|
|
; Pixel Clock: divided by 1
|
|
; Skip Mode: 1x cols, 1x rows, Bin Mode: No
|
|
; Horiz clks: 1608 active + 585 blank = 2193 total
|
|
; Vert rows: 1208 active + 85 blank = 1293 total
|
|
; Extra Delay: 571 clocks
|
|
;
|
|
; Actual Frame Clocks: 2836120 clocks
|
|
; Row Time: 51.722 usec / 2193 clocks
|
|
; Frame time: 66.889623 msec
|
|
; Frames per Sec: 14.950 fps
|
|
;
|
|
; 50Hz Flicker Period: 193.34 lines
|
|
; 60Hz Flicker Period: 161.12 lines
|
|
|
|
; hblank: 13.79us
|
|
; vblank: 4.4ms
|
|
*/
|
|
static struct misensor_reg const mt9d113_1m_15_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0400},/* = 1024*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0300},/* = 768*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270D},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0027},/* = 39*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271D},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0891},/* = 2193*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272D},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050D},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273D},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274D},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222D},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00a1},/* = 161*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x27},/* = 39*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x29},/* = 41*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x2f},/* = 47*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x31},/* = 49*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00a1},/* = 161*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00c1},/* = 193*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fD Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40D},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/*
|
|
* Context A setting for 1600x1200
|
|
; Max Frame Time: 66.8896 msec
|
|
; Max Frame Clocks: 2836120.4 clocks (42.400 MHz)
|
|
; Pixel Clock: divided by 1
|
|
; Skip Mode: 1x cols, 1x rows, Bin Mode: No
|
|
; Horiz clks: 1608 active + 585 blank = 2193 total
|
|
; Vert rows: 1208 active + 85 blank = 1293 total
|
|
; Extra Delay: 571 clocks
|
|
;
|
|
; Actual Frame Clocks: 2836120 clocks
|
|
; Row Time: 51.722 usec / 2193 clocks
|
|
; Frame time: 66.889623 msec
|
|
; Frames per Sec: 14.950 fps
|
|
;
|
|
; 50Hz Flicker Period: 193.34 lines
|
|
; 60Hz Flicker Period: 161.12 lines
|
|
|
|
; hblank: 13.79us
|
|
; vblank: 4.4ms
|
|
*/
|
|
static struct misensor_reg const mt9d113_2m_15_init[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x2703},/*Output Width (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2705},/*Output Height (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2707},/*Output Width (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0640},/* = 1600*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2709},/*Output Height (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04b0},/* = 1200*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270D},/*Row Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x270f},/*column Start (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2711},/*Row end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2713},/*column end (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2715},/*Row Speed (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2717},/*Read Mode (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0027},/* = 39*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2719},/*sensor_fine_correction (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271b},/*sensor_fine_IT_min (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271D},/*sensor_fine_IT_max_margin (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x271f},/*frame Lines (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050d},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2721},/*Line Length (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0891},/* = 2193*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2723},/*Row Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2725},/*column Start (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0004},/* = 4*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2727},/*Row end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04bb},/* = 1211*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2729},/*column end (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x064b},/* = 1611*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272b},/*Row Speed (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0111},/* = 273*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272D},/*Read Mode (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0024},/* = 36*/
|
|
{MISENSOR_16BIT, 0x98c, 0x272f},/*sensor_fine_correction (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x003a},/* = 58*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2731},/*sensor_fine_IT_min (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00f6},/* = 246*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2733},/*sensor_fine_IT_max_margin (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x008b},/* = 139*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2735},/*frame Lines (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x050D},/* = 1293*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2737},/*Line Length (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0c24},/* = 3108*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2739},/*crop_X0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273b},/*crop_X1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273D},/*crop_Y0 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x273f},/*crop_Y1 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2747},/*crop_X0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2749},/*crop_X1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x063f},/* = 1599*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274b},/*crop_Y0 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0000},/* = 0*/
|
|
{MISENSOR_16BIT, 0x98c, 0x274D},/*crop_Y1 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x04af},/* = 1199*/
|
|
{MISENSOR_16BIT, 0x98c, 0x222D},/*R9 Step*/
|
|
{MISENSOR_16BIT, 0x990, 0x00a1},/* = 161*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa408},/*search_f1_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x27},/* = 39*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa409},/*search_f2_50*/
|
|
{MISENSOR_16BIT, 0x990, 0x29},/* = 41*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40a},/*search_f1_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x2f},/* = 47*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40b},/*search_f2_60*/
|
|
{MISENSOR_16BIT, 0x990, 0x31},/* = 49*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2411},/*R9_Step_60 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00a1},/* = 161*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2413},/*R9_Step_50 (a)*/
|
|
{MISENSOR_16BIT, 0x990, 0x00c1},/* = 193*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2415},/*R9_Step_60 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0071},/* = 113*/
|
|
{MISENSOR_16BIT, 0x98c, 0x2417},/*R9_Step_50 (b)*/
|
|
{MISENSOR_16BIT, 0x990, 0x0087},/* = 135*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa404},/*fD Mode*/
|
|
{MISENSOR_16BIT, 0x990, 0x10},/* = 16*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40D},/*Stat_min*/
|
|
{MISENSOR_16BIT, 0x990, 0x02},/* = 2*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa40e},/*Stat_max*/
|
|
{MISENSOR_16BIT, 0x990, 0x03},/* = 3*/
|
|
{MISENSOR_16BIT, 0x98c, 0xa410},/*Min_amplitude*/
|
|
{MISENSOR_16BIT, 0x990, 0x0a},/* = 10*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
static struct misensor_reg const mt9d113_default_gain[] = {
|
|
{MISENSOR_16BIT, 0x098c, 0x221f}, /* ae_d_gain */
|
|
{MISENSOR_16BIT, 0x0990, 0x80},
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/*
|
|
* Soft Reset
|
|
* 1: Set SYSCTL 0x001A[1:0] to 0x3 to initiate internal reset cycle.
|
|
* 2: Wait 6000 EXTCLK cycles.
|
|
* 3: Reset SYSCTL 0x001A[1:0] to 0x0 for normal operation.
|
|
*
|
|
* SYSCTL
|
|
* bit9=0: Parallel output port is disabled.
|
|
* bit8=0: Output is enabled (gpio ?
|
|
* bit6=1: running at full speed
|
|
* bit4=1: GPIO not remained power on in standby
|
|
* bit3=0: MIPI Transmitter disabled by default
|
|
* bit1=0: MIPI Transmitter not in reset
|
|
* bit0: toggle for SOC soft reset
|
|
*/
|
|
static struct misensor_reg const mt9d113_reset[] = {
|
|
{MISENSOR_16BIT, 0x001a, 0x0051},
|
|
{MISENSOR_TOK_DELAY, 0, 1},
|
|
{MISENSOR_16BIT, 0x001a, 0x0050},
|
|
{MISENSOR_TOK_DELAY, 0, 1}, /* wait for normal operation */
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/* AWB_CCM initialization */
|
|
static struct misensor_reg const mt9d113_awb_ccm[] = {
|
|
{MISENSOR_16BIT, 0x098c, 0x2306}, /* MCU_ADDRESS [AWB_CCM_L_0]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x02a2}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x231c}, /* MCU_ADDRESS [AWB_CCM_RL_0]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00b3}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2308}, /* MCU_ADDRESS [AWB_CCM_L_1]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xfef7}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x231e}, /* MCU_ADDRESS [AWB_CCM_RL_1]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xfefb}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x230a}, /* MCU_ADDRESS [AWB_CCM_L_2]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xffa1}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2320}, /* MCU_ADDRESS [AWB_CCM_RL_2]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0057}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x230c}, /* MCU_ADDRESS [AWB_CCM_L_3]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xff38}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2322}, /* MCU_ADDRESS [AWB_CCM_RL_3]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0046}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x230e}, /* MCU_ADDRESS [AWB_CCM_L_4]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x02e1}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2324}, /* MCU_ADDRESS [AWB_CCM_RL_4]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xffe1}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2310}, /* MCU_ADDRESS [AWB_CCM_L_5]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xff3d}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2326}, /* MCU_ADDRESS [AWB_CCM_RL_5]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xffc0}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2312}, /* MCU_ADDRESS [AWB_CCM_L_6]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xffbd}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2328}, /* MCU_ADDRESS [AWB_CCM_RL_6]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x001a}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2314}, /* MCU_ADDRESS [AWB_CCM_L_7]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xfe81}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x232a}, /* MCU_ADDRESS [AWB_CCM_RL_7]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0091}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2316}, /* MCU_ADDRESS [AWB_CCM_L_8]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0307}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x232c}, /* MCU_ADDRESS [AWB_CCM_RL_8]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xff48}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2318}, /* MCU_ADDRESS [AWB_CCM_L_9]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0020}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x231a}, /* MCU_ADDRESS [AWB_CCM_L_10]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0033}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x232e}, /* MCU_ADDRESS [AWB_CCM_RL_9]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0008}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2330}, /* MCU_ADDRESS [AWB_CCM_RL_10]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xfff7}, /* MCU_DATA_0*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0xa363}, /* MCU_ADDRESS [aWb_TG_MIN0]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00d2}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xa364}, /* MCU_ADDRESS [aWb_TG_MaX0]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ee}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xa369}, /* MCU_ADDRESS [AWB_KR_R] */
|
|
{MISENSOR_16BIT, 0x0990, 0x0080}, /* MCU_DATA_0 */
|
|
{MISENSOR_16BIT, 0x098c, 0xa36a}, /* MCU_ADDRESS [AWB_KG_R] */
|
|
{MISENSOR_16BIT, 0x0990, 0x0090}, /* MCU_DATA_0 */
|
|
{MISENSOR_16BIT, 0x098c, 0xa36b}, /* MCU_ADDRESS [AWB_KB_R] */
|
|
{MISENSOR_16BIT, 0x0990, 0x0088}, /* MCU_DATA_0 */
|
|
|
|
|
|
/* NO dS, aptinal private */
|
|
{MISENSOR_16BIT, 0x3244, 0x0328}, /* aWb_CONFIG4, aWb fine tuning*/
|
|
{MISENSOR_16BIT, 0x323e, 0xc22c}, /* aWb fine tuning, bit[11-15]*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/* Low light settings */
|
|
static struct misensor_reg const mt9d113_lowlight[] = {
|
|
{MISENSOR_16BIT, 0x098c, 0x2b28}, /* MCU_ADDRESS [hg_ll_bg_start]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x35e8}, /* 13800*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2b2a}, /* MCU_ADDRESS [hg_ll_bg_stop]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xb3b0}, /* 46000*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0xab20}, /* MCU_ADDRESS [hg_ll_sat1]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x004b}, /* 75*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab24}, /* MCU_ADDRESS [hg_ll_sat2]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0000}, /* 0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab25}, /* MCU_ADDRESS [hg_ll_thresh2]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* 255*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0xab30}, /* MCU_ADDRESS [hg_nr_stop_r]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* 255*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab31}, /* MCU_ADDRESS [hg_nr_stop_g]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* 255*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab32}, /* MCU_ADDRESS [hg_nr_stop_b]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* 255*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab33}, /* MCU_ADDRESS [hg_nr_stop_ol]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0057}, /* 87*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0xab34}, /* MCU_ADDRESS [hg_nr_gainstart]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0080}, /* 128*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab35}, /* MCU_ADDRESS [hg_nr_gainstop]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* 255*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0xab36}, /* MCU_ADDRESS [hg_cluster_dc_th]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0014}, /* 20*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0xab37}, /* MCU_ADDRESS [hg_gamma_mor_ctrl]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0003}, /* 3*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0x2b38}, /* MCU_ADDRESS [hg_gammastartmor]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x32c8}, /* 13000 [100 lux]*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2b3a}, /* MCU_ADDRESS [hg_gammastopmor]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x7918}, /* 31000 [20 lux]*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0x2b62}, /* MCU_ADDRESS [hg_ftb_start_bm]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xfffe}, /* Disable FTB*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2b64}, /* MCU_ADDRESS [hg_ftb_stop_bm]*/
|
|
{MISENSOR_16BIT, 0x0990, 0xffff}, /* Disable FTB*/
|
|
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/* SOC2030 patch */
|
|
static struct misensor_reg const patch_soc2030[] = {
|
|
{MISENSOR_16BIT, 0x98c, 0x415},
|
|
{MISENSOR_16BIT, 0x990, 0xf601},
|
|
{MISENSOR_16BIT, 0x992, 0x42c1},
|
|
{MISENSOR_16BIT, 0x994, 0x326},
|
|
{MISENSOR_16BIT, 0x996, 0x11f6},
|
|
{MISENSOR_16BIT, 0x998, 0x143},
|
|
{MISENSOR_16BIT, 0x99a, 0xc104},
|
|
{MISENSOR_16BIT, 0x99c, 0x260a},
|
|
{MISENSOR_16BIT, 0x99e, 0xcc04},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x425},
|
|
{MISENSOR_16BIT, 0x990, 0x33bd},
|
|
{MISENSOR_16BIT, 0x992, 0xa362},
|
|
{MISENSOR_16BIT, 0x994, 0xbd04},
|
|
{MISENSOR_16BIT, 0x996, 0x3339},
|
|
{MISENSOR_16BIT, 0x998, 0xc6ff},
|
|
{MISENSOR_16BIT, 0x99a, 0xf701},
|
|
{MISENSOR_16BIT, 0x99c, 0x6439},
|
|
{MISENSOR_16BIT, 0x99e, 0xde5d},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x435},
|
|
{MISENSOR_16BIT, 0x990, 0x18ce},
|
|
{MISENSOR_16BIT, 0x992, 0x325},
|
|
{MISENSOR_16BIT, 0x994, 0xcc00},
|
|
{MISENSOR_16BIT, 0x996, 0x27bd},
|
|
{MISENSOR_16BIT, 0x998, 0xc2b8},
|
|
{MISENSOR_16BIT, 0x99a, 0xcc04},
|
|
{MISENSOR_16BIT, 0x99c, 0xbdfd},
|
|
{MISENSOR_16BIT, 0x99e, 0x33b},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x445},
|
|
{MISENSOR_16BIT, 0x990, 0xcc06},
|
|
{MISENSOR_16BIT, 0x992, 0x6bfd},
|
|
{MISENSOR_16BIT, 0x994, 0x32f},
|
|
{MISENSOR_16BIT, 0x996, 0xcc03},
|
|
{MISENSOR_16BIT, 0x998, 0x25dd},
|
|
{MISENSOR_16BIT, 0x99a, 0x5dc6},
|
|
{MISENSOR_16BIT, 0x99c, 0x1ed7},
|
|
{MISENSOR_16BIT, 0x99e, 0x6cd7},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x455},
|
|
{MISENSOR_16BIT, 0x990, 0x6d5f},
|
|
{MISENSOR_16BIT, 0x992, 0xd76e},
|
|
{MISENSOR_16BIT, 0x994, 0xd78d},
|
|
{MISENSOR_16BIT, 0x996, 0x8620},
|
|
{MISENSOR_16BIT, 0x998, 0x977a},
|
|
{MISENSOR_16BIT, 0x99a, 0xd77b},
|
|
{MISENSOR_16BIT, 0x99c, 0x979a},
|
|
{MISENSOR_16BIT, 0x99e, 0xc621},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x465},
|
|
{MISENSOR_16BIT, 0x990, 0xd79b},
|
|
{MISENSOR_16BIT, 0x992, 0xfe01},
|
|
{MISENSOR_16BIT, 0x994, 0x6918},
|
|
{MISENSOR_16BIT, 0x996, 0xce03},
|
|
{MISENSOR_16BIT, 0x998, 0x4dcc},
|
|
{MISENSOR_16BIT, 0x99a, 0x13},
|
|
{MISENSOR_16BIT, 0x99c, 0xbdc2},
|
|
{MISENSOR_16BIT, 0x99e, 0xb8cc},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x475},
|
|
{MISENSOR_16BIT, 0x990, 0x5e9},
|
|
{MISENSOR_16BIT, 0x992, 0xfd03},
|
|
{MISENSOR_16BIT, 0x994, 0x4fcc},
|
|
{MISENSOR_16BIT, 0x996, 0x34d},
|
|
{MISENSOR_16BIT, 0x998, 0xfd01},
|
|
{MISENSOR_16BIT, 0x99a, 0x69fe},
|
|
{MISENSOR_16BIT, 0x99c, 0x2bd},
|
|
{MISENSOR_16BIT, 0x99e, 0x18ce},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x485},
|
|
{MISENSOR_16BIT, 0x990, 0x361},
|
|
{MISENSOR_16BIT, 0x992, 0xcc00},
|
|
{MISENSOR_16BIT, 0x994, 0x11bd},
|
|
{MISENSOR_16BIT, 0x996, 0xc2b8},
|
|
{MISENSOR_16BIT, 0x998, 0xcc06},
|
|
{MISENSOR_16BIT, 0x99a, 0x28fd},
|
|
{MISENSOR_16BIT, 0x99c, 0x36f},
|
|
{MISENSOR_16BIT, 0x99e, 0xcc03},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x495},
|
|
{MISENSOR_16BIT, 0x990, 0x61fd},
|
|
{MISENSOR_16BIT, 0x992, 0x2bd},
|
|
{MISENSOR_16BIT, 0x994, 0xde00},
|
|
{MISENSOR_16BIT, 0x996, 0x18ce},
|
|
{MISENSOR_16BIT, 0x998, 0xc2},
|
|
{MISENSOR_16BIT, 0x99a, 0xcc00},
|
|
{MISENSOR_16BIT, 0x99c, 0x37bd},
|
|
{MISENSOR_16BIT, 0x99e, 0xc2b8},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x4a5},
|
|
{MISENSOR_16BIT, 0x990, 0xcc06},
|
|
{MISENSOR_16BIT, 0x992, 0x4fdd},
|
|
{MISENSOR_16BIT, 0x994, 0xe6cc},
|
|
{MISENSOR_16BIT, 0x996, 0xc2},
|
|
{MISENSOR_16BIT, 0x998, 0xdd00},
|
|
{MISENSOR_16BIT, 0x99a, 0xc601},
|
|
{MISENSOR_16BIT, 0x99c, 0xf701},
|
|
{MISENSOR_16BIT, 0x99e, 0x64c6},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x4b5},
|
|
{MISENSOR_16BIT, 0x990, 0x5f7},
|
|
{MISENSOR_16BIT, 0x992, 0x165},
|
|
{MISENSOR_16BIT, 0x994, 0x7f01},
|
|
{MISENSOR_16BIT, 0x996, 0x6639},
|
|
{MISENSOR_16BIT, 0x998, 0x373c},
|
|
{MISENSOR_16BIT, 0x99a, 0x3c3c},
|
|
{MISENSOR_16BIT, 0x99c, 0x3c3c},
|
|
{MISENSOR_16BIT, 0x99e, 0x30ec},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x4c5},
|
|
{MISENSOR_16BIT, 0x990, 0x11ed},
|
|
{MISENSOR_16BIT, 0x992, 0x2ec},
|
|
{MISENSOR_16BIT, 0x994, 0xfed},
|
|
{MISENSOR_16BIT, 0x996, 0x8f},
|
|
{MISENSOR_16BIT, 0x998, 0x30ed},
|
|
{MISENSOR_16BIT, 0x99a, 0x4ec},
|
|
{MISENSOR_16BIT, 0x99c, 0xdee},
|
|
{MISENSOR_16BIT, 0x99e, 0x4bd},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x4d5},
|
|
{MISENSOR_16BIT, 0x990, 0xa406},
|
|
{MISENSOR_16BIT, 0x992, 0x30ec},
|
|
{MISENSOR_16BIT, 0x994, 0x2ed},
|
|
{MISENSOR_16BIT, 0x996, 0x6fc},
|
|
{MISENSOR_16BIT, 0x998, 0x10c0},
|
|
{MISENSOR_16BIT, 0x99a, 0x2705},
|
|
{MISENSOR_16BIT, 0x99c, 0xccff},
|
|
{MISENSOR_16BIT, 0x99e, 0xffed},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x4e5},
|
|
{MISENSOR_16BIT, 0x990, 0x6f6},
|
|
{MISENSOR_16BIT, 0x992, 0x256},
|
|
{MISENSOR_16BIT, 0x994, 0x8616},
|
|
{MISENSOR_16BIT, 0x996, 0x3dc3},
|
|
{MISENSOR_16BIT, 0x998, 0x261},
|
|
{MISENSOR_16BIT, 0x99a, 0x8fe6},
|
|
{MISENSOR_16BIT, 0x99c, 0x9c4},
|
|
{MISENSOR_16BIT, 0x99e, 0x7c1},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x4f5},
|
|
{MISENSOR_16BIT, 0x990, 0x226},
|
|
{MISENSOR_16BIT, 0x992, 0x1dfc},
|
|
{MISENSOR_16BIT, 0x994, 0x10c2},
|
|
{MISENSOR_16BIT, 0x996, 0x30ed},
|
|
{MISENSOR_16BIT, 0x998, 0x2fc},
|
|
{MISENSOR_16BIT, 0x99a, 0x10c0},
|
|
{MISENSOR_16BIT, 0x99c, 0xed00},
|
|
{MISENSOR_16BIT, 0x99e, 0xc602},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x505},
|
|
{MISENSOR_16BIT, 0x990, 0xbdc2},
|
|
{MISENSOR_16BIT, 0x992, 0x5330},
|
|
{MISENSOR_16BIT, 0x994, 0xec00},
|
|
{MISENSOR_16BIT, 0x996, 0xfd10},
|
|
{MISENSOR_16BIT, 0x998, 0xc0ec},
|
|
{MISENSOR_16BIT, 0x99a, 0x2fd},
|
|
{MISENSOR_16BIT, 0x99c, 0x10c2},
|
|
{MISENSOR_16BIT, 0x99e, 0x201b},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x515},
|
|
{MISENSOR_16BIT, 0x990, 0xfc10},
|
|
{MISENSOR_16BIT, 0x992, 0xc230},
|
|
{MISENSOR_16BIT, 0x994, 0xed02},
|
|
{MISENSOR_16BIT, 0x996, 0xfc10},
|
|
{MISENSOR_16BIT, 0x998, 0xc0ed},
|
|
{MISENSOR_16BIT, 0x99a, 0xc6},
|
|
{MISENSOR_16BIT, 0x99c, 0x1bd},
|
|
{MISENSOR_16BIT, 0x99e, 0xc253},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x525},
|
|
{MISENSOR_16BIT, 0x990, 0x30ec},
|
|
{MISENSOR_16BIT, 0x992, 0xfd},
|
|
{MISENSOR_16BIT, 0x994, 0x10c0},
|
|
{MISENSOR_16BIT, 0x996, 0xec02},
|
|
{MISENSOR_16BIT, 0x998, 0xfd10},
|
|
{MISENSOR_16BIT, 0x99a, 0xc2c6},
|
|
{MISENSOR_16BIT, 0x99c, 0x80d7},
|
|
{MISENSOR_16BIT, 0x99e, 0x85c6},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x535},
|
|
{MISENSOR_16BIT, 0x990, 0x40f7},
|
|
{MISENSOR_16BIT, 0x992, 0x10c4},
|
|
{MISENSOR_16BIT, 0x994, 0xf602},
|
|
{MISENSOR_16BIT, 0x996, 0x5686},
|
|
{MISENSOR_16BIT, 0x998, 0x163d},
|
|
{MISENSOR_16BIT, 0x99a, 0xc302},
|
|
{MISENSOR_16BIT, 0x99c, 0x618f},
|
|
{MISENSOR_16BIT, 0x99e, 0xec14},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x545},
|
|
{MISENSOR_16BIT, 0x990, 0xfd10},
|
|
{MISENSOR_16BIT, 0x992, 0xc501},
|
|
{MISENSOR_16BIT, 0x994, 0x101},
|
|
{MISENSOR_16BIT, 0x996, 0x101},
|
|
{MISENSOR_16BIT, 0x998, 0xfc10},
|
|
{MISENSOR_16BIT, 0x99a, 0xc2dd},
|
|
{MISENSOR_16BIT, 0x99c, 0x7ffc},
|
|
{MISENSOR_16BIT, 0x99e, 0x10c7},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x555},
|
|
{MISENSOR_16BIT, 0x990, 0xdd76},
|
|
{MISENSOR_16BIT, 0x992, 0xf602},
|
|
{MISENSOR_16BIT, 0x994, 0x5686},
|
|
{MISENSOR_16BIT, 0x996, 0x163d},
|
|
{MISENSOR_16BIT, 0x998, 0xc302},
|
|
{MISENSOR_16BIT, 0x99a, 0x618f},
|
|
{MISENSOR_16BIT, 0x99c, 0xec14},
|
|
{MISENSOR_16BIT, 0x99e, 0x939f},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x565},
|
|
{MISENSOR_16BIT, 0x990, 0x30ed},
|
|
{MISENSOR_16BIT, 0x992, 0x8dc},
|
|
{MISENSOR_16BIT, 0x994, 0x7693},
|
|
{MISENSOR_16BIT, 0x996, 0x9d25},
|
|
{MISENSOR_16BIT, 0x998, 0x8f6},
|
|
{MISENSOR_16BIT, 0x99a, 0x2bc},
|
|
{MISENSOR_16BIT, 0x99c, 0x4f93},
|
|
{MISENSOR_16BIT, 0x99e, 0x7f23},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x575},
|
|
{MISENSOR_16BIT, 0x990, 0x3df6},
|
|
{MISENSOR_16BIT, 0x992, 0x2bc},
|
|
{MISENSOR_16BIT, 0x994, 0x4f93},
|
|
{MISENSOR_16BIT, 0x996, 0x7f23},
|
|
{MISENSOR_16BIT, 0x998, 0x6f6},
|
|
{MISENSOR_16BIT, 0x99a, 0x2bc},
|
|
{MISENSOR_16BIT, 0x99c, 0x4fdd},
|
|
{MISENSOR_16BIT, 0x99e, 0x7fdc},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x585},
|
|
{MISENSOR_16BIT, 0x990, 0x9ddd},
|
|
{MISENSOR_16BIT, 0x992, 0x76f6},
|
|
{MISENSOR_16BIT, 0x994, 0x2bc},
|
|
{MISENSOR_16BIT, 0x996, 0x4f93},
|
|
{MISENSOR_16BIT, 0x998, 0x7f26},
|
|
{MISENSOR_16BIT, 0x99a, 0xfe6},
|
|
{MISENSOR_16BIT, 0x99c, 0xac1},
|
|
{MISENSOR_16BIT, 0x99e, 0x226},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x595},
|
|
{MISENSOR_16BIT, 0x990, 0x9d6},
|
|
{MISENSOR_16BIT, 0x992, 0x85c1},
|
|
{MISENSOR_16BIT, 0x994, 0x8026},
|
|
{MISENSOR_16BIT, 0x996, 0x314},
|
|
{MISENSOR_16BIT, 0x998, 0x7401},
|
|
{MISENSOR_16BIT, 0x99a, 0xf602},
|
|
{MISENSOR_16BIT, 0x99c, 0xbc4f},
|
|
{MISENSOR_16BIT, 0x99e, 0x937f},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x5a5},
|
|
{MISENSOR_16BIT, 0x990, 0x2416},
|
|
{MISENSOR_16BIT, 0x992, 0xde7f},
|
|
{MISENSOR_16BIT, 0x994, 0x9df},
|
|
{MISENSOR_16BIT, 0x996, 0x7f30},
|
|
{MISENSOR_16BIT, 0x998, 0xec08},
|
|
{MISENSOR_16BIT, 0x99a, 0xdd76},
|
|
{MISENSOR_16BIT, 0x99c, 0x200a},
|
|
{MISENSOR_16BIT, 0x99e, 0xdc76},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x5b5},
|
|
{MISENSOR_16BIT, 0x990, 0xa308},
|
|
{MISENSOR_16BIT, 0x992, 0x2304},
|
|
{MISENSOR_16BIT, 0x994, 0xec08},
|
|
{MISENSOR_16BIT, 0x996, 0xdd76},
|
|
{MISENSOR_16BIT, 0x998, 0x1274},
|
|
{MISENSOR_16BIT, 0x99a, 0x122},
|
|
{MISENSOR_16BIT, 0x99c, 0xde5d},
|
|
{MISENSOR_16BIT, 0x99e, 0xee14},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x5c5},
|
|
{MISENSOR_16BIT, 0x990, 0xad00},
|
|
{MISENSOR_16BIT, 0x992, 0x30ed},
|
|
{MISENSOR_16BIT, 0x994, 0x11ec},
|
|
{MISENSOR_16BIT, 0x996, 0x6ed},
|
|
{MISENSOR_16BIT, 0x998, 0x2cc},
|
|
{MISENSOR_16BIT, 0x99a, 0x80},
|
|
{MISENSOR_16BIT, 0x99c, 0xed00},
|
|
{MISENSOR_16BIT, 0x99e, 0x8f30},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x5d5},
|
|
{MISENSOR_16BIT, 0x990, 0xed04},
|
|
{MISENSOR_16BIT, 0x992, 0xec11},
|
|
{MISENSOR_16BIT, 0x994, 0xee04},
|
|
{MISENSOR_16BIT, 0x996, 0xbda4},
|
|
{MISENSOR_16BIT, 0x998, 0x630},
|
|
{MISENSOR_16BIT, 0x99a, 0xe603},
|
|
{MISENSOR_16BIT, 0x99c, 0xd785},
|
|
{MISENSOR_16BIT, 0x99e, 0x30c6},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x5e5},
|
|
{MISENSOR_16BIT, 0x990, 0xb3a},
|
|
{MISENSOR_16BIT, 0x992, 0x3539},
|
|
{MISENSOR_16BIT, 0x994, 0x3c3c},
|
|
{MISENSOR_16BIT, 0x996, 0x3c34},
|
|
{MISENSOR_16BIT, 0x998, 0xcc32},
|
|
{MISENSOR_16BIT, 0x99a, 0x3ebd},
|
|
{MISENSOR_16BIT, 0x99c, 0xa558},
|
|
{MISENSOR_16BIT, 0x99e, 0x30ed},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x5f5},
|
|
{MISENSOR_16BIT, 0x990, 0x4bd},
|
|
{MISENSOR_16BIT, 0x992, 0xb2d7},
|
|
{MISENSOR_16BIT, 0x994, 0x30e7},
|
|
{MISENSOR_16BIT, 0x996, 0x6cc},
|
|
{MISENSOR_16BIT, 0x998, 0x323e},
|
|
{MISENSOR_16BIT, 0x99a, 0xed00},
|
|
{MISENSOR_16BIT, 0x99c, 0xec04},
|
|
{MISENSOR_16BIT, 0x99e, 0xbda5},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x605},
|
|
{MISENSOR_16BIT, 0x990, 0x44cc},
|
|
{MISENSOR_16BIT, 0x992, 0x3244},
|
|
{MISENSOR_16BIT, 0x994, 0xbda5},
|
|
{MISENSOR_16BIT, 0x996, 0x585f},
|
|
{MISENSOR_16BIT, 0x998, 0x30ed},
|
|
{MISENSOR_16BIT, 0x99a, 0x2cc},
|
|
{MISENSOR_16BIT, 0x99c, 0x3244},
|
|
{MISENSOR_16BIT, 0x99e, 0xed00},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x615},
|
|
{MISENSOR_16BIT, 0x990, 0xf601},
|
|
{MISENSOR_16BIT, 0x992, 0xd54f},
|
|
{MISENSOR_16BIT, 0x994, 0xea03},
|
|
{MISENSOR_16BIT, 0x996, 0xaa02},
|
|
{MISENSOR_16BIT, 0x998, 0xbda5},
|
|
{MISENSOR_16BIT, 0x99a, 0x4430},
|
|
{MISENSOR_16BIT, 0x99c, 0xe606},
|
|
{MISENSOR_16BIT, 0x99e, 0x3838},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x625},
|
|
{MISENSOR_16BIT, 0x990, 0x3831},
|
|
{MISENSOR_16BIT, 0x992, 0x39bd},
|
|
{MISENSOR_16BIT, 0x994, 0xd661},
|
|
{MISENSOR_16BIT, 0x996, 0xf602},
|
|
{MISENSOR_16BIT, 0x998, 0xf4c1},
|
|
{MISENSOR_16BIT, 0x99a, 0x126},
|
|
{MISENSOR_16BIT, 0x99c, 0xbfe},
|
|
{MISENSOR_16BIT, 0x99e, 0x2bd},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x635},
|
|
{MISENSOR_16BIT, 0x990, 0xee10},
|
|
{MISENSOR_16BIT, 0x992, 0xfc02},
|
|
{MISENSOR_16BIT, 0x994, 0xf5ad},
|
|
{MISENSOR_16BIT, 0x996, 0x39},
|
|
{MISENSOR_16BIT, 0x998, 0xf602},
|
|
{MISENSOR_16BIT, 0x99a, 0xf4c1},
|
|
{MISENSOR_16BIT, 0x99c, 0x226},
|
|
{MISENSOR_16BIT, 0x99e, 0xafe},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x645},
|
|
{MISENSOR_16BIT, 0x990, 0x2bd},
|
|
{MISENSOR_16BIT, 0x992, 0xee10},
|
|
{MISENSOR_16BIT, 0x994, 0xfc02},
|
|
{MISENSOR_16BIT, 0x996, 0xf7ad},
|
|
{MISENSOR_16BIT, 0x998, 0x39},
|
|
{MISENSOR_16BIT, 0x99a, 0x3cbd},
|
|
{MISENSOR_16BIT, 0x99c, 0xb059},
|
|
{MISENSOR_16BIT, 0x99e, 0xcc00},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x655},
|
|
{MISENSOR_16BIT, 0x990, 0x28bd},
|
|
{MISENSOR_16BIT, 0x992, 0xa558},
|
|
{MISENSOR_16BIT, 0x994, 0x8300},
|
|
{MISENSOR_16BIT, 0x996, 0x27},
|
|
{MISENSOR_16BIT, 0x998, 0xbcc},
|
|
{MISENSOR_16BIT, 0x99a, 0x26},
|
|
{MISENSOR_16BIT, 0x99c, 0x30ed},
|
|
{MISENSOR_16BIT, 0x99e, 0xc6},
|
|
|
|
{MISENSOR_16BIT, 0x98c, 0x665},
|
|
{MISENSOR_16BIT, 0x990, 0x3bd},
|
|
{MISENSOR_16BIT, 0x992, 0xa544},
|
|
{MISENSOR_16BIT, 0x994, 0x3839},
|
|
{MISENSOR_16BIT, 0x996, 0xbdd9},
|
|
{MISENSOR_16BIT, 0x998, 0x42d6},
|
|
{MISENSOR_16BIT, 0x99a, 0x9acb},
|
|
{MISENSOR_16BIT, 0x99c, 0x1d7},
|
|
{MISENSOR_16BIT, 0x99e, 0x9b39},
|
|
|
|
/* hard coded start address of the patch at "patchSetup" */
|
|
{MISENSOR_16BIT, 0x98c, 0x2006},
|
|
{MISENSOR_16BIT, 0x990, 0x415},
|
|
/* execute the patch */
|
|
{MISENSOR_16BIT, 0x98c, 0xa005},
|
|
{MISENSOR_16BIT, 0x990, 0x1},
|
|
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/* Noise settings */
|
|
static struct misensor_reg const mt9d113_noise_reduce[] = {
|
|
{MISENSOR_16BIT, 0x33f4, 0x005b}, /* KeRNeL_cONfIG*/
|
|
{MISENSOR_16BIT, 0x098c, 0xa20e}, /* MCU_ADDRESS [ae_MaX_VIRTGaIN]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00a0}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0x2212}, /* MCU_ADDRESS [ae_MaX_dGaIN_ae1]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x01ee}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab30}, /* MCU_ADDRESS [HG_NR_STOP_R]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab31}, /* MCU_ADDRESS [HG_NR_STOP_G]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab32}, /* MCU_ADDRESS [HG_NR_STOP_b]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* MCU_DATA_0*/
|
|
/*{MISENSOR_16BIT, 0x098c, 0xab33}, // MCU_ADDRESS [HG_NR_STOP_OL]*/
|
|
/*{MISENSOR_16BIT, 0x0990, 0x00ff}, // MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab35}, /* MCU_ADDRESS [HG_NR_GaINSTOP]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00ff}, /* MCU_DATA_0*/
|
|
|
|
{MISENSOR_16BIT, 0x098c, 0x2b2a}, /* MCU_ADDRESS[HG_LL_bRIGHTNeSSSTOP]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x3e80}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab20}, /* MCU_ADDRESS [HG_LL_SaT1]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0048}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab24}, /* MCU_ADDRESS [HG_LL_SaT2]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0000}, /* MCU_DATA_0*/
|
|
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/* Noise setting in video mode */
|
|
static struct misensor_reg const mt9d113_video_noise_setting[] = {
|
|
{MISENSOR_16BIT, 0x098c, 0x2212}, /* MCU_ADDRESS [AE_MAX_DGAIN_AE1]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00c0}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab34}, /* MCU_ADDRESS [HG_NR_GAINSTART]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x00b0}, /* MCU_DATA_0*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/* Noise setting in preview/still mode */
|
|
static struct misensor_reg const mt9d113_preview_noise_setting[] = {
|
|
{MISENSOR_16BIT, 0x098c, 0x2212}, /* MCU_ADDRESS [AE_MAX_DGAIN_AE1]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x01ee}, /* MCU_DATA_0*/
|
|
{MISENSOR_16BIT, 0x098c, 0xab34}, /* MCU_ADDRESS [HG_NR_GAINSTART]*/
|
|
{MISENSOR_16BIT, 0x0990, 0x0080}, /* MCU_DATA_0*/
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/* Sharpness */
|
|
static struct misensor_reg const mt9d113_sharpness[] = {
|
|
{MISENSOR_16BIT, 0x326c, 0x1304}, /* APERTURE_PARAMETERS */
|
|
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
/* LSC 95% */
|
|
static struct misensor_reg const mt9d113_lsc_95[] = {
|
|
{MISENSOR_16BIT, 0x3210, 0x01b0},
|
|
{MISENSOR_16BIT, 0x364e, 0x04d0},
|
|
{MISENSOR_16BIT, 0x3650, 0xe7ac},
|
|
{MISENSOR_16BIT, 0x3652, 0x3332},
|
|
{MISENSOR_16BIT, 0x3654, 0x1e6d},
|
|
{MISENSOR_16BIT, 0x3656, 0xd751},
|
|
{MISENSOR_16BIT, 0x3658, 0x00d0},
|
|
{MISENSOR_16BIT, 0x365a, 0x656b},
|
|
{MISENSOR_16BIT, 0x365c, 0x4292},
|
|
{MISENSOR_16BIT, 0x365e, 0x1908},
|
|
{MISENSOR_16BIT, 0x3660, 0xff30},
|
|
{MISENSOR_16BIT, 0x3662, 0x00d0},
|
|
{MISENSOR_16BIT, 0x3664, 0xfc68},
|
|
{MISENSOR_16BIT, 0x3666, 0x1892},
|
|
{MISENSOR_16BIT, 0x3668, 0x254e},
|
|
{MISENSOR_16BIT, 0x366a, 0x42cf},
|
|
{MISENSOR_16BIT, 0x366c, 0x00d0},
|
|
{MISENSOR_16BIT, 0x366e, 0xfd6b},
|
|
{MISENSOR_16BIT, 0x3670, 0x2a12},
|
|
{MISENSOR_16BIT, 0x3672, 0x3aaa},
|
|
{MISENSOR_16BIT, 0x3674, 0xce91},
|
|
{MISENSOR_16BIT, 0x3676, 0x8b2d},
|
|
{MISENSOR_16BIT, 0x3678, 0x91cf},
|
|
{MISENSOR_16BIT, 0x367a, 0xa04f},
|
|
{MISENSOR_16BIT, 0x367c, 0x1c50},
|
|
{MISENSOR_16BIT, 0x367e, 0x09b3},
|
|
{MISENSOR_16BIT, 0x3680, 0xc0ad},
|
|
{MISENSOR_16BIT, 0x3682, 0x262f},
|
|
{MISENSOR_16BIT, 0x3684, 0x8150},
|
|
{MISENSOR_16BIT, 0x3686, 0xa911},
|
|
{MISENSOR_16BIT, 0x3688, 0x1252},
|
|
{MISENSOR_16BIT, 0x368a, 0xb1cd},
|
|
{MISENSOR_16BIT, 0x368c, 0xa64e},
|
|
{MISENSOR_16BIT, 0x368e, 0x8731},
|
|
{MISENSOR_16BIT, 0x3690, 0x0c70},
|
|
{MISENSOR_16BIT, 0x3692, 0x0d93},
|
|
{MISENSOR_16BIT, 0x3694, 0x8a6d},
|
|
{MISENSOR_16BIT, 0x3696, 0x4c2f},
|
|
{MISENSOR_16BIT, 0x3698, 0x846e},
|
|
{MISENSOR_16BIT, 0x369a, 0x9491},
|
|
{MISENSOR_16BIT, 0x369c, 0x14b2},
|
|
{MISENSOR_16BIT, 0x369e, 0x7152},
|
|
{MISENSOR_16BIT, 0x36a0, 0xb44f},
|
|
{MISENSOR_16BIT, 0x36a2, 0x3a55},
|
|
{MISENSOR_16BIT, 0x36a4, 0x3813},
|
|
{MISENSOR_16BIT, 0x36a6, 0xb898},
|
|
{MISENSOR_16BIT, 0x36a8, 0x0313},
|
|
{MISENSOR_16BIT, 0x36aa, 0x9891},
|
|
{MISENSOR_16BIT, 0x36ac, 0x46d5},
|
|
{MISENSOR_16BIT, 0x36ae, 0x6bb3},
|
|
{MISENSOR_16BIT, 0x36b0, 0xcd58},
|
|
{MISENSOR_16BIT, 0x36b2, 0x6152},
|
|
{MISENSOR_16BIT, 0x36b4, 0xc951},
|
|
{MISENSOR_16BIT, 0x36b6, 0x5d75},
|
|
{MISENSOR_16BIT, 0x36b8, 0x6534},
|
|
{MISENSOR_16BIT, 0x36ba, 0xcb78},
|
|
{MISENSOR_16BIT, 0x36bc, 0x7052},
|
|
{MISENSOR_16BIT, 0x36be, 0x9ab0},
|
|
{MISENSOR_16BIT, 0x36c0, 0x3c35},
|
|
{MISENSOR_16BIT, 0x36c2, 0x27b3},
|
|
{MISENSOR_16BIT, 0x36c4, 0xbe18},
|
|
{MISENSOR_16BIT, 0x36c6, 0xae50},
|
|
{MISENSOR_16BIT, 0x36c8, 0xa2d1},
|
|
{MISENSOR_16BIT, 0x36ca, 0x33b0},
|
|
{MISENSOR_16BIT, 0x36cc, 0x6614},
|
|
{MISENSOR_16BIT, 0x36ce, 0xf234},
|
|
{MISENSOR_16BIT, 0x36d0, 0x8b51},
|
|
{MISENSOR_16BIT, 0x36d2, 0x8572},
|
|
{MISENSOR_16BIT, 0x36d4, 0x2133},
|
|
{MISENSOR_16BIT, 0x36d6, 0x3e34},
|
|
{MISENSOR_16BIT, 0x36d8, 0x0835},
|
|
{MISENSOR_16BIT, 0x36da, 0xce30},
|
|
{MISENSOR_16BIT, 0x36dc, 0xb66e},
|
|
{MISENSOR_16BIT, 0x36de, 0x6b33},
|
|
{MISENSOR_16BIT, 0x36e0, 0x1b73},
|
|
{MISENSOR_16BIT, 0x36e2, 0x00d5},
|
|
{MISENSOR_16BIT, 0x36e4, 0xe5cf},
|
|
{MISENSOR_16BIT, 0x36e6, 0xb1d1},
|
|
{MISENSOR_16BIT, 0x36e8, 0xe4b2},
|
|
{MISENSOR_16BIT, 0x36ea, 0x00f3},
|
|
{MISENSOR_16BIT, 0x36ec, 0x21d4},
|
|
{MISENSOR_16BIT, 0x36ee, 0x99f3},
|
|
{MISENSOR_16BIT, 0x36f0, 0x4a33},
|
|
{MISENSOR_16BIT, 0x36f2, 0x8a99},
|
|
{MISENSOR_16BIT, 0x36f4, 0xee36},
|
|
{MISENSOR_16BIT, 0x36f6, 0x33fb},
|
|
{MISENSOR_16BIT, 0x36f8, 0x9972},
|
|
{MISENSOR_16BIT, 0x36fa, 0x16f5},
|
|
{MISENSOR_16BIT, 0x36fc, 0xa839},
|
|
{MISENSOR_16BIT, 0x36fe, 0xf297},
|
|
{MISENSOR_16BIT, 0x3700, 0x64bb},
|
|
{MISENSOR_16BIT, 0x3702, 0xb5ef},
|
|
{MISENSOR_16BIT, 0x3704, 0x4375},
|
|
{MISENSOR_16BIT, 0x3706, 0xa7d9},
|
|
{MISENSOR_16BIT, 0x3708, 0xcef8},
|
|
{MISENSOR_16BIT, 0x370a, 0x5abb},
|
|
{MISENSOR_16BIT, 0x370c, 0x9fb3},
|
|
{MISENSOR_16BIT, 0x370e, 0x7eb3},
|
|
{MISENSOR_16BIT, 0x3710, 0x90f9},
|
|
{MISENSOR_16BIT, 0x3712, 0xde76},
|
|
{MISENSOR_16BIT, 0x3714, 0x49db},
|
|
{MISENSOR_16BIT, 0x3644, 0x0320},
|
|
{MISENSOR_16BIT, 0x3642, 0x0258},
|
|
{MISENSOR_16BIT, 0x3210, 0x01b8},
|
|
{MISENSOR_TOK_TERM, 0, 0}
|
|
};
|
|
|
|
#endif
|