camera rk2928: add user define seriers
authorroot <root@zyc-desktop.(none)>
Wed, 22 Aug 2012 09:37:07 +0000 (17:37 +0800)
committerroot <root@zyc-desktop.(none)>
Wed, 22 Aug 2012 09:37:36 +0000 (17:37 +0800)
arch/arm/configs/rk2928_a720_defconfig
drivers/media/video/gc0308_user_series.c [new file with mode: 0644]

index 02cf8a6790451eff027e55741a29fc5256533373..bc4cf7cebe6a42e835c30a0a271ac4671aed93e0 100644 (file)
@@ -268,6 +268,7 @@ CONFIG_MEDIA_SUPPORT=y
 CONFIG_VIDEO_DEV=y
 CONFIG_SOC_CAMERA=y
 CONFIG_SOC_CAMERA_GC0308=y
+CONFIG_GC0308_USER_DEFINED_SERIES=y
 CONFIG_VIDEO_RK29=y
 CONFIG_VIDEO_RK29_CAMMEM_ION=y
 CONFIG_ION=y
diff --git a/drivers/media/video/gc0308_user_series.c b/drivers/media/video/gc0308_user_series.c
new file mode 100644 (file)
index 0000000..cab2f09
--- /dev/null
@@ -0,0 +1,502 @@
+/* init 640X480 VGA */
+static struct reginfo sensor_init_data[] =
+{
+
+    {0xfe , 0x80},     
+               
+       {0xfe , 0x00},   // set page0
+       
+       {0xd2 , 0x10},   // close AEC
+       {0x22 , 0x55},   // close AWB
+
+       {0x03 , 0x01},                                  
+       {0x04 , 0x2c},                                  
+       {0x5a , 0x56},
+       {0x5b , 0x40},
+       {0x5c , 0x4a},                  
+
+       {0x22 , 0x57},   // Open AWB
+
+       {0x01 , 0xfa},                                    
+       {0x02 , 0x70},                                  
+       {0x0f , 0x01},                                  
+                                                                   
+                                                                   
+       {0xe2 , 0x00},   //anti-flicker step [11:8]     
+       {0xe3 , 0x64},   //anti-flicker step [7:0]      
+                                                                              
+       {0xe4 , 0x02},   //exp level 1  16.67fps        
+       {0xe5 , 0x58},                                  
+       {0xe6 , 0x03},   //exp level 2  12.5fps         
+       {0xe7 , 0x20},                                  
+       {0xe8 , 0x04},   //exp level 3  8.33fps         
+       {0xe9 , 0xb0},                                  
+       {0xea , 0x09},   //exp level 4  4.00fps         
+       {0xeb , 0xc4},                                  
+
+       //{0xec , 0x20},
+          
+       {0x05 , 0x00},                                  
+       {0x06 , 0x00},                                  
+       {0x07 , 0x00},                                  
+       {0x08 , 0x00},                                  
+       {0x09 , 0x01},                                  
+       {0x0a , 0xe8},                                  
+       {0x0b , 0x02},                                  
+       {0x0c , 0x88},                                  
+       {0x0d , 0x02},                                  
+       {0x0e , 0x02},                                  
+       {0x10 , 0x22},                                  
+       {0x11 , 0xfd},                                  
+       {0x12 , 0x2a},                                  
+       {0x13 , 0x00},                                  
+       //{0x14 , 0x10},                                
+       {0x15 , 0x0a},                                  
+       {0x16 , 0x05},                                  
+       {0x17 , 0x01},                                  
+       {0x18 , 0x44},                                  
+       {0x19 , 0x44},                                  
+       {0x1a , 0x1e},                                  
+       {0x1b , 0x00},                                  
+       {0x1c , 0xc1},                                  
+       {0x1d , 0x08},                                  
+       {0x1e , 0x60},                                  
+       {0x1f , 0x17},                                  
+                                                                   
+                                                                        
+       {0x20 , 0xff},                                  
+       {0x21 , 0xf8},                                  
+       {0x22 , 0x57},                                  
+       {0x24 , 0xa2},                                  
+       {0x25 , 0x0f},                                  
+                                                                        
+       //output sync_mode                                               
+       {0x26 , 0x02},   //0x03  20101016 zhj                                 
+       {0x2f , 0x01},                                  
+       {0x30 , 0xf7},                                  
+       {0x31 , 0x50},
+       {0x32 , 0x00},
+       {0x39 , 0x04},
+       {0x3a , 0x18},
+       {0x3b , 0x20},                                  
+       {0x3c , 0x00},                                  
+       {0x3d , 0x00},                                  
+       {0x3e , 0x00},                                  
+       {0x3f , 0x00},                                  
+       {0x50 , 0x10},                                  
+       {0x53 , 0x82},                                  
+       {0x54 , 0x80},                                  
+       {0x55 , 0x80},                                  
+       {0x56 , 0x82},                                  
+       {0x8b , 0x40},                                  
+       {0x8c , 0x40},                                  
+       {0x8d , 0x40},                                  
+       {0x8e , 0x2e},                                  
+       {0x8f , 0x2e},                                  
+       {0x90 , 0x2e},                                  
+       {0x91 , 0x3c},                                  
+       {0x92 , 0x50},                                  
+       {0x5d , 0x12},                                  
+       {0x5e , 0x1a},                                  
+       {0x5f , 0x24},                                  
+       {0x60 , 0x07},                                  
+       {0x61 , 0x15},                                  
+       {0x62 , 0x08},                                  
+       {0x64 , 0x03},                                  
+       {0x66 , 0xe8},                                  
+       {0x67 , 0x86},                                  
+       {0x68 , 0xa2},                                  
+       {0x69 , 0x18},                                  
+       {0x6a , 0x0f},                                  
+       {0x6b , 0x00},                                  
+       {0x6c , 0x5f},                                  
+       {0x6d , 0x8f},                                  
+       {0x6e , 0x55},                                  
+       {0x6f , 0x38},                                  
+       {0x70 , 0x15},                                  
+       {0x71 , 0x33},                                  
+       {0x72 , 0xdc},                                  
+       {0x73 , 0x80},                                  
+       {0x74 , 0x02},                                  
+       {0x75 , 0x3f},                                  
+       {0x76 , 0x02},                                  
+       {0x77 , 0x36},                                  
+       {0x78 , 0x88},                                  
+       {0x79 , 0x81},                                  
+       {0x7a , 0x81},                                  
+       {0x7b , 0x22},                                  
+       {0x7c , 0xff},                                  
+       {0x93 , 0x48},                                  
+       {0x94 , 0x00},                                  
+       {0x95 , 0x05},                                  
+       {0x96 , 0xe8},                                  
+       {0x97 , 0x40},                                  
+       {0x98 , 0xf0},                                  
+       {0xb1 , 0x38},                                  
+       {0xb2 , 0x38},                                  
+       {0xbd , 0x38},                                  
+       {0xbe , 0x36},                                  
+       {0xd0 , 0xc9},                                  
+       {0xd1 , 0x10},                                  
+       //{0xd2 , 0x90},                                
+       {0xd3 , 0x80},                                  
+       {0xd5 , 0xf2},                                  
+       {0xd6 , 0x16},                                  
+       {0xdb , 0x92},                                  
+       {0xdc , 0xa5},                                  
+       {0xdf , 0x23},                                  
+       {0xd9 , 0x00},                                  
+       {0xda , 0x00},                                  
+       {0xe0 , 0x09},                                  
+                               
+       {0xed , 0x04},                                  
+       {0xee , 0xa0},                                  
+       {0xef , 0x40},                                  
+       {0x80 , 0x03},                                  
+       {0x80 , 0x03},                                  
+       {0x9F , 0x10},                                  
+       {0xA0 , 0x20},                                  
+       {0xA1 , 0x38},                                  
+       {0xA2 , 0x4E},                                  
+       {0xA3 , 0x63},                                  
+       {0xA4 , 0x76},                                  
+       {0xA5 , 0x87},                                  
+       {0xA6 , 0xA2},                                  
+       {0xA7 , 0xB8},                                  
+       {0xA8 , 0xCA},                                  
+       {0xA9 , 0xD8},                                  
+       {0xAA , 0xE3},                                  
+       {0xAB , 0xEB},                                  
+       {0xAC , 0xF0},                                  
+       {0xAD , 0xF8},                                  
+       {0xAE , 0xFD},                                  
+       {0xAF , 0xFF},                                  
+       {0xc0 , 0x00},                                  
+       {0xc1 , 0x10},                                  
+       {0xc2 , 0x1C},                                  
+       {0xc3 , 0x30},                                  
+       {0xc4 , 0x43},                                  
+       {0xc5 , 0x54},                                  
+       {0xc6 , 0x65},                                  
+       {0xc7 , 0x75},                                  
+       {0xc8 , 0x93},                                  
+       {0xc9 , 0xB0},                                  
+       {0xca , 0xCB},                                  
+       {0xcb , 0xE6},                                  
+       {0xcc , 0xFF},                                  
+       {0xf0 , 0x02},                                  
+       {0xf1 , 0x01},                                  
+       {0xf2 , 0x01},                                  
+       {0xf3 , 0x30},                                  
+       {0xf9 , 0x9f},                                  
+       {0xfa , 0x78},                                  
+                                                                   
+       //---------------------------------------------------------------
+       {0xfe , 0x01},// set page1                                            
+                                                                   
+       {0x00 , 0xf5},                                  
+       {0x02 , 0x1a},                                  
+       {0x0a , 0xa0},                                  
+       {0x0b , 0x60},                                  
+       {0x0c , 0x08},                                  
+       {0x0e , 0x4c},                                  
+       {0x0f , 0x39},                                  
+       {0x11 , 0x3f},                                  
+       {0x12 , 0x72},                                  
+       {0x13 , 0x13},                                  
+       {0x14 , 0x42},                                  
+       {0x15 , 0x43},                                  
+       {0x16 , 0xc2},                                  
+       {0x17 , 0xa8},                                  
+       {0x18 , 0x18},                                  
+       {0x19 , 0x40},                                  
+       {0x1a , 0xd0},                                  
+       {0x1b , 0xf5},                                  
+       {0x70 , 0x40},                                  
+       {0x71 , 0x58},                                  
+       {0x72 , 0x30},                                  
+       {0x73 , 0x48},                                  
+       {0x74 , 0x20},                                  
+       {0x75 , 0x60},                                  
+       {0x77 , 0x20},                                  
+       {0x78 , 0x32},                                  
+       {0x30 , 0x03},                                  
+       {0x31 , 0x40},                                  
+       {0x32 , 0xe0},                                  
+       {0x33 , 0xe0},                                  
+       {0x34 , 0xe0},                                  
+       {0x35 , 0xb0},                                  
+       {0x36 , 0xc0},                                  
+       {0x37 , 0xc0},                                  
+       {0x38 , 0x04},                                  
+       {0x39 , 0x09},                                  
+       {0x3a , 0x12},                                  
+       {0x3b , 0x1C},                                  
+       {0x3c , 0x28},                                  
+       {0x3d , 0x31},                                  
+       {0x3e , 0x44},                                  
+       {0x3f , 0x57},                                  
+       {0x40 , 0x6C},                                  
+       {0x41 , 0x81},                                  
+       {0x42 , 0x94},                                  
+       {0x43 , 0xA7},                                  
+       {0x44 , 0xB8},                                  
+       {0x45 , 0xD6},                                  
+       {0x46 , 0xEE},                                  
+       {0x47 , 0x0d},                                  
+       {0xfe , 0x00}, // set page0
+        
+       //-----------Update the registers 2010/07/06-------------//
+       //Registers of Page0
+       {0xfe , 0x00}, // set page0
+       {0x10 , 0x26},                                 
+       {0x11 , 0x0d},  // fd,modified by mormo 2010/07/06                               
+       {0x1a , 0x2a},  // 1e,modified by mormo 2010/07/06                                  
+
+       {0x1c , 0x49}, // c1,modified by mormo 2010/07/06                                 
+       {0x1d , 0x9a}, // 08,modified by mormo 2010/07/06                                 
+       {0x1e , 0x61}, // 60,modified by mormo 2010/07/06                                 
+
+       {0x3a , 0x20},
+
+       {0x50 , 0x14},  // 10,modified by mormo 2010/07/06                               
+       {0x53 , 0x80},                                  
+       {0x56 , 0x80},
+       
+       {0x8b , 0x20}, //LSC                                 
+       {0x8c , 0x20},                                  
+       {0x8d , 0x20},                                  
+       {0x8e , 0x14},                                  
+       {0x8f , 0x10},                                  
+       {0x90 , 0x14},                                  
+
+       {0x94 , 0x02},                                  
+       {0x95 , 0x07},                                  
+       {0x96 , 0xe0},                                  
+
+       {0xb1 , 0x40}, // YCPT                                 
+       {0xb2 , 0x40},                                  
+       {0xb3 , 0x40},
+       {0xb6 , 0xe0},
+
+       {0xd0 , 0xcb}, // AECT  c9,modifed by mormo 2010/07/06                                
+       {0xd3 , 0x48}, // 80,modified by mormor 2010/07/06                           
+
+       {0xf2 , 0x02},                                  
+       {0xf7 , 0x12},
+       {0xf8 , 0x0a},
+
+       //Registers of Page1
+       {0xfe , 0x01},// set page1    
+       {0x02 , 0x20},
+       {0x04 , 0x10},
+       {0x05 , 0x08},
+       {0x06 , 0x20},
+       {0x08 , 0x0a},
+
+       {0x0e , 0x44},                                  
+       {0x0f , 0x32},
+       {0x10 , 0x41},                                  
+       {0x11 , 0x37},                                  
+       {0x12 , 0x22},                                  
+       {0x13 , 0x19},                                  
+       {0x14 , 0x44},                                  
+       {0x15 , 0x44},  
+       
+       {0x19 , 0x50},                                  
+       {0x1a , 0xd8}, 
+       
+       {0x32 , 0x10}, 
+       
+       {0x35 , 0x00},                                  
+       {0x36 , 0x80},                                  
+       {0x37 , 0x00}, 
+       //-----------Update the registers end---------//
+
+
+       {0xfe , 0x00}, // set page0
+       {0xd2 , 0x90},
+
+
+       //-----------GAMMA Select(3)---------------//
+       {0x9F , 0x10},
+       {0xA0 , 0x20},
+       {0xA1 , 0x38},
+       {0xA2 , 0x4E},
+       {0xA3 , 0x63},
+       {0xA4 , 0x76},
+       {0xA5 , 0x87},
+       {0xA6 , 0xA2},
+       {0xA7 , 0xB8},
+       {0xA8 , 0xCA},
+       {0xA9 , 0xD8},
+       {0xAA , 0xE3},
+       {0xAB , 0xEB},
+       {0xAC , 0xF0},
+       {0xAD , 0xF8},
+       {0xAE , 0xFD},
+       {0xAF , 0xFF},
+
+        /*GC0308_GAMMA_Select,
+               1:                                             //smallest gamma curve
+                       {0x9F , 0x0B},
+                       {0xA0 , 0x16},
+                       {0xA1 , 0x29},
+                       {0xA2 , 0x3C},
+                       {0xA3 , 0x4F},
+                       {0xA4 , 0x5F},
+                       {0xA5 , 0x6F},
+                       {0xA6 , 0x8A},
+                       {0xA7 , 0x9F},
+                       {0xA8 , 0xB4}, 
+                       {0xA9 , 0xC6},
+                       {0xAA , 0xD3},
+                       {0xAB , 0xDD},
+                       {0xAC , 0xE5},
+                       {0xAD , 0xF1},
+                       {0xAE , 0xFA},
+                       {0xAF , 0xFF},  
+                       
+               2:                      
+                       {0x9F , 0x0E},
+                       {0xA0 , 0x1C},
+                       {0xA1 , 0x34},
+                       {0xA2 , 0x48},
+                       {0xA3 , 0x5A},
+                       {0xA4 , 0x6B},
+                       {0xA5 , 0x7B},
+                       {0xA6 , 0x95},
+                       {0xA7 , 0xAB},
+                       {0xA8 , 0xBF},
+                       {0xA9 , 0xCE},
+                       {0xAA , 0xD9},
+                       {0xAB , 0xE4},
+                       {0xAC , 0xEC},
+                       {0xAD , 0xF7},
+                       {0xAE , 0xFD},
+                       {0xAF , 0xFF},
+                       
+               3:
+                       {0x9F , 0x10},
+                       {0xA0 , 0x20},
+                       {0xA1 , 0x38},
+                       {0xA2 , 0x4E},
+                       {0xA3 , 0x63},
+                       {0xA4 , 0x76},
+                       {0xA5 , 0x87},
+                       {0xA6 , 0xA2},
+                       {0xA7 , 0xB8},
+                       {0xA8 , 0xCA},
+                       {0xA9 , 0xD8},
+                       {0xAA , 0xE3},
+                       {0xAB , 0xEB},
+                       {0xAC , 0xF0},
+                       {0xAD , 0xF8},
+                       {0xAE , 0xFD},
+                       {0xAF , 0xFF},
+
+               4:
+                       {0x9F , 0x14},
+                       {0xA0 , 0x28},
+                       {0xA1 , 0x44},
+                       {0xA2 , 0x5D},
+                       {0xA3 , 0x72},
+                       {0xA4 , 0x86},
+                       {0xA5 , 0x95},
+                       {0xA6 , 0xB1},
+                       {0xA7 , 0xC6},
+                       {0xA8 , 0xD5},
+                       {0xA9 , 0xE1},
+                       {0xAA , 0xEA},
+                       {0xAB , 0xF1},
+                       {0xAC , 0xF5},
+                       {0xAD , 0xFB},
+                       {0xAE , 0xFE},
+                       {0xAF , 0xFF},
+                       
+               5:                                                              //largest gamma curve
+                       {0x9F , 0x15},
+                       {0xA0 , 0x2A},
+                       {0xA1 , 0x4A},
+                       {0xA2 , 0x67},
+                       {0xA3 , 0x79},
+                       {0xA4 , 0x8C},
+                       {0xA5 , 0x9A},
+                       {0xA6 , 0xB3},
+                       {0xA7 , 0xC5},
+                       {0xA8 , 0xD5},
+                       {0xA9 , 0xDF},
+                       {0xAA , 0xE8},
+                       {0xAB , 0xEE},
+                       {0xAC , 0xF3},
+                       {0xAD , 0xFA},
+                       {0xAE , 0xFD},
+                       {0xAF , 0xFF}, */
+       //-----------GAMMA Select End--------------//
+
+
+
+
+       //-------------H_V_Switch(4)---------------//
+                       {0x14 , 0x10},  //0x10
+
+        /*GC0308_H_V_Switch,
+
+               1:  // normal
+                       {0x14 , 0x10},
+                       
+               2:  // IMAGE_H_MIRROR
+                       {0x14 , 0x11},
+                       
+               3:  // IMAGE_V_MIRROR
+                       {0x14 , 0x12},
+                       
+               4:  // IMAGE_HV_MIRROR
+                       {0x14 , 0x13},
+       */                  
+       //-------------H_V_Select End--------------//
+
+};
+
+/* 1280X1024 SXGA */
+static struct reginfo sensor_sxga[] =
+{
+       {0x00,0x00}
+};
+
+/* 800X600 SVGA*/
+static struct reginfo sensor_svga[] =
+{
+    {0x0, 0x0},
+};
+
+/* 640X480 VGA */
+static struct reginfo sensor_vga[] =
+{
+    {0x17, 0x13},
+    {0x18, 0x01},
+    {0x32, 0xbf},
+    {0x19, 0x03},
+    {0x1a, 0x7b},
+    {0x03, 0x0a},
+       {0x00,0x00}
+};
+
+/* 352X288 CIF */
+static struct reginfo sensor_cif[] =
+{
+    {0x00,0x00}
+};
+
+/* 320*240 QVGA */
+static  struct reginfo sensor_qvga[] =
+{
+    {0x00,0x00}
+};
+
+/* 176X144 QCIF*/
+static struct reginfo sensor_qcif[] =
+{
+    {0x00,0x00}
+};
+