3299 lines
65 KiB
C
3299 lines
65 KiB
C
|
||
#ifndef _SAMSUNG_SXGA_H_
|
||
#define _SAMSUNG_SXGA_H_
|
||
|
||
/*******************************************************************************************
|
||
# Display resolution standards #
|
||
|
||
QCIF: 176 x 144
|
||
CIF: 352 x 288
|
||
QVGA: 320 x 240
|
||
VGA: 640 x 480
|
||
SVGA: 800 x 600
|
||
XGA: 1024 x 768
|
||
WXGA: 1280 x 800
|
||
QVGA: 1280 x 960
|
||
SXGA: 1280 x 1024
|
||
SXGA+: 1400 x 1050
|
||
WSXGA+: 1680 x 1050
|
||
UXGA: 1600 x 1200
|
||
WUXGA: 1920 x 1200
|
||
QXGA: 2048 x 1536
|
||
********************************************************************************************/
|
||
|
||
//#include "../bits.h"
|
||
|
||
/* Camera information
|
||
* FPC Label : Samsung MEGA Pixel Camera : V4220 REV06
|
||
* Modified by charles -Initial function of '3AA' test routine
|
||
* Modified and tested by YongHwui.Kim <yonghwui.kim@samsung.com> for S5K3AAEX Camera
|
||
*/
|
||
|
||
#define CHIP_DELAY 0xFF
|
||
|
||
typedef struct samsung_t{
|
||
unsigned char subaddr;
|
||
unsigned char value;
|
||
unsigned char page;
|
||
} s5k3xa_t;
|
||
|
||
#ifdef CONFIG_CPU_S3C24A0A
|
||
#define TRY_HIGH_CLOCK 1
|
||
#endif
|
||
|
||
//***************************************************
|
||
// name: S5K3AAEX EVT2 setfile
|
||
// ver: v2.61
|
||
// history:
|
||
// v0.0 start from 040908 setfile
|
||
// v1.0 arange register
|
||
// v1.01 change MCLK(25Mhz) and Frame rate(7fps)
|
||
// v2.0 adjust register setting for 3AA EVT2
|
||
// - color correction, RGB shding off, hsync start position, Mirror, fps
|
||
// - Color Tuning, YGRPDLY
|
||
// v2.1 change Frame rate(7.5fps) and Total gain to x4
|
||
// (because of reducing visual noise at low illumination)
|
||
// - change BPRM AGC Max and FrameAE start
|
||
// improve AE speed
|
||
// v2.2 modify AWB G gain and solve 50hz flicker detection fail in 25MHz 7.5fps
|
||
// v2.3 Adjust gamma, Dark Slice, white point, Hue gain,
|
||
// White Balance B control, Y gain On, Digital Clamp On
|
||
// lower AWB G gain
|
||
// v2.4 Adjust AE window weight, Y Gamma, WhitePoint, Shading and BPR Max Thres.
|
||
// v2.41 Adjust AE/AWB window and AWB internal window boundary to decrease skin color tracking
|
||
// v2.411 special version for PSCDS
|
||
// v2.412 RGB shading off
|
||
// v2.5 Lens change STW to Sekonix
|
||
// adjust White point and Y shading Coef (RGB shading off)
|
||
// v2.6 New Tuning because of Full YC off and YCbCr Coef change
|
||
// Gamma, Dark Slice, color matrix (not use), Color suppress
|
||
// R Gain and DBPR agc MIN/MAX
|
||
// v2.61 VCK inversion(data rising)
|
||
//***************************************************
|
||
///////////////////////////////////////////////////
|
||
|
||
#if defined(CONFIG_VIDEO_SAMSUNG_S5K3AA) // page 0
|
||
// VGA : 640 x 480
|
||
s5k3xa_t s5k3aa_reg[] =
|
||
{
|
||
#if 0
|
||
{0xec,0x00},
|
||
{0x02,0x01}, /* 0x0 : SXGA, 0x01 : VGA, 0x02:QVGA */
|
||
{0x72,0xF0}, //MCLK is 48MHz
|
||
{0x74,0x08}, //50Hz Flicker avoidance
|
||
{0x76,0xb0}, //brightness
|
||
{0x77,0xd0}, //color
|
||
{0x79,0x05}, //brightness
|
||
{0x7a,0x03}, //color
|
||
|
||
{0xec,0x01},
|
||
{0x8b,0x03},
|
||
#else // Mirror
|
||
{0xec,0x00},
|
||
{0x23,0x52}, // RV/H Control
|
||
{0xec,0x06},
|
||
{0x8c,0x0b}, // in case of wrp wcp control for mirror
|
||
{0x8d,0x0c},
|
||
{0x8e,0x0b},
|
||
{0x8f,0x0c},
|
||
|
||
{0xec,0x00},
|
||
{0x34,0x0e}, // AWB Tracking Boundary Constant R_Limit High
|
||
/////////////////////////////
|
||
// Color Tunning
|
||
|
||
//White Point
|
||
{0x40,0x18}, //1c //18
|
||
{0x41,0x4b}, //4a //41 //4a
|
||
{0x42,0x1e}, //23 //1e
|
||
{0x43,0x3c}, //39 //33 //3b
|
||
{0x44,0x2a}, //29 //2a //2e //2b
|
||
{0x45,0x2e}, //2b //2c //2b //25 //2d
|
||
|
||
//Hue, Gain control
|
||
{0x48,0xf8}, //f0 //c0 //fe
|
||
{0x49,0xfe},
|
||
{0x4a,0x32}, //28 //03 //01
|
||
{0x4b,0x40},
|
||
{0x4c,0xfe},
|
||
{0x4d,0xfe},
|
||
{0x4e,0x50}, //0e
|
||
{0x4f,0x08}, //10 //d0 //10 //02
|
||
|
||
{0x50,0xf0}, //e0 //a4 //aa //e0
|
||
{0x51,0xfe}, //fe
|
||
{0x52,0x42}, //40 //28 //01
|
||
{0x53,0x40}, //3e
|
||
{0x54,0xfe},
|
||
{0x55,0xfe}, //fc //fe
|
||
{0x56,0x2a}, //6a //2e
|
||
{0x57,0x20}, //18 //30 //1a //32
|
||
|
||
{0x58,0xda}, //ea //ca //a4 //aa //c6
|
||
{0x59,0xfe}, //ec //fa
|
||
{0x5a,0x54}, //44 //4a //20 //30 //35 //30
|
||
{0x5b,0x28}, //38 //20 //1a //32
|
||
{0x5c,0xfe},
|
||
{0x5d,0xfe},
|
||
{0x5e,0x4a}, //7e //7a
|
||
{0x5f,0x20}, //40 //18 //08 //20 //30 //3a //2a //42
|
||
|
||
{0x6c,0x10}, // AE Target
|
||
{0x77,0xea}, // Color Gain
|
||
{0x79,0xfe}, // White balance R control
|
||
{0x7a,0x01}, // White balance B control
|
||
{0x83,0xc0}, // Color suppress
|
||
//s8a04 // unstable diff
|
||
|
||
///////////////////////////////////////////////////
|
||
// page 1
|
||
{0xec,0x01},
|
||
{0x8b,0x21}, //V Output Sync inversion, Full_YC off,SCK656_INV_R
|
||
{0x6a,0x07}, //Y,Cr first ITU R-601 format
|
||
|
||
{0xec,0x03},
|
||
{0x06,0x07},
|
||
|
||
{0xec,0x04},
|
||
{0x06,0x07},
|
||
|
||
{0xec,0x01},
|
||
{0x2d,0x15}, //Adjust YGRPDLY 3clk->0clk
|
||
|
||
/// Color Matrix
|
||
//s107e
|
||
//s12fe
|
||
//s187e //a0
|
||
|
||
{0x1c,0xd0}, // Highlight Suppress Reference
|
||
/////////////////////////////
|
||
// gamma : 1.800000
|
||
//Y Gamma
|
||
{0x2e,0x08},
|
||
{0x2f,0x18},
|
||
{0x30,0x26},
|
||
{0x31,0x70}, //60
|
||
{0x32,0xf0}, //e0
|
||
{0x33,0x94}, //90
|
||
{0x34,0x70}, //b0
|
||
{0x35,0xbc}, //80
|
||
{0x36,0x00},
|
||
{0x37,0x1b},
|
||
|
||
// Dark Slice
|
||
//s4018 // Black Balance Red
|
||
//s4118 //fe // Black Balance Blue
|
||
//s4211 //fa // Black Balance Green
|
||
|
||
{0x41,0xfe}, // Black Balance Blue
|
||
{0x42,0xfa}, // Black Balance Green
|
||
|
||
{0x48,0xee}, // YCrCb Coef
|
||
{0x49,0xf7},
|
||
|
||
//C Gamma
|
||
{0x55,0x08}, //08
|
||
{0x56,0x18}, //18
|
||
{0x57,0x26}, //26
|
||
{0x58,0x60}, //70 //60
|
||
{0x59,0xf0}, //e0
|
||
{0x5a,0xa9}, //94 //90
|
||
{0x5b,0x60}, //3b //70 //7b //b0
|
||
{0x5c,0x50}, //96 //bc //5a //80
|
||
{0x5d,0x00}, //00
|
||
{0x5e,0x1b}, //1b
|
||
|
||
{0x69,0x0f}, // VCK inversion(data rising)
|
||
{0xec,0x03},
|
||
{0x05,0x0f},
|
||
{0xec,0x04},
|
||
{0x05,0x0f},
|
||
|
||
{0xec,0x01},
|
||
//adjust AE window
|
||
{0x97,0x18},
|
||
{0x9a,0xe0},
|
||
{0x9c,0x20},
|
||
{0x9e,0xe8},
|
||
|
||
{0xec,0x06},
|
||
{0x00,0x18},
|
||
{0x02,0xe0},
|
||
{0x04,0x20},
|
||
{0x06,0xe8},
|
||
|
||
//adjust AWB window
|
||
{0xec,0x01},
|
||
{0xa0,0x5a},
|
||
{0xa2,0xd8},
|
||
{0xa4,0x33},
|
||
{0xa6,0xba},
|
||
|
||
{0xec,0x06},
|
||
{0x08,0x5a},
|
||
{0x0a,0xd8},
|
||
{0x0c,0x33},
|
||
{0x0e,0xba},
|
||
|
||
{0xec,0x01},
|
||
{0xaa,0xe0}, // For AWB, High Threshold Value of Y signal
|
||
{0xab,0x30}, // For AWB, Low Threshold Value of Y signal
|
||
|
||
/// Pixel Filter
|
||
{0xac,0x80}, // AWB B-G Low Threshold
|
||
{0xad,0x80}, // AWB B-G High Threshold
|
||
{0xae,0x80}, // AWB R-G Low Threshold
|
||
{0xaf,0x80}, // AWB R-G Low Threshold
|
||
{0xb0,0x60}, // AWB R-G,B-G High Threshold
|
||
{0xb1,0x80}, // AWB R-G,B-G Low Threshold
|
||
|
||
///////////////////////////////////////////////////
|
||
//// page 2
|
||
{0xec,0x02},
|
||
{0x05,0x0b},
|
||
{0x07,0x0b},
|
||
//s1f13 //Adjust Global Gain for 20Mhz
|
||
{0x26,0x86}, //ADLC Set
|
||
{0x2d,0x00}, //APS Bias Current 6uA ---> 1uA for SHBN & HN reduce
|
||
{0x2e,0x50}, //Ramp Gain
|
||
{0x2f,0x30}, //Ramp Bias Current for SHBN reduce
|
||
{0x30,0x05}, //for reducing noise... switch cap
|
||
|
||
///////////////////////////////////////////////////
|
||
//// page 5
|
||
// Shading
|
||
{0xec,0x05},
|
||
{0x00,0x0d}, // Shading Old(Y shading) ON & Shading New(RGB Shading) OFF
|
||
//s000f // Shading Old(Y shading) & Shading New(RGB Shading)
|
||
|
||
///RGB Shading
|
||
{0x05,0x05}, // R Shading of RGB Shading
|
||
{0x06,0x05},
|
||
{0x07,0x05},
|
||
{0x08,0x05},
|
||
{0x09,0x00}, // GR Shading of RGB Shading
|
||
{0x0a,0x00},
|
||
{0x0b,0x00},
|
||
{0x0c,0x00},
|
||
{0x0d,0x00}, // GB Shading of RGB Shading
|
||
{0x0e,0x00},
|
||
{0x0f,0x00},
|
||
{0x10,0x00},
|
||
{0x11,0x00}, // B Shading of RGB Shading
|
||
{0x12,0x00},
|
||
{0x13,0x00},
|
||
{0x14,0x00},
|
||
|
||
/// Y Shading
|
||
{0x2d,0xd0}, //e0 //d6 //e0
|
||
{0x2e,0xb0}, //c0 //aa //c0
|
||
{0x2f,0xa0}, //95 //a0
|
||
{0x30,0x88}, //86 //88 //80
|
||
{0x31,0x88}, //86 //88 //80
|
||
{0x32,0xa0}, //95 //a0
|
||
{0x33,0xb0}, //c0 //aa //c0
|
||
{0x34,0xd0}, //e0 //d6 //e0
|
||
|
||
{0x35,0xd0}, //e0
|
||
{0x36,0xb0}, //ba //a6
|
||
{0x37,0x98}, //94 //90
|
||
{0x38,0x88}, //80
|
||
{0x39,0x88}, //80
|
||
{0x3a,0x98}, //94 //90
|
||
{0x3b,0xb0}, //ba //a6
|
||
{0x3c,0xd0}, //e0
|
||
|
||
////////////////////////////////////////////////
|
||
// page 7
|
||
{0xec,0x07},
|
||
{0x11,0xfe}, // GGain_Offset
|
||
{0x17,0x40}, // lower AWB Ggain because G is stronger than R/B
|
||
//s1742 // modify AWB Ggain to make <1.46> =0x40(x1)
|
||
|
||
{0x3c,0x00}, //adjust AWB internal window boundary to decrease skin color tracking
|
||
|
||
// to dectect 50Hz flicker in 25Mhz 7.5fps
|
||
{0x60,0x10}, // adjust flicker thres
|
||
{0x62,0x11}, // adjust edge detection boundary
|
||
{0x63,0x04},
|
||
|
||
{0x69,0x10}, // for mirror
|
||
{0x70,0x80}, // BLC Off
|
||
|
||
// AE weight
|
||
{0x80,0x10}, //40
|
||
{0x81,0x00}, //10
|
||
{0x82,0x01}, //10
|
||
{0x83,0x02}, //10
|
||
{0x84,0x02}, //30
|
||
|
||
///////////////////////////////
|
||
// control start position(hsync hblank )
|
||
// to remove broken pixel width on left side
|
||
{0xec,0x01},
|
||
{0x78,0x3d}, // HBLK START
|
||
{0x82,0x3d}, // HS656 START
|
||
|
||
{0xec,0x03},
|
||
{0x0e,0x3d},
|
||
{0x18,0x3d},
|
||
|
||
{0xec,0x04},
|
||
{0x0e,0x3d},
|
||
{0x18,0x3d},
|
||
|
||
////////////////////////////
|
||
// Control Gain
|
||
{0xec,0x00},
|
||
{0x78,0x60}, //Total gain x4 (Only Analog x4)
|
||
{0x2d,0x5a}, //Frame AE start
|
||
{0x82,0x5A}, //Color Suppress AGC Min
|
||
|
||
////////////////////////////
|
||
// Control BPRM
|
||
// CIS BPR always off
|
||
{0xec,0x00},
|
||
{0x7e,0x87}, //Color Suppress On, Y gain On, Digital clamp On, DBPRM On
|
||
{0x86,0x01}, //DBPR AGC MIN
|
||
{0x87,0x00}, //DBPRM THRES. MIN
|
||
//s8710 //DBPRM THRES. MIN.. optimize between BPR and Pseudo color
|
||
{0xec,0x07},
|
||
{0x21,0x90}, //50 //DBPRM THRES. MAX
|
||
{0x22,0x20}, //DBPR AGC MAX
|
||
|
||
////////////////////////////
|
||
// improve AE speed
|
||
{0xec,0x00},
|
||
{0x92,0x80}, //AE ratio high
|
||
{0xec,0x07},
|
||
{0x10,0x30}, // AGC predict ON
|
||
|
||
//*********************************************************
|
||
// If you change MCLK or Frame rate, you change below register
|
||
//*********************************************************
|
||
/////////////////////////////
|
||
///Adjust Global Gain
|
||
{0xec,0x02},
|
||
{0x1f,0x0f}, // if MCLK is 25Mhz
|
||
|
||
/////////////////////////////
|
||
///Flicker setting
|
||
{0xec,0x00},
|
||
{0x72,0xF0}, // if MCLK is 25Mhz
|
||
|
||
/////////////////////////////
|
||
// Adjust Vblank depth
|
||
/// Make 25Mhz 7.5fps
|
||
{0xec,0x02},
|
||
{0x17,0x00},
|
||
{0x18,0x8c},
|
||
|
||
{0xec,0x04},
|
||
{0x01,0x00},
|
||
{0x02,0x8c},
|
||
//*********************************************************
|
||
|
||
/////////////////////////////
|
||
///Flicker setting
|
||
{0xec,0x00},
|
||
{0x74,0x18}, // Auto Flicker start 60hz for 7.5fps
|
||
|
||
/////////////////////////////
|
||
// Frame AE
|
||
{0xec,0x00},
|
||
//{0x73,0x11}, // frame 1/2 jassi
|
||
{0x73,0x21}, // frame 1/3
|
||
|
||
/////////////////////// 1213 setting
|
||
{0xec,0x01}, //sdtv
|
||
{0x19,0x4d},
|
||
{0x1a,0x96},
|
||
{0x1b,0x1d},
|
||
{0x4a,0x41},
|
||
{0x48,0xea},
|
||
{0x47,0x41},
|
||
{0x49,0xf5},
|
||
|
||
{0xec,0x00},
|
||
{0x44,0x2e},
|
||
{0x45,0x2c},
|
||
|
||
{0x5f,0x18},
|
||
|
||
{0xec,0x07},
|
||
{0x21,0x9c},
|
||
{0x22,0x58},
|
||
|
||
{0xec,0x00}, // bpr
|
||
{0x87,0x00},
|
||
{0x86,0x48},
|
||
|
||
{0xec,0x01},
|
||
{0x8b,0x23}, // Full YC
|
||
|
||
{0x35,0xff}, //Y gamma
|
||
{0x5c,0xff}, //C gamma
|
||
|
||
|
||
{0xec,0x00}, //Bally adatpion
|
||
//{0x74,0x04}, // Auto Flicker start 60hz for 7.5fps jassi
|
||
{0x74,0x08}, // Auto Flicker start 60hz for 7.5fps
|
||
//{0x73,0x51}, jassi
|
||
{0x73,0x21},
|
||
// {0x72,0x78}, //MCLK 24Mhz jassi
|
||
// {0x72,0xA0}, //MCLK 32Mhz
|
||
{0x72,0xF0}, //MCLK 48Mhz
|
||
{0xec,0x04},
|
||
{0x01,0x05}, //4fps
|
||
{0x02,0x8c},
|
||
{0xec,0x03},
|
||
{0x57,0x03},
|
||
{0x58,0x09},
|
||
{0x5b,0x02},
|
||
{0x5c,0x84},
|
||
{0x5f,0x02},
|
||
{0x60,0x84},
|
||
{0x69,0x02},
|
||
{0x6a,0x84},
|
||
{0x63,0x02},
|
||
{0x64,0x04},
|
||
{0x6d,0x02},
|
||
{0x6e,0x04},
|
||
{0x65,0x02},
|
||
{0x66,0x10},
|
||
{0x6f,0x02},
|
||
{0x70,0x10},
|
||
{0xec,0x03},
|
||
{0x5e,0x38},
|
||
{0x52,0x48}, //30fps
|
||
{0xec,0x02},
|
||
{0x02,0x0d}, //9bit
|
||
{0x1f,0x07}, //global gain
|
||
{0xec,0x07},
|
||
{0x63,0x0a},
|
||
{0xec,0x03},
|
||
{0x56,0x04}, // 04->05 05->04
|
||
{0xec,0x04},
|
||
{0x06,0x05}, // 04->05
|
||
|
||
{0xec,0x07}, //bpr by pyo
|
||
{0x21,0x9c},
|
||
{0x22,0x58},
|
||
{0xec,0x00}, //<============ page 0
|
||
{0x87,0x00},
|
||
{0x86,0x48}, //bpr by pyo
|
||
|
||
{0x02,0x31}, //<============ page 0 : addr.- 0x2 : value - 1 [VGA(640x480)]
|
||
|
||
{0xec,0x01},
|
||
{0x21,0x40},
|
||
{0x22,0x40},
|
||
{0x23,0x00},
|
||
{0x24,0x00},
|
||
{0xec,0x00},
|
||
{0x6d,0x00},
|
||
{0x6c,0xf0},
|
||
{0x86,0x10},
|
||
{0xec,0x07},
|
||
{0x9d,0x10},
|
||
{0xec,0x00},
|
||
{0x75,0x04},
|
||
{0x96,0x06},
|
||
{0x78,0x68},
|
||
{0x66,0x02},
|
||
{0x94,0x03},
|
||
{0x97,0x03},
|
||
};
|
||
#endif
|
||
|
||
#elif defined(CONFIG_VIDEO_SAMSUNG_S5K3BA)
|
||
|
||
// For SVGA (800 x 600)
|
||
s5k3xa_t s5k3ba_reg[] =
|
||
{
|
||
//[[CAMIF_POWER_UP]]
|
||
{0xfc, 0x02},
|
||
{0x52, 0x86}, // PLL M
|
||
//{0x52, 0x80}, // PLL M
|
||
//{0x52, 0x64}, // PLL M
|
||
{0xfc, 0x01},
|
||
{0x04, 0x03}, // Original ARM Clock Divider
|
||
//{0x04, 0x02},
|
||
{0xfc, 0x02},
|
||
//{0x50, 0x5B}, //Original
|
||
{0x50, 0x59}, // Input Clock 25Mhz
|
||
{0xfc, 0x02},
|
||
{0x30, 0x84}, // Analog offset
|
||
{0x3d, 0x26}, // ADLC enable
|
||
{0x4f, 0x7a}, // I/O driving strength 7mA
|
||
//s45c0 // CDS S1S timing for HN <20><><EFBFBD><EFBFBD> <- CC
|
||
{0xfc, 0x03},
|
||
//{0x00, 0x02},
|
||
//s2d03 //02
|
||
{0xfc, 0x07},
|
||
{0x58, 0x10},
|
||
{0x59, 0x00},
|
||
{0x5a, 0x00},
|
||
{0x5b, 0x6c},
|
||
{0xfc, 0xf0},
|
||
{0x00, 0x40},
|
||
{0xfc, 0x01},
|
||
//{0x02, 0x02}, // YCbCr Order
|
||
//sfc05
|
||
//s112e // Cb coef.
|
||
{0xfc, 0x05}, // YCbCr Coef
|
||
{0x11, 0x2e},
|
||
//s113d //2e // Blue saturation
|
||
{0x75, 0x05}, // scaler input vsync start
|
||
{0x8c, 0xb1}, // CLIP V size L
|
||
{0x8d, 0x04}, // CLIP V size H
|
||
{0x77, 0xb1}, // scaler input vsync height
|
||
{0xfc, 0x03}, // UXGA Size
|
||
{0x12, 0x05},
|
||
{0x26, 0xb1},
|
||
{0x27, 0x04},
|
||
{0x14, 0xb1},
|
||
///////////////////////////////////////////
|
||
{0xfc, 0x02},
|
||
{0x4a, 0xc1}, // SC type
|
||
{0x37, 0x16}, // SC type
|
||
{0x47, 0xc4}, // r-ramp by chin
|
||
//////////////////////////////////////////
|
||
|
||
//////////////////////////////////////////
|
||
// Must Mirro Function
|
||
{0xfc, 0x07},
|
||
{0x69, 0x00}, // Mirror XOR
|
||
{0xfc, 0x00},
|
||
{0x23, 0x91}, // Disable wcp/wrd
|
||
// End Mirror
|
||
//////////////////////////////////////////
|
||
|
||
/////////////////////////////////////////
|
||
// Special Effect Cr Cb setting
|
||
{0xfc, 0x07},
|
||
{0x30, 0x20},
|
||
{0x31, 0xc0},
|
||
{0x32, 0xc0},
|
||
{0x33, 0x40},
|
||
// End
|
||
/////////////////////////////////////////
|
||
|
||
// AWB Window Area
|
||
//sfc01
|
||
//sc401
|
||
//sc54e
|
||
//sc76e
|
||
|
||
// color matrix
|
||
{0xfc, 0x01},
|
||
{0x51, 0x06}, //06
|
||
{0x52, 0x68}, //68 //68
|
||
{0x53, 0xFE}, //FE
|
||
{0x54, 0x23}, //23
|
||
{0x55, 0xFF}, //FF
|
||
{0x56, 0x88}, //88
|
||
//
|
||
{0x57, 0xFE}, //FE
|
||
{0x58, 0x00}, //00
|
||
{0x59, 0x07}, //07
|
||
{0x5A, 0x1F}, ////1F //1F //1F
|
||
{0x5B, 0xFE}, //FE
|
||
{0x5C, 0xF3}, //F3
|
||
//
|
||
{0x5D, 0xFF}, //FF
|
||
{0x5E, 0x00}, //00
|
||
{0x5F, 0xFC}, //FC
|
||
{0x60, 0x6F}, //df //6F //6F
|
||
{0x61, 0x08}, //08
|
||
{0x62, 0x9F}, //bf //9F //9F
|
||
|
||
//Edge
|
||
{0xfc, 0x05},
|
||
{0x2c, 0x0f}, //0a //10 //14 // positive gain
|
||
{0x30, 0x0c}, //10 //14 // negative edge gain
|
||
{0x34, 0x12}, /////// // APTCLP
|
||
{0x35, 0x06}, //0c //0a // APTSC
|
||
{0x36, 0x0b}, // ENHANCE
|
||
{0x3f, 0x00}, // NON-LIN
|
||
{0x45, 0x30}, // EGREF
|
||
{0x47, 0x60}, // LLREF
|
||
{0x48, 0x08}, // by chin
|
||
{0x49, 0x39}, // CSSEL EGSEL CS_DLY by
|
||
{0x47, 0x00},
|
||
{0x40, 0x41}, // Y delay
|
||
//Gamma 2
|
||
{0xfc, 0x01},
|
||
{0x6F, 0x08}, // R
|
||
{0x70, 0x10},
|
||
{0x71, 0x40},
|
||
{0x72, 0xd0},
|
||
{0x73, 0x00},
|
||
{0x74, 0xa8},
|
||
{0x75, 0x08},
|
||
{0x76, 0x68},
|
||
{0x77, 0xba},
|
||
{0x78, 0x6a},
|
||
{0x79, 0x08},
|
||
{0x7A, 0x4a},
|
||
{0x7B, 0x6c},
|
||
{0x7C, 0x8a},
|
||
{0x7D, 0xff},
|
||
{0x7E, 0x9e},
|
||
{0x7F, 0xb0},
|
||
{0x80, 0xc0},
|
||
{0x81, 0xd0},
|
||
{0x82, 0xff},
|
||
{0x83, 0xde},
|
||
{0x84, 0xe6},
|
||
{0x85, 0xea},
|
||
{0x86, 0xff},
|
||
{0x87, 0x08}, //G
|
||
{0x88, 0x40},
|
||
{0x89, 0x78},
|
||
{0x8A, 0xf0},
|
||
{0x8B, 0x00},
|
||
{0x8C, 0xb0},
|
||
{0x8D, 0x10},
|
||
{0x8E, 0x68},
|
||
{0x8F, 0xb6},
|
||
{0x90, 0x6a},
|
||
{0x91, 0x04},
|
||
{0x92, 0x30},
|
||
{0x93, 0x53},
|
||
{0x94, 0x74},
|
||
{0x95, 0xff},
|
||
{0x96, 0x8d},
|
||
{0x97, 0xa2},
|
||
{0x98, 0xb6},
|
||
{0x99, 0xc8},
|
||
{0x9A, 0xff},
|
||
{0x9B, 0xd6},
|
||
{0x9C, 0xe0},
|
||
{0x9D, 0xea},
|
||
{0x9E, 0xff},
|
||
{0x9F, 0x08}, //B
|
||
{0xA0, 0x40},
|
||
{0xA1, 0x78},
|
||
{0xA2, 0xf0},
|
||
{0xA3, 0x00},
|
||
{0xA4, 0xb0},
|
||
{0xA5, 0x10},
|
||
{0xA6, 0x68},
|
||
{0xA7, 0xba},
|
||
{0xA8, 0x6a},
|
||
{0xA9, 0x08},
|
||
{0xAA, 0x3a},
|
||
{0xAB, 0x60},
|
||
{0xAC, 0x80},
|
||
{0xAD, 0xff},
|
||
{0xAE, 0x95},
|
||
{0xAF, 0xa8},
|
||
{0xB0, 0xba},
|
||
{0xB1, 0xcc},
|
||
{0xB2, 0xff},
|
||
{0xB3, 0xd8},
|
||
{0xB4, 0xe2},
|
||
{0xB5, 0xea},
|
||
{0xB6, 0xff},
|
||
{0xfc, 0x00}, // Hue Gain
|
||
{0x48, 0x44},
|
||
{0x49, 0x60},
|
||
{0x4a, 0x00},
|
||
{0x4b, 0x18},
|
||
{0x4c, 0x58},
|
||
{0x4d, 0x70}, //60
|
||
{0x4e, 0x00},
|
||
{0x4f, 0x00},
|
||
{0x50, 0x44},
|
||
{0x51, 0x60},
|
||
{0x52, 0x00},
|
||
{0x53, 0x18},
|
||
{0x54, 0x58},
|
||
{0x55, 0x70}, //60
|
||
{0x56, 0x00},
|
||
{0x57, 0x00},
|
||
{0x58, 0x44},
|
||
{0x59, 0x60},
|
||
{0x5a, 0x00},
|
||
{0x5b, 0x18},
|
||
{0x5c, 0x50},
|
||
{0x5d, 0x48},
|
||
{0x5e, 0x08},
|
||
{0x5f, 0x05}, //00
|
||
//ISP_tuning
|
||
{0xfc, 0x00},
|
||
{0x01, 0x00}, // I2C hold mode off
|
||
//s2222 // I2C master ctrl.
|
||
//s2d5a // frame AE start 50
|
||
{0x3e, 0x10}, // Y_min Y min level limit value of AWB ODM
|
||
{0xfc, 0x01},
|
||
{0x00, 0x00}, // ISP BPR Off
|
||
{0x0c, 0x02}, // Full YC
|
||
{0xc8, 0xe0}, //f0 // AWB Y Max
|
||
////////////////////////////////
|
||
// 2005.07.17 cspyo set
|
||
///////////////////////////////
|
||
{0xfc, 0x00},
|
||
{0x24, 0x45}, // zoom skip 5fps
|
||
{0x6c, 0xb8}, //ba //d2 //d8 // AE target
|
||
{0x6d, 0x00}, //
|
||
{0x78, 0x60}, // AGC Max
|
||
{0x79, 0xfb}, //fc // R gain
|
||
{0x7a, 0x03}, // B gain
|
||
{0x81, 0x00}, // AWB G gain suppress disable
|
||
{0x29, 0x04}, // Y level
|
||
{0x2a, 0x10}, //50 // Y level
|
||
{0x2b, 0x04}, // color level H
|
||
{0x2c, 0x00}, //20 // color level L
|
||
{0xfc, 0x07},
|
||
{0x11, 0x00}, // G offset
|
||
{0x37, 0x00}, // Flicker Add
|
||
{0xfc, 0x00},
|
||
{0x72, 0xa0}, // Flicker for 32MHz
|
||
{0x74, 0x08}, // flicker 60Hz
|
||
{0xfc, 0x05},
|
||
{0x64, 0x02}, // Darkslice R
|
||
{0x65, 0xfe}, // Darkslice G
|
||
{0x66, 0xff}, // Darkslice B
|
||
////////////////////////////////////
|
||
{0xfc, 0x00},
|
||
{0x7e, 0xfc},
|
||
//s7e8c //NR GrGb off
|
||
// [7]: BPR [6]:Noise Filter(1D/NR) [4]: GrGb Enable [3]:BPR Data Threshold
|
||
// [2]: color suppress [1]: Y gain suppress [0]: Digital Clamp
|
||
///////////////////////////////////
|
||
////////////////////////////////////
|
||
// GrGb Correction setting
|
||
{0xfc, 0x01},
|
||
{0x44, 0x0c},
|
||
//s4400
|
||
/// [4]: GrGb full [3]: GrGb On
|
||
/// [2]: GrGb Rb On
|
||
{0xfc, 0x0b},
|
||
{0x21, 0x00}, // Start AGC
|
||
{0x22, 0x10}, // AGCMIN
|
||
{0x23, 0x50}, // AGCMAX
|
||
{0x24, 0x18}, //0e //12 //17 // G Th AGCMIN(23d)
|
||
{0x25, 0x32}, // G Th AGCMAX(50d)
|
||
{0x26, 0x18}, //0e //12 //17 // RB Th AGCMIN
|
||
{0x27, 0x32}, // RB Th AGCMAX
|
||
// GrGb Correction setting End
|
||
///////////////////////////////////
|
||
// BPR Setting
|
||
{0xfc, 0x01},
|
||
{0x3f, 0x00}, // setting because S/W bug
|
||
{0xfc, 0x0b},
|
||
{0x0b, 0x00}, // ISP BPR On Start
|
||
{0x0c, 0x00}, // Th13 AGC Min
|
||
{0x0d, 0x40}, //5a // Th13 AGC Max
|
||
{0x0e, 0x01}, //00 // Th1 Max H for AGCMIN
|
||
{0x0f, 0xff}, //c0 // Th1 Max L for AGCMIN
|
||
{0x10, 0x00}, // Th1 Min H for AGCMAX
|
||
{0x11, 0x10}, //00 // Th1 Min L for AGCMAX
|
||
{0x12, 0xff}, // Th3 Max H for AGCMIN
|
||
{0x13, 0xff}, // Th3 Max L for AGCMIN
|
||
{0x14, 0xff}, // Th3 Min H for AGCMAX
|
||
{0x15, 0xff}, // Th3 Min L for AGCMAX
|
||
///////////////////////////////////////////
|
||
// NR Setting
|
||
{0xfc, 0x01},
|
||
{0x4b, 0x01}, // NR Enable
|
||
//s4b00 // NR Enable
|
||
{0xfc, 0x0b},
|
||
{0x28, 0x00}, //NR Start AGC
|
||
{0x29, 0x00}, // SIG Th AGCMIN H
|
||
{0x2a, 0x0a}, //14 // SIG Th AGCMIN L
|
||
{0x2b, 0x00}, // SIG Th AGCMAX H
|
||
{0x2c, 0x0a}, //14 // SIG Th AGCMAX L
|
||
{0x2d, 0x00}, // PRE Th AGCMIN H
|
||
{0x2e, 0x70}, //50 //64 // PRE Th AGCMIN L(100d)
|
||
{0x2f, 0x01}, // PRE Th AGCMAX H(300d)
|
||
{0x30, 0x2c}, // PRE Th AGCMAX L
|
||
{0x31, 0x00}, // POST Th AGCMIN H
|
||
{0x32, 0x70}, //50 //64 // POST Th AGCMIN L(100d)
|
||
{0x33, 0x01}, // POST Th AGCMAX H(300d)
|
||
{0x34, 0x2c}, // POST Th AGCMAX L
|
||
// NR Setting End
|
||
////////////////////////////////
|
||
// Color suppress setting
|
||
{0xfc, 0x0b},
|
||
{0x08, 0x50}, // C suppress AGC MIN
|
||
{0x09, 0x04}, // C suppress MIN H
|
||
{0x0a, 0x00}, // C suppress MIN L
|
||
// C Suppress Setting End
|
||
///////////////////////////////
|
||
// 1D Y LPF Filter
|
||
{0xfc, 0x01},
|
||
//s05e0 // Default s60
|
||
{0x05, 0x60}, // Default s60
|
||
//[7]: Y LPF filter On [6]: Clap On
|
||
{0xfc, 0x0b},
|
||
{0x35, 0x00}, // YLPF Start AGC
|
||
{0x36, 0x50}, // YLPF01 AGCMIN
|
||
{0x37, 0x50}, // YLPF01 AGCMAX
|
||
{0x38, 0x00}, // YLPF SIG01 Th AGCMINH
|
||
{0x39, 0x00}, // YLPF SIG01 Th AGCMINL
|
||
{0x3a, 0x00}, // YLPF SIG01 Th AGCMAXH
|
||
{0x3b, 0xa0}, // YLPF SIG01 Th AGCMAXH
|
||
{0x3c, 0x50}, // YLPF02 AGCMIN
|
||
{0x3d, 0x50}, // YLPF02 AGCMAX
|
||
{0x3e, 0x00}, // YLPF SIG02 Th AGCMINH
|
||
{0x3f, 0x00}, // YLPF SIG02 Th AGCMINL
|
||
{0x40, 0x00}, // YLPF SIG02 Th AGCMAXH
|
||
{0x41, 0xa0}, // YLPF SIG02 Th AGCMAXH
|
||
// Y LPF Filter setting End
|
||
//------------------------------------------------------------------
|
||
/// Set File
|
||
/// - S5K3BAFB_CRF_June02+yihan_050707.xls generates
|
||
/// - date : 2005-07-08
|
||
///------------------------------------------------------------------
|
||
/// Page : ISP Page 9
|
||
{0xfc, 0x09},
|
||
{0x00, 0x02}, // shading on
|
||
{0x01, 0x06}, // size
|
||
{0x02, 0x40},
|
||
{0x03, 0x04},
|
||
{0x04, 0xB0},
|
||
{0x05, 0x03}, // shading center R
|
||
{0x06, 0x19},
|
||
{0x07, 0x02},
|
||
{0x08, 0x75},
|
||
{0x09, 0x03}, // shading center R
|
||
{0x0A, 0x1b},
|
||
{0x0b, 0x02},
|
||
{0x0c, 0x7a},
|
||
{0x0d, 0x03}, // shading center R
|
||
{0x0e, 0x09},
|
||
{0x0f, 0x02},
|
||
{0x10, 0x7d},
|
||
{0x35, 0x00}, // shading R
|
||
{0x36, 0xff},
|
||
{0x37, 0x01},
|
||
{0x38, 0x06},
|
||
{0x39, 0x01},
|
||
{0x3A, 0x1d},
|
||
{0x3B, 0x01},
|
||
{0x3C, 0x44},
|
||
{0x3D, 0x01},
|
||
{0x3E, 0x5d},
|
||
{0x3F, 0x01},
|
||
{0x40, 0x7c},
|
||
{0x41, 0x01},
|
||
{0x42, 0x97},
|
||
{0x43, 0x01},
|
||
{0x44, 0xba},
|
||
{0x45, 0x01}, // shading G
|
||
{0x46, 0x01},
|
||
{0x47, 0x01},
|
||
{0x48, 0x08},
|
||
{0x49, 0x01},
|
||
{0x4A, 0x1d},
|
||
{0x4B, 0x01},
|
||
{0x4C, 0x40},
|
||
{0x4D, 0x01},
|
||
{0x4E, 0x58},
|
||
{0x4F, 0x01},
|
||
{0x50, 0x73},
|
||
{0x51, 0x01},
|
||
{0x52, 0x8a},
|
||
{0x53, 0x01},
|
||
{0x54, 0xa6},
|
||
{0x55, 0x00}, // shading B
|
||
{0x56, 0xff},
|
||
{0x57, 0x01},
|
||
{0x58, 0x05},
|
||
{0x59, 0x01},
|
||
{0x5A, 0x1a},
|
||
{0x5B, 0x01},
|
||
{0x5C, 0x3c},
|
||
{0x5D, 0x01},
|
||
{0x5E, 0x52},
|
||
{0x5F, 0x01},
|
||
{0x60, 0x6e},
|
||
{0x61, 0x01},
|
||
{0x62, 0x8b},
|
||
{0x63, 0x01},
|
||
{0x64, 0xb3},
|
||
// sub-sampling
|
||
{0xfc, 0x03},
|
||
//{0x2d, 0x01}, // UXGA YCrCb Order
|
||
{0x2d, 0x06}, // UXGA YCrCb Order
|
||
{0x12, 0x05},
|
||
{0x26, 0xb1},
|
||
{0x27, 0x04},
|
||
{0x14, 0xb1},
|
||
{0xfc, 0x04},
|
||
{0x14, 0xb1},
|
||
{0x72, 0x05}, // H2 V1
|
||
{0x74, 0xb1},
|
||
{0xa2, 0x05}, // H1 V2
|
||
{0xa3, 0x02},
|
||
{0xa4, 0x59},
|
||
{0xa7, 0x59},
|
||
{0xa8, 0x02},
|
||
{0xae, 0x59},
|
||
{0xaf, 0x02},
|
||
{0xb6, 0x59},
|
||
{0xb7, 0x02},
|
||
{0xd2, 0x05}, // H2 V2
|
||
{0xd3, 0x02},
|
||
{0xd4, 0x59},
|
||
{0xd7, 0x59},
|
||
{0xd8, 0x02},
|
||
{0xde, 0x59},
|
||
{0xdf, 0x02},
|
||
{0xe6, 0x59},
|
||
{0xe7, 0x02},
|
||
{0xfc, 0x14}, // H4 V1
|
||
{0x05, 0x98},
|
||
{0x0e, 0x02},
|
||
{0x12, 0x05},
|
||
{0x13, 0x04},
|
||
{0x14, 0xb1},
|
||
{0x17, 0xb0},
|
||
{0x18, 0x04},
|
||
{0x1e, 0xb0},
|
||
{0x1f, 0x04},
|
||
{0x26, 0xb1},
|
||
{0x27, 0x04},
|
||
{0x35, 0x98}, // H4 V4
|
||
{0x3e, 0x02},
|
||
{0x42, 0x05},
|
||
{0x43, 0x01},
|
||
{0x44, 0x2d},
|
||
{0x47, 0x2d},
|
||
{0x48, 0x01},
|
||
{0x4e, 0x2d},
|
||
{0x4f, 0x01},
|
||
{0x56, 0x2e},
|
||
{0x57, 0x01},
|
||
// AE Window Size control for sub-sampling
|
||
{0xfc, 0x06},
|
||
{0x12, 0x00}, // H=2 V=1(800*1200)
|
||
{0x13, 0x61}, // AE H End
|
||
{0x16, 0x00}, // AE V End
|
||
{0x17, 0x94},
|
||
{0x22, 0x00}, // H=1 V=2(1600*600)
|
||
{0x23, 0xc5}, // AE H End
|
||
{0x26, 0x00}, // AE V End
|
||
{0x27, 0x4b},
|
||
{0x32, 0x00}, // H=2 V=2(800*600)
|
||
{0x33, 0x61}, // AE H End
|
||
{0x36, 0x00}, // AE V End
|
||
{0x37, 0x48},
|
||
{0x38, 0x00}, // AWB Window Size
|
||
{0x39, 0x0a},
|
||
{0x3a, 0x00},
|
||
{0x3b, 0x61},
|
||
{0x3c, 0x00},
|
||
{0x3d, 0x75},
|
||
{0x3e, 0x00},
|
||
{0x3f, 0x3e},
|
||
{0x42, 0x00}, // H=4 V=1(400*1200)
|
||
{0x43, 0x2f}, // AE H End
|
||
{0x46, 0x00}, // AE V End
|
||
{0x47, 0x97},
|
||
{0x52, 0x00}, // H=4 V=4(400*300)
|
||
{0x53, 0x30}, // AE H End
|
||
{0x56, 0x00}, // AE V End
|
||
{0x57, 0x26},
|
||
// white point
|
||
{0xfc, 0x00},
|
||
{0x40, 0x78}, //7d a
|
||
{0x41, 0xe0}, //e2
|
||
{0x42, 0x83}, //95 12
|
||
{0x43, 0xc6}, //ba c
|
||
{0x44, 0xad}, //bc f
|
||
{0x45, 0x9d}, //99 4
|
||
{0x34, 0x18}, //115
|
||
{0x35, 0x14}, //02
|
||
{0x36, 0x04}, //04
|
||
{0x37, 0x12}, //04
|
||
{0x38, 0x06}, //03
|
||
{0x39, 0x1d}, //18 //25
|
||
{0x3a, 0x14}, //12 //22 //1f
|
||
{0x3b, 0x2c}, //16 //18 //1a
|
||
{0xfc, 0x20}, // AE window weight
|
||
{0x60, 0x00},
|
||
{0x61, 0x00},
|
||
{0x62, 0x00},
|
||
{0x63, 0x00},
|
||
{0x64, 0x11},
|
||
{0x65, 0x11},
|
||
{0x66, 0x11},
|
||
{0x67, 0x11},
|
||
{0x68, 0x11},
|
||
{0x69, 0x22},
|
||
{0x6a, 0x22},
|
||
{0x6b, 0x11},
|
||
{0x6c, 0x11},
|
||
{0x6d, 0x22},
|
||
{0x6e, 0x22},
|
||
{0x6f, 0x11},
|
||
{0x70, 0x11},
|
||
{0x71, 0x22},
|
||
{0x72, 0x22},
|
||
{0x73, 0x11},
|
||
{0x74, 0x11},
|
||
{0x75, 0x22},
|
||
{0x76, 0x22},
|
||
{0x77, 0x11},
|
||
{0x78, 0x33},
|
||
{0x79, 0x33},
|
||
{0x7a, 0x33},
|
||
{0x7b, 0x33},
|
||
{0x7c, 0x33},
|
||
{0x7d, 0x33},
|
||
{0x7e, 0x33},
|
||
{0x7f, 0x33},
|
||
{0xfc, 0x01},
|
||
{0x02, 0x02},
|
||
{0xfc, 0x02},
|
||
{0x30, 0x83},
|
||
{0x44, 0x5b}, // clamp enable
|
||
{0x55, 0x03},
|
||
{0xfc, 0x00},
|
||
{0x62, 0x02},
|
||
{0xfc, 0x04},
|
||
{0xee, 0x08},
|
||
{0xfc, 0x03},
|
||
{0x2e, 0x08},
|
||
{0xfc, 0x02},
|
||
{0x11, 0x11},
|
||
{0xfc, 0x01},
|
||
{0x4d, 0x08}, // RV con, Red pixel Ordering
|
||
//{0x01, 0x00}, // PCLK
|
||
{0x01, 0x01}, // Inversion PCLK
|
||
{0xfc, 0x00},
|
||
{0x02, 0x00}, // UXGA Size Out
|
||
|
||
// for 800x600(SVGA)
|
||
// Page 0
|
||
{0xfc, 0x00},
|
||
{0x02, 0x09}, // 800*600 sub-sampling
|
||
// Page 9
|
||
{0xfc, 0x09}, // 800*600 shading delta value
|
||
{0x1D, 0xFF},
|
||
{0x1E, 0xFF},
|
||
{0x1F, 0xFF},
|
||
{0x20, 0xFF},
|
||
{0x21, 0xFF},
|
||
{0x22, 0xFF},
|
||
{0x23, 0xFF},
|
||
{0x24, 0xFF},
|
||
{0x25, 0xFF},
|
||
{0x26, 0xFF},
|
||
{0x27, 0xFF},
|
||
{0x28, 0xFF},
|
||
{0x29, 0xFF},
|
||
{0x2A, 0xFF},
|
||
{0x2B, 0xFF},
|
||
{0x2C, 0xFF},
|
||
{0x2D, 0xFF},
|
||
{0x2E, 0xFF},
|
||
{0x2F, 0xFF},
|
||
{0x30, 0xFF},
|
||
{0x31, 0xFF},
|
||
{0x32, 0xFF},
|
||
{0x33, 0xFF},
|
||
{0x34, 0xFF},
|
||
// Page 1
|
||
{0xfc, 0x01},
|
||
{0x02, 0x02}, // YCbCr Order
|
||
};
|
||
#else
|
||
#error No samsung CIS moudule !
|
||
#endif
|
||
|
||
|
||
// abridged VGA : 640 x 480
|
||
s5k3xa_t s5k3aa_reg_vga[] =
|
||
{
|
||
/* Only for VGA Mode */
|
||
{0xec,0x07}, //bpr by pyo
|
||
{0x21,0x9c},
|
||
{0x22,0x58},
|
||
{0xec,0x00},
|
||
{0x87,0x00},
|
||
{0x86,0x48}, //bpr by pyo
|
||
|
||
{0xec,0x02},
|
||
{0x02,0x0d}, //9bit
|
||
{0x1f,0x07}, //global gain
|
||
|
||
{0xec,0x01},
|
||
{0x21,0x40},
|
||
{0x22,0x40},
|
||
{0x23,0x00},
|
||
{0x24,0x00},
|
||
|
||
{0xec,0x00},
|
||
{0x7b,0x00},
|
||
{0x73,0x51},
|
||
{0x02,0x31}, //YONGKAL
|
||
};
|
||
|
||
// abridged SXGA : 1280 x 1023 (1.3M)
|
||
s5k3xa_t s5k3aa_reg_sxga[] =
|
||
{
|
||
|
||
{0xec,0x07},
|
||
{0x21,0x90},
|
||
{0x22,0x60},
|
||
{0xec,0x00},
|
||
{0x87,0x00},
|
||
{0x86,0x20},
|
||
|
||
{0xec,0x02},
|
||
{0x02,0x0f},
|
||
{0x1f,0x0f},
|
||
{0xec,0x01},
|
||
{0x21,0x50},
|
||
{0x22,0x50},
|
||
{0x23,0x10},
|
||
{0x24,0x10},
|
||
{0xec,0x00},
|
||
{0x7b,0xff},
|
||
{0x73,0x00},
|
||
{0x02,0x00},
|
||
};
|
||
|
||
|
||
#define PAGE_ADDRESS 0xEC
|
||
|
||
#define S5K3AA_INIT_REGS (sizeof(s5k3aa_reg)/sizeof(s5k3aa_reg[0]))
|
||
#define S5K3AA_SXGA_REGS (sizeof(s5k3aa_reg_sxga)/sizeof(s5k3aa_reg_sxga[0]))
|
||
#define S5K3AA_VGA_REGS (sizeof(s5k3aa_reg_vga)/sizeof(s5k3aa_reg_vga[0]))
|
||
|
||
#define S5K3AA_RISC_REGS 0xEB
|
||
#define S5K3AA_ISP_REGS 0xFB /* S5C7323X */
|
||
#define S5K3AA_CIS_REGS 0x2F /* S5K437LA03 */
|
||
|
||
//#define S5K3AA_REGS (S5K3AA_RISC_REGS+S5K3AA_ISP_REGS+S5K3AA_CIS_REGS)
|
||
#define S5K3AA_REGS (0x1000)
|
||
|
||
// For VGA ( 640 x 480) on 3BA module
|
||
s5k3xa_t s5k3ba_reg_vga[] =
|
||
{
|
||
{0xfc, 0x01},
|
||
{0x04, 0x03}, //ARM Clock divider(1/4)
|
||
|
||
//In case of PCLK = 64MHz
|
||
{0xfc, 0x02},
|
||
{0x52, 0x80}, //PLL M
|
||
|
||
{0xfc, 0x02},
|
||
{0x50, 0x19}, //PLL S,P
|
||
|
||
{0xfc, 0x07},
|
||
{0x58, 0x10},
|
||
{0x59, 0x00},
|
||
{0x5A, 0x00},
|
||
{0x5B, 0x6c},
|
||
|
||
{0xfc, 0xf0},
|
||
{0x00, 0x40},
|
||
|
||
{0xfc, 0x00},
|
||
{0x62, 0x02},
|
||
{0xbc, 0xe0}, // AWB_AE_DIFF, 0x03},
|
||
{0x2d, 0x02},
|
||
{0xfc, 0x01},
|
||
{0x02, 0x02}, // YCbCr Order
|
||
|
||
{0xfc, 0x02},
|
||
{0x4a, 0xc1}, // SC type selection
|
||
{0x37, 0x18}, //16 // SC type global gain
|
||
{0x47, 0xc4}, // r-ramp by chin
|
||
|
||
|
||
{0xfc, 0x01}, //AWB Window Area (except sky)
|
||
{0xc4, 0x01},
|
||
{0xc5, 0x4e},
|
||
{0xc7, 0x6e},
|
||
|
||
{0xfc, 0x02},
|
||
{0x30, 0x84}, //Analog offset
|
||
|
||
{0xfc, 0x00},
|
||
{0x3d, 0x10}, //AWB Low Y limit
|
||
|
||
{0xfc, 0x02},
|
||
{0x3d, 0x06}, //ADLC OFF
|
||
{0x44, 0x5b}, //clamp enable
|
||
{0x55, 0x03},
|
||
|
||
{0xfc, 0x06},
|
||
{0x0c, 0x01},
|
||
{0x0d, 0x4e},
|
||
{0x0f, 0x6e},
|
||
|
||
{0xfc, 0x00},
|
||
{0x78, 0x58}, //AGC MAX (30lux_Micron<6F><6E><EFBFBD><EFBFBD>Y=60code)
|
||
|
||
{0xfc, 0x02},
|
||
{0x45, 0x8c}, //CDS timing_<67><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD> greenish <20>ذ<EFBFBD>(15fps)
|
||
{0x49, 0x80}, // APS Current 2uA
|
||
|
||
{0xfc, 0x01},
|
||
{0x25, 0x14}, //10 //Digital Clamp
|
||
|
||
{0xfc, 0x00},
|
||
{0x6c, 0xac}, //AE target (Macbeth white=240)
|
||
{0x6d, 0x00},
|
||
|
||
// 2. ISP tuning
|
||
// ISP_tuning
|
||
{0xfc, 0x00},
|
||
{0x01, 0x00}, // I2C hold mode off
|
||
|
||
{0xfc, 0x01},
|
||
{0x00, 0x00}, // ISP BPR Off
|
||
{0x0c, 0x02}, // Full YC
|
||
{0xc8, 0x19}, // AWB Y Max
|
||
|
||
{0xfc, 0x00},
|
||
{0x81, 0x00}, // AWB G gain suppress disable
|
||
{0x29, 0x04},
|
||
{0x2a, 0x00},
|
||
{0x2b, 0x04}, // color level
|
||
{0x2c, 0x00},
|
||
|
||
{0xfc, 0x07},
|
||
{0x11, 0x00}, // G offset
|
||
{0x37, 0x00}, // Flicker Add
|
||
|
||
{0xfc, 0x00},
|
||
{0x72, 0xa0}, // Flicker for 32MHz
|
||
{0x74, 0x18}, // Flicker
|
||
{0x73, 0x00}, // Frame AE
|
||
|
||
{0xfc, 0x05},
|
||
{0x64, 0x00}, // Darkslice R
|
||
{0x65, 0x00}, // Darkslice G
|
||
{0x66, 0x00}, // Darkslice B
|
||
|
||
//Edge
|
||
{0xfc, 0x05},
|
||
{0x2c, 0x0a}, //14 // positive gain
|
||
{0x30, 0x0a}, //10 // negative edge gain
|
||
{0x34, 0x1a}, // APTCLP
|
||
{0x35, 0x10}, //0a // APTSC
|
||
{0x36, 0x0b}, // ENHANCE
|
||
{0x3f, 0x00}, // NON-LIN
|
||
{0x45, 0x30}, // EGREF
|
||
{0x47, 0x00}, // LLREF
|
||
{0x48, 0x08}, // by chin
|
||
{0x49, 0x39}, // CSSEL EGSEL CS_DLY by
|
||
{0x40, 0x41}, // Y delay
|
||
|
||
{0xfc, 0x00},
|
||
{0x7e, 0xfc},
|
||
// s7e8c //NR GrGb off
|
||
// [7]: BPR [6]:Noise Filter(1D/NR) [4]: GrGb Enable [3]:BPR Data Threshold
|
||
// [2]: color suppress [1]: Y gain suppress [0]: Digital Clamp
|
||
|
||
// GrGb Correction setting
|
||
{0xfc, 0x01},
|
||
{0x44, 0x0c},
|
||
//s4400
|
||
/// [4]: GrGb full [3]: GrGb On
|
||
/// [2]: GrGb Rb On
|
||
{0xfc, 0x0b},
|
||
{0x21, 0x00}, // Start AGC
|
||
{0x22, 0x10}, // AGCMIN
|
||
{0x23, 0x50}, // AGCMAX
|
||
{0x24, 0x18}, // G Th AGCMIN(23d)
|
||
{0x25, 0x52}, // G Th AGCMAX(50d)
|
||
{0x26, 0x38}, // RB Th AGCMIN
|
||
{0x27, 0x52}, // RB Th AGCMAX
|
||
// GrGb Correction setting End
|
||
|
||
///////////////////////////////////
|
||
// BPR Setting
|
||
{0xfc, 0x01},
|
||
{0x3f, 0x00}, // setting because S/W bug
|
||
|
||
{0xfc, 0x0b},
|
||
{0x0b, 0x00}, // ISP BPR On Start
|
||
{0x0c, 0x00}, // Th13 AGC Min
|
||
{0x0d, 0x5a}, // Th13 AGC Max
|
||
{0x0e, 0x01}, //00 // Th1 Max H for AGCMIN
|
||
{0x0f, 0xff}, //c0 // Th1 Max L for AGCMIN
|
||
{0x10, 0x00}, // Th1 Min H for AGCMAX
|
||
{0x11, 0x10}, //00 // Th1 Min L for AGCMAX
|
||
{0x12, 0xff}, // Th3 Max H for AGCMIN
|
||
{0x13, 0xff}, // Th3 Max L for AGCMIN
|
||
{0x14, 0xff}, // Th3 Min H for AGCMAX
|
||
{0x15, 0xff}, // Th3 Min L for AGCMAX
|
||
|
||
// NR Setting
|
||
{0xfc, 0x01},
|
||
{0x4b, 0x01}, // NR Enable
|
||
// s4b00 // NR Enable
|
||
|
||
{0xfc, 0x0b},
|
||
{0x28, 0x00}, //NR Start AGC
|
||
{0x29, 0x00}, // SIG Th AGCMIN H
|
||
{0x2a, 0x0a}, //14 // SIG Th AGCMIN L
|
||
{0x2b, 0x00}, // SIG Th AGCMAX H
|
||
{0x2c, 0x0a}, //14 // SIG Th AGCMAX L
|
||
{0x2d, 0x00}, // PRE Th AGCMIN H
|
||
{0x2e, 0xc0}, //64 // PRE Th AGCMIN L(100d)
|
||
{0x2f, 0x01}, // PRE Th AGCMAX H(300d)
|
||
{0x30, 0x2c}, // PRE Th AGCMAX L
|
||
{0x31, 0x00}, // POST Th AGCMIN H
|
||
{0x32, 0xe0}, //64 // POST Th AGCMIN L(100d)
|
||
{0x33, 0x01}, // POST Th AGCMAX H(300d)
|
||
{0x34, 0x2c}, // POST Th AGCMAX L
|
||
// NR Setting End
|
||
|
||
// Color suppress setting
|
||
{0xfc, 0x0b},
|
||
{0x08, 0x50}, // C suppress AGC MIN
|
||
{0x09, 0x03}, // C suppress MIN H
|
||
{0x0a, 0x80}, // C suppress MIN L
|
||
// C Suppress Setting End
|
||
|
||
{0xfc, 0x05},
|
||
{0x4a, 0x00}, //01 // Edge Color Suppress, 9/13
|
||
|
||
// 1D Y LPF Filter
|
||
{0xfc, 0x01},
|
||
// s05e0 // Default s60
|
||
{0x05, 0x60}, // Default s60
|
||
// [7]: Y LPF filter On [6]: Clap On
|
||
|
||
{0xfc, 0x0b},
|
||
{0x35, 0x00}, // YLPF Start AGC
|
||
{0x36, 0x50}, // YLPF01 AGCMIN
|
||
{0x37, 0x50}, // YLPF01 AGCMAX
|
||
{0x38, 0x00}, // YLPF SIG01 Th AGCMINH
|
||
{0x39, 0x90}, //00 // YLPF SIG01 Th AGCMINL
|
||
{0x3a, 0x01}, // YLPF SIG01 Th AGCMAXH
|
||
{0x3b, 0xa0}, // YLPF SIG01 Th AGCMAXL
|
||
{0x3c, 0x50}, // YLPF02 AGCMIN
|
||
{0x3d, 0x50}, // YLPF02 AGCMAX
|
||
{0x3e, 0x00}, // YLPF SIG02 Th AGCMINH
|
||
{0x3f, 0xa0}, //00 // YLPF SIG02 Th AGCMINL
|
||
{0x40, 0x01}, // YLPF SIG02 Th AGCMAXH s73
|
||
{0x41, 0xb0}, // YLPF SIG02 Th AGCMAXL
|
||
// Y LPF Filter setting End
|
||
|
||
// SET EDGE COLOR SUPPRESS AND Y-LPF
|
||
{0xfc, 0x05},
|
||
{0x42, 0x1F},
|
||
{0x43, 0x1F},
|
||
{0x44, 0x0E},
|
||
{0x45, 0x8C}, //
|
||
{0x46, 0x7A},
|
||
{0x47, 0x60},
|
||
{0x48, 0x0C},
|
||
{0x49, 0x39},
|
||
{0x4A, 0x01},
|
||
{0x4B, 0xB1},
|
||
{0x4C, 0x3B},
|
||
{0x4D, 0x14},
|
||
|
||
// NR Setting
|
||
{0xfc, 0x01},
|
||
{0x4b, 0x01}, // NR Enable
|
||
|
||
// Set multipliers (which are not suppressed)
|
||
{0xfc, 0x01},
|
||
{0x48, 0x11},
|
||
|
||
// Suppressed parameters
|
||
{0xfc, 0x0B},
|
||
{0x21, 0x00},
|
||
{0x22, 0x10},
|
||
{0x23, 0x60},
|
||
{0x24, 0x10},
|
||
{0x25, 0x28},
|
||
{0x26, 0x08},
|
||
{0x27, 0x20},
|
||
|
||
{0x28, 0x00}, //NR Start AGC
|
||
{0x29, 0x00}, // SIG Th AGCMIN H
|
||
{0x2A, 0x02}, // SIG Th AGCMIN L
|
||
{0x2B, 0x00}, // SIG Th AGCMAX H
|
||
{0x2C, 0x14}, // SIG Th AGCMAX L
|
||
{0x2D, 0x03}, // PRE Th AGCMIN H
|
||
{0x2E, 0x84}, // PRE Th AGCMIN L
|
||
{0x2F, 0x03}, // PRE Th AGCMAX H
|
||
{0x30, 0x84}, // PRE Th AGCMAX L
|
||
{0x31, 0x00}, // POST Th AGCMIN H
|
||
{0x32, 0x00}, // POST Th AGCMIN L
|
||
{0x33, 0x00}, // POST Th AGCMAX H
|
||
{0x34, 0xC8}, // POST Th AGCMAX L
|
||
|
||
{0x35, 0x00}, // 1D Y filter setting
|
||
{0x36, 0x10},
|
||
{0x37, 0x50},
|
||
{0x38, 0x00},
|
||
{0x39, 0x14},
|
||
{0x3A, 0x00},
|
||
{0x3B, 0x50},
|
||
{0x3C, 0x10},
|
||
{0x3D, 0x50},
|
||
{0x3E, 0x00},
|
||
{0x3F, 0x28},
|
||
{0x40, 0x00},
|
||
{0x41, 0xA0},
|
||
|
||
// To avoid AWB tracking @ max AGC gain even though AE is unstable state
|
||
{0xfc, 0x00},
|
||
{0xba, 0x50}, // AE Target minus AE Average
|
||
{0xbb, 0x00},
|
||
{0xbc, 0x00},
|
||
|
||
// 3. AE weight & etc linear
|
||
// AE Window Weight linear(EVT1)0929
|
||
{0xfc, 0x20}, // upper window weight zero
|
||
|
||
{0x60, 0x11},
|
||
{0x61, 0x11},
|
||
{0x62, 0x11},
|
||
{0x63, 0x11},
|
||
{0x64, 0x11},
|
||
{0x65, 0x11},
|
||
{0x66, 0x11},
|
||
{0x67, 0x11},
|
||
{0x68, 0x11},
|
||
{0x69, 0x11},
|
||
{0x6a, 0x11},
|
||
{0x6b, 0x11},
|
||
{0x6c, 0x11},
|
||
{0x6d, 0x11},
|
||
{0x6e, 0x11},
|
||
{0x6f, 0x11},
|
||
{0x70, 0x11},
|
||
{0x71, 0x11},
|
||
{0x72, 0x11},
|
||
{0x73, 0x11},
|
||
{0x74, 0x11},
|
||
{0x75, 0x11},
|
||
{0x76, 0x11},
|
||
{0x77, 0x11},
|
||
{0x78, 0x11},
|
||
{0x79, 0x11},
|
||
{0x7a, 0x11},
|
||
{0x7b, 0x11},
|
||
{0x7c, 0x11},
|
||
{0x7d, 0x11},
|
||
{0x7e, 0x11},
|
||
{0x7f, 0x11},
|
||
|
||
|
||
// AE window Weight setting End
|
||
//hue gain linear
|
||
{0xfc, 0x00},
|
||
|
||
{0x48, 0x40},
|
||
{0x49, 0x40},
|
||
{0x4a, 0x00},
|
||
{0x4b, 0x00},
|
||
{0x4c, 0x40},
|
||
{0x4d, 0x40},
|
||
{0x4e, 0x00},
|
||
{0x4f, 0x00},
|
||
{0x50, 0x40},
|
||
{0x51, 0x40},
|
||
{0x52, 0x00},
|
||
{0x53, 0x00},
|
||
{0x54, 0x40},
|
||
{0x55, 0x40},
|
||
{0x56, 0x00},
|
||
{0x57, 0x00},
|
||
{0x58, 0x40},
|
||
{0x59, 0x40},
|
||
{0x5a, 0x00},
|
||
{0x5b, 0x00},
|
||
{0x5c, 0x40},
|
||
{0x5d, 0x40},
|
||
{0x5e, 0x00},
|
||
{0x5f, 0x00},
|
||
{0x62, 0x00}, //hue enable OFF
|
||
|
||
// 4. shading (Flex<65><78> 3000K manual shading)
|
||
{0xfc, 0x09},
|
||
// DSP9_SH_WIDTH_H
|
||
{0x01, 0x06},
|
||
{0x02, 0x40},
|
||
// DSP9_SH_HEIGHT_H
|
||
{0x03, 0x04},
|
||
{0x04, 0xB0},
|
||
{0x05, 0x03},
|
||
{0x06, 0x13},
|
||
{0x07, 0x02},
|
||
{0x08, 0x5A},
|
||
{0x09, 0x03},
|
||
{0x0A, 0x15},
|
||
{0x0B, 0x02},
|
||
{0x0C, 0x5B},
|
||
{0x0D, 0x03},
|
||
{0x0E, 0x0D},
|
||
{0x0F, 0x02},
|
||
{0x10, 0x5D},
|
||
{0x1D, 0x80},
|
||
{0x1E, 0x00},
|
||
{0x1F, 0x80},
|
||
{0x20, 0x00},
|
||
{0x23, 0x80},
|
||
{0x24, 0x00},
|
||
{0x21, 0x80},
|
||
{0x22, 0x00},
|
||
{0x25, 0x80},
|
||
{0x26, 0x00},
|
||
{0x27, 0x80},
|
||
{0x28, 0x00},
|
||
{0x2B, 0x80},
|
||
{0x2C, 0x00},
|
||
{0x29, 0x80},
|
||
{0x2A, 0x00},
|
||
{0x2D, 0x80},
|
||
{0x2E, 0x00},
|
||
{0x2F, 0x80},
|
||
{0x30, 0x00},
|
||
{0x33, 0x80},
|
||
{0x34, 0x00},
|
||
{0x31, 0x80},
|
||
{0x32, 0x00},
|
||
// DSP9_SH_VAL_R0H
|
||
{0x35, 0x01},
|
||
{0x36, 0x00},
|
||
{0x37, 0x01},
|
||
{0x38, 0x0F},
|
||
{0x39, 0x01},
|
||
{0x3A, 0x42},
|
||
{0x3B, 0x01},
|
||
{0x3C, 0x9C},
|
||
{0x3D, 0x01},
|
||
{0x3E, 0xD0},
|
||
{0x3F, 0x02},
|
||
{0x40, 0x0F},
|
||
{0x41, 0x02},
|
||
{0x42, 0x3D},
|
||
{0x43, 0x02},
|
||
{0x44, 0x5E},
|
||
{0x45, 0x01},
|
||
{0x46, 0x00},
|
||
{0x47, 0x01},
|
||
{0x48, 0x0A},
|
||
{0x49, 0x01},
|
||
{0x4A, 0x2E},
|
||
{0x4B, 0x01},
|
||
{0x4C, 0x66},
|
||
{0x4D, 0x01},
|
||
{0x4E, 0x89},
|
||
{0x4F, 0x01},
|
||
{0x50, 0xB7},
|
||
{0x51, 0x01},
|
||
{0x52, 0xD8},
|
||
{0x53, 0x01},
|
||
{0x54, 0xFA},
|
||
// DS9_SH_VAL_B0H
|
||
{0x55, 0x01},
|
||
{0x56, 0x00},
|
||
{0x57, 0x01},
|
||
{0x58, 0x0A},
|
||
{0x59, 0x01},
|
||
{0x5A, 0x28},
|
||
{0x5B, 0x01},
|
||
{0x5C, 0x59},
|
||
{0x5D, 0x01},
|
||
{0x5E, 0x7A},
|
||
{0x5F, 0x01},
|
||
{0x60, 0xA1},
|
||
{0x61, 0x01},
|
||
{0x62, 0xC0},
|
||
{0x63, 0x01},
|
||
{0x64, 0xDC},
|
||
// DSP9_SH_M_R2_R1H
|
||
{0x65, 0x00},
|
||
{0x66, 0x9F},
|
||
{0x67, 0xE6},
|
||
{0x68, 0x02},
|
||
{0x69, 0x7F},
|
||
{0x6A, 0x9B},
|
||
{0x6B, 0x05},
|
||
{0x6C, 0x9F},
|
||
{0x6D, 0x1E},
|
||
{0x6E, 0x07},
|
||
{0x6F, 0xA6},
|
||
{0x70, 0xCC},
|
||
{0x71, 0x09},
|
||
{0x72, 0xFE},
|
||
{0x73, 0x6E},
|
||
{0x74, 0x0C},
|
||
{0x75, 0xA6},
|
||
{0x76, 0x04},
|
||
{0x77, 0x0F},
|
||
{0x78, 0x9D},
|
||
{0x79, 0x8C},
|
||
// DSP9_SH_M_R2_G1H
|
||
{0x7A, 0x00},
|
||
{0x7B, 0x9F},
|
||
{0x7C, 0x95},
|
||
{0x7D, 0x02},
|
||
{0x7E, 0x7E},
|
||
{0x7F, 0x54},
|
||
{0x80, 0x05},
|
||
{0x81, 0x9C},
|
||
{0x82, 0x3E},
|
||
{0x83, 0x07},
|
||
{0x84, 0xA2},
|
||
{0x85, 0xE3},
|
||
{0x86, 0x09},
|
||
{0x87, 0xF9},
|
||
{0x88, 0x53},
|
||
{0x89, 0x0C},
|
||
{0x8A, 0x9F},
|
||
{0x8B, 0x8D},
|
||
{0x8C, 0x0F},
|
||
{0x8D, 0x95},
|
||
{0x8E, 0x91},
|
||
// DSP9_SH_M_R2_B1H
|
||
{0x8F, 0x00},
|
||
{0x90, 0xA1},
|
||
{0x91, 0xFF},
|
||
{0x92, 0x02},
|
||
{0x93, 0x87},
|
||
{0x94, 0xFD},
|
||
{0x95, 0x05},
|
||
{0x96, 0xB1},
|
||
{0x97, 0xFA},
|
||
{0x98, 0x07},
|
||
{0x99, 0xC0},
|
||
{0x9A, 0x79},
|
||
{0x9B, 0x0A},
|
||
{0x9C, 0x1F},
|
||
{0x9D, 0xF6},
|
||
{0x9E, 0x0C},
|
||
{0x9F, 0xD0},
|
||
{0xA0, 0x74},
|
||
{0xA1, 0x0F},
|
||
{0xA2, 0xD1},
|
||
{0xA3, 0xF1},
|
||
// DSP9_SH_SUB_RR0H
|
||
{0xA4, 0x66},
|
||
{0xA5, 0x76},
|
||
{0xA6, 0x22},
|
||
{0xA7, 0x27},
|
||
{0xA8, 0x14},
|
||
{0xA9, 0x7E},
|
||
{0xAA, 0x1F},
|
||
{0xAB, 0x86},
|
||
{0xAC, 0x1B},
|
||
{0xAD, 0x52},
|
||
{0xAE, 0x18},
|
||
{0xAF, 0x1B},
|
||
{0xB0, 0x15},
|
||
{0xB1, 0x92},
|
||
// DSP9_SH_SUB_RG0H
|
||
{0xB2, 0x66},
|
||
{0xB3, 0xAA},
|
||
{0xB4, 0x22},
|
||
{0xB5, 0x38},
|
||
{0xB6, 0x14},
|
||
{0xB7, 0x88},
|
||
{0xB8, 0x1F},
|
||
{0xB9, 0x97},
|
||
{0xBA, 0x1B},
|
||
{0xBB, 0x60},
|
||
{0xBC, 0x18},
|
||
{0xBD, 0x28},
|
||
{0xBE, 0x15},
|
||
{0xBF, 0x9D},
|
||
// DSP9_SH_SUB_RB0H
|
||
{0xC0, 0x65},
|
||
{0xC1, 0x23},
|
||
{0xC2, 0x21},
|
||
{0xC3, 0xB6},
|
||
{0xC4, 0x14},
|
||
{0xC5, 0x3A},
|
||
{0xC6, 0x1F},
|
||
{0xC7, 0x1E},
|
||
{0xC8, 0x1A},
|
||
{0xC9, 0xF8},
|
||
{0xCA, 0x17},
|
||
{0xCB, 0xCC},
|
||
{0xCC, 0x15},
|
||
{0xCD, 0x4A},
|
||
{0x00, 0x02}, // shading on
|
||
|
||
{0xfc, 0x00},
|
||
{0x79, 0xf4},
|
||
{0x7a, 0x09},
|
||
|
||
// 5.color correction
|
||
// 1229 CCM
|
||
// 2.0251 -1.0203 -0.0048
|
||
// -0.7080 1.8970 -0.1889
|
||
// -0.468 -0.444 1.912
|
||
|
||
{0xfc, 0x01},
|
||
{0x51, 0x08}, //R
|
||
{0x52, 0x18},
|
||
{0x53, 0xfb},
|
||
{0x54, 0xec},
|
||
{0x55, 0xff},
|
||
{0x56, 0xfc},
|
||
{0x57, 0xfd}, //G
|
||
{0x58, 0x2c},
|
||
{0x59, 0x07},
|
||
{0x5a, 0x95},
|
||
{0x5b, 0xff},
|
||
{0x5c, 0x3f},
|
||
{0x5d, 0xfe}, //B
|
||
{0x5e, 0x22},
|
||
{0x5f, 0xfe},
|
||
{0x60, 0x3a},
|
||
{0x61, 0x07},
|
||
{0x62, 0xa5},
|
||
|
||
//6.gamma
|
||
//Gamma
|
||
{0xfc, 0x01},
|
||
|
||
// R
|
||
{0x6F, 0x05},
|
||
{0x70, 0x14},
|
||
{0x71, 0x3c},
|
||
{0x72, 0x96},
|
||
{0x73, 0x00},
|
||
|
||
{0x74, 0x2c},
|
||
{0x75, 0xa2},
|
||
{0x76, 0xfc},
|
||
{0x77, 0x44},
|
||
{0x78, 0x56},
|
||
|
||
{0x79, 0x80},
|
||
{0x7A, 0xb7},
|
||
{0x7B, 0xed},
|
||
{0x7C, 0x16},
|
||
{0x7D, 0xab},
|
||
|
||
{0x7E, 0x3c},
|
||
{0x7F, 0x61},
|
||
{0x80, 0x83},
|
||
{0x81, 0xa4},
|
||
{0x82, 0xff},
|
||
|
||
{0x83, 0xc4},
|
||
{0x84, 0xe2},
|
||
{0x85, 0xff},
|
||
{0x86, 0xff},
|
||
|
||
|
||
// G
|
||
{0x87, 0x05},
|
||
{0x88, 0x14},
|
||
{0x89, 0x3c},
|
||
{0x8A, 0x96},
|
||
{0x8B, 0x00},
|
||
|
||
{0x8C, 0x2c},
|
||
{0x8D, 0xa2},
|
||
{0x8E, 0xfc},
|
||
{0x8F, 0x44},
|
||
{0x90, 0x56},
|
||
|
||
{0x91, 0x80},
|
||
{0x92, 0xb7},
|
||
{0x93, 0xed},
|
||
{0x94, 0x16},
|
||
{0x95, 0xab},
|
||
|
||
{0x96, 0x3c},
|
||
{0x97, 0x61},
|
||
{0x98, 0x83},
|
||
{0x99, 0xa4},
|
||
{0x9A, 0xff},
|
||
|
||
{0x9B, 0xc4},
|
||
{0x9C, 0xe2},
|
||
{0x9D, 0xff},
|
||
{0x9E, 0xff},
|
||
|
||
//B
|
||
{0x9F, 0x05},
|
||
{0xA0, 0x10},
|
||
{0xA1, 0x30},
|
||
{0xA2, 0x70},
|
||
{0xA3, 0x00},
|
||
|
||
{0xA4, 0x2c},
|
||
{0xA5, 0xa2},
|
||
{0xA6, 0xfc},
|
||
{0xA7, 0x44},
|
||
{0xA8, 0x56},
|
||
|
||
{0xA9, 0x80},
|
||
{0xAA, 0xb7},
|
||
{0xAB, 0xed},
|
||
{0xAC, 0x16},
|
||
{0xAD, 0xab},
|
||
|
||
{0xAE, 0x3c},
|
||
{0xAF, 0x61},
|
||
{0xB0, 0x83},
|
||
{0xB1, 0xa4},
|
||
{0xB2, 0xff},
|
||
|
||
{0xB3, 0xc4},
|
||
{0xB4, 0xe2},
|
||
{0xB5, 0xff},
|
||
{0xB6, 0xff},
|
||
|
||
// 7.hue
|
||
{0xFC, 0x00},
|
||
{0x62, 0x00}, // hue auto control off
|
||
|
||
{0xFC, 0x05},
|
||
{0x4E, 0x60},
|
||
{0x4F, 0xA0},
|
||
{0x50, 0x35},
|
||
{0x51, 0xA0},
|
||
{0x52, 0x20},
|
||
{0x53, 0x01},
|
||
{0x54, 0xE0},
|
||
{0x55, 0xE0},
|
||
{0x56, 0x54},
|
||
{0x57, 0x20},
|
||
{0x58, 0x20},
|
||
{0x59, 0xF0},
|
||
|
||
// 8.white point
|
||
// AWB Start Point
|
||
{0xfc, 0x07},
|
||
{0x05, 0x00},
|
||
{0x06, 0x08},
|
||
{0x07, 0x1b},
|
||
{0x08, 0xf0},
|
||
{0x09, 0x00}, // R
|
||
{0x0a, 0xa8},
|
||
{0x0b, 0x00}, // B
|
||
{0x0c, 0xb0},
|
||
{0x0d, 0x00}, // G
|
||
{0x0e, 0x40},
|
||
|
||
{0xfc, 0x00},
|
||
{0x70, 0x02},
|
||
|
||
{0x40, 0x8a}, //2000K
|
||
{0x41, 0xe5},
|
||
{0x42, 0x95}, //3100K
|
||
{0x43, 0xba},
|
||
{0x44, 0xbc}, //5100K
|
||
{0x45, 0x99},
|
||
|
||
{0x34, 0x24},
|
||
{0x35, 0x10},
|
||
{0x36, 0x13},
|
||
{0x37, 0x04},
|
||
{0x38, 0x10},
|
||
{0x39, 0x28},
|
||
{0x3a, 0x1e},
|
||
{0x3b, 0x2a},
|
||
{0x31, 0x00}, // skin tone[6], CW delete[5]
|
||
#if 0
|
||
// Added by SOP at 02/09/2006
|
||
{0xfc, 0x00},
|
||
{0x02, 0x00} // Image format from UXGA to VGA
|
||
// 0: UXGA, 1: SXGA, 2: VGA, 3: QVGA, 4: QQVGA, 5: CIF, 6: QCIF
|
||
#else
|
||
{0xfc, 0x00},
|
||
{0x72, 0xfa},
|
||
{0x74, 0x90},
|
||
|
||
{0xfc, 0x02},
|
||
{0x50, 0x12},
|
||
{0x52, 0x7a}, // AWB_AE_DIFF
|
||
|
||
{0xfc, 0x00},
|
||
{0x74, 0x18},
|
||
|
||
{0xfc, 0x04},
|
||
{0xed, 0x02},
|
||
{0xc3, 0x76},
|
||
{0xd7, 0x58},
|
||
|
||
{0xdc, 0x80},
|
||
{0xdd, 0x02}, // SC type selection
|
||
{0xde, 0xe0}, //16 // SC type global gain
|
||
{0xdf, 0x01},
|
||
{0xe4, 0x80},
|
||
{0xe5, 0x02}, // SC type selection
|
||
{0xe6, 0xe0}, //16 // SC type global gain
|
||
{0xe7, 0x01},
|
||
|
||
{0xe9, 0x4d},
|
||
{0xea, 0x08},
|
||
{0xeb, 0x00},
|
||
|
||
{0xda, 0xcd},
|
||
{0xdb, 0xcd},
|
||
|
||
{0xfc, 0x05}, // AWB_AE_DIFF
|
||
{0x64, 0xfe},
|
||
{0x65, 0xfe},
|
||
{0x66, 0xfd},
|
||
|
||
{0xfc, 0x0b},
|
||
{0x24, 0x20},
|
||
{0x26, 0x20},
|
||
{0x2e, 0xf0},
|
||
{0x32, 0xf0},
|
||
{0x39, 0xa0},
|
||
|
||
{0xfc, 0x00},
|
||
{0x02, 0x09},
|
||
|
||
{0xfc, 0x09},
|
||
{0x1d, 0xff},
|
||
{0x1e, 0xff},
|
||
{0x1f, 0xff},
|
||
{0x20, 0xff},
|
||
{0x21, 0xff},
|
||
{0x22, 0xff},
|
||
{0x23, 0xff},
|
||
{0x24, 0xff},
|
||
{0x25, 0xff},
|
||
{0x26, 0xff},
|
||
{0x27, 0xff},
|
||
{0x28, 0xff},
|
||
{0x29, 0xff},
|
||
{0x2a, 0xff},
|
||
{0x2b, 0xff},
|
||
{0x2c, 0xff},
|
||
{0x2d, 0xff},
|
||
{0x2e, 0xff},
|
||
{0x2f, 0xff},
|
||
{0x31, 0xff},
|
||
{0x32, 0xff},
|
||
{0x33, 0xff},
|
||
{0x34, 0xff},
|
||
#endif
|
||
};
|
||
|
||
|
||
// For SXGA (1280 x 1024 = 1.3M) on 3BA module
|
||
s5k3xa_t s5k3ba_reg_sxga[] =
|
||
{
|
||
// PLL SETTING Input = 25Mhz, Output = 64Mhz, UXGA (2Mpixel)
|
||
// 1. initial setting
|
||
|
||
{0xfc, 0x01},
|
||
{0x04, 0x03}, //ARM Clock divider(1/4)
|
||
|
||
//In case of PCLK = 64MHz
|
||
{0xfc, 0x02},
|
||
{0x52, 0x80}, //PLL M
|
||
|
||
{0xfc, 0x02},
|
||
{0x50, 0x19}, //PLL S,P
|
||
|
||
{0xfc, 0x07},
|
||
{0x58, 0x10},
|
||
{0x59, 0x00},
|
||
{0x5A, 0x00},
|
||
{0x5B, 0x6c},
|
||
|
||
{0xfc, 0xf0},
|
||
{0x00, 0x40},
|
||
|
||
{0xfc, 0x00},
|
||
{0x62, 0x02},
|
||
{0xbc, 0xe0}, // AWB_AE_DIFF
|
||
|
||
{0xfc, 0x03},
|
||
{0x2d, 0x02},
|
||
{0xfc, 0x01},
|
||
{0x02, 0x02}, // YCbCr Order
|
||
|
||
{0xfc, 0x02},
|
||
{0x4a, 0xc1}, // SC type selection
|
||
{0x37, 0x18}, //16 // SC type global gain
|
||
{0x47, 0xc4}, // r-ramp by chin
|
||
|
||
|
||
{0xfc, 0x01}, //AWB Window Area (except sky)
|
||
{0xc4, 0x01},
|
||
{0xc5, 0x4e},
|
||
{0xc7, 0x6e},
|
||
|
||
{0xfc, 0x02},
|
||
{0x30, 0x84}, //Analog offset
|
||
|
||
{0xfc, 0x00},
|
||
{0x3d, 0x10}, //AWB Low Y limit
|
||
|
||
{0xfc, 0x02},
|
||
{0x3d, 0x06}, //ADLC OFF
|
||
{0x44, 0x5b}, //clamp enable
|
||
{0x55, 0x03},
|
||
|
||
{0xfc, 0x06},
|
||
{0x0c, 0x01},
|
||
{0x0d, 0x4e},
|
||
{0x0f, 0x6e},
|
||
|
||
{0xfc, 0x00},
|
||
{0x78, 0x58}, //AGC MAX (30lux_Micron<6F><6E><EFBFBD><EFBFBD>Y=60code)
|
||
|
||
{0xfc, 0x02},
|
||
{0x45, 0x8c}, //CDS timing_<67><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD> greenish <20>ذ<EFBFBD>(15fps)
|
||
{0x49, 0x80}, // APS Current 2uA
|
||
|
||
{0xfc, 0x01},
|
||
{0x25, 0x14}, //10 //Digital Clamp
|
||
|
||
{0xfc, 0x00},
|
||
{0x6c, 0xac}, //AE target (Macbeth white=240)
|
||
{0x6d, 0x00},
|
||
|
||
// 2. ISP tuning
|
||
// ISP_tuning
|
||
{0xfc, 0x00},
|
||
{0x01, 0x00}, // I2C hold mode off
|
||
|
||
{0xfc, 0x01},
|
||
{0x00, 0x00}, // ISP BPR Off
|
||
{0x0c, 0x02}, // Full YC
|
||
{0xc8, 0x19}, // AWB Y Max
|
||
|
||
{0xfc, 0x00},
|
||
{0x81, 0x00}, // AWB G gain suppress disable
|
||
{0x29, 0x04},
|
||
{0x2a, 0x00},
|
||
{0x2b, 0x04}, // color level
|
||
{0x2c, 0x00},
|
||
|
||
{0xfc, 0x07},
|
||
{0x11, 0x00}, // G offset
|
||
{0x37, 0x00}, // Flicker Add
|
||
|
||
{0xfc, 0x00},
|
||
{0x72, 0xa0}, // Flicker for 32MHz
|
||
{0x74, 0x18}, // Flicker
|
||
{0x73, 0x00}, // Frame AE
|
||
|
||
{0xfc, 0x05},
|
||
{0x64, 0x00}, // Darkslice R
|
||
{0x65, 0x00}, // Darkslice G
|
||
{0x66, 0x00}, // Darkslice B
|
||
|
||
//Edge
|
||
{0xfc, 0x05},
|
||
{0x2c, 0x0a}, //14 // positive gain
|
||
{0x30, 0x0a}, //10 // negative edge gain
|
||
{0x34, 0x1a}, // APTCLP
|
||
{0x35, 0x10}, //0a // APTSC
|
||
{0x36, 0x0b}, // ENHANCE
|
||
{0x3f, 0x00}, // NON-LIN
|
||
{0x45, 0x30}, // EGREF
|
||
{0x47, 0x00}, // LLREF
|
||
{0x48, 0x08}, // by chin
|
||
{0x49, 0x39}, // CSSEL EGSEL CS_DLY by
|
||
{0x40, 0x41}, // Y delay
|
||
|
||
{0xfc, 0x00},
|
||
{0x7e, 0xfc},
|
||
// s7e8c //NR GrGb off
|
||
// [7]: BPR [6]:Noise Filter(1D/NR) [4]: GrGb Enable [3]:BPR Data Threshold
|
||
// [2]: color suppress [1]: Y gain suppress [0]: Digital Clamp
|
||
|
||
// GrGb Correction setting
|
||
{0xfc, 0x01},
|
||
{0x44, 0x0c},
|
||
//s4400
|
||
/// [4]: GrGb full [3]: GrGb On
|
||
/// [2]: GrGb Rb On
|
||
{0xfc, 0x0b},
|
||
{0x21, 0x00}, // Start AGC
|
||
{0x22, 0x10}, // AGCMIN
|
||
{0x23, 0x50}, // AGCMAX
|
||
{0x24, 0x18}, // G Th AGCMIN(23d)
|
||
{0x25, 0x52}, // G Th AGCMAX(50d)
|
||
{0x26, 0x38}, // RB Th AGCMIN
|
||
{0x27, 0x52}, // RB Th AGCMAX
|
||
// GrGb Correction setting End
|
||
|
||
///////////////////////////////////
|
||
// BPR Setting
|
||
{0xfc, 0x01},
|
||
{0x3f, 0x00}, // setting because S/W bug
|
||
|
||
{0xfc, 0x0b},
|
||
{0x0b, 0x00}, // ISP BPR On Start
|
||
{0x0c, 0x00}, // Th13 AGC Min
|
||
{0x0d, 0x5a}, // Th13 AGC Max
|
||
{0x0e, 0x01}, //00 // Th1 Max H for AGCMIN
|
||
{0x0f, 0xff}, //c0 // Th1 Max L for AGCMIN
|
||
{0x10, 0x00}, // Th1 Min H for AGCMAX
|
||
{0x11, 0x10}, //00 // Th1 Min L for AGCMAX
|
||
{0x12, 0xff}, // Th3 Max H for AGCMIN
|
||
{0x13, 0xff}, // Th3 Max L for AGCMIN
|
||
{0x14, 0xff}, // Th3 Min H for AGCMAX
|
||
{0x15, 0xff}, // Th3 Min L for AGCMAX
|
||
|
||
// NR Setting
|
||
{0xfc, 0x01},
|
||
{0x4b, 0x01}, // NR Enable
|
||
// s4b00 // NR Enable
|
||
|
||
{0xfc, 0x0b},
|
||
{0x28, 0x00}, //NR Start AGC
|
||
{0x29, 0x00}, // SIG Th AGCMIN H
|
||
{0x2a, 0x0a}, //14 // SIG Th AGCMIN L
|
||
{0x2b, 0x00}, // SIG Th AGCMAX H
|
||
{0x2c, 0x0a}, //14 // SIG Th AGCMAX L
|
||
{0x2d, 0x00}, // PRE Th AGCMIN H
|
||
{0x2e, 0xc0}, //64 // PRE Th AGCMIN L(100d)
|
||
{0x2f, 0x01}, // PRE Th AGCMAX H(300d)
|
||
{0x30, 0x2c}, // PRE Th AGCMAX L
|
||
{0x31, 0x00}, // POST Th AGCMIN H
|
||
{0x32, 0xe0}, //64 // POST Th AGCMIN L(100d)
|
||
{0x33, 0x01}, // POST Th AGCMAX H(300d)
|
||
{0x34, 0x2c}, // POST Th AGCMAX L
|
||
// NR Setting End
|
||
|
||
// Color suppress setting
|
||
{0xfc, 0x0b},
|
||
{0x08, 0x50}, // C suppress AGC MIN
|
||
{0x09, 0x03}, // C suppress MIN H
|
||
{0x0a, 0x80}, // C suppress MIN L
|
||
// C Suppress Setting End
|
||
|
||
{0xfc, 0x05},
|
||
{0x4a, 0x00}, //01 // Edge Color Suppress, 9/13
|
||
|
||
// 1D Y LPF Filter
|
||
{0xfc, 0x01},
|
||
// s05e0 // Default s60
|
||
{0x05, 0x60}, // Default s60
|
||
// [7]: Y LPF filter On [6]: Clap On
|
||
|
||
{0xfc, 0x0b},
|
||
{0x35, 0x00}, // YLPF Start AGC
|
||
{0x36, 0x50}, // YLPF01 AGCMIN
|
||
{0x37, 0x50}, // YLPF01 AGCMAX
|
||
{0x38, 0x00}, // YLPF SIG01 Th AGCMINH
|
||
{0x39, 0x90}, //00 // YLPF SIG01 Th AGCMINL
|
||
{0x3a, 0x01}, // YLPF SIG01 Th AGCMAXH
|
||
{0x3b, 0xa0}, // YLPF SIG01 Th AGCMAXL
|
||
{0x3c, 0x50}, // YLPF02 AGCMIN
|
||
{0x3d, 0x50}, // YLPF02 AGCMAX
|
||
{0x3e, 0x00}, // YLPF SIG02 Th AGCMINH
|
||
{0x3f, 0xa0}, //00 // YLPF SIG02 Th AGCMINL
|
||
{0x40, 0x01}, // YLPF SIG02 Th AGCMAXH s73
|
||
{0x41, 0xb0}, // YLPF SIG02 Th AGCMAXL
|
||
// Y LPF Filter setting End
|
||
|
||
// SET EDGE COLOR SUPPRESS AND Y-LPF
|
||
{0xfc, 0x05},
|
||
{0x42, 0x1F},
|
||
{0x43, 0x1F},
|
||
{0x44, 0x0E},
|
||
{0x45, 0x8C}, //
|
||
{0x46, 0x7A},
|
||
{0x47, 0x60},
|
||
{0x48, 0x0C},
|
||
{0x49, 0x39},
|
||
{0x4A, 0x01},
|
||
{0x4B, 0xB1},
|
||
{0x4C, 0x3B},
|
||
{0x4D, 0x14},
|
||
|
||
// NR Setting
|
||
{0xfc, 0x01},
|
||
{0x4b, 0x01}, // NR Enable
|
||
|
||
// Set multipliers (which are not suppressed)
|
||
{0xfc, 0x01},
|
||
{0x48, 0x11},
|
||
|
||
// Suppressed parameters
|
||
{0xfc, 0x0B},
|
||
{0x21, 0x00},
|
||
{0x22, 0x10},
|
||
{0x23, 0x60},
|
||
{0x24, 0x10},
|
||
{0x25, 0x28},
|
||
{0x26, 0x08},
|
||
{0x27, 0x20},
|
||
|
||
{0x28, 0x00}, //NR Start AGC
|
||
{0x29, 0x00}, // SIG Th AGCMIN H
|
||
{0x2A, 0x02}, // SIG Th AGCMIN L
|
||
{0x2B, 0x00}, // SIG Th AGCMAX H
|
||
{0x2C, 0x14}, // SIG Th AGCMAX L
|
||
{0x2D, 0x03}, // PRE Th AGCMIN H
|
||
{0x2E, 0x84}, // PRE Th AGCMIN L
|
||
{0x2F, 0x03}, // PRE Th AGCMAX H
|
||
{0x30, 0x84}, // PRE Th AGCMAX L
|
||
{0x31, 0x00}, // POST Th AGCMIN H
|
||
{0x32, 0x00}, // POST Th AGCMIN L
|
||
{0x33, 0x00}, // POST Th AGCMAX H
|
||
{0x34, 0xC8}, // POST Th AGCMAX L
|
||
|
||
{0x35, 0x00}, // 1D Y filter setting
|
||
{0x36, 0x10},
|
||
{0x37, 0x50},
|
||
{0x38, 0x00},
|
||
{0x39, 0x14},
|
||
{0x3A, 0x00},
|
||
{0x3B, 0x50},
|
||
{0x3C, 0x10},
|
||
{0x3D, 0x50},
|
||
{0x3E, 0x00},
|
||
{0x3F, 0x28},
|
||
{0x40, 0x00},
|
||
{0x41, 0xA0},
|
||
|
||
// To avoid AWB tracking @ max AGC gain even though AE is unstable state
|
||
{0xfc, 0x00},
|
||
{0xba, 0x50}, // AE Target minus AE Average
|
||
{0xbb, 0x00},
|
||
{0xbc, 0x00},
|
||
|
||
// 3. AE weight & etc linear
|
||
// AE Window Weight linear(EVT1)0929
|
||
{0xfc, 0x20}, // upper window weight zero
|
||
|
||
{0x60, 0x11},
|
||
{0x61, 0x11},
|
||
{0x62, 0x11},
|
||
{0x63, 0x11},
|
||
{0x64, 0x11},
|
||
{0x65, 0x11},
|
||
{0x66, 0x11},
|
||
{0x67, 0x11},
|
||
{0x68, 0x11},
|
||
{0x69, 0x11},
|
||
{0x6a, 0x11},
|
||
{0x6b, 0x11},
|
||
{0x6c, 0x11},
|
||
{0x6d, 0x11},
|
||
{0x6e, 0x11},
|
||
{0x6f, 0x11},
|
||
{0x70, 0x11},
|
||
{0x71, 0x11},
|
||
{0x72, 0x11},
|
||
{0x73, 0x11},
|
||
{0x74, 0x11},
|
||
{0x75, 0x11},
|
||
{0x76, 0x11},
|
||
{0x77, 0x11},
|
||
{0x78, 0x11},
|
||
{0x79, 0x11},
|
||
{0x7a, 0x11},
|
||
{0x7b, 0x11},
|
||
{0x7c, 0x11},
|
||
{0x7d, 0x11},
|
||
{0x7e, 0x11},
|
||
{0x7f, 0x11},
|
||
|
||
// AE window Weight setting End
|
||
//hue gain linear
|
||
{0xfc, 0x00},
|
||
|
||
{0x48, 0x40},
|
||
{0x49, 0x40},
|
||
{0x4a, 0x00},
|
||
{0x4b, 0x00},
|
||
{0x4c, 0x40},
|
||
{0x4d, 0x40},
|
||
{0x4e, 0x00},
|
||
{0x4f, 0x00},
|
||
{0x50, 0x40},
|
||
{0x51, 0x40},
|
||
{0x52, 0x00},
|
||
{0x53, 0x00},
|
||
{0x54, 0x40},
|
||
{0x55, 0x40},
|
||
{0x56, 0x00},
|
||
{0x57, 0x00},
|
||
{0x58, 0x40},
|
||
{0x59, 0x40},
|
||
{0x5a, 0x00},
|
||
{0x5b, 0x00},
|
||
{0x5c, 0x40},
|
||
{0x5d, 0x40},
|
||
{0x5e, 0x00},
|
||
{0x5f, 0x00},
|
||
{0x62, 0x00}, //hue enable OFF
|
||
|
||
// 4. shading (Flex<65><78> 3000K manual shading)
|
||
{0xfc, 0x09},
|
||
// DSP9_SH_WIDTH_H
|
||
{0x01, 0x06},
|
||
{0x02, 0x40},
|
||
// DSP9_SH_HEIGHT_H
|
||
{0x03, 0x04},
|
||
{0x04, 0xB0},
|
||
{0x05, 0x03},
|
||
{0x06, 0x13},
|
||
{0x07, 0x02},
|
||
{0x08, 0x5A},
|
||
{0x09, 0x03},
|
||
{0x0A, 0x15},
|
||
{0x0B, 0x02},
|
||
{0x0C, 0x5B},
|
||
{0x0D, 0x03},
|
||
{0x0E, 0x0D},
|
||
{0x0F, 0x02},
|
||
{0x10, 0x5D},
|
||
{0x1D, 0x80},
|
||
{0x1E, 0x00},
|
||
{0x1F, 0x80},
|
||
{0x20, 0x00},
|
||
{0x23, 0x80},
|
||
{0x24, 0x00},
|
||
{0x21, 0x80},
|
||
{0x22, 0x00},
|
||
{0x25, 0x80},
|
||
{0x26, 0x00},
|
||
{0x27, 0x80},
|
||
{0x28, 0x00},
|
||
{0x2B, 0x80},
|
||
{0x2C, 0x00},
|
||
{0x29, 0x80},
|
||
{0x2A, 0x00},
|
||
{0x2D, 0x80},
|
||
{0x2E, 0x00},
|
||
{0x2F, 0x80},
|
||
{0x30, 0x00},
|
||
{0x33, 0x80},
|
||
{0x34, 0x00},
|
||
{0x31, 0x80},
|
||
{0x32, 0x00},
|
||
// DSP9_SH_VAL_R0H
|
||
{0x35, 0x01},
|
||
{0x36, 0x00},
|
||
{0x37, 0x01},
|
||
{0x38, 0x0F},
|
||
{0x39, 0x01},
|
||
{0x3A, 0x42},
|
||
{0x3B, 0x01},
|
||
{0x3C, 0x9C},
|
||
{0x3D, 0x01},
|
||
{0x3E, 0xD0},
|
||
{0x3F, 0x02},
|
||
{0x40, 0x0F},
|
||
{0x41, 0x02},
|
||
{0x42, 0x3D},
|
||
{0x43, 0x02},
|
||
{0x44, 0x5E},
|
||
{0x45, 0x01},
|
||
{0x46, 0x00},
|
||
{0x47, 0x01},
|
||
{0x48, 0x0A},
|
||
{0x49, 0x01},
|
||
{0x4A, 0x2E},
|
||
{0x4B, 0x01},
|
||
{0x4C, 0x66},
|
||
{0x4D, 0x01},
|
||
{0x4E, 0x89},
|
||
{0x4F, 0x01},
|
||
{0x50, 0xB7},
|
||
{0x51, 0x01},
|
||
{0x52, 0xD8},
|
||
{0x53, 0x01},
|
||
{0x54, 0xFA},
|
||
// DS9_SH_VAL_B0H
|
||
{0x55, 0x01},
|
||
{0x56, 0x00},
|
||
{0x57, 0x01},
|
||
{0x58, 0x0A},
|
||
{0x59, 0x01},
|
||
{0x5A, 0x28},
|
||
{0x5B, 0x01},
|
||
{0x5C, 0x59},
|
||
{0x5D, 0x01},
|
||
{0x5E, 0x7A},
|
||
{0x5F, 0x01},
|
||
{0x60, 0xA1},
|
||
{0x61, 0x01},
|
||
{0x62, 0xC0},
|
||
{0x63, 0x01},
|
||
{0x64, 0xDC},
|
||
// DSP9_SH_M_R2_R1H
|
||
{0x65, 0x00},
|
||
{0x66, 0x9F},
|
||
{0x67, 0xE6},
|
||
{0x68, 0x02},
|
||
{0x69, 0x7F},
|
||
{0x6A, 0x9B},
|
||
{0x6B, 0x05},
|
||
{0x6C, 0x9F},
|
||
{0x6D, 0x1E},
|
||
{0x6E, 0x07},
|
||
{0x6F, 0xA6},
|
||
{0x70, 0xCC},
|
||
{0x71, 0x09},
|
||
{0x72, 0xFE},
|
||
{0x73, 0x6E},
|
||
{0x74, 0x0C},
|
||
{0x75, 0xA6},
|
||
{0x76, 0x04},
|
||
{0x77, 0x0F},
|
||
{0x78, 0x9D},
|
||
{0x79, 0x8C},
|
||
// DSP9_SH_M_R2_G1H
|
||
{0x7A, 0x00},
|
||
{0x7B, 0x9F},
|
||
{0x7C, 0x95},
|
||
{0x7D, 0x02},
|
||
{0x7E, 0x7E},
|
||
{0x7F, 0x54},
|
||
{0x80, 0x05},
|
||
{0x81, 0x9C},
|
||
{0x82, 0x3E},
|
||
{0x83, 0x07},
|
||
{0x84, 0xA2},
|
||
{0x85, 0xE3},
|
||
{0x86, 0x09},
|
||
{0x87, 0xF9},
|
||
{0x88, 0x53},
|
||
{0x89, 0x0C},
|
||
{0x8A, 0x9F},
|
||
{0x8B, 0x8D},
|
||
{0x8C, 0x0F},
|
||
{0x8D, 0x95},
|
||
{0x8E, 0x91},
|
||
// DSP9_SH_M_R2_B1H
|
||
{0x8F, 0x00},
|
||
{0x90, 0xA1},
|
||
{0x91, 0xFF},
|
||
{0x92, 0x02},
|
||
{0x93, 0x87},
|
||
{0x94, 0xFD},
|
||
{0x95, 0x05},
|
||
{0x96, 0xB1},
|
||
{0x97, 0xFA},
|
||
{0x98, 0x07},
|
||
{0x99, 0xC0},
|
||
{0x9A, 0x79},
|
||
{0x9B, 0x0A},
|
||
{0x9C, 0x1F},
|
||
{0x9D, 0xF6},
|
||
{0x9E, 0x0C},
|
||
{0x9F, 0xD0},
|
||
{0xA0, 0x74},
|
||
{0xA1, 0x0F},
|
||
{0xA2, 0xD1},
|
||
{0xA3, 0xF1},
|
||
// DSP9_SH_SUB_RR0H
|
||
{0xA4, 0x66},
|
||
{0xA5, 0x76},
|
||
{0xA6, 0x22},
|
||
{0xA7, 0x27},
|
||
{0xA8, 0x14},
|
||
{0xA9, 0x7E},
|
||
{0xAA, 0x1F},
|
||
{0xAB, 0x86},
|
||
{0xAC, 0x1B},
|
||
{0xAD, 0x52},
|
||
{0xAE, 0x18},
|
||
{0xAF, 0x1B},
|
||
{0xB0, 0x15},
|
||
{0xB1, 0x92},
|
||
// DSP9_SH_SUB_RG0H
|
||
{0xB2, 0x66},
|
||
{0xB3, 0xAA},
|
||
{0xB4, 0x22},
|
||
{0xB5, 0x38},
|
||
{0xB6, 0x14},
|
||
{0xB7, 0x88},
|
||
{0xB8, 0x1F},
|
||
{0xB9, 0x97},
|
||
{0xBA, 0x1B},
|
||
{0xBB, 0x60},
|
||
{0xBC, 0x18},
|
||
{0xBD, 0x28},
|
||
{0xBE, 0x15},
|
||
{0xBF, 0x9D},
|
||
// DSP9_SH_SUB_RB0H
|
||
{0xC0, 0x65},
|
||
{0xC1, 0x23},
|
||
{0xC2, 0x21},
|
||
{0xC3, 0xB6},
|
||
{0xC4, 0x14},
|
||
{0xC5, 0x3A},
|
||
{0xC6, 0x1F},
|
||
{0xC7, 0x1E},
|
||
{0xC8, 0x1A},
|
||
{0xC9, 0xF8},
|
||
{0xCA, 0x17},
|
||
{0xCB, 0xCC},
|
||
{0xCC, 0x15},
|
||
{0xCD, 0x4A},
|
||
{0x00, 0x02}, // shading on
|
||
|
||
{0xfc, 0x00},
|
||
{0x79, 0xf4},
|
||
{0x7a, 0x09},
|
||
|
||
// 5.color correction
|
||
// 1229 CCM
|
||
// 2.0251 -1.0203 -0.0048
|
||
// -0.7080 1.8970 -0.1889
|
||
// -0.468 -0.444 1.912
|
||
|
||
{0xfc, 0x01},
|
||
{0x51, 0x08}, //R
|
||
{0x52, 0x18},
|
||
{0x53, 0xfb},
|
||
{0x54, 0xec},
|
||
{0x55, 0xff},
|
||
{0x56, 0xfc},
|
||
{0x57, 0xfd}, //G
|
||
{0x58, 0x2c},
|
||
{0x59, 0x07},
|
||
{0x5a, 0x95},
|
||
{0x5b, 0xff},
|
||
{0x5c, 0x3f},
|
||
{0x5d, 0xfe}, //B
|
||
{0x5e, 0x22},
|
||
{0x5f, 0xfe},
|
||
{0x60, 0x3a},
|
||
{0x61, 0x07},
|
||
{0x62, 0xa5},
|
||
|
||
//6.gamma
|
||
//Gamma
|
||
{0xfc, 0x01},
|
||
|
||
// R
|
||
{0x6F, 0x05},
|
||
{0x70, 0x14},
|
||
{0x71, 0x3c},
|
||
{0x72, 0x96},
|
||
{0x73, 0x00},
|
||
|
||
{0x74, 0x2c},
|
||
{0x75, 0xa2},
|
||
{0x76, 0xfc},
|
||
{0x77, 0x44},
|
||
{0x78, 0x56},
|
||
|
||
{0x79, 0x80},
|
||
{0x7A, 0xb7},
|
||
{0x7B, 0xed},
|
||
{0x7C, 0x16},
|
||
{0x7D, 0xab},
|
||
|
||
{0x7E, 0x3c},
|
||
{0x7F, 0x61},
|
||
{0x80, 0x83},
|
||
{0x81, 0xa4},
|
||
{0x82, 0xff},
|
||
|
||
{0x83, 0xc4},
|
||
{0x84, 0xe2},
|
||
{0x85, 0xff},
|
||
{0x86, 0xff},
|
||
|
||
// G
|
||
{0x87, 0x05},
|
||
{0x88, 0x14},
|
||
{0x89, 0x3c},
|
||
{0x8A, 0x96},
|
||
{0x8B, 0x00},
|
||
|
||
{0x8C, 0x2c},
|
||
{0x8D, 0xa2},
|
||
{0x8E, 0xfc},
|
||
{0x8F, 0x44},
|
||
{0x90, 0x56},
|
||
|
||
{0x91, 0x80},
|
||
{0x92, 0xb7},
|
||
{0x93, 0xed},
|
||
{0x94, 0x16},
|
||
{0x95, 0xab},
|
||
|
||
{0x96, 0x3c},
|
||
{0x97, 0x61},
|
||
{0x98, 0x83},
|
||
{0x99, 0xa4},
|
||
{0x9A, 0xff},
|
||
|
||
{0x9B, 0xc4},
|
||
{0x9C, 0xe2},
|
||
{0x9D, 0xff},
|
||
{0x9E, 0xff},
|
||
|
||
//B
|
||
{0x9F, 0x05},
|
||
{0xA0, 0x10},
|
||
{0xA1, 0x30},
|
||
{0xA2, 0x70},
|
||
{0xA3, 0x00},
|
||
|
||
{0xA4, 0x2c},
|
||
{0xA5, 0xa2},
|
||
{0xA6, 0xfc},
|
||
{0xA7, 0x44},
|
||
{0xA8, 0x56},
|
||
|
||
{0xA9, 0x80},
|
||
{0xAA, 0xb7},
|
||
{0xAB, 0xed},
|
||
{0xAC, 0x16},
|
||
{0xAD, 0xab},
|
||
|
||
{0xAE, 0x3c},
|
||
{0xAF, 0x61},
|
||
{0xB0, 0x83},
|
||
{0xB1, 0xa4},
|
||
{0xB2, 0xff},
|
||
|
||
{0xB3, 0xc4},
|
||
{0xB4, 0xe2},
|
||
{0xB5, 0xff},
|
||
{0xB6, 0xff},
|
||
|
||
// 7.hue
|
||
{0xFC, 0x00},
|
||
{0x62, 0x00}, // hue auto control off
|
||
|
||
{0xFC, 0x05},
|
||
{0x4E, 0x60},
|
||
{0x4F, 0xA0},
|
||
{0x50, 0x35},
|
||
{0x51, 0xA0},
|
||
{0x52, 0x20},
|
||
{0x53, 0x01},
|
||
{0x54, 0xE0},
|
||
{0x55, 0xE0},
|
||
{0x56, 0x54},
|
||
{0x57, 0x20},
|
||
{0x58, 0x20},
|
||
{0x59, 0xF0},
|
||
|
||
// 8.white point
|
||
// AWB Start Point
|
||
{0xfc, 0x07},
|
||
{0x05, 0x00},
|
||
{0x06, 0x08},
|
||
{0x07, 0x1b},
|
||
{0x08, 0xf0},
|
||
{0x09, 0x00}, // R
|
||
{0x0a, 0xa8},
|
||
{0x0b, 0x00}, // B
|
||
{0x0c, 0xb0},
|
||
{0x0d, 0x00}, // G
|
||
{0x0e, 0x40},
|
||
|
||
{0xfc, 0x00},
|
||
{0x70, 0x02},
|
||
|
||
{0x40, 0x8a}, //2000K
|
||
{0x41, 0xe5},
|
||
{0x42, 0x95}, //3100K
|
||
{0x43, 0xba},
|
||
{0x44, 0xbc}, //5100K
|
||
{0x45, 0x99},
|
||
|
||
{0x34, 0x24},
|
||
{0x35, 0x10},
|
||
{0x36, 0x13},
|
||
{0x37, 0x04},
|
||
{0x38, 0x10},
|
||
{0x39, 0x28},
|
||
{0x3a, 0x1e},
|
||
{0x3b, 0x2a},
|
||
{0x31, 0x00}, // skin tone[6], CW delete[5]
|
||
|
||
// Added by SOP at 02/09/2006
|
||
{0xfc, 0x00},
|
||
{0x02, 0x01} // Image format from UXGA to VGA
|
||
// 0: UXGA, 1: SXGA, 2: VGA, 3: QVGA, 4: QQVGA, 5: CIF, 6: QCIF
|
||
};
|
||
|
||
|
||
// For UXGA (1600 x 1200 = 2M) on 3BA module
|
||
s5k3xa_t s5k3ba_reg_uxga[] =
|
||
{
|
||
|
||
//[[CAMIF_POWER_UP]]
|
||
{0xfc, 0x02},
|
||
{0x52, 0x86}, // PLL M
|
||
//{0x52, 0x80}, // PLL M
|
||
//{0x52, 0x64}, // PLL M
|
||
{0xfc, 0x01},
|
||
{0x04, 0x03}, // Original ARM Clock Divider
|
||
//{0x04, 0x02},
|
||
{0xfc, 0x02},
|
||
//{0x50, 0x5B}, //Original
|
||
{0x50, 0x59}, // Input Clock 25Mhz
|
||
{0xfc, 0x02},
|
||
{0x30, 0x84}, // Analog offset
|
||
{0x3d, 0x26}, // ADLC enable
|
||
{0x4f, 0x7a}, // I/O driving strength 7mA
|
||
//s45c0 // CDS S1S timing for HN <20><><EFBFBD><EFBFBD> <- CC
|
||
{0xfc, 0x03},
|
||
//{0x00, 0x02},
|
||
//s2d03 //02
|
||
{0xfc, 0x07},
|
||
{0x58, 0x10},
|
||
{0x59, 0x00},
|
||
{0x5a, 0x00},
|
||
{0x5b, 0x6c},
|
||
{0xfc, 0xf0},
|
||
{0x00, 0x40},
|
||
{0xfc, 0x01},
|
||
//{0x02, 0x02}, // YCbCr Order
|
||
//sfc05
|
||
//s112e // Cb coef.
|
||
{0xfc, 0x05}, // YCbCr Coef
|
||
{0x11, 0x2e},
|
||
//s113d //2e // Blue saturation
|
||
{0x75, 0x05}, // scaler input vsync start
|
||
{0x8c, 0xb1}, // CLIP V size L
|
||
{0x8d, 0x04}, // CLIP V size H
|
||
{0x77, 0xb1}, // scaler input vsync height
|
||
{0xfc, 0x03}, // UXGA Size
|
||
{0x12, 0x05},
|
||
{0x26, 0xb1},
|
||
{0x27, 0x04},
|
||
{0x14, 0xb1},
|
||
///////////////////////////////////////////
|
||
{0xfc, 0x02},
|
||
{0x4a, 0xc1}, // SC type
|
||
{0x37, 0x16}, // SC type
|
||
{0x47, 0xc4}, // r-ramp by chin
|
||
//////////////////////////////////////////
|
||
|
||
//////////////////////////////////////////
|
||
// Must Mirro Function
|
||
{0xfc, 0x07},
|
||
{0x69, 0x00}, // Mirror XOR
|
||
{0xfc, 0x00},
|
||
{0x23, 0x91}, // Disable wcp/wrd
|
||
// End Mirror
|
||
//////////////////////////////////////////
|
||
|
||
/////////////////////////////////////////
|
||
// Special Effect Cr Cb setting
|
||
{0xfc, 0x07},
|
||
{0x30, 0x20},
|
||
{0x31, 0xc0},
|
||
{0x32, 0xc0},
|
||
{0x33, 0x40},
|
||
// End
|
||
/////////////////////////////////////////
|
||
|
||
// AWB Window Area
|
||
//sfc01
|
||
//sc401
|
||
//sc54e
|
||
//sc76e
|
||
|
||
// color matrix
|
||
{0xfc, 0x01},
|
||
{0x51, 0x06}, //06
|
||
{0x52, 0x68}, //68 //68
|
||
{0x53, 0xFE}, //FE
|
||
{0x54, 0x23}, //23
|
||
{0x55, 0xFF}, //FF
|
||
{0x56, 0x88}, //88
|
||
//
|
||
{0x57, 0xFE}, //FE
|
||
{0x58, 0x00}, //00
|
||
{0x59, 0x07}, //07
|
||
{0x5A, 0x1F}, ////1F //1F //1F
|
||
{0x5B, 0xFE}, //FE
|
||
{0x5C, 0xF3}, //F3
|
||
//
|
||
{0x5D, 0xFF}, //FF
|
||
{0x5E, 0x00}, //00
|
||
{0x5F, 0xFC}, //FC
|
||
{0x60, 0x6F}, //df //6F //6F
|
||
{0x61, 0x08}, //08
|
||
{0x62, 0x9F}, //bf //9F //9F
|
||
|
||
//Edge
|
||
{0xfc, 0x05},
|
||
{0x2c, 0x0f}, //0a //10 //14 // positive gain
|
||
{0x30, 0x0c}, //10 //14 // negative edge gain
|
||
{0x34, 0x12}, /////// // APTCLP
|
||
{0x35, 0x06}, //0c //0a // APTSC
|
||
{0x36, 0x0b}, // ENHANCE
|
||
{0x3f, 0x00}, // NON-LIN
|
||
{0x45, 0x30}, // EGREF
|
||
{0x47, 0x60}, // LLREF
|
||
{0x48, 0x08}, // by chin
|
||
{0x49, 0x39}, // CSSEL EGSEL CS_DLY by
|
||
{0x47, 0x00},
|
||
{0x40, 0x41}, // Y delay
|
||
//Gamma 2
|
||
{0xfc, 0x01},
|
||
{0x6F, 0x08}, // R
|
||
{0x70, 0x10},
|
||
{0x71, 0x40},
|
||
{0x72, 0xd0},
|
||
{0x73, 0x00},
|
||
{0x74, 0xa8},
|
||
{0x75, 0x08},
|
||
{0x76, 0x68},
|
||
{0x77, 0xba},
|
||
{0x78, 0x6a},
|
||
{0x79, 0x08},
|
||
{0x7A, 0x4a},
|
||
{0x7B, 0x6c},
|
||
{0x7C, 0x8a},
|
||
{0x7D, 0xff},
|
||
{0x7E, 0x9e},
|
||
{0x7F, 0xb0},
|
||
{0x80, 0xc0},
|
||
{0x81, 0xd0},
|
||
{0x82, 0xff},
|
||
{0x83, 0xde},
|
||
{0x84, 0xe6},
|
||
{0x85, 0xea},
|
||
{0x86, 0xff},
|
||
{0x87, 0x08}, //G
|
||
{0x88, 0x40},
|
||
{0x89, 0x78},
|
||
{0x8A, 0xf0},
|
||
{0x8B, 0x00},
|
||
{0x8C, 0xb0},
|
||
{0x8D, 0x10},
|
||
{0x8E, 0x68},
|
||
{0x8F, 0xb6},
|
||
{0x90, 0x6a},
|
||
{0x91, 0x04},
|
||
{0x92, 0x30},
|
||
{0x93, 0x53},
|
||
{0x94, 0x74},
|
||
{0x95, 0xff},
|
||
{0x96, 0x8d},
|
||
{0x97, 0xa2},
|
||
{0x98, 0xb6},
|
||
{0x99, 0xc8},
|
||
{0x9A, 0xff},
|
||
{0x9B, 0xd6},
|
||
{0x9C, 0xe0},
|
||
{0x9D, 0xea},
|
||
{0x9E, 0xff},
|
||
{0x9F, 0x08}, //B
|
||
{0xA0, 0x40},
|
||
{0xA1, 0x78},
|
||
{0xA2, 0xf0},
|
||
{0xA3, 0x00},
|
||
{0xA4, 0xb0},
|
||
{0xA5, 0x10},
|
||
{0xA6, 0x68},
|
||
{0xA7, 0xba},
|
||
{0xA8, 0x6a},
|
||
{0xA9, 0x08},
|
||
{0xAA, 0x3a},
|
||
{0xAB, 0x60},
|
||
{0xAC, 0x80},
|
||
{0xAD, 0xff},
|
||
{0xAE, 0x95},
|
||
{0xAF, 0xa8},
|
||
{0xB0, 0xba},
|
||
{0xB1, 0xcc},
|
||
{0xB2, 0xff},
|
||
{0xB3, 0xd8},
|
||
{0xB4, 0xe2},
|
||
{0xB5, 0xea},
|
||
{0xB6, 0xff},
|
||
{0xfc, 0x00}, // Hue Gain
|
||
{0x48, 0x44},
|
||
{0x49, 0x60},
|
||
{0x4a, 0x00},
|
||
{0x4b, 0x18},
|
||
{0x4c, 0x58},
|
||
{0x4d, 0x70}, //60
|
||
{0x4e, 0x00},
|
||
{0x4f, 0x00},
|
||
{0x50, 0x44},
|
||
{0x51, 0x60},
|
||
{0x52, 0x00},
|
||
{0x53, 0x18},
|
||
{0x54, 0x58},
|
||
{0x55, 0x70}, //60
|
||
{0x56, 0x00},
|
||
{0x57, 0x00},
|
||
{0x58, 0x44},
|
||
{0x59, 0x60},
|
||
{0x5a, 0x00},
|
||
{0x5b, 0x18},
|
||
{0x5c, 0x50},
|
||
{0x5d, 0x48},
|
||
{0x5e, 0x08},
|
||
{0x5f, 0x05}, //00
|
||
//ISP_tuning
|
||
{0xfc, 0x00},
|
||
{0x01, 0x00}, // I2C hold mode off
|
||
//s2222 // I2C master ctrl.
|
||
//s2d5a // frame AE start 50
|
||
{0x3e, 0x10}, // Y_min Y min level limit value of AWB ODM
|
||
{0xfc, 0x01},
|
||
{0x00, 0x00}, // ISP BPR Off
|
||
{0x0c, 0x02}, // Full YC
|
||
{0xc8, 0xe0}, //f0 // AWB Y Max
|
||
////////////////////////////////
|
||
// 2005.07.17 cspyo set
|
||
///////////////////////////////
|
||
{0xfc, 0x00},
|
||
{0x24, 0x45}, // zoom skip 5fps
|
||
{0x6c, 0xb8}, //ba //d2 //d8 // AE target
|
||
{0x6d, 0x00}, //
|
||
{0x78, 0x60}, // AGC Max
|
||
{0x79, 0xfb}, //fc // R gain
|
||
{0x7a, 0x03}, // B gain
|
||
{0x81, 0x00}, // AWB G gain suppress disable
|
||
{0x29, 0x04}, // Y level
|
||
{0x2a, 0x10}, //50 // Y level
|
||
{0x2b, 0x04}, // color level H
|
||
{0x2c, 0x00}, //20 // color level L
|
||
{0xfc, 0x07},
|
||
{0x11, 0x00}, // G offset
|
||
{0x37, 0x00}, // Flicker Add
|
||
{0xfc, 0x00},
|
||
{0x72, 0xa0}, // Flicker for 32MHz
|
||
{0x74, 0x08}, // flicker 60Hz
|
||
{0xfc, 0x05},
|
||
{0x64, 0x02}, // Darkslice R
|
||
{0x65, 0xfe}, // Darkslice G
|
||
{0x66, 0xff}, // Darkslice B
|
||
////////////////////////////////////
|
||
{0xfc, 0x00},
|
||
{0x7e, 0xfc},
|
||
//s7e8c //NR GrGb off
|
||
// [7]: BPR [6]:Noise Filter(1D/NR) [4]: GrGb Enable [3]:BPR Data Threshold
|
||
// [2]: color suppress [1]: Y gain suppress [0]: Digital Clamp
|
||
///////////////////////////////////
|
||
////////////////////////////////////
|
||
// GrGb Correction setting
|
||
{0xfc, 0x01},
|
||
{0x44, 0x0c},
|
||
//s4400
|
||
/// [4]: GrGb full [3]: GrGb On
|
||
/// [2]: GrGb Rb On
|
||
{0xfc, 0x0b},
|
||
{0x21, 0x00}, // Start AGC
|
||
{0x22, 0x10}, // AGCMIN
|
||
{0x23, 0x50}, // AGCMAX
|
||
{0x24, 0x18}, //0e //12 //17 // G Th AGCMIN(23d)
|
||
{0x25, 0x32}, // G Th AGCMAX(50d)
|
||
{0x26, 0x18}, //0e //12 //17 // RB Th AGCMIN
|
||
{0x27, 0x32}, // RB Th AGCMAX
|
||
// GrGb Correction setting End
|
||
///////////////////////////////////
|
||
// BPR Setting
|
||
{0xfc, 0x01},
|
||
{0x3f, 0x00}, // setting because S/W bug
|
||
{0xfc, 0x0b},
|
||
{0x0b, 0x00}, // ISP BPR On Start
|
||
{0x0c, 0x00}, // Th13 AGC Min
|
||
{0x0d, 0x40}, //5a // Th13 AGC Max
|
||
{0x0e, 0x01}, //00 // Th1 Max H for AGCMIN
|
||
{0x0f, 0xff}, //c0 // Th1 Max L for AGCMIN
|
||
{0x10, 0x00}, // Th1 Min H for AGCMAX
|
||
{0x11, 0x10}, //00 // Th1 Min L for AGCMAX
|
||
{0x12, 0xff}, // Th3 Max H for AGCMIN
|
||
{0x13, 0xff}, // Th3 Max L for AGCMIN
|
||
{0x14, 0xff}, // Th3 Min H for AGCMAX
|
||
{0x15, 0xff}, // Th3 Min L for AGCMAX
|
||
///////////////////////////////////////////
|
||
// NR Setting
|
||
{0xfc, 0x01},
|
||
{0x4b, 0x01}, // NR Enable
|
||
//s4b00 // NR Enable
|
||
{0xfc, 0x0b},
|
||
{0x28, 0x00}, //NR Start AGC
|
||
{0x29, 0x00}, // SIG Th AGCMIN H
|
||
{0x2a, 0x0a}, //14 // SIG Th AGCMIN L
|
||
{0x2b, 0x00}, // SIG Th AGCMAX H
|
||
{0x2c, 0x0a}, //14 // SIG Th AGCMAX L
|
||
{0x2d, 0x00}, // PRE Th AGCMIN H
|
||
{0x2e, 0x70}, //50 //64 // PRE Th AGCMIN L(100d)
|
||
{0x2f, 0x01}, // PRE Th AGCMAX H(300d)
|
||
{0x30, 0x2c}, // PRE Th AGCMAX L
|
||
{0x31, 0x00}, // POST Th AGCMIN H
|
||
{0x32, 0x70}, //50 //64 // POST Th AGCMIN L(100d)
|
||
{0x33, 0x01}, // POST Th AGCMAX H(300d)
|
||
{0x34, 0x2c}, // POST Th AGCMAX L
|
||
// NR Setting End
|
||
////////////////////////////////
|
||
// Color suppress setting
|
||
{0xfc, 0x0b},
|
||
{0x08, 0x50}, // C suppress AGC MIN
|
||
{0x09, 0x04}, // C suppress MIN H
|
||
{0x0a, 0x00}, // C suppress MIN L
|
||
// C Suppress Setting End
|
||
///////////////////////////////
|
||
// 1D Y LPF Filter
|
||
{0xfc, 0x01},
|
||
//s05e0 // Default s60
|
||
{0x05, 0x60}, // Default s60
|
||
//[7]: Y LPF filter On [6]: Clap On
|
||
{0xfc, 0x0b},
|
||
{0x35, 0x00}, // YLPF Start AGC
|
||
{0x36, 0x50}, // YLPF01 AGCMIN
|
||
{0x37, 0x50}, // YLPF01 AGCMAX
|
||
{0x38, 0x00}, // YLPF SIG01 Th AGCMINH
|
||
{0x39, 0x00}, // YLPF SIG01 Th AGCMINL
|
||
{0x3a, 0x00}, // YLPF SIG01 Th AGCMAXH
|
||
{0x3b, 0xa0}, // YLPF SIG01 Th AGCMAXH
|
||
{0x3c, 0x50}, // YLPF02 AGCMIN
|
||
{0x3d, 0x50}, // YLPF02 AGCMAX
|
||
{0x3e, 0x00}, // YLPF SIG02 Th AGCMINH
|
||
{0x3f, 0x00}, // YLPF SIG02 Th AGCMINL
|
||
{0x40, 0x00}, // YLPF SIG02 Th AGCMAXH
|
||
{0x41, 0xa0}, // YLPF SIG02 Th AGCMAXH
|
||
// Y LPF Filter setting End
|
||
//------------------------------------------------------------------
|
||
/// Set File
|
||
/// - S5K3BAFB_CRF_June02+yihan_050707.xls generates
|
||
/// - date : 2005-07-08
|
||
///------------------------------------------------------------------
|
||
/// Page : ISP Page 9
|
||
{0xfc, 0x09},
|
||
{0x00, 0x02}, // shading on
|
||
{0x01, 0x06}, // size
|
||
{0x02, 0x40},
|
||
{0x03, 0x04},
|
||
{0x04, 0xB0},
|
||
{0x05, 0x03}, // shading center R
|
||
{0x06, 0x19},
|
||
{0x07, 0x02},
|
||
{0x08, 0x75},
|
||
{0x09, 0x03}, // shading center R
|
||
{0x0A, 0x1b},
|
||
{0x0b, 0x02},
|
||
{0x0c, 0x7a},
|
||
{0x0d, 0x03}, // shading center R
|
||
{0x0e, 0x09},
|
||
{0x0f, 0x02},
|
||
{0x10, 0x7d},
|
||
{0x35, 0x00}, // shading R
|
||
{0x36, 0xff},
|
||
{0x37, 0x01},
|
||
{0x38, 0x06},
|
||
{0x39, 0x01},
|
||
{0x3A, 0x1d},
|
||
{0x3B, 0x01},
|
||
{0x3C, 0x44},
|
||
{0x3D, 0x01},
|
||
{0x3E, 0x5d},
|
||
{0x3F, 0x01},
|
||
{0x40, 0x7c},
|
||
{0x41, 0x01},
|
||
{0x42, 0x97},
|
||
{0x43, 0x01},
|
||
{0x44, 0xba},
|
||
{0x45, 0x01}, // shading G
|
||
{0x46, 0x01},
|
||
{0x47, 0x01},
|
||
{0x48, 0x08},
|
||
{0x49, 0x01},
|
||
{0x4A, 0x1d},
|
||
{0x4B, 0x01},
|
||
{0x4C, 0x40},
|
||
{0x4D, 0x01},
|
||
{0x4E, 0x58},
|
||
{0x4F, 0x01},
|
||
{0x50, 0x73},
|
||
{0x51, 0x01},
|
||
{0x52, 0x8a},
|
||
{0x53, 0x01},
|
||
{0x54, 0xa6},
|
||
{0x55, 0x00}, // shading B
|
||
{0x56, 0xff},
|
||
{0x57, 0x01},
|
||
{0x58, 0x05},
|
||
{0x59, 0x01},
|
||
{0x5A, 0x1a},
|
||
{0x5B, 0x01},
|
||
{0x5C, 0x3c},
|
||
{0x5D, 0x01},
|
||
{0x5E, 0x52},
|
||
{0x5F, 0x01},
|
||
{0x60, 0x6e},
|
||
{0x61, 0x01},
|
||
{0x62, 0x8b},
|
||
{0x63, 0x01},
|
||
{0x64, 0xb3},
|
||
// sub-sampling
|
||
{0xfc, 0x03},
|
||
//{0x2d, 0x01}, // UXGA YCrCb Order
|
||
{0x2d, 0x06}, // UXGA YCrCb Order
|
||
{0x12, 0x05},
|
||
{0x26, 0xb1},
|
||
{0x27, 0x04},
|
||
{0x14, 0xb1},
|
||
{0xfc, 0x04},
|
||
{0x14, 0xb1},
|
||
{0x72, 0x05}, // H2 V1
|
||
{0x74, 0xb1},
|
||
{0xa2, 0x05}, // H1 V2
|
||
{0xa3, 0x02},
|
||
{0xa4, 0x59},
|
||
{0xa7, 0x59},
|
||
{0xa8, 0x02},
|
||
{0xae, 0x59},
|
||
{0xaf, 0x02},
|
||
{0xb6, 0x59},
|
||
{0xb7, 0x02},
|
||
{0xd2, 0x05}, // H2 V2
|
||
{0xd3, 0x02},
|
||
{0xd4, 0x59},
|
||
{0xd7, 0x59},
|
||
{0xd8, 0x02},
|
||
{0xde, 0x59},
|
||
{0xdf, 0x02},
|
||
{0xe6, 0x59},
|
||
{0xe7, 0x02},
|
||
{0xfc, 0x14}, // H4 V1
|
||
{0x05, 0x98},
|
||
{0x0e, 0x02},
|
||
{0x12, 0x05},
|
||
{0x13, 0x04},
|
||
{0x14, 0xb1},
|
||
{0x17, 0xb0},
|
||
{0x18, 0x04},
|
||
{0x1e, 0xb0},
|
||
{0x1f, 0x04},
|
||
{0x26, 0xb1},
|
||
{0x27, 0x04},
|
||
{0x35, 0x98}, // H4 V4
|
||
{0x3e, 0x02},
|
||
{0x42, 0x05},
|
||
{0x43, 0x01},
|
||
{0x44, 0x2d},
|
||
{0x47, 0x2d},
|
||
{0x48, 0x01},
|
||
{0x4e, 0x2d},
|
||
{0x4f, 0x01},
|
||
{0x56, 0x2e},
|
||
{0x57, 0x01},
|
||
// AE Window Size control for sub-sampling
|
||
{0xfc, 0x06},
|
||
{0x12, 0x00}, // H=2 V=1(800*1200)
|
||
{0x13, 0x61}, // AE H End
|
||
{0x16, 0x00}, // AE V End
|
||
{0x17, 0x94},
|
||
{0x22, 0x00}, // H=1 V=2(1600*600)
|
||
{0x23, 0xc5}, // AE H End
|
||
{0x26, 0x00}, // AE V End
|
||
{0x27, 0x4b},
|
||
{0x32, 0x00}, // H=2 V=2(800*600)
|
||
{0x33, 0x61}, // AE H End
|
||
{0x36, 0x00}, // AE V End
|
||
{0x37, 0x48},
|
||
{0x38, 0x00}, // AWB Window Size
|
||
{0x39, 0x0a},
|
||
{0x3a, 0x00},
|
||
{0x3b, 0x61},
|
||
{0x3c, 0x00},
|
||
{0x3d, 0x75},
|
||
{0x3e, 0x00},
|
||
{0x3f, 0x3e},
|
||
{0x42, 0x00}, // H=4 V=1(400*1200)
|
||
{0x43, 0x2f}, // AE H End
|
||
{0x46, 0x00}, // AE V End
|
||
{0x47, 0x97},
|
||
{0x52, 0x00}, // H=4 V=4(400*300)
|
||
{0x53, 0x30}, // AE H End
|
||
{0x56, 0x00}, // AE V End
|
||
{0x57, 0x26},
|
||
// white point
|
||
{0xfc, 0x00},
|
||
{0x40, 0x78}, //7d a
|
||
{0x41, 0xe0}, //e2
|
||
{0x42, 0x83}, //95 12
|
||
{0x43, 0xc6}, //ba c
|
||
{0x44, 0xad}, //bc f
|
||
{0x45, 0x9d}, //99 4
|
||
{0x34, 0x18}, //115
|
||
{0x35, 0x14}, //02
|
||
{0x36, 0x04}, //04
|
||
{0x37, 0x12}, //04
|
||
{0x38, 0x06}, //03
|
||
{0x39, 0x1d}, //18 //25
|
||
{0x3a, 0x14}, //12 //22 //1f
|
||
{0x3b, 0x2c}, //16 //18 //1a
|
||
{0xfc, 0x20}, // AE window weight
|
||
{0x60, 0x00},
|
||
{0x61, 0x00},
|
||
{0x62, 0x00},
|
||
{0x63, 0x00},
|
||
{0x64, 0x11},
|
||
{0x65, 0x11},
|
||
{0x66, 0x11},
|
||
{0x67, 0x11},
|
||
{0x68, 0x11},
|
||
{0x69, 0x22},
|
||
{0x6a, 0x22},
|
||
{0x6b, 0x11},
|
||
{0x6c, 0x11},
|
||
{0x6d, 0x22},
|
||
{0x6e, 0x22},
|
||
{0x6f, 0x11},
|
||
{0x70, 0x11},
|
||
{0x71, 0x22},
|
||
{0x72, 0x22},
|
||
{0x73, 0x11},
|
||
{0x74, 0x11},
|
||
{0x75, 0x22},
|
||
{0x76, 0x22},
|
||
{0x77, 0x11},
|
||
{0x78, 0x33},
|
||
{0x79, 0x33},
|
||
{0x7a, 0x33},
|
||
{0x7b, 0x33},
|
||
{0x7c, 0x33},
|
||
{0x7d, 0x33},
|
||
{0x7e, 0x33},
|
||
{0x7f, 0x33},
|
||
{0xfc, 0x01},
|
||
{0x02, 0x02},
|
||
{0xfc, 0x02},
|
||
{0x30, 0x83},
|
||
{0x44, 0x5b}, // clamp enable
|
||
{0x55, 0x03},
|
||
{0xfc, 0x00},
|
||
{0x62, 0x02},
|
||
{0xfc, 0x04},
|
||
{0xee, 0x08},
|
||
{0xfc, 0x03},
|
||
{0x2e, 0x08},
|
||
{0xfc, 0x02},
|
||
{0x11, 0x11},
|
||
{0xfc, 0x01},
|
||
{0x4d, 0x08}, // RV con, Red pixel Ordering
|
||
//{0x01, 0x00}, // PCLK
|
||
{0x01, 0x01}, // Inversion PCLK
|
||
{0xfc, 0x00},
|
||
{0x02, 0x00}, // UXGA Size Out
|
||
};
|
||
|
||
|
||
#define S5K3BA_INIT_REGS (sizeof(s5k3ba_reg)/sizeof(s5k3ba_reg[0]))
|
||
#define S5K3BA_UXGA_REGS (sizeof(s5k3ba_reg_uxga)/sizeof(s5k3ba_reg_uxga[0]))
|
||
#define S5K3BA_VGA_REGS (sizeof(s5k3ba_reg_vga)/sizeof(s5k3ba_reg_vga[0]))
|
||
|
||
|
||
#define S5K3BA_RISC_REGS 0xEB
|
||
#define S5K3BA_ISP_REGS 0xFB /* S5C7323X */
|
||
#define S5K3BA_CIS_REGS 0x2F /* S5K437LA03 */
|
||
|
||
|
||
//#define S5K3AA_REGS (S5K3AA_RISC_REGS+S5K3AA_ISP_REGS+S5K3AA_CIS_REGS)
|
||
#define S5K3BA_REGS (0x1000)
|
||
|
||
|
||
#endif
|
||
|