]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/media/video/gspca/m5602/m5602_ov9650.h
Merge commit 'v2.6.29-rc1' into x86/urgent
[linux-2.6-omap-h63xx.git] / drivers / media / video / gspca / m5602 / m5602_ov9650.h
index 9e955691aa6a4988b488ef3bb37147ddc10e2e9f..f4b33b8e8daebe08a62fb67d8b151f4cdfd76f98 100644 (file)
@@ -35,6 +35,7 @@
 #define OV9650_PID                     0x0a
 #define OV9650_VER                     0x0b
 #define OV9650_COM3                    0x0c
+#define OV9650_COM4                    0x0d
 #define OV9650_COM5                    0x0e
 #define OV9650_COM6                    0x0f
 #define OV9650_AECH                    0x10
 #define OV9650_SYSTEM_CLK_SEL          (1 << 7)
 #define OV9650_SLAM_MODE               (1 << 4)
 
+#define OV9650_QVGA_VARIOPIXEL         (1 << 7)
+
 #define OV9650_VFLIP                   (1 << 4)
 #define OV9650_HFLIP                   (1 << 5)
 
@@ -427,6 +430,10 @@ static const unsigned char init_ov9650[][3] =
        /* Set the high bits of the exposure value */
        {SENSOR, OV9650_AECH, ((EXPOSURE_DEFAULT & 0xff00) >> 8)},
 
+       /* Enable VARIOPIXEL */
+       {SENSOR, OV9650_COM3, OV9650_VARIOPIXEL},
+       {SENSOR, OV9650_COM4, OV9650_QVGA_VARIOPIXEL},
+
        /* Set the low bits of the exposure value */
        {SENSOR, OV9650_COM1, (EXPOSURE_DEFAULT & 0xff)},
        {SENSOR, OV9650_GAIN, GAIN_DEFAULT},
@@ -451,21 +458,20 @@ static const unsigned char power_down_ov9650[][3] =
        {BRIDGE, M5602_XB_GPIO_EN_L, 0x06},
        {BRIDGE, M5602_XB_GPIO_DAT_H, 0x02},
        {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x04},
-       {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0}
+       {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
 };
 
-static const unsigned char VGA_ov9650[][3] =
+static const unsigned char res_init_ov9650[][2] =
 {
-       {SENSOR, OV9650_COM7, OV9650_VGA_SELECT |
-                             OV9650_RGB_SELECT |
-                             OV9650_RAW_RGB_SELECT},
-
-       {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x82},
-       {BRIDGE, M5602_XB_LINE_OF_FRAME_L, 0x00},
-       {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82},
-       {BRIDGE, M5602_XB_PIX_OF_LINE_L, 0x00},
-       {BRIDGE, M5602_XB_SIG_INI, 0x01},
+       {M5602_XB_LINE_OF_FRAME_H, 0x82},
+       {M5602_XB_LINE_OF_FRAME_L, 0x00},
+       {M5602_XB_PIX_OF_LINE_H, 0x82},
+       {M5602_XB_PIX_OF_LINE_L, 0x00},
+       {M5602_XB_SIG_INI, 0x01}
+};
 
+static const unsigned char VGA_ov9650[][3] =
+{
        /* Moves the view window in a vertical orientation */
        {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
        {BRIDGE, M5602_XB_VSYNC_PARA, 0x09},
@@ -477,21 +483,15 @@ static const unsigned char VGA_ov9650[][3] =
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x00},
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x62}, /* 98 */
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x02}, /* 640 + 98 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0xe2}
-};
+       {BRIDGE, M5602_XB_HSYNC_PARA, 0xe2},
 
-static const unsigned char CIF_ov9650[][3] =
-{
-       {SENSOR, OV9650_COM7, OV9650_CIF_SELECT |
+       {SENSOR, OV9650_COM7, OV9650_VGA_SELECT |
                              OV9650_RGB_SELECT |
                              OV9650_RAW_RGB_SELECT},
+};
 
-       {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x82},
-       {BRIDGE, M5602_XB_LINE_OF_FRAME_L, 0x00},
-       {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82},
-       {BRIDGE, M5602_XB_PIX_OF_LINE_L, 0x00},
-       {BRIDGE, M5602_XB_SIG_INI, 0x01},
-
+static const unsigned char CIF_ov9650[][3] =
+{
        /* Moves the view window in a vertical orientation */
        {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
        {BRIDGE, M5602_XB_VSYNC_PARA, 0x09},
@@ -503,21 +503,15 @@ static const unsigned char CIF_ov9650[][3] =
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x00},
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x62}, /* 98 */
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x01}, /* 352 + 98 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0xc2}
-};
+       {BRIDGE, M5602_XB_HSYNC_PARA, 0xc2},
 
-static const unsigned char QVGA_ov9650[][3] =
-{
-       {SENSOR, OV9650_COM7, OV9650_QVGA_SELECT |
+       {SENSOR, OV9650_COM7, OV9650_CIF_SELECT |
                              OV9650_RGB_SELECT |
                              OV9650_RAW_RGB_SELECT},
+};
 
-       {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x82},
-       {BRIDGE, M5602_XB_LINE_OF_FRAME_L, 0x00},
-       {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82},
-       {BRIDGE, M5602_XB_PIX_OF_LINE_L, 0x00},
-       {BRIDGE, M5602_XB_SIG_INI, 0x01},
-
+static const unsigned char QVGA_ov9650[][3] =
+{
        /* Moves the view window in a vertical orientation */
        {BRIDGE, M5602_XB_VSYNC_PARA, 0x00},
        {BRIDGE, M5602_XB_VSYNC_PARA, 0x08},
@@ -529,7 +523,11 @@ static const unsigned char QVGA_ov9650[][3] =
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x00},
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x31}, /* 50 */
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x01}, /* 320 + 50 */
-       {BRIDGE, M5602_XB_HSYNC_PARA, 0x71}
+       {BRIDGE, M5602_XB_HSYNC_PARA, 0x71},
+
+       {SENSOR, OV9650_COM7, OV9650_QVGA_SELECT |
+                             OV9650_RGB_SELECT |
+                             OV9650_RAW_RGB_SELECT},
 };
 
 #endif