#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 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 Á¦°Å <- 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¹à±âY=60code) {0xfc, 0x02}, {0x45, 0x8c}, //CDS timing_ÀúÁ¶µµ greenish ÇØ°á(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Çâ 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¹à±âY=60code) {0xfc, 0x02}, {0x45, 0x8c}, //CDS timing_ÀúÁ¶µµ greenish ÇØ°á(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Çâ 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 Á¦°Å <- 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