V4L/DVB (11456): gspca - m5602-po1030: Rename register defines, add missing ones.
authorErik Andr?n <erik.andren@gmail.com>
Wed, 7 Jan 2009 16:54:13 +0000 (13:54 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Jun 2009 21:20:24 +0000 (18:20 -0300)
The po1030 register defines are unnecessarily complex, simplify them and also add some missing ones.

Signed-off-by: Erik Andr?n <erik.andren@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/m5602/m5602_po1030.c
drivers/media/video/gspca/m5602/m5602_po1030.h

index 1e9a306..413c5b8 100644 (file)
@@ -237,7 +237,7 @@ int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
        PDEBUG(D_V4L2, "Set exposure to high byte to 0x%x",
               i2c_data);
 
-       err = m5602_write_sensor(sd, PO1030_REG_INTEGLINES_H,
+       err = m5602_write_sensor(sd, PO1030_INTEGLINES_H,
                                  &i2c_data, 1);
        if (err < 0)
                return err;
@@ -245,7 +245,7 @@ int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
        i2c_data = (val & 0xff);
        PDEBUG(D_V4L2, "Set exposure to low byte to 0x%x",
               i2c_data);
-       err = m5602_write_sensor(sd, PO1030_REG_INTEGLINES_M,
+       err = m5602_write_sensor(sd, PO1030_INTEGLINES_M,
                                  &i2c_data, 1);
 
        return err;
@@ -272,7 +272,7 @@ int po1030_set_gain(struct gspca_dev *gspca_dev, __s32 val)
 
        i2c_data = val & 0xff;
        PDEBUG(D_V4L2, "Set global gain to %d", i2c_data);
-       err = m5602_write_sensor(sd, PO1030_REG_GLOBALGAIN,
+       err = m5602_write_sensor(sd, PO1030_GLOBALGAIN,
                                 &i2c_data, 1);
        return err;
 }
@@ -298,13 +298,13 @@ int po1030_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
        sensor_settings[HFLIP_IDX] = val;
 
        PDEBUG(D_V4L2, "Set hflip %d", val);
-       err = m5602_read_sensor(sd, PO1030_REG_CONTROL2, &i2c_data, 1);
+       err = m5602_read_sensor(sd, PO1030_CONTROL2, &i2c_data, 1);
        if (err < 0)
                return err;
 
        i2c_data = (0x7f & i2c_data) | ((val & 0x01) << 7);
 
-       err = m5602_write_sensor(sd, PO1030_REG_CONTROL2,
+       err = m5602_write_sensor(sd, PO1030_CONTROL2,
                                 &i2c_data, 1);
 
        return err;
@@ -331,13 +331,13 @@ int po1030_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
        sensor_settings[VFLIP_IDX] = val;
 
        PDEBUG(D_V4L2, "Set vflip %d", val);
-       err = m5602_read_sensor(sd, PO1030_REG_CONTROL2, &i2c_data, 1);
+       err = m5602_read_sensor(sd, PO1030_CONTROL2, &i2c_data, 1);
        if (err < 0)
                return err;
 
        i2c_data = (i2c_data & 0xbf) | ((val & 0x01) << 6);
 
-       err = m5602_write_sensor(sd, PO1030_REG_CONTROL2,
+       err = m5602_write_sensor(sd, PO1030_CONTROL2,
                                 &i2c_data, 1);
 
        return err;
@@ -364,7 +364,7 @@ int po1030_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
 
        i2c_data = val & 0xff;
        PDEBUG(D_V4L2, "Set red gain to %d", i2c_data);
-       err = m5602_write_sensor(sd, PO1030_REG_RED_GAIN,
+       err = m5602_write_sensor(sd, PO1030_RED_GAIN,
                                  &i2c_data, 1);
        return err;
 }
@@ -391,7 +391,7 @@ int po1030_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
 
        i2c_data = val & 0xff;
        PDEBUG(D_V4L2, "Set blue gain to %d", i2c_data);
-       err = m5602_write_sensor(sd, PO1030_REG_BLUE_GAIN,
+       err = m5602_write_sensor(sd, PO1030_BLUE_GAIN,
                                  &i2c_data, 1);
 
        return err;
index c55c31a..7402701 100644 (file)
 
 /*****************************************************************************/
 
-#define PO1030_REG_DEVID_H             0x00
-#define PO1030_REG_DEVID_L             0x01
-#define PO1030_REG_FRAMEWIDTH_H                0x04
-#define PO1030_REG_FRAMEWIDTH_L                0x05
-#define PO1030_REG_FRAMEHEIGHT_H       0x06
-#define PO1030_REG_FRAMEHEIGHT_L       0x07
-#define PO1030_REG_WINDOWX_H           0x08
-#define PO1030_REG_WINDOWX_L           0x09
-#define PO1030_REG_WINDOWY_H           0x0a
-#define PO1030_REG_WINDOWY_L           0x0b
-#define PO1030_REG_WINDOWWIDTH_H       0x0c
-#define PO1030_REG_WINDOWWIDTH_L       0x0d
-#define PO1030_REG_WINDOWHEIGHT_H      0x0e
-#define PO1030_REG_WINDOWHEIGHT_L      0x0f
-
-#define PO1030_REG_GLOBALIBIAS         0x12
-#define PO1030_REG_PIXELIBIAS          0x13
-
-#define PO1030_REG_GLOBALGAIN          0x15
-#define PO1030_REG_RED_GAIN            0x16
-#define PO1030_REG_GREEN_1_GAIN                0x17
-#define PO1030_REG_BLUE_GAIN           0x18
-#define PO1030_REG_GREEN_2_GAIN                0x19
-
-#define PO1030_REG_INTEGLINES_H                0x1a
-#define PO1030_REG_INTEGLINES_M                0x1b
-#define PO1030_REG_INTEGLINES_L                0x1c
-
-#define PO1030_REG_CONTROL1            0x1d
-#define PO1030_REG_CONTROL2            0x1e
-#define PO1030_REG_CONTROL3            0x1f
-#define PO1030_REG_CONTROL4            0x20
-
-#define PO1030_REG_PERIOD50_H          0x23
-#define PO1030_REG_PERIOD50_L          0x24
-#define PO1030_REG_PERIOD60_H          0x25
-#define PO1030_REG_PERIOD60_L          0x26
-#define PO1030_REG_REGCLK167           0x27
-#define PO1030_REG_DELTA50             0x28
-#define PO1030_REG_DELTA60             0x29
-
-#define PO1030_REG_ADCOFFSET           0x2c
+#define PO1030_DEVID_H         0x00
+#define PO1030_DEVID_L         0x01
+#define PO1030_FRAMEWIDTH_H    0x04
+#define PO1030_FRAMEWIDTH_L    0x05
+#define PO1030_FRAMEHEIGHT_H   0x06
+#define PO1030_FRAMEHEIGHT_L   0x07
+#define PO1030_WINDOWX_H       0x08
+#define PO1030_WINDOWX_L       0x09
+#define PO1030_WINDOWY_H       0x0a
+#define PO1030_WINDOWY_L       0x0b
+#define PO1030_WINDOWWIDTH_H   0x0c
+#define PO1030_WINDOWWIDTH_L   0x0d
+#define PO1030_WINDOWHEIGHT_H  0x0e
+#define PO1030_WINDOWHEIGHT_L  0x0f
+
+#define PO1030_GLOBALIBIAS     0x12
+#define PO1030_PIXELIBIAS      0x13
+
+#define PO1030_GLOBALGAIN      0x15
+#define PO1030_RED_GAIN                0x16
+#define PO1030_GREEN_1_GAIN    0x17
+#define PO1030_BLUE_GAIN       0x18
+#define PO1030_GREEN_2_GAIN    0x19
+
+#define PO1030_INTEGLINES_H    0x1a
+#define PO1030_INTEGLINES_M    0x1b
+#define PO1030_INTEGLINES_L    0x1c
+
+#define PO1030_CONTROL1                0x1d
+#define PO1030_CONTROL2                0x1e
+#define PO1030_CONTROL3                0x1f
+#define PO1030_CONTROL4                0x20
+
+#define PO1030_PERIOD50_H      0x23
+#define PO1030_PERIOD50_L      0x24
+#define PO1030_PERIOD60_H      0x25
+#define PO1030_PERIOD60_L      0x26
+#define PO1030_REGCLK167       0x27
+#define PO1030_FLICKER_DELTA50 0x28
+#define PO1030_FLICKERDELTA60  0x29
+
+#define PO1030_ADCOFFSET       0x2c
 
 /* Gamma Correction Coeffs */
-#define PO1030_REG_GC0                 0x2d
-#define PO1030_REG_GC1                 0x2e
-#define PO1030_REG_GC2                 0x2f
-#define PO1030_REG_GC3                 0x30
-#define PO1030_REG_GC4                 0x31
-#define PO1030_REG_GC5                 0x32
-#define PO1030_REG_GC6                 0x33
-#define PO1030_REG_GC7                 0x34
+#define PO1030_GC0             0x2d
+#define PO1030_GC1             0x2e
+#define PO1030_GC2             0x2f
+#define PO1030_GC3             0x30
+#define PO1030_GC4             0x31
+#define PO1030_GC5             0x32
+#define PO1030_GC6             0x33
+#define PO1030_GC7             0x34
 
 /* Color Transform Matrix */
-#define PO1030_REG_CT0                 0x35
-#define PO1030_REG_CT1                 0x36
-#define PO1030_REG_CT2                 0x37
-#define PO1030_REG_CT3                 0x38
-#define PO1030_REG_CT4                 0x39
-#define PO1030_REG_CT5                 0x3a
-#define PO1030_REG_CT6                 0x3b
-#define PO1030_REG_CT7                 0x3c
-#define PO1030_REG_CT8                 0x3d
-
-#define PO1030_REG_AUTOCTRL1           0x3e
-#define PO1030_REG_AUTOCTRL2           0x3f
-
-#define PO1030_REG_YTARGET             0x40
-#define PO1030_REG_GLOBALGAINMIN       0x41
-#define PO1030_REG_GLOBALGAINMAX       0x42
+#define PO1030_CT0             0x35
+#define PO1030_CT1             0x36
+#define PO1030_CT2             0x37
+#define PO1030_CT3             0x38
+#define PO1030_CT4             0x39
+#define PO1030_CT5             0x3a
+#define PO1030_CT6             0x3b
+#define PO1030_CT7             0x3c
+#define PO1030_CT8             0x3d
+
+#define PO1030_AUTOCTRL1       0x3e
+#define PO1030_AUTOCTRL2       0x3f
+
+#define PO1030_YTARGET         0x40
+#define PO1030_GLOBALGAINMIN   0x41
+#define PO1030_GLOBALGAINMAX   0x42
+
+#define PO1030_AWB_RED_TUNING  0x47
+#define PO1030_AWB_BLUE_TUNING 0x48
 
 /* Output format control */
-#define PO1030_REG_OUTFORMCTRL1                0x5a
-#define PO1030_REG_OUTFORMCTRL2                0x5b
-#define PO1030_REG_OUTFORMCTRL3                0x5c
-#define PO1030_REG_OUTFORMCTRL4                0x5d
-#define PO1030_REG_OUTFORMCTRL5                0x5e
+#define PO1030_OUTFORMCTRL1    0x5a
+#define PO1030_OUTFORMCTRL2    0x5b
+#define PO1030_OUTFORMCTRL3    0x5c
+#define PO1030_OUTFORMCTRL4    0x5d
+#define PO1030_OUTFORMCTRL5    0x5e
 
-/* Imaging coefficients */
-#define PO1030_REG_YBRIGHT             0x73
-#define PO1030_REG_YCONTRAST           0x74
-#define PO1030_REG_YSATURATION         0x75
+#define PO1030_EDGE_ENH_OFF    0x5f
+#define PO1030_EGA             0x60
+
+#define PO1030_Cb_U_GAIN       0x63
+#define PO1030_Cr_V_GAIN       0x64
+
+#define PO1030_YCONTRAST       0x74
+#define PO1030_YSATURATION     0x75
 
 #define PO1030_HFLIP                   (1 << 7)
 #define PO1030_VFLIP                   (1 << 6)
@@ -164,7 +171,7 @@ static const unsigned char preinit_po1030[][3] =
        {BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
        {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0c},
 
-       {SENSOR, PO1030_REG_AUTOCTRL2, 0x24},
+       {SENSOR, PO1030_AUTOCTRL2, 0x24},
 
        {BRIDGE, M5602_XB_GPIO_DIR, 0x05},
        {BRIDGE, M5602_XB_GPIO_DAT, 0x04},
@@ -196,7 +203,7 @@ static const unsigned char preinit_po1030[][3] =
        {BRIDGE, M5602_XB_HSYNC_PARA, 0x87},
        {BRIDGE, M5602_XB_SIG_INI, 0x00},
 
-       {SENSOR, PO1030_REG_AUTOCTRL2, 0x24},
+       {SENSOR, PO1030_AUTOCTRL2, 0x24},
 
        {BRIDGE, M5602_XB_GPIO_DIR, 0x05},
        {BRIDGE, M5602_XB_GPIO_DAT, 0x04},
@@ -229,7 +236,7 @@ static const unsigned char init_po1030[][4] =
        /*end of sequence 1*/
 
        /*sequence 2 (same as stop sequence)*/
-       {SENSOR, PO1030_REG_AUTOCTRL2, 0x24},
+       {SENSOR, PO1030_AUTOCTRL2, 0x24},
        {BRIDGE, M5602_XB_GPIO_DIR, 0x05},
        {BRIDGE, M5602_XB_GPIO_DAT, 0x04},
        {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
@@ -266,7 +273,7 @@ static const unsigned char init_po1030[][4] =
        /*end of sequence 5*/
 
        /*sequence 2 stop */
-       {SENSOR, PO1030_REG_AUTOCTRL2, 0x24},
+       {SENSOR, PO1030_AUTOCTRL2, 0x24},
 
        {BRIDGE, M5602_XB_GPIO_DIR, 0x05},
        {BRIDGE, M5602_XB_GPIO_DAT, 0x04},
@@ -293,58 +300,58 @@ static const unsigned char init_po1030[][4] =
        {BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
        {BRIDGE, M5602_XB_GPIO_EN_L, 0x00},
 
-       {SENSOR, PO1030_REG_AUTOCTRL2, 0x04},
+       {SENSOR, PO1030_AUTOCTRL2, 0x04},
 
        /* Set the width to 751 */
-       {SENSOR, PO1030_REG_FRAMEWIDTH_H, 0x02},
-       {SENSOR, PO1030_REG_FRAMEWIDTH_L, 0xef},
+       {SENSOR, PO1030_FRAMEWIDTH_H, 0x02},
+       {SENSOR, PO1030_FRAMEWIDTH_L, 0xef},
 
        /* Set the height to 540 */
-       {SENSOR, PO1030_REG_FRAMEHEIGHT_H, 0x02},
-       {SENSOR, PO1030_REG_FRAMEHEIGHT_L, 0x1c},
+       {SENSOR, PO1030_FRAMEHEIGHT_H, 0x02},
+       {SENSOR, PO1030_FRAMEHEIGHT_L, 0x1c},
 
        /* Set the x window to 1 */
-       {SENSOR, PO1030_REG_WINDOWX_H, 0x00},
-       {SENSOR, PO1030_REG_WINDOWX_L, 0x01},
+       {SENSOR, PO1030_WINDOWX_H, 0x00},
+       {SENSOR, PO1030_WINDOWX_L, 0x01},
 
        /* Set the y window to 1 */
-       {SENSOR, PO1030_REG_WINDOWY_H, 0x00},
-       {SENSOR, PO1030_REG_WINDOWY_L, 0x01},
-
-       {SENSOR, PO1030_REG_WINDOWWIDTH_H, 0x02},
-       {SENSOR, PO1030_REG_WINDOWWIDTH_L, 0x87},
-       {SENSOR, PO1030_REG_WINDOWHEIGHT_H, 0x01},
-       {SENSOR, PO1030_REG_WINDOWHEIGHT_L, 0xe3},
-
-       {SENSOR, PO1030_REG_OUTFORMCTRL2, 0x04},
-       {SENSOR, PO1030_REG_OUTFORMCTRL2, 0x04},
-       {SENSOR, PO1030_REG_AUTOCTRL1, 0x08},
-       {SENSOR, PO1030_REG_CONTROL2, 0x03},
+       {SENSOR, PO1030_WINDOWY_H, 0x00},
+       {SENSOR, PO1030_WINDOWY_L, 0x01},
+
+       {SENSOR, PO1030_WINDOWWIDTH_H, 0x02},
+       {SENSOR, PO1030_WINDOWWIDTH_L, 0x87},
+       {SENSOR, PO1030_WINDOWHEIGHT_H, 0x01},
+       {SENSOR, PO1030_WINDOWHEIGHT_L, 0xe3},
+
+       {SENSOR, PO1030_OUTFORMCTRL2, 0x04},
+       {SENSOR, PO1030_OUTFORMCTRL2, 0x04},
+       {SENSOR, PO1030_AUTOCTRL1, 0x08},
+       {SENSOR, PO1030_CONTROL2, 0x03},
        {SENSOR, 0x21, 0x90},
-       {SENSOR, PO1030_REG_YTARGET, 0x60},
+       {SENSOR, PO1030_YTARGET, 0x60},
        {SENSOR, 0x59, 0x13},
-       {SENSOR, PO1030_REG_OUTFORMCTRL1, 0x40},
-       {SENSOR, 0x5f, 0x00},
-       {SENSOR, 0x60, 0x80},
+       {SENSOR, PO1030_OUTFORMCTRL1, 0x40},
+       {SENSOR, PO1030_EDGE_ENH_OFF, 0x00},
+       {SENSOR, PO1030_EGA, 0x80},
        {SENSOR, 0x78, 0x14},
        {SENSOR, 0x6f, 0x01},
-       {SENSOR, PO1030_REG_CONTROL1, 0x18},
-       {SENSOR, PO1030_REG_GLOBALGAINMAX, 0x14},
-       {SENSOR, 0x63, 0x38},
-       {SENSOR, 0x64, 0x38},
-       {SENSOR, PO1030_REG_CONTROL1, 0x58},
-       {SENSOR, PO1030_REG_RED_GAIN, 0x30},
-       {SENSOR, PO1030_REG_GREEN_1_GAIN, 0x30},
-       {SENSOR, PO1030_REG_BLUE_GAIN, 0x30},
-       {SENSOR, PO1030_REG_GREEN_2_GAIN, 0x30},
-       {SENSOR, PO1030_REG_GC0, 0x10},
-       {SENSOR, PO1030_REG_GC1, 0x20},
-       {SENSOR, PO1030_REG_GC2, 0x40},
-       {SENSOR, PO1030_REG_GC3, 0x60},
-       {SENSOR, PO1030_REG_GC4, 0x80},
-       {SENSOR, PO1030_REG_GC5, 0xa0},
-       {SENSOR, PO1030_REG_GC6, 0xc0},
-       {SENSOR, PO1030_REG_GC7, 0xff},
+       {SENSOR, PO1030_CONTROL1, 0x18},
+       {SENSOR, PO1030_GLOBALGAINMAX, 0x14},
+       {SENSOR, PO1030_Cb_U_GAIN, 0x38},
+       {SENSOR, PO1030_Cr_V_GAIN, 0x38},
+       {SENSOR, PO1030_CONTROL1, 0x58},
+       {SENSOR, PO1030_RED_GAIN, 0x30},
+       {SENSOR, PO1030_GREEN_1_GAIN, 0x30},
+       {SENSOR, PO1030_BLUE_GAIN, 0x30},
+       {SENSOR, PO1030_GREEN_2_GAIN, 0x30},
+       {SENSOR, PO1030_GC0, 0x10},
+       {SENSOR, PO1030_GC1, 0x20},
+       {SENSOR, PO1030_GC2, 0x40},
+       {SENSOR, PO1030_GC3, 0x60},
+       {SENSOR, PO1030_GC4, 0x80},
+       {SENSOR, PO1030_GC5, 0xa0},
+       {SENSOR, PO1030_GC6, 0xc0},
+       {SENSOR, PO1030_GC7, 0xff},
        /*end of sequence 4*/
        /*sequence 5*/
        {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06},
@@ -374,10 +381,10 @@ static const unsigned char init_po1030[][4] =
        /*sequence 6*/
        /* Changing 40 in f0 the image becomes green in bayer mode and red in
         * rgb mode */
-       {SENSOR, PO1030_REG_RED_GAIN, PO1030_RED_GAIN_DEFAULT},
+       {SENSOR, PO1030_RED_GAIN, PO1030_RED_GAIN_DEFAULT},
        /* in changing 40 in f0 the image becomes green in bayer mode and red in
         * rgb mode */
-       {SENSOR, PO1030_REG_BLUE_GAIN, PO1030_BLUE_GAIN_DEFAULT},
+       {SENSOR, PO1030_BLUE_GAIN, PO1030_BLUE_GAIN_DEFAULT},
 
        /* with a very low lighted environment increase the exposure but
         * decrease the FPS (Frame Per Second) */
@@ -386,20 +393,20 @@ static const unsigned char init_po1030[][4] =
 
        /* Controls high exposure more than SENSOR_LOW_EXPOSURE, use only in
         * low lighted environment (f0 is more than ff ?)*/
-       {SENSOR, PO1030_REG_INTEGLINES_H, ((PO1030_EXPOSURE_DEFAULT >> 2)
+       {SENSOR, PO1030_INTEGLINES_H, ((PO1030_EXPOSURE_DEFAULT >> 2)
                & 0xff)},
 
        /* Controls middle exposure, use only in high lighted environment */
-       {SENSOR, PO1030_REG_INTEGLINES_M, PO1030_EXPOSURE_DEFAULT & 0xff},
+       {SENSOR, PO1030_INTEGLINES_M, PO1030_EXPOSURE_DEFAULT & 0xff},
 
        /* Controls clarity (not sure) */
-       {SENSOR, PO1030_REG_INTEGLINES_L, 0x00},
+       {SENSOR, PO1030_INTEGLINES_L, 0x00},
        /* Controls gain (the image is more lighted) */
-       {SENSOR, PO1030_REG_GLOBALGAIN, PO1030_GLOBAL_GAIN_DEFAULT},
+       {SENSOR, PO1030_GLOBALGAIN, PO1030_GLOBAL_GAIN_DEFAULT},
 
        /* Sets the width */
-       {SENSOR, PO1030_REG_FRAMEWIDTH_H, 0x02},
-       {SENSOR, PO1030_REG_FRAMEWIDTH_L, 0xef}
+       {SENSOR, PO1030_FRAMEWIDTH_H, 0x02},
+       {SENSOR, PO1030_FRAMEWIDTH_L, 0xef}
        /*end of sequence 6*/
 };