]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
V4L/DVB (8359): gspca: Adds register aliases for zc03xx registers
authorMauro Carvalho Chehab <mchehab@infradead.org>
Tue, 15 Jul 2008 17:23:08 +0000 (14:23 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 20 Jul 2008 10:26:49 +0000 (07:26 -0300)
Thanks to http://zc0302.sourceforge.net/zc0302.php, we have some hints
about what each zc3xx register means.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
drivers/media/video/gspca/zc3xx-reg.h [new file with mode: 0644]
drivers/media/video/gspca/zc3xx.c

diff --git a/drivers/media/video/gspca/zc3xx-reg.h b/drivers/media/video/gspca/zc3xx-reg.h
new file mode 100644 (file)
index 0000000..f52e09c
--- /dev/null
@@ -0,0 +1,261 @@
+/*
+ * zc030x registers
+ *
+ * Copyright (c) 2008 Mauro Carvalho Chehab <mchehab@infradead.org>
+ *
+ * The register aliases used here came from this driver:
+ *     http://zc0302.sourceforge.net/zc0302.php
+ *
+ * This code is placed under the terms of the GNU General Public License v2
+ */
+
+/* Define the register map */
+#define ZC3XX_R000_SYSTEMCONTROL       0x0000
+#define ZC3XX_R001_SYSTEMOPERATING     0x0001
+
+/* Picture size */
+#define ZC3XX_R002_CLOCKSELECT         0x0002
+#define ZC3XX_R003_FRAMEWIDTHHIGH      0x0003
+#define ZC3XX_R004_FRAMEWIDTHLOW       0x0004
+#define ZC3XX_R005_FRAMEHEIGHTHIGH     0x0005
+#define ZC3XX_R006_FRAMEHEIGHTLOW      0x0006
+
+/* JPEG control */
+#define ZC3XX_R008_CLOCKSETTING        0x0008
+
+/* Test mode */
+#define ZC3XX_R00B_TESTMODECONTROL     0x000b
+
+/* Frame retreiving */
+#define ZC3XX_R00C_LASTACQTIME         0x000c
+#define ZC3XX_R00D_MONITORRES          0x000d
+#define ZC3XX_R00E_TIMESTAMPHIGH       0x000e
+#define ZC3XX_R00F_TIMESTAMPLOW        0x000f
+#define ZC3XX_R018_FRAMELOST           0x0018
+#define ZC3XX_R019_AUTOADJUSTFPS       0x0019
+#define ZC3XX_R01A_LASTFRAMESTATE      0x001a
+#define ZC3XX_R025_DATACOUNTER         0x0025
+
+/* Stream and sensor specific */
+#define ZC3XX_R010_CMOSSENSORSELECT    0x0010
+#define ZC3XX_R011_VIDEOSTATUS         0x0011
+#define ZC3XX_R012_VIDEOCONTROLFUNC    0x0012
+
+/* Horizontal and vertical synchros */
+#define ZC3XX_R01D_HSYNC_0             0x001d
+#define ZC3XX_R01E_HSYNC_1             0x001e
+#define ZC3XX_R01F_HSYNC_2             0x001f
+#define ZC3XX_R020_HSYNC_3             0x0020
+
+/* Target picture size in byte */
+#define ZC3XX_R022_TARGETPICTSIZE_0    0x0022
+#define ZC3XX_R023_TARGETPICTSIZE_1    0x0023
+#define ZC3XX_R024_TARGETPICTSIZE_2    0x0024
+
+/* Audio registers */
+#define ZC3XX_R030_AUDIOADC            0x0030
+#define ZC3XX_R031_AUDIOSTREAMSTATUS   0x0031
+#define ZC3XX_R032_AUDIOSTATUS         0x0032
+
+/* Sensor interface */
+#define ZC3XX_R080_HBLANKHIGH          0x0080
+#define ZC3XX_R081_HBLANKLOW           0x0081
+#define ZC3XX_R082_RESETLEVELADDR      0x0082
+#define ZC3XX_R083_RGAINADDR           0x0083
+#define ZC3XX_R084_GGAINADDR           0x0084
+#define ZC3XX_R085_BGAINADDR           0x0085
+#define ZC3XX_R086_EXPTIMEHIGH         0x0086
+#define ZC3XX_R087_EXPTIMEMID          0x0087
+#define ZC3XX_R088_EXPTIMELOW          0x0088
+#define ZC3XX_R089_RESETBLACKHIGH      0x0089
+#define ZC3XX_R08A_RESETWHITEHIGH      0x008a
+#define ZC3XX_R08B_I2CDEVICEADDR       0x008b
+#define ZC3XX_R08C_I2CIDLEANDNACK      0x008c
+#define ZC3XX_R08D_COMPABILITYMODE     0x008d
+#define ZC3XX_R08E_COMPABILITYMODE2    0x008e
+
+/* I2C control */
+#define ZC3XX_R090_I2CCOMMAND          0x0090
+#define ZC3XX_R091_I2CSTATUS           0x0091
+#define ZC3XX_R092_I2CADDRESSSELECT    0x0092
+#define ZC3XX_R093_I2CSETVALUE         0x0093
+#define ZC3XX_R094_I2CWRITEACK         0x0094
+#define ZC3XX_R095_I2CREAD             0x0095
+#define ZC3XX_R096_I2CREADACK          0x0096
+
+/* Window inside the sensor array */
+#define ZC3XX_R097_WINYSTARTHIGH       0x0097
+#define ZC3XX_R098_WINYSTARTLOW        0x0098
+#define ZC3XX_R099_WINXSTARTHIGH       0x0099
+#define ZC3XX_R09A_WINXSTARTLOW        0x009a
+#define ZC3XX_R09B_WINHEIGHTHIGH       0x009b
+#define ZC3XX_R09C_WINHEIGHTLOW        0x009c
+#define ZC3XX_R09D_WINWIDTHHIGH        0x009d
+#define ZC3XX_R09E_WINWIDTHLOW         0x009e
+#define ZC3XX_R119_FIRSTYHIGH          0x0119
+#define ZC3XX_R11A_FIRSTYLOW           0x011a
+#define ZC3XX_R11B_FIRSTXHIGH          0x011b
+#define ZC3XX_R11C_FIRSTXLOW           0x011c
+
+/* Max sensor array size */
+#define ZC3XX_R09F_MAXXHIGH            0x009f
+#define ZC3XX_R0A0_MAXXLOW             0x00a0
+#define ZC3XX_R0A1_MAXYHIGH            0x00a1
+#define ZC3XX_R0A2_MAXYLOW             0x00a2
+#define ZC3XX_R0A3_EXPOSURETIMEHIGH    0x00a3
+#define ZC3XX_R0A4_EXPOSURETIMELOW     0x00a4
+#define ZC3XX_R0A5_EXPOSUREGAIN        0x00a5
+#define ZC3XX_R0A6_EXPOSUREBLACKLVL    0x00a6
+
+/* Other registers */
+#define ZC3XX_R100_OPERATIONMODE       0x0100
+#define ZC3XX_R101_SENSORCORRECTION    0x0101
+
+/* Gains */
+#define ZC3XX_R116_RGAIN               0x0116
+#define ZC3XX_R117_GGAIN               0x0117
+#define ZC3XX_R118_BGAIN               0x0118
+#define ZC3XX_R11D_GLOBALGAIN          0x011d
+#define ZC3XX_R1A8_DIGITALGAIN         0x01a8
+#define ZC3XX_R1A9_DIGITALLIMITDIFF    0x01a9
+#define ZC3XX_R1AA_DIGITALGAINSTEP     0x01aa
+
+/* Auto correction */
+#define ZC3XX_R180_AUTOCORRECTENABLE   0x0180
+#define ZC3XX_R181_WINXSTART           0x0181
+#define ZC3XX_R182_WINXWIDTH           0x0182
+#define ZC3XX_R183_WINXCENTER          0x0183
+#define ZC3XX_R184_WINYSTART           0x0184
+#define ZC3XX_R185_WINYWIDTH           0x0185
+#define ZC3XX_R186_WINYCENTER          0x0186
+
+/* Gain range */
+#define ZC3XX_R187_MAXGAIN             0x0187
+#define ZC3XX_R188_MINGAIN             0x0188
+
+/* Auto exposure and white balance */
+#define ZC3XX_R189_AWBSTATUS           0x0189
+#define ZC3XX_R18A_AWBFREEZE           0x018a
+#define ZC3XX_R18B_AESTATUS            0x018b
+#define ZC3XX_R18C_AEFREEZE            0x018c
+#define ZC3XX_R18F_AEUNFREEZE          0x018f
+#define ZC3XX_R190_EXPOSURELIMITHIGH   0x0190
+#define ZC3XX_R191_EXPOSURELIMITMID    0x0191
+#define ZC3XX_R192_EXPOSURELIMITLOW    0x0192
+#define ZC3XX_R195_ANTIFLICKERHIGH     0x0195
+#define ZC3XX_R196_ANTIFLICKERMID      0x0196
+#define ZC3XX_R197_ANTIFLICKERLOW      0x0197
+
+/* What is this ? */
+#define ZC3XX_R18D_YTARGET             0x018d
+#define ZC3XX_R18E_RESETLVL            0x018e
+
+/* Color */
+#define ZC3XX_R1A0_REDMEANAFTERAGC     0x01a0
+#define ZC3XX_R1A1_GREENMEANAFTERAGC   0x01a1
+#define ZC3XX_R1A2_BLUEMEANAFTERAGC    0x01a2
+#define ZC3XX_R1A3_REDMEANAFTERAWB     0x01a3
+#define ZC3XX_R1A4_GREENMEANAFTERAWB   0x01a4
+#define ZC3XX_R1A5_BLUEMEANAFTERAWB    0x01a5
+#define ZC3XX_R1A6_YMEANAFTERAE        0x01a6
+#define ZC3XX_R1A7_CALCGLOBALMEAN      0x01a7
+
+#define ZC3XX_R1A2_BLUEMEANAFTERAGC    0x01a2
+
+/* Matrixes */
+
+/* Color matrix is like :
+   R' = R * RGB00 + G * RGB01 + B * RGB02 + RGB03
+   G' = R * RGB10 + G * RGB11 + B * RGB22 + RGB13
+   B' = R * RGB20 + G * RGB21 + B * RGB12 + RGB23
+ */
+#define ZC3XX_R10A_RGB00               0x010a
+#define ZC3XX_R10B_RGB01               0x010b
+#define ZC3XX_R10C_RGB02               0x010c
+#define ZC3XX_R113_RGB03               0x0113
+#define ZC3XX_R10D_RGB10               0x010d
+#define ZC3XX_R10E_RGB11               0x010e
+#define ZC3XX_R10F_RGB12               0x010f
+#define ZC3XX_R114_RGB13               0x0114
+#define ZC3XX_R110_RGB20               0x0110
+#define ZC3XX_R111_RGB21               0x0111
+#define ZC3XX_R112_RGB22               0x0112
+#define ZC3XX_R115_RGB23               0x0115
+
+/* Gamma matrix */
+#define ZC3XX_R120_GAMMA00             0x0120
+#define ZC3XX_R121_GAMMA01             0x0121
+#define ZC3XX_R122_GAMMA02             0x0122
+#define ZC3XX_R123_GAMMA03             0x0123
+#define ZC3XX_R124_GAMMA04             0x0124
+#define ZC3XX_R125_GAMMA05             0x0125
+#define ZC3XX_R126_GAMMA06             0x0126
+#define ZC3XX_R127_GAMMA07             0x0127
+#define ZC3XX_R128_GAMMA08             0x0128
+#define ZC3XX_R129_GAMMA09             0x0129
+#define ZC3XX_R12A_GAMMA0A             0x012a
+#define ZC3XX_R12B_GAMMA0B             0x012b
+#define ZC3XX_R12C_GAMMA0C             0x012c
+#define ZC3XX_R12D_GAMMA0D             0x012d
+#define ZC3XX_R12E_GAMMA0E             0x012e
+#define ZC3XX_R12F_GAMMA0F             0x012f
+#define ZC3XX_R130_GAMMA10             0x0130
+#define ZC3XX_R131_GAMMA11             0x0131
+#define ZC3XX_R132_GAMMA12             0x0132
+#define ZC3XX_R133_GAMMA13             0x0133
+#define ZC3XX_R134_GAMMA14             0x0134
+#define ZC3XX_R135_GAMMA15             0x0135
+#define ZC3XX_R136_GAMMA16             0x0136
+#define ZC3XX_R137_GAMMA17             0x0137
+#define ZC3XX_R138_GAMMA18             0x0138
+#define ZC3XX_R139_GAMMA19             0x0139
+#define ZC3XX_R13A_GAMMA1A             0x013a
+#define ZC3XX_R13B_GAMMA1B             0x013b
+#define ZC3XX_R13C_GAMMA1C             0x013c
+#define ZC3XX_R13D_GAMMA1D             0x013d
+#define ZC3XX_R13E_GAMMA1E             0x013e
+#define ZC3XX_R13F_GAMMA1F             0x013f
+
+/* Luminance gamma */
+#define ZC3XX_R140_YGAMMA00            0x0140
+#define ZC3XX_R141_YGAMMA01            0x0141
+#define ZC3XX_R142_YGAMMA02            0x0142
+#define ZC3XX_R143_YGAMMA03            0x0143
+#define ZC3XX_R144_YGAMMA04            0x0144
+#define ZC3XX_R145_YGAMMA05            0x0145
+#define ZC3XX_R146_YGAMMA06            0x0146
+#define ZC3XX_R147_YGAMMA07            0x0147
+#define ZC3XX_R148_YGAMMA08            0x0148
+#define ZC3XX_R149_YGAMMA09            0x0149
+#define ZC3XX_R14A_YGAMMA0A            0x014a
+#define ZC3XX_R14B_YGAMMA0B            0x014b
+#define ZC3XX_R14C_YGAMMA0C            0x014c
+#define ZC3XX_R14D_YGAMMA0D            0x014d
+#define ZC3XX_R14E_YGAMMA0E            0x014e
+#define ZC3XX_R14F_YGAMMA0F            0x014f
+#define ZC3XX_R150_YGAMMA10            0x0150
+#define ZC3XX_R151_YGAMMA11            0x0151
+
+#define ZC3XX_R1C5_SHARPNESSMODE       0x01c5
+#define ZC3XX_R1C6_SHARPNESS00         0x01c6
+#define ZC3XX_R1C7_SHARPNESS01         0x01c7
+#define ZC3XX_R1C8_SHARPNESS02         0x01c8
+#define ZC3XX_R1C9_SHARPNESS03         0x01c9
+#define ZC3XX_R1CA_SHARPNESS04         0x01ca
+#define ZC3XX_R1CB_SHARPNESS05         0x01cb
+
+/* Synchronization */
+#define ZC3XX_R190_SYNC00LOW           0x0190
+#define ZC3XX_R191_SYNC00MID           0x0191
+#define ZC3XX_R192_SYNC00HIGH          0x0192
+#define ZC3XX_R195_SYNC01LOW           0x0195
+#define ZC3XX_R196_SYNC01MID           0x0196
+#define ZC3XX_R197_SYNC01HIGH          0x0197
+
+/* Dead pixels */
+#define ZC3XX_R250_DEADPIXELSMODE      0x0250
+
+/* EEPROM */
+#define ZC3XX_R300_EEPROMCONFIG        0x0300
+#define ZC3XX_R301_EEPROMACCESS        0x0301
+#define ZC3XX_R302_EEPROMSTATUS        0x0302
index 548c4c8c3f33db301fe15d5fd037b565abf8d5c4..b761b11c5c6a45d8f9eba88b2620b127c322b456 100644 (file)
@@ -35,6 +35,7 @@ MODULE_LICENSE("GPL");
 static int force_sensor = -1;
 
 #include "jpeg.h"
+#include "zc3xx-reg.h"
 
 /* specific webcam descriptor */
 struct sd {
@@ -209,30 +210,30 @@ struct usb_action {
 static const struct usb_action cs2102_Initial[] = {
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x00, 0x0010},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x20, 0x0080},
-       {0xa0, 0x21, 0x0081},
-       {0xa0, 0x30, 0x0083},
-       {0xa0, 0x31, 0x0084},
-       {0xa0, 0x32, 0x0085},
-       {0xa0, 0x23, 0x0086},
-       {0xa0, 0x24, 0x0087},
-       {0xa0, 0x25, 0x0088},
-       {0xa0, 0xb3, 0x008b},
-       {0xa0, 0x03, 0x0008},   /* 00 */
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x00, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x20, ZC3XX_R080_HBLANKHIGH},
+       {0xa0, 0x21, ZC3XX_R081_HBLANKLOW},
+       {0xa0, 0x30, ZC3XX_R083_RGAINADDR},
+       {0xa0, 0x31, ZC3XX_R084_GGAINADDR},
+       {0xa0, 0x32, ZC3XX_R085_BGAINADDR},
+       {0xa0, 0x23, ZC3XX_R086_EXPTIMEHIGH},
+       {0xa0, 0x24, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x25, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0xb3, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00 */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
        {0xaa, 0x02, 0x0008},
        {0xaa, 0x03, 0x0000},
        {0xaa, 0x11, 0x0000},
@@ -245,124 +246,124 @@ static const struct usb_action cs2102_Initial[] = {
        {0xaa, 0x30, 0x0030},
        {0xaa, 0x31, 0x0030},
        {0xaa, 0x32, 0x0030},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
        {0xa0, 0x10, 0x01ae},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x68, 0x018d},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x68, ZC3XX_R18D_YTARGET},
        {0xa0, 0x00, 0x01ad},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* 00 */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00 */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x24, 0x0120},   /* gamma 5 */
-       {0xa0, 0x44, 0x0121},
-       {0xa0, 0x64, 0x0122},
-       {0xa0, 0x84, 0x0123},
-       {0xa0, 0x9d, 0x0124},
-       {0xa0, 0xb2, 0x0125},
-       {0xa0, 0xc4, 0x0126},
-       {0xa0, 0xd3, 0x0127},
-       {0xa0, 0xe0, 0x0128},
-       {0xa0, 0xeb, 0x0129},
-       {0xa0, 0xf4, 0x012a},
-       {0xa0, 0xfb, 0x012b},
-       {0xa0, 0xff, 0x012c},
-       {0xa0, 0xff, 0x012d},
-       {0xa0, 0xff, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x18, 0x0130},
-       {0xa0, 0x20, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0e, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x00, 0x013c},
-       {0xa0, 0x00, 0x013d},
-       {0xa0, 0x00, 0x013e},
-       {0xa0, 0x01, 0x013f},
-       {0xa0, 0x58, 0x010a},   /* matrix */
-       {0xa0, 0xf4, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf4, 0x010d},
-       {0xa0, 0x58, 0x010e},
-       {0xa0, 0xf4, 0x010f},
-       {0xa0, 0xf4, 0x0110},
-       {0xa0, 0xf4, 0x0111},
-       {0xa0, 0x58, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x24, ZC3XX_R120_GAMMA00},       /* gamma 5 */
+       {0xa0, 0x44, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x64, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x84, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x9d, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xb2, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xc4, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xd3, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xe0, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xeb, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xf4, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xfb, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xff, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xff, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xff, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x18, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x20, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0e, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x00, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x00, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x00, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x01, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x58, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf4, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf4, ZC3XX_R10D_RGB10},
+       {0xa0, 0x58, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf4, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf4, ZC3XX_R110_RGB20},
+       {0xa0, 0xf4, ZC3XX_R111_RGB21},
+       {0xa0, 0x58, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x23, 0x0001},
        {0xaa, 0x24, 0x0055},
        {0xaa, 0x25, 0x00cc},
        {0xaa, 0x21, 0x003f},
-       {0xa0, 0x02, 0x0190},
-       {0xa0, 0xab, 0x0191},
-       {0xa0, 0x98, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x30, 0x0196},
-       {0xa0, 0xd4, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x10, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0x39, 0x001d},
-       {0xa0, 0x70, 0x001e},
-       {0xa0, 0xb0, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x02, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0xab, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x98, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x30, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0xd4, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x39, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x70, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xb0, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {}
 };
 
 static const struct usb_action cs2102_InitialScale[] = {
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x00, 0x0010},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x20, 0x0080},
-       {0xa0, 0x21, 0x0081},
-       {0xa0, 0x30, 0x0083},
-       {0xa0, 0x31, 0x0084},
-       {0xa0, 0x32, 0x0085},
-       {0xa0, 0x23, 0x0086},
-       {0xa0, 0x24, 0x0087},
-       {0xa0, 0x25, 0x0088},
-       {0xa0, 0xb3, 0x008b},
-       {0xa0, 0x03, 0x0008},   /* 00 */
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x00, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x20, ZC3XX_R080_HBLANKHIGH},
+       {0xa0, 0x21, ZC3XX_R081_HBLANKLOW},
+       {0xa0, 0x30, ZC3XX_R083_RGAINADDR},
+       {0xa0, 0x31, ZC3XX_R084_GGAINADDR},
+       {0xa0, 0x32, ZC3XX_R085_BGAINADDR},
+       {0xa0, 0x23, ZC3XX_R086_EXPTIMEHIGH},
+       {0xa0, 0x24, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x25, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0xb3, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00 */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
        {0xaa, 0x02, 0x0008},
        {0xaa, 0x03, 0x0000},
        {0xaa, 0x11, 0x0001},
@@ -375,98 +376,98 @@ static const struct usb_action cs2102_InitialScale[] = {
        {0xaa, 0x30, 0x0030},
        {0xaa, 0x31, 0x0030},
        {0xaa, 0x32, 0x0030},
-       {0xa0, 0x77, 0x0101},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x68, 0x018d},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x68, ZC3XX_R18D_YTARGET},
        {0xa0, 0x00, 0x01ad},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* 00 */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00 */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x24, 0x0120},   /* gamma 5 */
-       {0xa0, 0x44, 0x0121},
-       {0xa0, 0x64, 0x0122},
-       {0xa0, 0x84, 0x0123},
-       {0xa0, 0x9d, 0x0124},
-       {0xa0, 0xb2, 0x0125},
-       {0xa0, 0xc4, 0x0126},
-       {0xa0, 0xd3, 0x0127},
-       {0xa0, 0xe0, 0x0128},
-       {0xa0, 0xeb, 0x0129},
-       {0xa0, 0xf4, 0x012a},
-       {0xa0, 0xfb, 0x012b},
-       {0xa0, 0xff, 0x012c},
-       {0xa0, 0xff, 0x012d},
-       {0xa0, 0xff, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x18, 0x0130},
-       {0xa0, 0x20, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0e, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x00, 0x013c},
-       {0xa0, 0x00, 0x013d},
-       {0xa0, 0x00, 0x013e},
-       {0xa0, 0x01, 0x013f},
-       {0xa0, 0x58, 0x010a},   /* matrix */
-       {0xa0, 0xf4, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf4, 0x010d},
-       {0xa0, 0x58, 0x010e},
-       {0xa0, 0xf4, 0x010f},
-       {0xa0, 0xf4, 0x0110},
-       {0xa0, 0xf4, 0x0111},
-       {0xa0, 0x58, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x24, ZC3XX_R120_GAMMA00},       /* gamma 5 */
+       {0xa0, 0x44, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x64, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x84, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x9d, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xb2, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xc4, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xd3, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xe0, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xeb, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xf4, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xfb, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xff, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xff, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xff, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x18, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x20, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0e, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x00, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x00, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x00, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x01, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x58, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf4, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf4, ZC3XX_R10D_RGB10},
+       {0xa0, 0x58, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf4, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf4, ZC3XX_R110_RGB20},
+       {0xa0, 0xf4, ZC3XX_R111_RGB21},
+       {0xa0, 0x58, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x23, 0x0000},
        {0xaa, 0x24, 0x00aa},
        {0xaa, 0x25, 0x00e6},
        {0xaa, 0x21, 0x003f},
-       {0xa0, 0x01, 0x0190},
-       {0xa0, 0x55, 0x0191},
-       {0xa0, 0xcc, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x18, 0x0196},
-       {0xa0, 0x6a, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x10, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0x3f, 0x001d},
-       {0xa0, 0xa5, 0x001e},
-       {0xa0, 0xf0, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x01, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x55, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xcc, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x18, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x6a, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x3f, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xa5, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xf0, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {}
 };
 static const struct usb_action cs2102_50HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0f, 0x008c}, /* 00,0f,8c,aa */
        {0xaa, 0x03, 0x0005}, /* 00,03,05,aa */
        {0xaa, 0x04, 0x00ac}, /* 00,04,ac,aa */
@@ -475,23 +476,23 @@ static const struct usb_action cs2102_50HZ[] = {
        {0xaa, 0x1b, 0x0000}, /* 00,1b,00,aa */
        {0xaa, 0x1c, 0x0005}, /* 00,1c,05,aa */
        {0xaa, 0x1d, 0x00ac}, /* 00,1d,ac,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x3f, 0x0191}, /* 01,91,3f,cc */
-       {0xa0, 0xf0, 0x0192}, /* 01,92,f0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x42, 0x0197}, /* 01,97,42,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x24, 0x01aa}, /* 01,aa,24,cc */
-       {0xa0, 0x8c, 0x001d}, /* 00,1d,8c,cc */
-       {0xa0, 0xb0, 0x001e}, /* 00,1e,b0,cc */
-       {0xa0, 0xd0, 0x001f}, /* 00,1f,d0,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x3f, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,3f,cc */
+       {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x42, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,42,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,24,cc */
+       {0xa0, 0x8c, ZC3XX_R01D_HSYNC_0}, /* 00,1d,8c,cc */
+       {0xa0, 0xb0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,b0,cc */
+       {0xa0, 0xd0, ZC3XX_R01F_HSYNC_2}, /* 00,1f,d0,cc */
        {}
 };
 static const struct usb_action cs2102_50HZScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0f, 0x0093}, /* 00,0f,93,aa */
        {0xaa, 0x03, 0x0005}, /* 00,03,05,aa */
        {0xaa, 0x04, 0x00a1}, /* 00,04,a1,aa */
@@ -500,23 +501,23 @@ static const struct usb_action cs2102_50HZScale[] = {
        {0xaa, 0x1b, 0x0000}, /* 00,1b,00,aa */
        {0xaa, 0x1c, 0x0005}, /* 00,1c,05,aa */
        {0xaa, 0x1d, 0x00a1}, /* 00,1d,a1,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x3f, 0x0191}, /* 01,91,3f,cc */
-       {0xa0, 0xf7, 0x0192}, /* 01,92,f7,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x83, 0x0197}, /* 01,97,83,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x24, 0x01aa}, /* 01,aa,24,cc */
-       {0xa0, 0x93, 0x001d}, /* 00,1d,93,cc */
-       {0xa0, 0xb0, 0x001e}, /* 00,1e,b0,cc */
-       {0xa0, 0xd0, 0x001f}, /* 00,1f,d0,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x3f, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,3f,cc */
+       {0xa0, 0xf7, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f7,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x83, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,83,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,24,cc */
+       {0xa0, 0x93, ZC3XX_R01D_HSYNC_0}, /* 00,1d,93,cc */
+       {0xa0, 0xb0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,b0,cc */
+       {0xa0, 0xd0, ZC3XX_R01F_HSYNC_2}, /* 00,1f,d0,cc */
        {}
 };
 static const struct usb_action cs2102_60HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0f, 0x005d}, /* 00,0f,5d,aa */
        {0xaa, 0x03, 0x0005}, /* 00,03,05,aa */
        {0xaa, 0x04, 0x00aa}, /* 00,04,aa,aa */
@@ -525,23 +526,23 @@ static const struct usb_action cs2102_60HZ[] = {
        {0xaa, 0x1b, 0x0000}, /* 00,1b,00,aa */
        {0xaa, 0x1c, 0x0005}, /* 00,1c,05,aa */
        {0xaa, 0x1d, 0x00aa}, /* 00,1d,aa,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x3f, 0x0191}, /* 01,91,3f,cc */
-       {0xa0, 0xe4, 0x0192}, /* 01,92,e4,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x3a, 0x0197}, /* 01,97,3a,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x24, 0x01aa}, /* 01,aa,24,cc */
-       {0xa0, 0x5d, 0x001d}, /* 00,1d,5d,cc */
-       {0xa0, 0x90, 0x001e}, /* 00,1e,90,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x3f, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,3f,cc */
+       {0xa0, 0xe4, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,e4,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x3a, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,3a,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,24,cc */
+       {0xa0, 0x5d, ZC3XX_R01D_HSYNC_0}, /* 00,1d,5d,cc */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1}, /* 00,1e,90,cc */
        {0xa0, 0xd0, 0x00c8}, /* 00,c8,d0,cc */
        {}
 };
 static const struct usb_action cs2102_60HZScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0f, 0x00b7}, /* 00,0f,b7,aa */
        {0xaa, 0x03, 0x0005}, /* 00,03,05,aa */
        {0xaa, 0x04, 0x00be}, /* 00,04,be,aa */
@@ -550,23 +551,23 @@ static const struct usb_action cs2102_60HZScale[] = {
        {0xaa, 0x1b, 0x0000}, /* 00,1b,00,aa */
        {0xaa, 0x1c, 0x0005}, /* 00,1c,05,aa */
        {0xaa, 0x1d, 0x00be}, /* 00,1d,be,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x3f, 0x0191}, /* 01,91,3f,cc */
-       {0xa0, 0xfc, 0x0192}, /* 01,92,fc,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x69, 0x0197}, /* 01,97,69,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x24, 0x01aa}, /* 01,aa,24,cc */
-       {0xa0, 0xb7, 0x001d}, /* 00,1d,b7,cc */
-       {0xa0, 0xd0, 0x001e}, /* 00,1e,d0,cc */
-       {0xa0, 0xe8, 0x001f}, /* 00,1f,e8,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x3f, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,3f,cc */
+       {0xa0, 0xfc, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,fc,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x69, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,69,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,24,cc */
+       {0xa0, 0xb7, ZC3XX_R01D_HSYNC_0}, /* 00,1d,b7,cc */
+       {0xa0, 0xd0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d0,cc */
+       {0xa0, 0xe8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,e8,cc */
        {}
 };
 static const struct usb_action cs2102_NoFliker[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0f, 0x0059}, /* 00,0f,59,aa */
        {0xaa, 0x03, 0x0005}, /* 00,03,05,aa */
        {0xaa, 0x04, 0x0080}, /* 00,04,80,aa */
@@ -575,23 +576,23 @@ static const struct usb_action cs2102_NoFliker[] = {
        {0xaa, 0x1b, 0x0000}, /* 00,1b,00,aa */
        {0xaa, 0x1c, 0x0005}, /* 00,1c,05,aa */
        {0xaa, 0x1d, 0x0080}, /* 00,1d,80,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x3f, 0x0191}, /* 01,91,3f,cc */
-       {0xa0, 0xf0, 0x0192}, /* 01,92,f0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0x59, 0x001d}, /* 00,1d,59,cc */
-       {0xa0, 0x90, 0x001e}, /* 00,1e,90,cc */
-       {0xa0, 0xc8, 0x001f}, /* 00,1f,c8,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x3f, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,3f,cc */
+       {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0x59, ZC3XX_R01D_HSYNC_0}, /* 00,1d,59,cc */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1}, /* 00,1e,90,cc */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,c8,cc */
        {}
 };
 static const struct usb_action cs2102_NoFlikerScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0f, 0x0059}, /* 00,0f,59,aa */
        {0xaa, 0x03, 0x0005}, /* 00,03,05,aa */
        {0xaa, 0x04, 0x0080}, /* 00,04,80,aa */
@@ -600,878 +601,878 @@ static const struct usb_action cs2102_NoFlikerScale[] = {
        {0xaa, 0x1b, 0x0000}, /* 00,1b,00,aa */
        {0xaa, 0x1c, 0x0005}, /* 00,1c,05,aa */
        {0xaa, 0x1d, 0x0080}, /* 00,1d,80,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x3f, 0x0191}, /* 01,91,3f,cc */
-       {0xa0, 0xf0, 0x0192}, /* 01,92,f0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0x59, 0x001d}, /* 00,1d,59,cc */
-       {0xa0, 0x90, 0x001e}, /* 00,1e,90,cc */
-       {0xa0, 0xc8, 0x001f}, /* 00,1f,c8,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x3f, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,3f,cc */
+       {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0x59, ZC3XX_R01D_HSYNC_0}, /* 00,1d,59,cc */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1}, /* 00,1e,90,cc */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,c8,cc */
        {}
 };
 
 /* CS2102_KOCOM */
 static const struct usb_action cs2102K_Initial[] = {
-       {0xa0, 0x11, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x08, 0x0010},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x88, 0x009e},
-       {0xa0, 0x55, 0x008b},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0a, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0b, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0c, 0x0092},
-       {0xa0, 0x7c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0d, 0x0092},
-       {0xa0, 0xa3, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x03, 0x0092},
-       {0xa0, 0xfb, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x05, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x06, 0x0092},
-       {0xa0, 0x03, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x09, 0x0092},
-       {0xa0, 0x08, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0e, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0f, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x10, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x11, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x12, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x15, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x16, 0x0092},
-       {0xa0, 0x0c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x17, 0x0092},
-       {0xa0, 0x0c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0xb7, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x78, 0x018d},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x20, 0x0087},
-       {0xa0, 0x21, 0x0088},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x11, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x08, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x55, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0a, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0b, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0c, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0d, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xa3, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x03, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xfb, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x05, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x06, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x03, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x09, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x08, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0e, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0f, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x10, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x11, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x12, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x15, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x16, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x0c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x17, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x0c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x20, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x21, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa0, 0x00, 0x01ad},
        {0xa0, 0x01, 0x01b1},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x60, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x4c, 0x0118},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x13, 0x0120},   /* gamma 4 */
-       {0xa0, 0x38, 0x0121},
-       {0xa0, 0x59, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x92, 0x0124},
-       {0xa0, 0xa7, 0x0125},
-       {0xa0, 0xb9, 0x0126},
-       {0xa0, 0xc8, 0x0127},
-       {0xa0, 0xd4, 0x0128},
-       {0xa0, 0xdf, 0x0129},
-       {0xa0, 0xe7, 0x012a},
-       {0xa0, 0xee, 0x012b},
-       {0xa0, 0xf4, 0x012c},
-       {0xa0, 0xf9, 0x012d},
-       {0xa0, 0xfc, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x22, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-       {0xa0, 0x58, 0x010a},   /* matrix */
-       {0xa0, 0xf4, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf4, 0x010d},
-       {0xa0, 0x58, 0x010e},
-       {0xa0, 0xf4, 0x010f},
-       {0xa0, 0xf4, 0x0110},
-       {0xa0, 0xf4, 0x0111},
-       {0xa0, 0x58, 0x0112},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x22, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x22, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x01, 0x00a3},
-       {0xa0, 0x22, 0x00a4},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x07, 0x0191},
-       {0xa0, 0xee, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x3a, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x0c, 0x01a9},
-       {0xa0, 0x28, 0x01aa},
-       {0xa0, 0x04, 0x001d},
-       {0xa0, 0x0f, 0x001e},
-       {0xa0, 0x19, 0x001f},
-       {0xa0, 0x1f, 0x0020},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x60, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x4c, 0x0118},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x5c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x5c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x96, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x96, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x60, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x4c, ZC3XX_R118_BGAIN},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x13, ZC3XX_R120_GAMMA00},       /* gamma 4 */
+       {0xa0, 0x38, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x59, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x92, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa7, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb9, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc8, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd4, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xdf, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xee, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x22, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x58, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf4, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf4, ZC3XX_R10D_RGB10},
+       {0xa0, 0x58, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf4, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf4, ZC3XX_R110_RGB20},
+       {0xa0, 0xf4, ZC3XX_R111_RGB21},
+       {0xa0, 0x58, ZC3XX_R112_RGB22},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x22, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x22, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH},
+       {0xa0, 0x22, ZC3XX_R0A4_EXPOSURETIMELOW},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xee, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x3a, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x28, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x04, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x0f, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0x19, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0x1f, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x60, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x4c, ZC3XX_R118_BGAIN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x5c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x5c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x96, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x96, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
        {}
 };
 
 static const struct usb_action cs2102K_InitialScale[] = {
-       {0xa0, 0x11, 0x0002},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x08, 0x0010},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x88, 0x009e},
-       {0xa0, 0x55, 0x008b},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0a, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0b, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0c, 0x0092},
-       {0xa0, 0x7b, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0d, 0x0092},
-       {0xa0, 0xa3, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x03, 0x0092},
-       {0xa0, 0xfb, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x05, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x06, 0x0092},
-       {0xa0, 0x03, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x09, 0x0092},
-       {0xa0, 0x08, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0e, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0f, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x10, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x11, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x12, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x15, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x16, 0x0092},
-       {0xa0, 0x0c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x17, 0x0092},
-       {0xa0, 0x0c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0xf7, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x78, 0x018d},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x20, 0x0087},
-       {0xa0, 0x21, 0x0088},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x11, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x08, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x55, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0a, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0b, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0c, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7b, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0d, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xa3, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x03, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xfb, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x05, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x06, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x03, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x09, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x08, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0e, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0f, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x10, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x11, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x12, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x15, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x16, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x0c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x17, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x0c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0xf7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x20, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x21, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa0, 0x00, 0x01ad},
        {0xa0, 0x01, 0x01b1},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x60, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x4c, 0x0118},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x13, 0x0120},   /* gamma 4 */
-       {0xa0, 0x38, 0x0121},
-       {0xa0, 0x59, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x92, 0x0124},
-       {0xa0, 0xa7, 0x0125},
-       {0xa0, 0xb9, 0x0126},
-       {0xa0, 0xc8, 0x0127},
-       {0xa0, 0xd4, 0x0128},
-       {0xa0, 0xdf, 0x0129},
-       {0xa0, 0xe7, 0x012a},
-       {0xa0, 0xee, 0x012b},
-       {0xa0, 0xf4, 0x012c},
-       {0xa0, 0xf9, 0x012d},
-       {0xa0, 0xfc, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x22, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-       {0xa0, 0x58, 0x010a},   /* matrix */
-       {0xa0, 0xf4, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf4, 0x010d},
-       {0xa0, 0x58, 0x010e},
-       {0xa0, 0xf4, 0x010f},
-       {0xa0, 0xf4, 0x0110},
-       {0xa0, 0xf4, 0x0111},
-       {0xa0, 0x58, 0x0112},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x22, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x22, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x01, 0x00a3},
-       {0xa0, 0x22, 0x00a4},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x07, 0x0191},
-       {0xa0, 0xee, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x3a, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x0c, 0x01a9},
-       {0xa0, 0x28, 0x01aa},
-       {0xa0, 0x04, 0x001d},
-       {0xa0, 0x0f, 0x001e},
-       {0xa0, 0x19, 0x001f},
-       {0xa0, 0x1f, 0x0020},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x60, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x4c, 0x0118},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x08, 0x0010},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x88, 0x009e},
-       {0xa0, 0x55, 0x008b},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0A, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0B, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0C, 0x0092},
-       {0xa0, 0x7b, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0D, 0x0092},
-       {0xa0, 0xA3, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x03, 0x0092},
-       {0xa0, 0xfb, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x05, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x06, 0x0092},
-       {0xa0, 0x03, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x09, 0x0092},
-       {0xa0, 0x08, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0E, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x0f, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x10, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x11, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x12, 0x0092},
-       {0xa0, 0x18, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x15, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x16, 0x0092},
-       {0xa0, 0x0c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x17, 0x0092},
-       {0xa0, 0x0C, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0xf7, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x78, 0x018d},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x20, 0x0087},
-       {0xa0, 0x21, 0x0088},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x60, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x4c, ZC3XX_R118_BGAIN},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x13, ZC3XX_R120_GAMMA00},       /* gamma 4 */
+       {0xa0, 0x38, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x59, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x92, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa7, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb9, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc8, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd4, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xdf, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xee, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x22, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x58, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf4, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf4, ZC3XX_R10D_RGB10},
+       {0xa0, 0x58, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf4, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf4, ZC3XX_R110_RGB20},
+       {0xa0, 0xf4, ZC3XX_R111_RGB21},
+       {0xa0, 0x58, ZC3XX_R112_RGB22},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x22, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x22, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH},
+       {0xa0, 0x22, ZC3XX_R0A4_EXPOSURETIMELOW},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xee, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x3a, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x28, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x04, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x0f, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0x19, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0x1f, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x60, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x4c, ZC3XX_R118_BGAIN},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x08, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x55, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0A, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0B, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0C, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7b, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0D, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xA3, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x03, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xfb, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x05, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x06, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x03, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x09, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x08, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0E, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x0f, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x10, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x11, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x12, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x18, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x15, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x16, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x0c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x17, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x0C, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0xf7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x20, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x21, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa0, 0x00, 0x01ad},
        {0xa0, 0x01, 0x01b1},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x60, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x4c, 0x0118},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x13, 0x0120},   /* gamma 4 */
-       {0xa0, 0x38, 0x0121},
-       {0xa0, 0x59, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x92, 0x0124},
-       {0xa0, 0xa7, 0x0125},
-       {0xa0, 0xb9, 0x0126},
-       {0xa0, 0xc8, 0x0127},
-       {0xa0, 0xd4, 0x0128},
-       {0xa0, 0xdf, 0x0129},
-       {0xa0, 0xe7, 0x012a},
-       {0xa0, 0xee, 0x012b},
-       {0xa0, 0xf4, 0x012c},
-       {0xa0, 0xf9, 0x012d},
-       {0xa0, 0xfc, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x22, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-       {0xa0, 0x58, 0x010a},   /* matrix */
-       {0xa0, 0xf4, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf4, 0x010d},
-       {0xa0, 0x58, 0x010e},
-       {0xa0, 0xf4, 0x010f},
-       {0xa0, 0xf4, 0x0110},
-       {0xa0, 0xf4, 0x0111},
-       {0xa0, 0x58, 0x0112},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x22, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x22, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x01, 0x00a3},
-       {0xa0, 0x22, 0x00a4},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x07, 0x0191},
-       {0xa0, 0xee, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x3a, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x0c, 0x01a9},
-       {0xa0, 0x28, 0x01aa},
-       {0xa0, 0x04, 0x001d},
-       {0xa0, 0x0f, 0x001e},
-       {0xa0, 0x19, 0x001f},
-       {0xa0, 0x1f, 0x0020},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x60, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x4c, 0x0118},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x5c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x5c, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x96, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x96, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0xd0, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0xd0, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x02, 0x0008},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x0a, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x0a, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x44, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x44, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x21, 0x0092},
-       {0xa0, 0x7e, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x13, 0x0092},
-       {0xa0, 0x7e, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x14, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x18, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x04, 0x01a7},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x60, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x4c, ZC3XX_R118_BGAIN},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x13, ZC3XX_R120_GAMMA00},       /* gamma 4 */
+       {0xa0, 0x38, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x59, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x92, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa7, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb9, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc8, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd4, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xdf, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xee, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x22, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x58, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf4, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf4, ZC3XX_R10D_RGB10},
+       {0xa0, 0x58, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf4, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf4, ZC3XX_R110_RGB20},
+       {0xa0, 0xf4, ZC3XX_R111_RGB21},
+       {0xa0, 0x58, ZC3XX_R112_RGB22},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x22, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x22, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH},
+       {0xa0, 0x22, ZC3XX_R0A4_EXPOSURETIMELOW},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xee, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x3a, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x28, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x04, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x0f, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0x19, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0x1f, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x60, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x4c, ZC3XX_R118_BGAIN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x5c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x5c, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x96, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x96, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xd0, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xd0, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x02, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x0a, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x0a, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x44, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x44, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x21, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7e, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x13, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7e, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x14, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x18, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
        {}
 };
 
 static const struct usb_action gc0305_Initial[] = {    /* 640x480 */
-       {0xa0, 0x01, 0x0000},   /* 00,00,01,cc */
-       {0xa0, 0x03, 0x0008},   /* 00,08,03,cc */
-       {0xa0, 0x01, 0x0010},   /* 00,10,01,cc */
-       {0xa0, 0x04, 0x0002},   /* 00,02,04,cc */
-       {0xa0, 0x02, 0x0003},   /* 00,03,02,cc */
-       {0xa0, 0x80, 0x0004},   /* 00,04,80,cc */
-       {0xa0, 0x01, 0x0005},   /* 00,05,01,cc */
-       {0xa0, 0xe0, 0x0006},   /* 00,06,e0,cc */
-       {0xa0, 0x01, 0x0001},   /* 00,01,01,cc */
-       {0xa0, 0x03, 0x0012},   /* 00,12,03,cc */
-       {0xa0, 0x01, 0x0012},   /* 00,12,01,cc */
-       {0xa0, 0x00, 0x0098},   /* 00,98,00,cc */
-       {0xa0, 0x00, 0x009a},   /* 00,9a,00,cc */
-       {0xa0, 0x00, 0x011a},   /* 01,1a,00,cc */
-       {0xa0, 0x00, 0x011c},   /* 01,1c,00,cc */
-       {0xa0, 0xe6, 0x009c},   /* 00,9c,e6,cc */
-       {0xa0, 0x86, 0x009e},   /* 00,9e,86,cc */
-       {0xa0, 0x98, 0x008b},   /* 00,8b,98,cc */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00,08,03,cc */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT},      /* 00,10,01,cc */
+       {0xa0, 0x04, ZC3XX_R002_CLOCKSELECT},   /* 00,02,04,cc */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},        /* 00,03,02,cc */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, /* 00,04,80,cc */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},       /* 00,05,01,cc */
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},        /* 00,06,e0,cc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},       /* 00,01,01,cc */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,03,cc */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,01,cc */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},  /* 00,98,00,cc */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},  /* 00,9a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},     /* 01,1a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},     /* 01,1c,00,cc */
+       {0xa0, 0xe6, ZC3XX_R09C_WINHEIGHTLOW},  /* 00,9c,e6,cc */
+       {0xa0, 0x86, ZC3XX_R09E_WINWIDTHLOW},   /* 00,9e,86,cc */
+       {0xa0, 0x98, ZC3XX_R08B_I2CDEVICEADDR}, /* 00,8b,98,cc */
        {0xaa, 0x13, 0x0002},   /* 00,13,02,aa */
        {0xaa, 0x15, 0x0003},   /* 00,15,03,aa */
        {0xaa, 0x01, 0x0000},   /* 00,01,00,aa */
@@ -1481,9 +1482,9 @@ static const struct usb_action gc0305_Initial[] = {       /* 640x480 */
        {0xaa, 0x1d, 0x0080},   /* 00,1d,80,aa */
        {0xaa, 0x1f, 0x0008},   /* 00,1f,08,aa */
        {0xaa, 0x21, 0x0012},   /* 00,21,12,aa */
-       {0xa0, 0x82, 0x0086},   /* 00,86,82,cc */
-       {0xa0, 0x83, 0x0087},   /* 00,87,83,cc */
-       {0xa0, 0x84, 0x0088},   /* 00,88,84,cc */
+       {0xa0, 0x82, ZC3XX_R086_EXPTIMEHIGH},   /* 00,86,82,cc */
+       {0xa0, 0x83, ZC3XX_R087_EXPTIMEMID},    /* 00,87,83,cc */
+       {0xa0, 0x84, ZC3XX_R088_EXPTIMELOW},    /* 00,88,84,cc */
        {0xaa, 0x05, 0x0000},   /* 00,05,00,aa */
        {0xaa, 0x0a, 0x0000},   /* 00,0a,00,aa */
        {0xaa, 0x0b, 0x00b0},   /* 00,0b,b0,aa */
@@ -1499,43 +1500,43 @@ static const struct usb_action gc0305_Initial[] = {     /* 640x480 */
        {0xaa, 0x19, 0x0086},   /* 00,19,86,aa */
        {0xaa, 0x20, 0x0000},   /* 00,20,00,aa */
        {0xaa, 0x1b, 0x0020},   /* 00,1b,20,aa */
-       {0xa0, 0xb7, 0x0101},   /* 01,01,b7,cc */
-       {0xa0, 0x05, 0x0012},   /* 00,12,05,cc */
-       {0xa0, 0x0d, 0x0100},   /* 01,00,0d,cc */
-       {0xa0, 0x76, 0x0189},   /* 01,89,76,cc */
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},      /* 01,01,b7,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,05,cc */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0d,cc */
+       {0xa0, 0x76, ZC3XX_R189_AWBSTATUS},     /* 01,89,76,cc */
        {0xa0, 0x09, 0x01ad},   /* 01,ad,09,cc */
-       {0xa0, 0x03, 0x01c5},   /* 01,c5,03,cc */
-       {0xa0, 0x13, 0x01cb},   /* 01,cb,13,cc */
-       {0xa0, 0x08, 0x0250},   /* 02,50,08,cc */
-       {0xa0, 0x08, 0x0301},   /* 03,01,08,cc */
-       {0xa0, 0x60, 0x01a8},   /* 01,a8,60,cc */
-       {0xa0, 0x85, 0x018d},   /* 01,8d,85,cc */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* 01,c5,03,cc */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},   /* 01,cb,13,cc */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},        /* 02,50,08,cc */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},  /* 03,01,08,cc */
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},   /* 01,a8,60,cc */
+       {0xa0, 0x85, ZC3XX_R18D_YTARGET},       /* 01,8d,85,cc */
        {0xa0, 0x00, 0x011e},   /* 01,1e,00,cc */
-       {0xa0, 0x52, 0x0116},   /* 01,16,52,cc */
-       {0xa0, 0x40, 0x0117},   /* 01,17,40,cc */
-       {0xa0, 0x52, 0x0118},   /* 01,18,52,cc */
-       {0xa0, 0x03, 0x0113},   /* 01,13,03,cc */
+       {0xa0, 0x52, ZC3XX_R116_RGAIN}, /* 01,16,52,cc */
+       {0xa0, 0x40, ZC3XX_R117_GGAIN}, /* 01,17,40,cc */
+       {0xa0, 0x52, ZC3XX_R118_BGAIN}, /* 01,18,52,cc */
+       {0xa0, 0x03, ZC3XX_R113_RGB03}, /* 01,13,03,cc */
        {}
 };
 static const struct usb_action gc0305_InitialScale[] = { /* 320x240 */
-       {0xa0, 0x01, 0x0000},   /* 00,00,01,cc */
-       {0xa0, 0x03, 0x0008},   /* 00,08,03,cc */
-       {0xa0, 0x01, 0x0010},   /* 00,10,01,cc */
-       {0xa0, 0x10, 0x0002},   /* 00,02,10,cc */
-       {0xa0, 0x02, 0x0003},   /* 00,03,02,cc */
-       {0xa0, 0x80, 0x0004},   /* 00,04,80,cc */
-       {0xa0, 0x01, 0x0005},   /* 00,05,01,cc */
-       {0xa0, 0xe0, 0x0006},   /* 00,06,e0,cc */
-       {0xa0, 0x01, 0x0001},   /* 00,01,01,cc */
-       {0xa0, 0x03, 0x0012},   /* 00,12,03,cc */
-       {0xa0, 0x01, 0x0012},   /* 00,12,01,cc */
-       {0xa0, 0x00, 0x0098},   /* 00,98,00,cc */
-       {0xa0, 0x00, 0x009a},   /* 00,9a,00,cc */
-       {0xa0, 0x00, 0x011a},   /* 01,1a,00,cc */
-       {0xa0, 0x00, 0x011c},   /* 01,1c,00,cc */
-       {0xa0, 0xe8, 0x009c},   /* 00,9c,e8,cc */
-       {0xa0, 0x88, 0x009e},   /* 00,9e,88,cc */
-       {0xa0, 0x98, 0x008b},   /* 00,8b,98,cc */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00,08,03,cc */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT},      /* 00,10,01,cc */
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},   /* 00,02,10,cc */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},        /* 00,03,02,cc */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, /* 00,04,80,cc */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},       /* 00,05,01,cc */
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},        /* 00,06,e0,cc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},       /* 00,01,01,cc */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,03,cc */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,01,cc */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},  /* 00,98,00,cc */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},  /* 00,9a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},     /* 01,1a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},     /* 01,1c,00,cc */
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},  /* 00,9c,e8,cc */
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},   /* 00,9e,88,cc */
+       {0xa0, 0x98, ZC3XX_R08B_I2CDEVICEADDR}, /* 00,8b,98,cc */
        {0xaa, 0x13, 0x0000},   /* 00,13,00,aa */
        {0xaa, 0x15, 0x0001},   /* 00,15,01,aa */
        {0xaa, 0x01, 0x0000},   /* 00,01,00,aa */
@@ -1545,9 +1546,9 @@ static const struct usb_action gc0305_InitialScale[] = { /* 320x240 */
        {0xaa, 0x1d, 0x0080},   /* 00,1d,80,aa */
        {0xaa, 0x1f, 0x0008},   /* 00,1f,08,aa */
        {0xaa, 0x21, 0x0012},   /* 00,21,12,aa */
-       {0xa0, 0x82, 0x0086},   /* 00,86,82,cc */
-       {0xa0, 0x83, 0x0087},   /* 00,87,83,cc */
-       {0xa0, 0x84, 0x0088},   /* 00,88,84,cc */
+       {0xa0, 0x82, ZC3XX_R086_EXPTIMEHIGH},   /* 00,86,82,cc */
+       {0xa0, 0x83, ZC3XX_R087_EXPTIMEMID},    /* 00,87,83,cc */
+       {0xa0, 0x84, ZC3XX_R088_EXPTIMELOW},    /* 00,88,84,cc */
        {0xaa, 0x05, 0x0000},   /* 00,05,00,aa */
        {0xaa, 0x0a, 0x0000},   /* 00,0a,00,aa */
        {0xaa, 0x0b, 0x00b0},   /* 00,0b,b0,aa */
@@ -1563,115 +1564,119 @@ static const struct usb_action gc0305_InitialScale[] = { /* 320x240 */
        {0xaa, 0x19, 0x0088},   /* 00,19,88,aa */
        {0xaa, 0x20, 0x0000},   /* 00,20,00,aa */
        {0xaa, 0x1b, 0x0020},   /* 00,1b,20,aa */
-       {0xa0, 0xb7, 0x0101},   /* 01,01,b7,cc */
-       {0xa0, 0x05, 0x0012},   /* 00,12,05,cc */
-       {0xa0, 0x0d, 0x0100},   /* 01,00,0d,cc */
-       {0xa0, 0x76, 0x0189},   /* 01,89,76,cc */
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},      /* 01,01,b7,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,05,cc */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0d,cc */
+       {0xa0, 0x76, ZC3XX_R189_AWBSTATUS},     /* 01,89,76,cc */
        {0xa0, 0x09, 0x01ad},   /* 01,ad,09,cc */
-       {0xa0, 0x03, 0x01c5},   /* 01,c5,03,cc */
-       {0xa0, 0x13, 0x01cb},   /* 01,cb,13,cc */
-       {0xa0, 0x08, 0x0250},   /* 02,50,08,cc */
-       {0xa0, 0x08, 0x0301},   /* 03,01,08,cc */
-       {0xa0, 0x60, 0x01a8},   /* 01,a8,60,cc */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* 01,c5,03,cc */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},   /* 01,cb,13,cc */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},        /* 02,50,08,cc */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},  /* 03,01,08,cc */
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},   /* 01,a8,60,cc */
        {0xa0, 0x00, 0x011e},   /* 01,1e,00,cc */
-       {0xa0, 0x52, 0x0116},   /* 01,16,52,cc */
-       {0xa0, 0x40, 0x0117},   /* 01,17,40,cc */
-       {0xa0, 0x52, 0x0118},   /* 01,18,52,cc */
-       {0xa0, 0x03, 0x0113},   /* 01,13,03,cc */
+       {0xa0, 0x52, ZC3XX_R116_RGAIN}, /* 01,16,52,cc */
+       {0xa0, 0x40, ZC3XX_R117_GGAIN}, /* 01,17,40,cc */
+       {0xa0, 0x52, ZC3XX_R118_BGAIN}, /* 01,18,52,cc */
+       {0xa0, 0x03, ZC3XX_R113_RGB03}, /* 01,13,03,cc */
        {}
 };
 static const struct usb_action gc0305_50HZ[] = {
        {0xaa, 0x82, 0x0000},   /* 00,82,00,aa */
        {0xaa, 0x83, 0x0002},   /* 00,83,02,aa */
        {0xaa, 0x84, 0x0038},   /* 00,84,38,aa */       /* win: 00,84,ec */
-       {0xa0, 0x00, 0x0190},   /* 01,90,00,cc */
-       {0xa0, 0x0b, 0x0191},   /* 01,91,0b,cc */
-       {0xa0, 0x18, 0x0192},   /* 01,92,18,cc */       /* win: 01,92,10 */
-       {0xa0, 0x00, 0x0195},   /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196},   /* 01,96,00,cc */
-       {0xa0, 0x8e, 0x0197},   /* 01,97,8e,cc */       /* win: 01,97,ec */
-       {0xa0, 0x0e, 0x018c},   /* 01,8c,0e,cc */
-       {0xa0, 0x15, 0x018f},   /* 01,8f,15,cc */
-       {0xa0, 0x10, 0x01a9},   /* 01,a9,10,cc */
-       {0xa0, 0x24, 0x01aa},   /* 01,aa,24,cc */
-       {0xa0, 0x62, 0x001d},   /* 00,1d,62,cc */
-       {0xa0, 0x90, 0x001e},   /* 00,1e,90,cc */
-       {0xa0, 0xc8, 0x001f},   /* 00,1f,c8,cc */
-       {0xa0, 0xff, 0x0020},   /* 00,20,ff,cc */
-       {0xa0, 0x60, 0x011d},   /* 01,1d,60,cc */
-       {0xa0, 0x42, 0x0180},   /* 01,80,42,cc */
-/*     {0xa0, 0x85, 0x018d},    * 01,8d,85,cc *         * if 640x480 */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc */
+       {0xa0, 0x0b, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,0b,cc */
+       {0xa0, 0x18, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,18,cc */
+                                                       /* win: 01,92,10 */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc */
+       {0xa0, 0x8e, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,8e,cc */
+                                                       /* win: 01,97,ec */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},      /* 01,8c,0e,cc */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},    /* 01,8f,15,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* 01,a9,10,cc */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},       /* 01,aa,24,cc */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},       /* 00,1d,62,cc */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},       /* 00,1e,90,cc */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},       /* 00,1f,c8,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},       /* 00,20,ff,cc */
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},    /* 01,1d,60,cc */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,42,cc */
+/*     {0xa0, 0x85, ZC3XX_R18D_YTARGET},        * 01,8d,85,cc *
+                                                * if 640x480 */
        {}
 };
 static const struct usb_action gc0305_60HZ[] = {
        {0xaa, 0x82, 0x0000},   /* 00,82,00,aa */
        {0xaa, 0x83, 0x0000},   /* 00,83,00,aa */
        {0xaa, 0x84, 0x00ec},   /* 00,84,ec,aa */
-       {0xa0, 0x00, 0x0190},   /* 01,90,00,cc */
-       {0xa0, 0x0b, 0x0191},   /* 01,91,0b,cc */
-       {0xa0, 0x10, 0x0192},   /* 01,92,10,cc */
-       {0xa0, 0x00, 0x0195},   /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196},   /* 01,96,00,cc */
-       {0xa0, 0xec, 0x0197},   /* 01,97,ec,cc */
-       {0xa0, 0x0e, 0x018c},   /* 01,8c,0e,cc */
-       {0xa0, 0x15, 0x018f},   /* 01,8f,15,cc */
-       {0xa0, 0x10, 0x01a9},   /* 01,a9,10,cc */
-       {0xa0, 0x24, 0x01aa},   /* 01,aa,24,cc */
-       {0xa0, 0x62, 0x001d},   /* 00,1d,62,cc */
-       {0xa0, 0x90, 0x001e},   /* 00,1e,90,cc */
-       {0xa0, 0xc8, 0x001f},   /* 00,1f,c8,cc */
-       {0xa0, 0xff, 0x0020},   /* 00,20,ff,cc */
-       {0xa0, 0x60, 0x011d},   /* 01,1d,60,cc */
-       {0xa0, 0x42, 0x0180},   /* 01,80,42,cc */
-       {0xa0, 0x80, 0x018d},   /* 01,8d,80,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc */
+       {0xa0, 0x0b, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,0b,cc */
+       {0xa0, 0x10, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,10,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc */
+       {0xa0, 0xec, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,ec,cc */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},      /* 01,8c,0e,cc */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},    /* 01,8f,15,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* 01,a9,10,cc */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},       /* 01,aa,24,cc */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},       /* 00,1d,62,cc */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},       /* 00,1e,90,cc */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},       /* 00,1f,c8,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},       /* 00,20,ff,cc */
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},    /* 01,1d,60,cc */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,42,cc */
+       {0xa0, 0x80, ZC3XX_R18D_YTARGET},       /* 01,8d,80,cc */
        {}
 };
 
 static const struct usb_action gc0305_NoFliker[] = {
-       {0xa0, 0x0c, 0x0100},   /* 01,00,0c,cc */
+       {0xa0, 0x0c, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0c,cc */
        {0xaa, 0x82, 0x0000},   /* 00,82,00,aa */
        {0xaa, 0x83, 0x0000},   /* 00,83,00,aa */
        {0xaa, 0x84, 0x0020},   /* 00,84,20,aa */
-       {0xa0, 0x00, 0x0190},   /* 01,90,00,cc */
-       {0xa0, 0x00, 0x0191},   /* 01,91,00,cc */
-       {0xa0, 0x48, 0x0192},   /* 01,92,48,cc */
-       {0xa0, 0x00, 0x0195},   /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196},   /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197},   /* 01,97,10,cc */
-       {0xa0, 0x0e, 0x018c},   /* 01,8c,0e,cc */
-       {0xa0, 0x15, 0x018f},   /* 01,8f,15,cc */
-       {0xa0, 0x62, 0x001d},   /* 00,1d,62,cc */
-       {0xa0, 0x90, 0x001e},   /* 00,1e,90,cc */
-       {0xa0, 0xc8, 0x001f},   /* 00,1f,c8,cc */
-       {0xa0, 0xff, 0x0020},   /* 00,20,ff,cc */
-       {0xa0, 0x60, 0x011d},   /* 01,1d,60,cc */
-       {0xa0, 0x03, 0x0180},   /* 01,80,03,cc */
-       {0xa0, 0x80, 0x018d},   /* 01,8d,80,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc */
+       {0xa0, 0x00, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,00,cc */
+       {0xa0, 0x48, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,48,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,10,cc */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},      /* 01,8c,0e,cc */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},    /* 01,8f,15,cc */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},       /* 00,1d,62,cc */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},       /* 00,1e,90,cc */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},       /* 00,1f,c8,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},       /* 00,20,ff,cc */
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},    /* 01,1d,60,cc */
+       {0xa0, 0x03, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,03,cc */
+       {0xa0, 0x80, ZC3XX_R18D_YTARGET},       /* 01,8d,80,cc */
        {}
 };
 
 /* play poker with registers at your own risk !! */
 static const struct usb_action hdcs2020xx_Initial[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x0e, 0x0010},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xd0, 0x0006},   /* D0 ?? E0 did not start */
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x08, 0x008d},
-       {0xa0, 0x08, 0x0098},
-       {0xa0, 0x02, 0x009a},
-       {0xa0, 0x08, 0x011a},
-       {0xa0, 0x02, 0x011c},
-       {0xa0, 0x01, 0x009b},
-       {0xa0, 0xd8, 0x009c},
-       {0xa0, 0x02, 0x009d},
-       {0xa0, 0x88, 0x009e},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x0e, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xd0, ZC3XX_R006_FRAMEHEIGHTLOW},
+                                               /* D0 ?? E0 did not start */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x08, ZC3XX_R08D_COMPABILITYMODE},
+       {0xa0, 0x08, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x02, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x08, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x02, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0x01, ZC3XX_R09B_WINHEIGHTHIGH},
+       {0xa0, 0xd8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
        {0xaa, 0x02, 0x0002},
        {0xaa, 0x07, 0x0006},
        {0xaa, 0x08, 0x0002},
@@ -1684,71 +1689,71 @@ static const struct usb_action hdcs2020xx_Initial[] = {
        {0xaa, 0x12, 0x0005},
        {0xaa, 0x13, 0x0063},
        {0xaa, 0x15, 0x0070},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x70, 0x018d},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x70, ZC3XX_R18D_YTARGET},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x04, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x04, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x07, 0x01cb},   /* sharpness- */
-       {0xa0, 0x11, 0x0120},   /* gamma ~4 */
-       {0xa0, 0x37, 0x0121},
-       {0xa0, 0x58, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x91, 0x0124},
-       {0xa0, 0xa6, 0x0125},
-       {0xa0, 0xb8, 0x0126},
-       {0xa0, 0xc7, 0x0127},
-       {0xa0, 0xd3, 0x0128},
-       {0xa0, 0xde, 0x0129},
-       {0xa0, 0xe6, 0x012a},
-       {0xa0, 0xed, 0x012b},
-       {0xa0, 0xf3, 0x012c},
-       {0xa0, 0xf8, 0x012d},
-       {0xa0, 0xfb, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x23, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-
-       {0xa0, 0x4c, 0x010a},   /* matrix */
-       {0xa0, 0xf5, 0x010b},
-       {0xa0, 0xff, 0x010c},
-       {0xa0, 0xf9, 0x010d},
-       {0xa0, 0x51, 0x010e},
-       {0xa0, 0xf5, 0x010f},
-       {0xa0, 0xfb, 0x0110},
-       {0xa0, 0xed, 0x0111},
-       {0xa0, 0x5f, 0x0112},
+       {0xa0, 0x07, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x11, ZC3XX_R120_GAMMA00},       /* gamma ~4 */
+       {0xa0, 0x37, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x58, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x91, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa6, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb8, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc7, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd3, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xde, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe6, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xed, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf3, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf8, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfb, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x23, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+
+       {0xa0, 0x4c, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf5, ZC3XX_R10B_RGB01},
+       {0xa0, 0xff, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf9, ZC3XX_R10D_RGB10},
+       {0xa0, 0x51, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf5, ZC3XX_R10F_RGB12},
+       {0xa0, 0xfb, ZC3XX_R110_RGB20},
+       {0xa0, 0xed, ZC3XX_R111_RGB21},
+       {0xa0, 0x5f, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x20, 0x0087},
-       {0xa0, 0x21, 0x0088},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x20, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x21, ZC3XX_R088_EXPTIMELOW},
        {0xaa, 0x20, 0x0004},
        {0xaa, 0x21, 0x003d},
        {0xaa, 0x03, 0x0041},
@@ -1756,67 +1761,67 @@ static const struct usb_action hdcs2020xx_Initial[] = {
        {0xaa, 0x05, 0x003d},
        {0xaa, 0x0e, 0x0001},
        {0xaa, 0x0f, 0x0000},
-       {0xa0, 0x14, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x04, 0x0191},
-       {0xa0, 0x3d, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x9b, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x41, 0x001d},
-       {0xa0, 0x6f, 0x001e},
-       {0xa0, 0xad, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x0f, 0x0087},
-       {0xa0, 0x0e, 0x0088},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x3d, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x9b, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x41, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x6f, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xad, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x0f, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x0e, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0195},
        {0xa1, 0x01, 0x0196},
        {0xa1, 0x01, 0x0197},
-       {0xa0, 0x3d, 0x0192},
-       {0xa0, 0x04, 0x0191},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x1d, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x85, 0x0118},
+       {0xa0, 0x3d, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x1d, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x85, ZC3XX_R118_BGAIN},
        {0xa1, 0x01, 0x0116},
        {0xa1, 0x01, 0x0118},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x1d, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x85, 0x0118},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x1d, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x85, ZC3XX_R118_BGAIN},
        {0xa1, 0x01, 0x0116},
        {0xa1, 0x01, 0x0118},
-/*     {0xa0, 0x02, 0x0008}, */
+/*     {0xa0, 0x02, ZC3XX_R008_CLOCKSETTING}, */
        {0xa0, 0x00, 0x0007},
        {}
 };
 
 static const struct usb_action hdcs2020xx_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x0e, 0x0010},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x08, 0x008d},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x03, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x03, 0x011c},
-       {0xa0, 0x01, 0x009b},
-       {0xa0, 0xe6, 0x009c},
-       {0xa0, 0x02, 0x009d},
-       {0xa0, 0x86, 0x009e},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x0e, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x08, ZC3XX_R08D_COMPABILITYMODE},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x03, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x03, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0x01, ZC3XX_R09B_WINHEIGHTHIGH},
+       {0xa0, 0xe6, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH},
+       {0xa0, 0x86, ZC3XX_R09E_WINWIDTHLOW},
        {0xaa, 0x02, 0x0002},
        {0xaa, 0x07, 0x0006},
        {0xaa, 0x08, 0x0002},
@@ -1829,70 +1834,70 @@ static const struct usb_action hdcs2020xx_InitialScale[] = {
        {0xaa, 0x12, 0x0005},
        {0xaa, 0x13, 0x0063},
        {0xaa, 0x15, 0x0070},
-       {0xa0, 0xb7, 0x0101},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x70, 0x018d},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x70, ZC3XX_R18D_YTARGET},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x04, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x04, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x07, 0x01cb},   /* sharpness- */
-       {0xa0, 0x11, 0x0120},   /* gamma ~4*/
-       {0xa0, 0x37, 0x0121},
-       {0xa0, 0x58, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x91, 0x0124},
-       {0xa0, 0xa6, 0x0125},
-       {0xa0, 0xb8, 0x0126},
-       {0xa0, 0xc7, 0x0127},
-       {0xa0, 0xd3, 0x0128},
-       {0xa0, 0xde, 0x0129},
-       {0xa0, 0xe6, 0x012a},
-       {0xa0, 0xed, 0x012b},
-       {0xa0, 0xf3, 0x012c},
-       {0xa0, 0xf8, 0x012d},
-       {0xa0, 0xfb, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x23, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-       {0xa0, 0x60, 0x010a},   /* matrix */
-       {0xa0, 0xff, 0x010b},
-       {0xa0, 0xff, 0x010c},
-       {0xa0, 0xff, 0x010d},
-       {0xa0, 0x60, 0x010e},
-       {0xa0, 0xff, 0x010f},
-       {0xa0, 0xff, 0x0110},
-       {0xa0, 0xff, 0x0111},
-       {0xa0, 0x60, 0x0112},
+       {0xa0, 0x07, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x11, ZC3XX_R120_GAMMA00},       /* gamma ~4*/
+       {0xa0, 0x37, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x58, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x91, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa6, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb8, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc7, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd3, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xde, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe6, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xed, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf3, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf8, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfb, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x23, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x60, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xff, ZC3XX_R10B_RGB01},
+       {0xa0, 0xff, ZC3XX_R10C_RGB02},
+       {0xa0, 0xff, ZC3XX_R10D_RGB10},
+       {0xa0, 0x60, ZC3XX_R10E_RGB11},
+       {0xa0, 0xff, ZC3XX_R10F_RGB12},
+       {0xa0, 0xff, ZC3XX_R110_RGB20},
+       {0xa0, 0xff, ZC3XX_R111_RGB21},
+       {0xa0, 0x60, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x20, 0x0087},
-       {0xa0, 0x21, 0x0088},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x20, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x21, ZC3XX_R088_EXPTIMELOW},
        {0xaa, 0x20, 0x0002},
        {0xaa, 0x21, 0x001b},
        {0xaa, 0x03, 0x0044},
@@ -1900,62 +1905,62 @@ static const struct usb_action hdcs2020xx_InitialScale[] = {
        {0xaa, 0x05, 0x001b},
        {0xaa, 0x0e, 0x0001},
        {0xaa, 0x0f, 0x0000},
-       {0xa0, 0x14, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x02, 0x0191},
-       {0xa0, 0x1b, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x4d, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x44, 0x001d},
-       {0xa0, 0x6f, 0x001e},
-       {0xa0, 0xad, 0x001f},
-       {0xa0, 0xeb, 0x0020},
-       {0xa0, 0x0f, 0x0087},
-       {0xa0, 0x0e, 0x0088},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x1b, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x4d, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x44, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x6f, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xad, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xeb, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x0f, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x0e, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0195},
        {0xa1, 0x01, 0x0196},
        {0xa1, 0x01, 0x0197},
-       {0xa0, 0x1b, 0x0192},
-       {0xa0, 0x02, 0x0191},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x1d, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x99, 0x0118},
+       {0xa0, 0x1b, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x1d, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x99, ZC3XX_R118_BGAIN},
        {0xa1, 0x01, 0x0116},
        {0xa1, 0x01, 0x0118},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x1d, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x99, 0x0118},
-/*     {0xa0, 0x02, 0x0008}, */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x1d, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x99, ZC3XX_R118_BGAIN},
+/*     {0xa0, 0x02, ZC3XX_R008_CLOCKSETTING}, */
        {0xa0, 0x00, 0x0007},
 /*     {0xa0, 0x18, 0x00fe}, */
        {}
 };
 static const struct usb_action hdcs2020xb_Initial[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x11, 0x0002},
-       {0xa0, 0x03, 0x0008},   /* qtable 0x05 */
-       {0xa0, 0x08, 0x0010},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x88, 0x009e},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x11, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* qtable 0x05 */
+       {0xa0, 0x08, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
        {0xaa, 0x1c, 0x0000},
        {0xaa, 0x0a, 0x0001},
        {0xaa, 0x0b, 0x0006},
@@ -1973,121 +1978,121 @@ static const struct usb_action hdcs2020xb_Initial[] = {
 
        {0xaa, 0x15, 0x004e},
        {0xaa, 0x1c, 0x0004},
-       {0xa0, 0xb7, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x70, 0x018d},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x70, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x13, 0x0120},   /* gamma 4 */
-       {0xa0, 0x38, 0x0121},
-       {0xa0, 0x59, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x92, 0x0124},
-       {0xa0, 0xa7, 0x0125},
-       {0xa0, 0xb9, 0x0126},
-       {0xa0, 0xc8, 0x0127},
-       {0xa0, 0xd4, 0x0128},
-       {0xa0, 0xdf, 0x0129},
-       {0xa0, 0xe7, 0x012a},
-       {0xa0, 0xee, 0x012b},
-       {0xa0, 0xf4, 0x012c},
-       {0xa0, 0xf9, 0x012d},
-       {0xa0, 0xfc, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x22, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-
-       {0xa0, 0x66, 0x010a},   /* matrix */
-       {0xa0, 0xed, 0x010b},
-       {0xa0, 0xed, 0x010c},
-       {0xa0, 0xed, 0x010d},
-       {0xa0, 0x66, 0x010e},
-       {0xa0, 0xed, 0x010f},
-       {0xa0, 0xed, 0x0110},
-       {0xa0, 0xed, 0x0111},
-       {0xa0, 0x66, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x13, ZC3XX_R120_GAMMA00},       /* gamma 4 */
+       {0xa0, 0x38, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x59, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x92, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa7, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb9, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc8, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd4, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xdf, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xee, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x22, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+
+       {0xa0, 0x66, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xed, ZC3XX_R10B_RGB01},
+       {0xa0, 0xed, ZC3XX_R10C_RGB02},
+       {0xa0, 0xed, ZC3XX_R10D_RGB10},
+       {0xa0, 0x66, ZC3XX_R10E_RGB11},
+       {0xa0, 0xed, ZC3XX_R10F_RGB12},
+       {0xa0, 0xed, ZC3XX_R110_RGB20},
+       {0xa0, 0xed, ZC3XX_R111_RGB21},
+       {0xa0, 0x66, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x13, 0x0031},
        {0xaa, 0x14, 0x0001},
        {0xaa, 0x0e, 0x0004},
        {0xaa, 0x19, 0x00cd},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x02, 0x0191},
-       {0xa0, 0x62, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x3d, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-
-       {0xa0, 0x0c, 0x01a9},   /* 0x14 */
-       {0xa0, 0x28, 0x01aa},
-       {0xa0, 0x04, 0x001d},
-       {0xa0, 0x18, 0x001e},
-       {0xa0, 0x2c, 0x001f},
-       {0xa0, 0x41, 0x0020},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x62, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x3d, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* 0x14 */
+       {0xa0, 0x28, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x04, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x18, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0x2c, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0x41, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {}
 };
 static const struct usb_action hdcs2020xb_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x08, 0x0010},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x88, 0x009e},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x08, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
        {0xaa, 0x1c, 0x0000},
        {0xaa, 0x0a, 0x0001},
        {0xaa, 0x0b, 0x0006},
@@ -2103,182 +2108,182 @@ static const struct usb_action hdcs2020xb_InitialScale[] = {
        {0xaa, 0x12, 0x0018},
        {0xaa, 0x15, 0x004e},
        {0xaa, 0x1c, 0x0004},
-       {0xa0, 0xf7, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x70, 0x018d},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0xf7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x70, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x13, 0x0120},   /* gamma 4 */
-       {0xa0, 0x38, 0x0121},
-       {0xa0, 0x59, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x92, 0x0124},
-       {0xa0, 0xa7, 0x0125},
-       {0xa0, 0xb9, 0x0126},
-       {0xa0, 0xc8, 0x0127},
-       {0xa0, 0xd4, 0x0128},
-       {0xa0, 0xdf, 0x0129},
-       {0xa0, 0xe7, 0x012a},
-       {0xa0, 0xee, 0x012b},
-       {0xa0, 0xf4, 0x012c},
-       {0xa0, 0xf9, 0x012d},
-       {0xa0, 0xfc, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x22, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-       {0xa0, 0x66, 0x010a},   /* matrix */
-       {0xa0, 0xed, 0x010b},
-       {0xa0, 0xed, 0x010c},
-       {0xa0, 0xed, 0x010d},
-       {0xa0, 0x66, 0x010e},
-       {0xa0, 0xed, 0x010f},
-       {0xa0, 0xed, 0x0110},
-       {0xa0, 0xed, 0x0111},
-       {0xa0, 0x66, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x13, ZC3XX_R120_GAMMA00},       /* gamma 4 */
+       {0xa0, 0x38, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x59, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x92, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa7, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb9, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc8, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd4, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xdf, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xee, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x22, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x66, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xed, ZC3XX_R10B_RGB01},
+       {0xa0, 0xed, ZC3XX_R10C_RGB02},
+       {0xa0, 0xed, ZC3XX_R10D_RGB10},
+       {0xa0, 0x66, ZC3XX_R10E_RGB11},
+       {0xa0, 0xed, ZC3XX_R10F_RGB12},
+       {0xa0, 0xed, ZC3XX_R110_RGB20},
+       {0xa0, 0xed, ZC3XX_R111_RGB21},
+       {0xa0, 0x66, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
  /**** set exposure ***/
        {0xaa, 0x13, 0x0031},
        {0xaa, 0x14, 0x0001},
        {0xaa, 0x0e, 0x0004},
        {0xaa, 0x19, 0x00cd},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x02, 0x0191},
-       {0xa0, 0x62, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x3d, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x0c, 0x01a9},
-       {0xa0, 0x28, 0x01aa},
-       {0xa0, 0x04, 0x001d},
-       {0xa0, 0x18, 0x001e},
-       {0xa0, 0x2c, 0x001f},
-       {0xa0, 0x41, 0x0020},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x62, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x3d, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x28, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x04, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x18, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0x2c, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0x41, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {}
 };
 static const struct usb_action hdcs2020b_50HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x13, 0x0018}, /* 00,13,18,aa */
        {0xaa, 0x14, 0x0001}, /* 00,14,01,aa */
        {0xaa, 0x0e, 0x0005}, /* 00,0e,05,aa */
        {0xaa, 0x19, 0x001f}, /* 00,19,1f,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x02, 0x0191}, /* 01,91,02,cc */
-       {0xa0, 0x76, 0x0192}, /* 01,92,76,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x46, 0x0197}, /* 01,97,46,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x28, 0x01aa}, /* 01,aa,28,cc */
-       {0xa0, 0x05, 0x001d}, /* 00,1d,05,cc */
-       {0xa0, 0x1a, 0x001e}, /* 00,1e,1a,cc */
-       {0xa0, 0x2f, 0x001f}, /* 00,1f,2f,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,02,cc */
+       {0xa0, 0x76, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,76,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x46, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,46,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x28, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,28,cc */
+       {0xa0, 0x05, ZC3XX_R01D_HSYNC_0}, /* 00,1d,05,cc */
+       {0xa0, 0x1a, ZC3XX_R01E_HSYNC_1}, /* 00,1e,1a,cc */
+       {0xa0, 0x2f, ZC3XX_R01F_HSYNC_2}, /* 00,1f,2f,cc */
        {}
 };
 static const struct usb_action hdcs2020b_60HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x13, 0x0031}, /* 00,13,31,aa */
        {0xaa, 0x14, 0x0001}, /* 00,14,01,aa */
        {0xaa, 0x0e, 0x0004}, /* 00,0e,04,aa */
        {0xaa, 0x19, 0x00cd}, /* 00,19,cd,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x02, 0x0191}, /* 01,91,02,cc */
-       {0xa0, 0x62, 0x0192}, /* 01,92,62,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x3d, 0x0197}, /* 01,97,3d,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x28, 0x01aa}, /* 01,aa,28,cc */
-       {0xa0, 0x04, 0x001d}, /* 00,1d,04,cc */
-       {0xa0, 0x18, 0x001e}, /* 00,1e,18,cc */
-       {0xa0, 0x2c, 0x001f}, /* 00,1f,2c,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,02,cc */
+       {0xa0, 0x62, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,62,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x3d, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,3d,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x28, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,28,cc */
+       {0xa0, 0x04, ZC3XX_R01D_HSYNC_0}, /* 00,1d,04,cc */
+       {0xa0, 0x18, ZC3XX_R01E_HSYNC_1}, /* 00,1e,18,cc */
+       {0xa0, 0x2c, ZC3XX_R01F_HSYNC_2}, /* 00,1f,2c,cc */
        {}
 };
 static const struct usb_action hdcs2020b_NoFliker[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x13, 0x0010}, /* 00,13,10,aa */
        {0xaa, 0x14, 0x0001}, /* 00,14,01,aa */
        {0xaa, 0x0e, 0x0004}, /* 00,0e,04,aa */
        {0xaa, 0x19, 0x0000}, /* 00,19,00,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x02, 0x0191}, /* 01,91,02,cc */
-       {0xa0, 0x70, 0x0192}, /* 01,92,70,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0x04, 0x001d}, /* 00,1d,04,cc */
-       {0xa0, 0x17, 0x001e}, /* 00,1e,17,cc */
-       {0xa0, 0x2a, 0x001f}, /* 00,1f,2a,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,02,cc */
+       {0xa0, 0x70, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,70,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0x04, ZC3XX_R01D_HSYNC_0}, /* 00,1d,04,cc */
+       {0xa0, 0x17, ZC3XX_R01E_HSYNC_1}, /* 00,1e,17,cc */
+       {0xa0, 0x2a, ZC3XX_R01F_HSYNC_2}, /* 00,1f,2a,cc */
        {}
 };
 
 static const struct usb_action hv7131bxx_Initial[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x00, 0x0010},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x77, 0x0101},
-       {0xa0, 0x03, 0x0008},   /* 00 */
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x00, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00 */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
        {0xaa, 0x30, 0x002d},
        {0xaa, 0x01, 0x0005},
        {0xaa, 0x11, 0x0000},
@@ -2291,48 +2296,48 @@ static const struct usb_action hv7131bxx_Initial[] = {
        {0xaa, 0x32, 0x0038},
        {0xaa, 0x33, 0x0038},
        {0xaa, 0x5b, 0x0001},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x68, 0x018d},
-       {0xa0, 0x60, 0x01a8},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x68, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
        {0xa0, 0x00, 0x01ad},
        {0xa0, 0xc0, 0x019b},
        {0xa0, 0xa0, 0x019c},
-       {0xa0, 0x02, 0x0188},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x02, ZC3XX_R188_MINGAIN},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xaa, 0x02, 0x0080},   /* {0xaa, 0x02, 0x0090}; */
        {0xa1, 0x01, 0x0002},
-       {0xa0, 0x00, 0x0092},
-       {0xa0, 0x02, 0x0090},
+       {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND},
        {0xa1, 0x01, 0x0091},
        {0xa1, 0x01, 0x0095},
        {0xa1, 0x01, 0x0096},
 
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x10, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x10, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x25, 0x0007},
        {0xaa, 0x26, 0x00a1},
        {0xaa, 0x27, 0x0020},
@@ -2341,52 +2346,52 @@ static const struct usb_action hv7131bxx_Initial[] = {
        {0xaa, 0x22, 0x0016},
        {0xaa, 0x23, 0x0040},
 
-       {0xa0, 0x10, 0x0190},   /* 2F */
-       {0xa0, 0x04, 0x0191},   /* 4d */
-       {0xa0, 0x60, 0x0192},
-       {0xa0, 0x01, 0x0195},
-       {0xa0, 0x86, 0x0196},
-       {0xa0, 0xa0, 0x0197},
-       {0xa0, 0x07, 0x018c},
-       {0xa0, 0x0f, 0x018f},
-       {0xa0, 0x18, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0x00, 0x001d},
-       {0xa0, 0xa0, 0x001e},
-       {0xa0, 0x16, 0x001f},
-       {0xa0, 0x40, 0x0020},
-       {0xa0, 0x60, 0x011d},
+       {0xa0, 0x10, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 2F */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},      /* 4d */
+       {0xa0, 0x60, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x01, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x86, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0xa0, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x07, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x0f, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x18, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x00, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xa0, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0x16, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0x40, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
        {0xa1, 0x01, 0x001d},
        {0xa1, 0x01, 0x001e},
        {0xa1, 0x01, 0x001f},
        {0xa1, 0x01, 0x0020},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
-/*     {0xa0, 0x02, 0x0008}, */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
+/*     {0xa0, 0x02, ZC3XX_R008_CLOCKSETTING}, */
        {}
 };
 
 static const struct usb_action hv7131bxx_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x00, 0x0010},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x03, 0x0008},   /* 00 */
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x00, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00 */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
        {0xaa, 0x30, 0x002d},
        {0xaa, 0x01, 0x0005},
        {0xaa, 0x11, 0x0001},
@@ -2399,47 +2404,47 @@ static const struct usb_action hv7131bxx_InitialScale[] = {
        {0xaa, 0x32, 0x0038},
        {0xaa, 0x33, 0x0038},
        {0xaa, 0x5b, 0x0001},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x70, 0x018d},
-       {0xa0, 0x60, 0x01a8},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x70, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
        {0xa0, 0x00, 0x01ad},
        {0xa0, 0xc0, 0x019b},
        {0xa0, 0xa0, 0x019c},
-       {0xa0, 0x02, 0x0188},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x02, ZC3XX_R188_MINGAIN},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xaa, 0x02, 0x0090},   /* {0xaa, 0x02, 0x0080}, */
        {0xa1, 0x01, 0x0002},
-       {0xa0, 0x00, 0x0092},
-       {0xa0, 0x02, 0x0090},
+       {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND},
        {0xa1, 0x01, 0x0091},
        {0xa1, 0x01, 0x0095},
        {0xa1, 0x01, 0x0096},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x10, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x10, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x25, 0x0007},
        {0xaa, 0x26, 0x00a1},
        {0xaa, 0x27, 0x0020},
@@ -2447,57 +2452,57 @@ static const struct usb_action hv7131bxx_InitialScale[] = {
        {0xaa, 0x21, 0x0040},
        {0xaa, 0x22, 0x0013},
        {0xaa, 0x23, 0x004c},
-       {0xa0, 0x10, 0x0190},   /* 2f */
-       {0xa0, 0x04, 0x0191},   /* 4d */
-       {0xa0, 0x60, 0x0192},   /* 60 */
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0xc3, 0x0196},
-       {0xa0, 0x50, 0x0197},
-       {0xa0, 0x0c, 0x018c},
-       {0xa0, 0x18, 0x018f},
-       {0xa0, 0x18, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0x00, 0x001d},
-       {0xa0, 0x40, 0x001e},
-       {0xa0, 0x13, 0x001f},
-       {0xa0, 0x4c, 0x0020},
-       {0xa0, 0x60, 0x011d},
+       {0xa0, 0x10, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 2f */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},      /* 4d */
+       {0xa0, 0x60, ZC3XX_R192_EXPOSURELIMITLOW},      /* 60 */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0xc3, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x50, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x0c, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x18, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x18, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x00, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x40, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0x13, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0x4c, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
        {0xa1, 0x01, 0x001d},
        {0xa1, 0x01, 0x001e},
        {0xa1, 0x01, 0x001f},
        {0xa1, 0x01, 0x0020},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
-/*     {0xa0, 0x02, 0x0008}, */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
+/*     {0xa0, 0x02, ZC3XX_R008_CLOCKSETTING}, */
        {}
 };
 
 static const struct usb_action hv7131cxx_Initial[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x01, 0x0010},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x77, 0x0101},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x07, 0x0012},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x01, 0x009b},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x02, 0x009d},
-       {0xa0, 0x88, 0x009e},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0x05, 0x0012},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x07, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x01, ZC3XX_R09B_WINHEIGHTHIGH},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
        {0xaa, 0x01, 0x000c},
        {0xaa, 0x11, 0x0000},
        {0xaa, 0x13, 0x0000},
@@ -2506,96 +2511,96 @@ static const struct usb_action hv7131cxx_Initial[] = {
        {0xaa, 0x16, 0x0002},
        {0xaa, 0x17, 0x0088},
 
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x89, 0x018d},
-       {0xa0, 0x50, 0x01a8},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x89, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x50, ZC3XX_R1A8_DIGITALGAIN},
        {0xa0, 0x00, 0x01ad},
        {0xa0, 0xc0, 0x019b},
        {0xa0, 0xa0, 0x019c},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa1, 0x01, 0x0002},
-       {0xa0, 0x00, 0x0092},
-       {0xa0, 0x02, 0x0090},
+       {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND},
        {0xa1, 0x01, 0x0091},
        {0xa1, 0x01, 0x0095},
        {0xa1, 0x01, 0x0096},
 
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x60, 0x010a},   /* matrix */
-       {0xa0, 0xf0, 0x010b},
-       {0xa0, 0xf0, 0x010c},
-       {0xa0, 0xf0, 0x010d},
-       {0xa0, 0x60, 0x010e},
-       {0xa0, 0xf0, 0x010f},
-       {0xa0, 0xf0, 0x0110},
-       {0xa0, 0xf0, 0x0111},
-       {0xa0, 0x60, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x60, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf0, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf0, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf0, ZC3XX_R10D_RGB10},
+       {0xa0, 0x60, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf0, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf0, ZC3XX_R110_RGB20},
+       {0xa0, 0xf0, ZC3XX_R111_RGB21},
+       {0xa0, 0x60, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x10, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x10, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x25, 0x0007},
        {0xaa, 0x26, 0x0053},
        {0xaa, 0x27, 0x0000},
 
-       {0xa0, 0x10, 0x0190},   /* 2f */
-       {0xa0, 0x04, 0x0191},   /* 9b */
-       {0xa0, 0x60, 0x0192},   /* 80 */
-       {0xa0, 0x01, 0x0195},
-       {0xa0, 0xd4, 0x0196},
-       {0xa0, 0xc0, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x60, 0x01a8},
-       {0xa0, 0x10, 0x01a9},
-       {0xa0, 0x13, 0x01aa},
+       {0xa0, 0x10, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 2f */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},      /* 9b */
+       {0xa0, 0x60, ZC3XX_R192_EXPOSURELIMITLOW},      /* 80 */
+       {0xa0, 0x01, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0xd4, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0xc0, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x13, ZC3XX_R1AA_DIGITALGAINSTEP},
        {0xa1, 0x01, 0x001d},
        {0xa1, 0x01, 0x001e},
        {0xa1, 0x01, 0x001f},
        {0xa1, 0x01, 0x0020},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 
 static const struct usb_action hv7131cxx_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
-
-       {0xa0, 0x00, 0x0002},   /* diff */
-       {0xa0, 0x01, 0x0010},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x77, 0x0101},
-       {0xa0, 0x03, 0x0008},
-
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x07, 0x0012},
-
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},   /* 1e0 */
-
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x01, 0x009b},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x02, 0x009d},
-       {0xa0, 0x88, 0x009e},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0x05, 0x0012},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},   /* diff */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x07, ZC3XX_R012_VIDEOCONTROLFUNC},
+
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},        /* 1e0 */
+
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x01, ZC3XX_R09B_WINHEIGHTHIGH},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
        {0xaa, 0x01, 0x000c},
        {0xaa, 0x11, 0x0000},
        {0xaa, 0x13, 0x0000},
@@ -2604,101 +2609,102 @@ static const struct usb_action hv7131cxx_InitialScale[] = {
        {0xaa, 0x16, 0x0002},
        {0xaa, 0x17, 0x0088},
 
-       {0xa0, 0x00, 0x0019},   /* 00 */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00 */
 
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x89, 0x018d},
-       {0xa0, 0x50, 0x01a8},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x89, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x50, ZC3XX_R1A8_DIGITALGAIN},
        {0xa0, 0x00, 0x01ad},
        {0xa0, 0xc0, 0x019b},
        {0xa0, 0xa0, 0x019c},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa1, 0x01, 0x0002},
-       {0xa0, 0x00, 0x0092},   /* read the i2c chips ident */
-       {0xa0, 0x02, 0x0090},
+       {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT},
+                                               /* read the i2c chips ident */
+       {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND},
        {0xa1, 0x01, 0x0091},
        {0xa1, 0x01, 0x0095},
        {0xa1, 0x01, 0x0096},
 
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x60, 0x010a},   /* matrix */
-       {0xa0, 0xf0, 0x010b},
-       {0xa0, 0xf0, 0x010c},
-       {0xa0, 0xf0, 0x010d},
-       {0xa0, 0x60, 0x010e},
-       {0xa0, 0xf0, 0x010f},
-       {0xa0, 0xf0, 0x0110},
-       {0xa0, 0xf0, 0x0111},
-       {0xa0, 0x60, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x60, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf0, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf0, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf0, ZC3XX_R10D_RGB10},
+       {0xa0, 0x60, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf0, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf0, ZC3XX_R110_RGB20},
+       {0xa0, 0xf0, ZC3XX_R111_RGB21},
+       {0xa0, 0x60, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x10, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x10, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x25, 0x0007},
        {0xaa, 0x26, 0x0053},
        {0xaa, 0x27, 0x0000},
 
-       {0xa0, 0x10, 0x0190},   /* 2f */
-       {0xa0, 0x04, 0x0191},   /* 9b */
-       {0xa0, 0x60, 0x0192},   /* 80 */
+       {0xa0, 0x10, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 2f */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},      /* 9b */
+       {0xa0, 0x60, ZC3XX_R192_EXPOSURELIMITLOW},      /* 80 */
 
-       {0xa0, 0x01, 0x0195},
-       {0xa0, 0xd4, 0x0196},
-       {0xa0, 0xc0, 0x0197},
+       {0xa0, 0x01, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0xd4, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0xc0, ZC3XX_R197_ANTIFLICKERLOW},
 
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x60, 0x01a8},
-       {0xa0, 0x10, 0x01a9},
-       {0xa0, 0x13, 0x01aa},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x13, ZC3XX_R1AA_DIGITALGAINSTEP},
        {0xa1, 0x01, 0x001d},
        {0xa1, 0x01, 0x001e},
        {0xa1, 0x01, 0x001f},
        {0xa1, 0x01, 0x0020},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 
 static const struct usb_action icm105axx_Initial[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x0c, 0x0010},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0xa1, 0x008b},
-       {0xa0, 0x00, 0x0097},
-       {0xa0, 0x01, 0x0098},
-       {0xa0, 0x00, 0x0099},
-       {0xa0, 0x01, 0x009a},
-       {0xa0, 0x01, 0x011a},
-       {0xa0, 0x01, 0x011c},
-       {0xa0, 0x01, 0x009b},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x02, 0x009d},
-       {0xa0, 0x88, 0x009e},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x0c, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0xa1, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x00, ZC3XX_R097_WINYSTARTHIGH},
+       {0xa0, 0x01, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R099_WINXSTARTHIGH},
+       {0xa0, 0x01, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x01, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x01, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0x01, ZC3XX_R09B_WINHEIGHTHIGH},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
        {0xaa, 0x01, 0x0010},
        {0xaa, 0x03, 0x0000},
        {0xaa, 0x04, 0x0001},
@@ -2779,36 +2785,36 @@ static const struct usb_action icm105axx_Initial[] = {
        {0xaa, 0x24, 0x0080},
        {0xaa, 0x26, 0x0080},
        {0xaa, 0x00, 0x0084},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xaa, 0xa8, 0x00c0},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {0xa1, 0x01, 0x0008},
 
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x52, 0x010a},   /* matrix */
-       {0xa0, 0xf7, 0x010b},
-       {0xa0, 0xf7, 0x010c},
-       {0xa0, 0xf7, 0x010d},
-       {0xa0, 0x52, 0x010e},
-       {0xa0, 0xf7, 0x010f},
-       {0xa0, 0xf7, 0x0110},
-       {0xa0, 0xf7, 0x0111},
-       {0xa0, 0x52, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x52, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf7, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf7, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf7, ZC3XX_R10D_RGB10},
+       {0xa0, 0x52, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf7, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf7, ZC3XX_R110_RGB20},
+       {0xa0, 0xf7, ZC3XX_R111_RGB21},
+       {0xa0, 0x52, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x0d, 0x0003},
        {0xaa, 0x0c, 0x008c},
        {0xaa, 0x0e, 0x0095},
@@ -2820,62 +2826,62 @@ static const struct usb_action icm105axx_Initial[] = {
        {0xaa, 0x24, 0x0080},
        {0xaa, 0x26, 0x0080},
        {0xaa, 0x00, 0x0084},
-       {0xa0, 0x02, 0x00a3},
-       {0xa0, 0x94, 0x00a4},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x04, 0x0191},
-       {0xa0, 0x20, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x84, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x10, 0x01a9},
-       {0xa0, 0x12, 0x01aa},
-       {0xa0, 0xe3, 0x001d},
-       {0xa0, 0xec, 0x001e},
-       {0xa0, 0xf5, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0xc0, 0x01a8},
-       {0xa0, 0xc0, 0x011d},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x02, ZC3XX_R0A3_EXPOSURETIMEHIGH},
+       {0xa0, 0x94, ZC3XX_R0A4_EXPOSURETIMELOW},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x20, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x84, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x12, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0xe3, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xec, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xf5, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0xc0, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0xc0, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {}
 };
 
 static const struct usb_action icm105axx_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x0c, 0x0010},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0xa1, 0x008b},
-       {0xa0, 0x00, 0x0097},
-       {0xa0, 0x02, 0x0098},
-       {0xa0, 0x00, 0x0099},
-       {0xa0, 0x02, 0x009a},
-       {0xa0, 0x02, 0x011a},
-       {0xa0, 0x02, 0x011c},
-       {0xa0, 0x01, 0x009b},
-       {0xa0, 0xe6, 0x009c},
-       {0xa0, 0x02, 0x009d},
-       {0xa0, 0x86, 0x009e},
-       {0xa0, 0x77, 0x0101},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x0c, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0xa1, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x00, ZC3XX_R097_WINYSTARTHIGH},
+       {0xa0, 0x02, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R099_WINXSTARTHIGH},
+       {0xa0, 0x02, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x02, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x02, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0x01, ZC3XX_R09B_WINHEIGHTHIGH},
+       {0xa0, 0xe6, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH},
+       {0xa0, 0x86, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
        {0xaa, 0x01, 0x0010},
        {0xaa, 0x03, 0x0000},
        {0xaa, 0x04, 0x0001},
@@ -2903,9 +2909,9 @@ static const struct usb_action icm105axx_InitialScale[] = {
        {0xaa, 0x06, 0x000d},
        {0xaa, 0x08, 0x0000},
        {0xaa, 0x03, 0x0005},
-       {0xa0, 0x04, 0x0092},
-       {0xa0, 0x19, 0x0093},
-       {0xa0, 0x01, 0x0090},
+       {0xa0, 0x04, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x19, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
        {0xa1, 0x01, 0x0091},
        {0xaa, 0x05, 0x0020},
        {0xaa, 0x06, 0x0005},
@@ -2959,38 +2965,38 @@ static const struct usb_action icm105axx_InitialScale[] = {
        {0xaa, 0x24, 0x0080},
        {0xaa, 0x26, 0x0080},
        {0xaa, 0x00, 0x0084},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xaa, 0xa8, 0x0080},
-       {0xa0, 0x78, 0x018d},
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {0xa1, 0x01, 0x0008},
 
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x52, 0x010a},   /* matrix */
-       {0xa0, 0xf7, 0x010b},
-       {0xa0, 0xf7, 0x010c},
-       {0xa0, 0xf7, 0x010d},
-       {0xa0, 0x52, 0x010e},
-       {0xa0, 0xf7, 0x010f},
-       {0xa0, 0xf7, 0x0110},
-       {0xa0, 0xf7, 0x0111},
-       {0xa0, 0x52, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x52, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf7, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf7, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf7, ZC3XX_R10D_RGB10},
+       {0xa0, 0x52, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf7, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf7, ZC3XX_R110_RGB20},
+       {0xa0, 0xf7, ZC3XX_R111_RGB21},
+       {0xa0, 0x52, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x0d, 0x0003},
        {0xaa, 0x0c, 0x0020},
        {0xaa, 0x0e, 0x000e},
@@ -3002,33 +3008,33 @@ static const struct usb_action icm105axx_InitialScale[] = {
        {0xaa, 0x24, 0x0080},
        {0xaa, 0x26, 0x0080},
        {0xaa, 0x00, 0x0084},
-       {0xa0, 0x02, 0x00a3},
-       {0xa0, 0x0d, 0x00a4},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x04, 0x0191},
-       {0xa0, 0x1a, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x4b, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x10, 0x01a9},
-       {0xa0, 0x12, 0x01aa},
-       {0xa0, 0xc8, 0x001d},
-       {0xa0, 0xd8, 0x001e},
-       {0xa0, 0xea, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x00, 0x01a7},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x02, ZC3XX_R0A3_EXPOSURETIMEHIGH},
+       {0xa0, 0x0d, ZC3XX_R0A4_EXPOSURETIMELOW},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x1a, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x4b, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x12, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0xc8, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xd8, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xea, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
-       {0xa0, 0x40, 0x0116},
-       {0xa0, 0x40, 0x0117},
-       {0xa0, 0x40, 0x0118},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},
        {}
 };
 static const struct usb_action icm105a_50HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0d, 0x0003}, /* 00,0d,03,aa */
        {0xaa, 0x0c, 0x0020}, /* 00,0c,20,aa */
        {0xaa, 0x0e, 0x000e}, /* 00,0e,0e,aa */
@@ -3040,26 +3046,26 @@ static const struct usb_action icm105a_50HZ[] = {
        {0xaa, 0x24, 0x0080}, /* 00,24,80,aa */
        {0xaa, 0x26, 0x0080}, /* 00,26,80,aa */
        {0xaa, 0x00, 0x0084}, /* 00,00,84,aa */
-       {0xa0, 0x02, 0x00a3}, /* 00,a3,02,cc */
-       {0xa0, 0x0d, 0x00a4}, /* 00,a4,0d,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191}, /* 01,91,04,cc */
-       {0xa0, 0x1a, 0x0192}, /* 01,92,1a,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x4b, 0x0197}, /* 01,97,4b,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x12, 0x01aa}, /* 01,aa,12,cc */
-       {0xa0, 0xc8, 0x001d}, /* 00,1d,c8,cc */
-       {0xa0, 0xd8, 0x001e}, /* 00,1e,d8,cc */
-       {0xa0, 0xea, 0x001f}, /* 00,1f,ea,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
+       {0xa0, 0x02, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,02,cc */
+       {0xa0, 0x0d, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,0d,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */
+       {0xa0, 0x1a, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,1a,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x4b, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,4b,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x12, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,12,cc */
+       {0xa0, 0xc8, ZC3XX_R01D_HSYNC_0}, /* 00,1d,c8,cc */
+       {0xa0, 0xd8, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d8,cc */
+       {0xa0, 0xea, ZC3XX_R01F_HSYNC_2}, /* 00,1f,ea,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
        {}
 };
 static const struct usb_action icm105a_50HZScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0d, 0x0003}, /* 00,0d,03,aa */
        {0xaa, 0x0c, 0x008c}, /* 00,0c,8c,aa */
        {0xaa, 0x0e, 0x0095}, /* 00,0e,95,aa */
@@ -3071,28 +3077,28 @@ static const struct usb_action icm105a_50HZScale[] = {
        {0xaa, 0x24, 0x0080}, /* 00,24,80,aa */
        {0xaa, 0x26, 0x0080}, /* 00,26,80,aa */
        {0xaa, 0x00, 0x0084}, /* 00,00,84,aa */
-       {0xa0, 0x02, 0x00a3}, /* 00,a3,02,cc */
-       {0xa0, 0x94, 0x00a4}, /* 00,a4,94,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191}, /* 01,91,04,cc */
-       {0xa0, 0x20, 0x0192}, /* 01,92,20,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x84, 0x0197}, /* 01,97,84,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x12, 0x01aa}, /* 01,aa,12,cc */
-       {0xa0, 0xe3, 0x001d}, /* 00,1d,e3,cc */
-       {0xa0, 0xec, 0x001e}, /* 00,1e,ec,cc */
-       {0xa0, 0xf5, 0x001f}, /* 00,1f,f5,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x00, 0x01a7}, /* 01,a7,00,cc */
-       {0xa0, 0xc0, 0x01a8}, /* 01,a8,c0,cc */
+       {0xa0, 0x02, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,02,cc */
+       {0xa0, 0x94, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,94,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */
+       {0xa0, 0x20, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,20,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x84, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,84,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x12, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,12,cc */
+       {0xa0, 0xe3, ZC3XX_R01D_HSYNC_0}, /* 00,1d,e3,cc */
+       {0xa0, 0xec, ZC3XX_R01E_HSYNC_1}, /* 00,1e,ec,cc */
+       {0xa0, 0xf5, ZC3XX_R01F_HSYNC_2}, /* 00,1f,f5,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN}, /* 01,a7,00,cc */
+       {0xa0, 0xc0, ZC3XX_R1A8_DIGITALGAIN}, /* 01,a8,c0,cc */
        {}
 };
 static const struct usb_action icm105a_60HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0d, 0x0003}, /* 00,0d,03,aa */
        {0xaa, 0x0c, 0x0004}, /* 00,0c,04,aa */
        {0xaa, 0x0e, 0x000d}, /* 00,0e,0d,aa */
@@ -3104,26 +3110,26 @@ static const struct usb_action icm105a_60HZ[] = {
        {0xaa, 0x24, 0x0080}, /* 00,24,80,aa */
        {0xaa, 0x26, 0x0080}, /* 00,26,80,aa */
        {0xaa, 0x00, 0x0084}, /* 00,00,84,aa */
-       {0xa0, 0x02, 0x00a3}, /* 00,a3,02,cc */
-       {0xa0, 0x08, 0x00a4}, /* 00,a4,08,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191}, /* 01,91,04,cc */
-       {0xa0, 0x10, 0x0192}, /* 01,92,10,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x41, 0x0197}, /* 01,97,41,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x12, 0x01aa}, /* 01,aa,12,cc */
-       {0xa0, 0xc1, 0x001d}, /* 00,1d,c1,cc */
-       {0xa0, 0xd4, 0x001e}, /* 00,1e,d4,cc */
-       {0xa0, 0xe8, 0x001f}, /* 00,1f,e8,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
+       {0xa0, 0x02, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,02,cc */
+       {0xa0, 0x08, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,08,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */
+       {0xa0, 0x10, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,10,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x41, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,41,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x12, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,12,cc */
+       {0xa0, 0xc1, ZC3XX_R01D_HSYNC_0}, /* 00,1d,c1,cc */
+       {0xa0, 0xd4, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d4,cc */
+       {0xa0, 0xe8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,e8,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
        {}
 };
 static const struct usb_action icm105a_60HZScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0d, 0x0003}, /* 00,0d,03,aa */
        {0xaa, 0x0c, 0x0008}, /* 00,0c,08,aa */
        {0xaa, 0x0e, 0x0086}, /* 00,0e,86,aa */
@@ -3135,28 +3141,28 @@ static const struct usb_action icm105a_60HZScale[] = {
        {0xaa, 0x24, 0x0080}, /* 00,24,80,aa */
        {0xaa, 0x26, 0x0080}, /* 00,26,80,aa */
        {0xaa, 0x00, 0x0084}, /* 00,00,84,aa */
-       {0xa0, 0x02, 0x00a3}, /* 00,a3,02,cc */
-       {0xa0, 0x85, 0x00a4}, /* 00,a4,85,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191}, /* 01,91,04,cc */
-       {0xa0, 0x08, 0x0192}, /* 01,92,08,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x81, 0x0197}, /* 01,97,81,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x12, 0x01aa}, /* 01,aa,12,cc */
-       {0xa0, 0xc2, 0x001d}, /* 00,1d,c2,cc */
-       {0xa0, 0xd6, 0x001e}, /* 00,1e,d6,cc */
-       {0xa0, 0xea, 0x001f}, /* 00,1f,ea,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x00, 0x01a7}, /* 01,a7,00,cc */
-       {0xa0, 0xc0, 0x01a8}, /* 01,a8,c0,cc */
+       {0xa0, 0x02, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,02,cc */
+       {0xa0, 0x85, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,85,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */
+       {0xa0, 0x08, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,08,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x81, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,81,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x12, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,12,cc */
+       {0xa0, 0xc2, ZC3XX_R01D_HSYNC_0}, /* 00,1d,c2,cc */
+       {0xa0, 0xd6, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d6,cc */
+       {0xa0, 0xea, ZC3XX_R01F_HSYNC_2}, /* 00,1f,ea,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN}, /* 01,a7,00,cc */
+       {0xa0, 0xc0, ZC3XX_R1A8_DIGITALGAIN}, /* 01,a8,c0,cc */
        {}
 };
 static const struct usb_action icm105a_NoFliker[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0d, 0x0003}, /* 00,0d,03,aa */
        {0xaa, 0x0c, 0x0004}, /* 00,0c,04,aa */
        {0xaa, 0x0e, 0x000d}, /* 00,0e,0d,aa */
@@ -3168,26 +3174,26 @@ static const struct usb_action icm105a_NoFliker[] = {
        {0xaa, 0x24, 0x0080}, /* 00,24,80,aa */
        {0xaa, 0x26, 0x0080}, /* 00,26,80,aa */
        {0xaa, 0x00, 0x0084}, /* 00,00,84,aa */
-       {0xa0, 0x02, 0x00a3}, /* 00,a3,02,cc */
-       {0xa0, 0x00, 0x00a4}, /* 00,a4,00,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191}, /* 01,91,04,cc */
-       {0xa0, 0x20, 0x0192}, /* 01,92,20,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0xc1, 0x001d}, /* 00,1d,c1,cc */
-       {0xa0, 0xd4, 0x001e}, /* 00,1e,d4,cc */
-       {0xa0, 0xe8, 0x001f}, /* 00,1f,e8,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
+       {0xa0, 0x02, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,02,cc */
+       {0xa0, 0x00, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,00,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */
+       {0xa0, 0x20, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,20,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0xc1, ZC3XX_R01D_HSYNC_0}, /* 00,1d,c1,cc */
+       {0xa0, 0xd4, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d4,cc */
+       {0xa0, 0xe8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,e8,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
        {}
 };
 static const struct usb_action icm105a_NoFlikerScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0x0d, 0x0003}, /* 00,0d,03,aa */
        {0xaa, 0x0c, 0x0004}, /* 00,0c,04,aa */
        {0xaa, 0x0e, 0x0081}, /* 00,0e,81,aa */
@@ -3199,52 +3205,52 @@ static const struct usb_action icm105a_NoFlikerScale[] = {
        {0xaa, 0x24, 0x0080}, /* 00,24,80,aa */
        {0xaa, 0x26, 0x0080}, /* 00,26,80,aa */
        {0xaa, 0x00, 0x0084}, /* 00,00,84,aa */
-       {0xa0, 0x02, 0x00a3}, /* 00,a3,02,cc */
-       {0xa0, 0x80, 0x00a4}, /* 00,a4,80,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191}, /* 01,91,04,cc */
-       {0xa0, 0x20, 0x0192}, /* 01,92,20,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0xc1, 0x001d}, /* 00,1d,c1,cc */
-       {0xa0, 0xd4, 0x001e}, /* 00,1e,d4,cc */
-       {0xa0, 0xe8, 0x001f}, /* 00,1f,e8,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x00, 0x01a7}, /* 01,a7,00,cc */
-       {0xa0, 0xc0, 0x01a8}, /* 01,a8,c0,cc */
+       {0xa0, 0x02, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,02,cc */
+       {0xa0, 0x80, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,80,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */
+       {0xa0, 0x20, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,20,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0xc1, ZC3XX_R01D_HSYNC_0}, /* 00,1d,c1,cc */
+       {0xa0, 0xd4, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d4,cc */
+       {0xa0, 0xe8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,e8,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x00, ZC3XX_R1A7_CALCGLOBALMEAN}, /* 01,a7,00,cc */
+       {0xa0, 0xc0, ZC3XX_R1A8_DIGITALGAIN}, /* 01,a8,c0,cc */
        {}
 };
 
 static const struct usb_action MC501CB_InitialScale[] = {
-       {0xa0, 0x01, 0x0000}, /* 00,00,01,cc */
-       {0xa0, 0x00, 0x0002}, /* 00,02,00,cc */
-       {0xa0, 0x01, 0x0010}, /* 00,10,01,cc */
-       {0xa0, 0x01, 0x0001}, /* 00,01,01,cc */
-       {0xa0, 0x03, 0x0008}, /* 00,08,03,cc */
-       {0xa0, 0x01, 0x0012}, /* 00,12,01,cc */
-       {0xa0, 0x05, 0x0012}, /* 00,12,05,cc */
-       {0xa0, 0x02, 0x0003}, /* 00,03,02,cc */
-       {0xa0, 0x80, 0x0004}, /* 00,04,80,cc */
-       {0xa0, 0x01, 0x0005}, /* 00,05,01,cc */
-       {0xa0, 0xd8, 0x0006}, /* 00,06,d8,cc */
-       {0xa0, 0x00, 0x0098}, /* 00,98,00,cc */
-       {0xa0, 0x00, 0x009a}, /* 00,9a,00,cc */
-       {0xa0, 0x00, 0x011a}, /* 01,1a,00,cc */
-       {0xa0, 0x00, 0x011c}, /* 01,1c,00,cc */
-       {0xa0, 0x01, 0x009b}, /* 00,9b,01,cc */
-       {0xa0, 0xde, 0x009c}, /* 00,9c,de,cc */
-       {0xa0, 0x02, 0x009d}, /* 00,9d,02,cc */
-       {0xa0, 0x86, 0x009e}, /* 00,9e,86,cc */
-       {0xa0, 0x33, 0x0086}, /* 00,86,33,cc */
-       {0xa0, 0x34, 0x0087}, /* 00,87,34,cc */
-       {0xa0, 0x35, 0x0088}, /* 00,88,35,cc */
-       {0xa0, 0xb0, 0x008b}, /* 00,8b,b0,cc */
-       {0xa0, 0x05, 0x0012}, /* 00,12,05,cc */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT}, /* 00,02,00,cc */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT}, /* 00,10,01,cc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, /* 00,01,01,cc */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* 00,08,03,cc */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,01,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,05,cc */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, /* 00,03,02,cc */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, /* 00,04,80,cc */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, /* 00,05,01,cc */
+       {0xa0, 0xd8, ZC3XX_R006_FRAMEHEIGHTLOW}, /* 00,06,d8,cc */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW}, /* 00,98,00,cc */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, /* 00,9a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, /* 01,1a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, /* 01,1c,00,cc */
+       {0xa0, 0x01, ZC3XX_R09B_WINHEIGHTHIGH}, /* 00,9b,01,cc */
+       {0xa0, 0xde, ZC3XX_R09C_WINHEIGHTLOW}, /* 00,9c,de,cc */
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH}, /* 00,9d,02,cc */
+       {0xa0, 0x86, ZC3XX_R09E_WINWIDTHLOW}, /* 00,9e,86,cc */
+       {0xa0, 0x33, ZC3XX_R086_EXPTIMEHIGH}, /* 00,86,33,cc */
+       {0xa0, 0x34, ZC3XX_R087_EXPTIMEMID}, /* 00,87,34,cc */
+       {0xa0, 0x35, ZC3XX_R088_EXPTIMELOW}, /* 00,88,35,cc */
+       {0xa0, 0xb0, ZC3XX_R08B_I2CDEVICEADDR}, /* 00,8b,b0,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,05,cc */
        {0xaa, 0x01, 0x0001}, /* 00,01,01,aa */
        {0xaa, 0x01, 0x0003}, /* 00,01,03,aa */
        {0xaa, 0x01, 0x0001}, /* 00,01,01,aa */
@@ -3280,7 +3286,7 @@ static const struct usb_action MC501CB_InitialScale[] = {
        {0xaa, 0x11, 0x0001}, /* 00,11,01,aa */
        {0xaa, 0x30, 0x0000}, /* 00,30,00,aa */
        {0xaa, 0x60, 0x0000}, /* 00,60,00,aa */
-       {0xaa, 0xa0, 0x001a}, /* 00,a0,1a,aa */
+       {0xaa, 0xa0, ZC3XX_R01A_LASTFRAMESTATE}, /* 00,a0,1a,aa */
        {0xaa, 0xa1, 0x0000}, /* 00,a1,00,aa */
        {0xaa, 0xa2, 0x003f}, /* 00,a2,3f,aa */
        {0xaa, 0xa3, 0x0028}, /* 00,a3,28,aa */
@@ -3312,15 +3318,15 @@ static const struct usb_action MC501CB_InitialScale[] = {
        {0xaa, 0x3e, 0x006a}, /* 00,3e,6A,aa */
        {0xaa, 0x01, 0x0000}, /* 00,01,00,aa */
        {0xaa, 0x52, 0x00ff}, /* 00,52,FF,aa */
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
-       {0xa0, 0x0d, 0x0100}, /* 01,00,0d,cc */
-       {0xa0, 0x37, 0x0101}, /* 01,01,37,cc */
-       {0xa0, 0x06, 0x0189}, /* 01,89,06,cc */
-       {0xa0, 0x03, 0x01c5}, /* 01,c5,03,cc */
-       {0xa0, 0x13, 0x01cb}, /* 01,cb,13,cc */
-       {0xa0, 0x08, 0x0250}, /* 02,50,08,cc */
-       {0xa0, 0x08, 0x0301}, /* 03,01,08,cc */
-       {0xa0, 0x02, 0x0180}, /* 01,80,02,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0d,cc */
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION}, /* 01,01,37,cc */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, /* 01,89,06,cc */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* 01,c5,03,cc */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, /* 01,cb,13,cc */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* 02,50,08,cc */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, /* 03,01,08,cc */
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE}, /* 01,80,02,cc */
        {0xaa, 0x03, 0x0002}, /* 00,03,02,aa */
        {0xaa, 0x51, 0x0027}, /* 00,51,27,aa */
        {0xaa, 0x52, 0x0020}, /* 00,52,20,aa */
@@ -3341,30 +3347,30 @@ static const struct usb_action MC501CB_InitialScale[] = {
 };
 
 static const struct usb_action MC501CB_Initial[] = {    /* 320x240 */
-       {0xa0, 0x01, 0x0000}, /* 00,00,01,cc */
-       {0xa0, 0x10, 0x0002}, /* 00,02,10,cc */
-       {0xa0, 0x01, 0x0010}, /* 00,10,01,cc */
-       {0xa0, 0x01, 0x0001}, /* 00,01,01,cc */
-       {0xa0, 0x03, 0x0008}, /* 00,08,03,cc */
-       {0xa0, 0x01, 0x0012}, /* 00,12,01,cc */
-       {0xa0, 0x05, 0x0012}, /* 00,12,05,cc */
-       {0xa0, 0x02, 0x0003}, /* 00,03,02,cc */
-       {0xa0, 0x80, 0x0004}, /* 00,04,80,cc */
-       {0xa0, 0x01, 0x0005}, /* 00,05,01,cc */
-       {0xa0, 0xd0, 0x0006}, /* 00,06,d0,cc */
-       {0xa0, 0x00, 0x0098}, /* 00,98,00,cc */
-       {0xa0, 0x00, 0x009a}, /* 00,9a,00,cc */
-       {0xa0, 0x00, 0x011a}, /* 01,1a,00,cc */
-       {0xa0, 0x00, 0x011c}, /* 01,1c,00,cc */
-       {0xa0, 0x01, 0x009b}, /* 00,9b,01,cc */
-       {0xa0, 0xd8, 0x009c}, /* 00,9c,d8,cc */
-       {0xa0, 0x02, 0x009d}, /* 00,9d,02,cc */
-       {0xa0, 0x88, 0x009e}, /* 00,9e,88,cc */
-       {0xa0, 0x33, 0x0086}, /* 00,86,33,cc */
-       {0xa0, 0x34, 0x0087}, /* 00,87,34,cc */
-       {0xa0, 0x35, 0x0088}, /* 00,88,35,cc */
-       {0xa0, 0xb0, 0x008b}, /* 00,8b,b0,cc */
-       {0xa0, 0x05, 0x0012}, /* 00,12,05,cc */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT}, /* 00,02,10,cc */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT}, /* 00,10,01,cc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, /* 00,01,01,cc */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* 00,08,03,cc */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,01,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,05,cc */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, /* 00,03,02,cc */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, /* 00,04,80,cc */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, /* 00,05,01,cc */
+       {0xa0, 0xd0, ZC3XX_R006_FRAMEHEIGHTLOW}, /* 00,06,d0,cc */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW}, /* 00,98,00,cc */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, /* 00,9a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, /* 01,1a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, /* 01,1c,00,cc */
+       {0xa0, 0x01, ZC3XX_R09B_WINHEIGHTHIGH}, /* 00,9b,01,cc */
+       {0xa0, 0xd8, ZC3XX_R09C_WINHEIGHTLOW}, /* 00,9c,d8,cc */
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH}, /* 00,9d,02,cc */
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW}, /* 00,9e,88,cc */
+       {0xa0, 0x33, ZC3XX_R086_EXPTIMEHIGH}, /* 00,86,33,cc */
+       {0xa0, 0x34, ZC3XX_R087_EXPTIMEMID}, /* 00,87,34,cc */
+       {0xa0, 0x35, ZC3XX_R088_EXPTIMELOW}, /* 00,88,35,cc */
+       {0xa0, 0xb0, ZC3XX_R08B_I2CDEVICEADDR}, /* 00,8b,b0,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,05,cc */
        {0xaa, 0x01, 0x0001}, /* 00,01,01,aa */
        {0xaa, 0x01, 0x0003}, /* 00,01,03,aa */
        {0xaa, 0x01, 0x0001}, /* 00,01,01,aa */
@@ -3400,7 +3406,7 @@ static const struct usb_action MC501CB_Initial[] = {       /* 320x240 */
        {0xaa, 0x11, 0x0001}, /* 00,11,01,aa */
        {0xaa, 0x30, 0x0000}, /* 00,30,00,aa */
        {0xaa, 0x60, 0x0000}, /* 00,60,00,aa */
-       {0xaa, 0xa0, 0x001a}, /* 00,a0,1a,aa */
+       {0xaa, 0xa0, ZC3XX_R01A_LASTFRAMESTATE}, /* 00,a0,1a,aa */
        {0xaa, 0xa1, 0x0000}, /* 00,a1,00,aa */
        {0xaa, 0xa2, 0x003f}, /* 00,a2,3f,aa */
        {0xaa, 0xa3, 0x0028}, /* 00,a3,28,aa */
@@ -3432,15 +3438,15 @@ static const struct usb_action MC501CB_Initial[] = {     /* 320x240 */
        {0xaa, 0x3e, 0x00d4}, /* 00,3E,D4,aa */
        {0xaa, 0x01, 0x0000}, /* 00,01,00,aa */
        {0xaa, 0x52, 0x00ff}, /* 00,52,FF,aa */
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
-       {0xa0, 0x0d, 0x0100}, /* 01,00,0d,cc */
-       {0xa0, 0x37, 0x0101}, /* 01,01,37,cc */
-       {0xa0, 0x06, 0x0189}, /* 01,89,06,cc */
-       {0xa0, 0x03, 0x01c5}, /* 01,c5,03,cc */
-       {0xa0, 0x13, 0x01cb}, /* 01,cb,13,cc */
-       {0xa0, 0x08, 0x0250}, /* 02,50,08,cc */
-       {0xa0, 0x08, 0x0301}, /* 03,01,08,cc */
-       {0xa0, 0x02, 0x0180}, /* 01,80,02,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0d,cc */
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION}, /* 01,01,37,cc */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, /* 01,89,06,cc */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* 01,c5,03,cc */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, /* 01,cb,13,cc */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* 02,50,08,cc */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, /* 03,01,08,cc */
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE}, /* 01,80,02,cc */
        {0xaa, 0x03, 0x0002}, /* 00,03,02,aa */
        {0xaa, 0x51, 0x004e}, /* 00,51,4E,aa */
        {0xaa, 0x52, 0x0041}, /* 00,52,41,aa */
@@ -3558,30 +3564,30 @@ static const struct usb_action MC501CB_NoFlikerScale[] = {
 
 /* from zs211.inf - HKR,%OV7620%,Initial - 640x480 */
 static const struct usb_action OV7620_mode0[] = {
-       {0xa0, 0x01, 0x0000}, /* 00,00,01,cc */
-       {0xa0, 0x40, 0x0002}, /* 00,02,40,cc */
-       {0xa0, 0x00, 0x0008}, /* 00,08,00,cc */
-       {0xa0, 0x01, 0x0001}, /* 00,01,01,cc */
-       {0xa0, 0x06, 0x0010}, /* 00,10,06,cc */
-       {0xa0, 0x02, 0x0083}, /* 00,83,02,cc */
-       {0xa0, 0x01, 0x0085}, /* 00,85,01,cc */
-       {0xa0, 0x80, 0x0086}, /* 00,86,80,cc */
-       {0xa0, 0x81, 0x0087}, /* 00,87,81,cc */
-       {0xa0, 0x10, 0x0088}, /* 00,88,10,cc */
-       {0xa0, 0xa1, 0x008b}, /* 00,8b,a1,cc */
-       {0xa0, 0x08, 0x008d}, /* 00,8d,08,cc */
-       {0xa0, 0x02, 0x0003}, /* 00,03,02,cc */
-       {0xa0, 0x80, 0x0004}, /* 00,04,80,cc */
-       {0xa0, 0x01, 0x0005}, /* 00,05,01,cc */
-       {0xa0, 0xd8, 0x0006}, /* 00,06,d8,cc */
-       {0xa0, 0x03, 0x0012}, /* 00,12,03,cc */
-       {0xa0, 0x01, 0x0012}, /* 00,12,01,cc */
-       {0xa0, 0x00, 0x0098}, /* 00,98,00,cc */
-       {0xa0, 0x00, 0x009a}, /* 00,9a,00,cc */
-       {0xa0, 0x00, 0x011a}, /* 01,1a,00,cc */
-       {0xa0, 0x00, 0x011c}, /* 01,1c,00,cc */
-       {0xa0, 0xde, 0x009c}, /* 00,9c,de,cc */
-       {0xa0, 0x86, 0x009e}, /* 00,9e,86,cc */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
+       {0xa0, 0x40, ZC3XX_R002_CLOCKSELECT}, /* 00,02,40,cc */
+       {0xa0, 0x00, ZC3XX_R008_CLOCKSETTING}, /* 00,08,00,cc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, /* 00,01,01,cc */
+       {0xa0, 0x06, ZC3XX_R010_CMOSSENSORSELECT}, /* 00,10,06,cc */
+       {0xa0, 0x02, ZC3XX_R083_RGAINADDR}, /* 00,83,02,cc */
+       {0xa0, 0x01, ZC3XX_R085_BGAINADDR}, /* 00,85,01,cc */
+       {0xa0, 0x80, ZC3XX_R086_EXPTIMEHIGH}, /* 00,86,80,cc */
+       {0xa0, 0x81, ZC3XX_R087_EXPTIMEMID}, /* 00,87,81,cc */
+       {0xa0, 0x10, ZC3XX_R088_EXPTIMELOW}, /* 00,88,10,cc */
+       {0xa0, 0xa1, ZC3XX_R08B_I2CDEVICEADDR}, /* 00,8b,a1,cc */
+       {0xa0, 0x08, ZC3XX_R08D_COMPABILITYMODE}, /* 00,8d,08,cc */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, /* 00,03,02,cc */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, /* 00,04,80,cc */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, /* 00,05,01,cc */
+       {0xa0, 0xd8, ZC3XX_R006_FRAMEHEIGHTLOW}, /* 00,06,d8,cc */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,03,cc */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,01,cc */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW}, /* 00,98,00,cc */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, /* 00,9a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, /* 01,1a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, /* 01,1c,00,cc */
+       {0xa0, 0xde, ZC3XX_R09C_WINHEIGHTLOW}, /* 00,9c,de,cc */
+       {0xa0, 0x86, ZC3XX_R09E_WINWIDTHLOW}, /* 00,9e,86,cc */
        {0xaa, 0x12, 0x0088}, /* 00,12,88,aa */
        {0xaa, 0x12, 0x0048}, /* 00,12,48,aa */
        {0xaa, 0x75, 0x008a}, /* 00,75,8a,aa */
@@ -3610,49 +3616,51 @@ static const struct usb_action OV7620_mode0[] = {
        {0xaa, 0x06, 0x0080}, /* 00,06,80,aa */
        {0xaa, 0x01, 0x0090}, /* 00,01,90,aa */
        {0xaa, 0x02, 0x0030}, /* 00,02,30,aa */
-       {0xa0, 0x77, 0x0101}, /* 01,01,77,cc */
-       {0xa0, 0x05, 0x0012}, /* 00,12,05,cc */
-       {0xa0, 0x0d, 0x0100}, /* 01,00,0d,cc */
-       {0xa0, 0x06, 0x0189}, /* 01,89,06,cc */
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION}, /* 01,01,77,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,05,cc */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0d,cc */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, /* 01,89,06,cc */
        {0xa0, 0x00, 0x01ad}, /* 01,ad,00,cc */
-       {0xa0, 0x03, 0x01c5}, /* 01,c5,03,cc */
-       {0xa0, 0x13, 0x01cb}, /* 01,cb,13,cc */
-       {0xa0, 0x08, 0x0250}, /* 02,50,08,cc */
-       {0xa0, 0x08, 0x0301}, /* 03,01,08,cc */
-       {0xa0, 0x68, 0x0116}, /* 01,16,68,cc */
-       {0xa0, 0x52, 0x0118}, /* 01,18,52,cc */
-       {0xa0, 0x40, 0x011d}, /* 01,1d,40,cc */
-       {0xa0, 0x02, 0x0180}, /* 01,80,02,cc */
-       {0xa0, 0x50, 0x01a8}, /* 01,a8,50,cc */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* 01,c5,03,cc */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, /* 01,cb,13,cc */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* 02,50,08,cc */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, /* 03,01,08,cc */
+       {0xa0, 0x68, ZC3XX_R116_RGAIN}, /* 01,16,68,cc */
+       {0xa0, 0x52, ZC3XX_R118_BGAIN}, /* 01,18,52,cc */
+       {0xa0, 0x40, ZC3XX_R11D_GLOBALGAIN}, /* 01,1d,40,cc */
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE}, /* 01,80,02,cc */
+       {0xa0, 0x50, ZC3XX_R1A8_DIGITALGAIN}, /* 01,a8,50,cc */
        {}
 };
 
 /* from zs211.inf - HKR,%OV7620%,InitialScale - 320x240 */
 static const struct usb_action OV7620_mode1[] = {
-       {0xa0, 0x01, 0x0000}, /* 00,00,01,cc */
-       {0xa0, 0x50, 0x0002}, /* 00,02,50,cc */
-       {0xa0, 0x03, 0x0008}, /* 00,08,00,cc */         /* mx change? */
-       {0xa0, 0x01, 0x0001}, /* 00,01,01,cc */
-       {0xa0, 0x06, 0x0010}, /* 00,10,06,cc */
-       {0xa0, 0x02, 0x0083}, /* 00,83,02,cc */
-       {0xa0, 0x01, 0x0085}, /* 00,85,01,cc */
-       {0xa0, 0x80, 0x0086}, /* 00,86,80,cc */
-       {0xa0, 0x81, 0x0087}, /* 00,87,81,cc */
-       {0xa0, 0x10, 0x0088}, /* 00,88,10,cc */
-       {0xa0, 0xa1, 0x008b}, /* 00,8b,a1,cc */
-       {0xa0, 0x08, 0x008d}, /* 00,8d,08,cc */
-       {0xa0, 0x02, 0x0003}, /* 00,03,02,cc */
-       {0xa0, 0x80, 0x0004}, /* 00,04,80,cc */
-       {0xa0, 0x01, 0x0005}, /* 00,05,01,cc */
-       {0xa0, 0xd0, 0x0006}, /* 00,06,d0,cc */
-       {0xa0, 0x03, 0x0012}, /* 00,12,03,cc */
-       {0xa0, 0x01, 0x0012}, /* 00,12,01,cc */
-       {0xa0, 0x00, 0x0098}, /* 00,98,00,cc */
-       {0xa0, 0x00, 0x009a}, /* 00,9a,00,cc */
-       {0xa0, 0x00, 0x011a}, /* 01,1a,00,cc */
-       {0xa0, 0x00, 0x011c}, /* 01,1c,00,cc */
-       {0xa0, 0xd6, 0x009c}, /* 00,9c,d6,cc */         /* OV7648 00,9c,d8,cc */
-       {0xa0, 0x88, 0x009e}, /* 00,9e,88,cc */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
+       {0xa0, 0x50, ZC3XX_R002_CLOCKSELECT},   /* 00,02,50,cc */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00,08,00,cc */
+                                               /* mx change? */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, /* 00,01,01,cc */
+       {0xa0, 0x06, ZC3XX_R010_CMOSSENSORSELECT}, /* 00,10,06,cc */
+       {0xa0, 0x02, ZC3XX_R083_RGAINADDR},     /* 00,83,02,cc */
+       {0xa0, 0x01, ZC3XX_R085_BGAINADDR},     /* 00,85,01,cc */
+       {0xa0, 0x80, ZC3XX_R086_EXPTIMEHIGH},   /* 00,86,80,cc */
+       {0xa0, 0x81, ZC3XX_R087_EXPTIMEMID},    /* 00,87,81,cc */
+       {0xa0, 0x10, ZC3XX_R088_EXPTIMELOW},    /* 00,88,10,cc */
+       {0xa0, 0xa1, ZC3XX_R08B_I2CDEVICEADDR}, /* 00,8b,a1,cc */
+       {0xa0, 0x08, ZC3XX_R08D_COMPABILITYMODE}, /* 00,8d,08,cc */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, /* 00,03,02,cc */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, /* 00,04,80,cc */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, /* 00,05,01,cc */
+       {0xa0, 0xd0, ZC3XX_R006_FRAMEHEIGHTLOW}, /* 00,06,d0,cc */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,03,cc */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,01,cc */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},  /* 00,98,00,cc */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},  /* 00,9a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},     /* 01,1a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},     /* 01,1c,00,cc */
+       {0xa0, 0xd6, ZC3XX_R09C_WINHEIGHTLOW},  /* 00,9c,d6,cc */
+                                               /* OV7648 00,9c,d8,cc */
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},   /* 00,9e,88,cc */
        {0xaa, 0x12, 0x0088}, /* 00,12,88,aa */
        {0xaa, 0x12, 0x0048}, /* 00,12,48,aa */
        {0xaa, 0x75, 0x008a}, /* 00,75,8a,aa */
@@ -3681,20 +3689,20 @@ static const struct usb_action OV7620_mode1[] = {
        {0xaa, 0x06, 0x0080}, /* 00,06,80,aa */
        {0xaa, 0x01, 0x0090}, /* 00,01,90,aa */
        {0xaa, 0x02, 0x0030}, /* 00,02,30,aa */
-       {0xa0, 0x77, 0x0101}, /* 01,01,77,cc */
-       {0xa0, 0x05, 0x0012}, /* 00,12,05,cc */
-       {0xa0, 0x0d, 0x0100}, /* 01,00,0d,cc */
-       {0xa0, 0x06, 0x0189}, /* 01,89,06,cc */
-       {0xa0, 0x00, 0x01ad}, /* 01,ad,00,cc */
-       {0xa0, 0x03, 0x01c5}, /* 01,c5,03,cc */
-       {0xa0, 0x13, 0x01cb}, /* 01,cb,13,cc */
-       {0xa0, 0x08, 0x0250}, /* 02,50,08,cc */
-       {0xa0, 0x08, 0x0301}, /* 03,01,08,cc */
-       {0xa0, 0x68, 0x0116}, /* 01,16,68,cc */
-       {0xa0, 0x52, 0x0118}, /* 01,18,52,cc */
-       {0xa0, 0x50, 0x011d}, /* 01,1d,50,cc */
-       {0xa0, 0x02, 0x0180}, /* 01,80,02,cc */
-       {0xa0, 0x50, 0x01a8}, /* 01,a8,50,cc */
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION}, /* 01,01,77,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,05,cc */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0d,cc */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},     /* 01,89,06,cc */
+       {0xa0, 0x00, 0x01ad},                   /* 01,ad,00,cc */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* 01,c5,03,cc */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},   /* 01,cb,13,cc */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* 02,50,08,cc */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},  /* 03,01,08,cc */
+       {0xa0, 0x68, ZC3XX_R116_RGAIN},         /* 01,16,68,cc */
+       {0xa0, 0x52, ZC3XX_R118_BGAIN},         /* 01,18,52,cc */
+       {0xa0, 0x50, ZC3XX_R11D_GLOBALGAIN},    /* 01,1d,50,cc */
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE}, /* 01,80,02,cc */
+       {0xa0, 0x50, ZC3XX_R1A8_DIGITALGAIN},   /* 01,a8,50,cc */
        {}
 };
 
@@ -3705,34 +3713,37 @@ static const struct usb_action OV7620_50HZ[] = {
        {0xaa, 0x2b, 0x0096},   /* 00,2b,96,aa */
        {0xaa, 0x75, 0x008a},   /* 00,75,8a,aa */
        {0xaa, 0x2d, 0x0005},   /* 00,2d,05,aa */
-       {0xa0, 0x00, 0x0190},   /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191},   /* 01,91,04,cc */
-       {0xa0, 0x18, 0x0192},   /* 01,92,18,cc */
-       {0xa0, 0x00, 0x0195},   /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196},   /* 01,96,00,cc */
-       {0xa0, 0x83, 0x0197},   /* 01,97,83,cc */
-       {0xaa, 0x10, 0x0082},   /* 00,10,82,aa */
-       {0xaa, 0x76, 0x0003},   /* 00,76,03,aa */
-/*     {0xa0, 0x40, 0x0002},    * 00,02,40,cc - if mode0 (640x480) */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,04,cc */
+       {0xa0, 0x18, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,18,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc */
+       {0xa0, 0x83, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,83,cc */
+       {0xaa, 0x10, 0x0082},                           /* 00,10,82,aa */
+       {0xaa, 0x76, 0x0003},                           /* 00,76,03,aa */
+/*     {0xa0, 0x40, ZC3XX_R002_CLOCKSELECT},            * 00,02,40,cc
+                                                        if mode0 (640x480) */
        {}
 };
 
 /* from zs211.inf - HKR,%OV7620%\AE,60HZ */
 static const struct usb_action OV7620_60HZ[] = {
-       {0xaa, 0x13, 0x00a3}, /* 00,13,a3,aa */ /* (bug in zs211.inf) */
-       {0xdd, 0x00, 0x0100},   /* 00,01,00,dd */
-       {0xaa, 0x2b, 0x0000}, /* 00,2b,00,aa */
-       {0xaa, 0x75, 0x008a}, /* 00,75,8a,aa */
-       {0xaa, 0x2d, 0x0005}, /* 00,2d,05,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191}, /* 01,91,04,cc */
-       {0xa0, 0x18, 0x0192}, /* 01,92,18,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x83, 0x0197}, /* 01,97,83,cc */
-       {0xaa, 0x10, 0x0020}, /* 00,10,20,aa */
-       {0xaa, 0x76, 0x0003}, /* 00,76,03,aa */
-/*     {0xa0, 0x40, 0x0002},  * 00,02,40,cc - if mode0 (640x480) */
+       {0xaa, 0x13, 0x00a3},                   /* 00,13,a3,aa */
+                                               /* (bug in zs211.inf) */
+       {0xdd, 0x00, 0x0100},                   /* 00,01,00,dd */
+       {0xaa, 0x2b, 0x0000},                   /* 00,2b,00,aa */
+       {0xaa, 0x75, 0x008a},                   /* 00,75,8a,aa */
+       {0xaa, 0x2d, 0x0005},                   /* 00,2d,05,aa */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */
+       {0xa0, 0x18, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,18,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x83, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,83,cc */
+       {0xaa, 0x10, 0x0020},                   /* 00,10,20,aa */
+       {0xaa, 0x76, 0x0003},                   /* 00,76,03,aa */
+/*     {0xa0, 0x40, ZC3XX_R002_CLOCKSELECT},    * 00,02,40,cc
+                                                * if mode0 (640x480) */
 /* ?? in gspca v1, it was
        {0xa0, 0x00, 0x0039},  * 00,00,00,dd *
        {0xa1, 0x01, 0x0037},           */
@@ -3741,18 +3752,20 @@ static const struct usb_action OV7620_60HZ[] = {
 
 /* from zs211.inf - HKR,%OV7620%\AE,NoFliker */
 static const struct usb_action OV7620_NoFliker[] = {
-       {0xaa, 0x13, 0x00a3}, /* 00,13,a3,aa */ /* (bug in zs211.inf) */
-       {0xdd, 0x00, 0x0100},   /* 00,01,00,dd */
-       {0xaa, 0x2b, 0x0000}, /* 00,2b,00,aa */
-       {0xaa, 0x75, 0x008e}, /* 00,75,8e,aa */
-       {0xaa, 0x2d, 0x0001}, /* 00,2d,01,aa */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x04, 0x0191}, /* 01,91,04,cc */
-       {0xa0, 0x18, 0x0192}, /* 01,92,18,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x01, 0x0197}, /* 01,97,01,cc */
-/*     {0xa0, 0x44, 0x0002},  * 00,02,44,cc - if mode1 (320x240) */
+       {0xaa, 0x13, 0x00a3},                   /* 00,13,a3,aa */
+                                               /* (bug in zs211.inf) */
+       {0xdd, 0x00, 0x0100},                   /* 00,01,00,dd */
+       {0xaa, 0x2b, 0x0000},                   /* 00,2b,00,aa */
+       {0xaa, 0x75, 0x008e},                   /* 00,75,8e,aa */
+       {0xaa, 0x2d, 0x0001},                   /* 00,2d,01,aa */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x04, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,04,cc */
+       {0xa0, 0x18, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,18,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x01, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,01,cc */
+/*     {0xa0, 0x44, ZC3XX_R002_CLOCKSELECT},    * 00,02,44,cc
+                                                - if mode1 (320x240) */
 /* ?? was
        {0xa0, 0x00, 0x0039},  * 00,00,00,dd *
        {0xa1, 0x01, 0x0037},           */
@@ -3760,32 +3773,32 @@ static const struct usb_action OV7620_NoFliker[] = {
 };
 
 static const struct usb_action ov7630c_Initial[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x06, 0x0010},
-       {0xa0, 0xa1, 0x008b},
-       {0xa0, 0x08, 0x008d},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0012},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x06, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0xa1, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x08, ZC3XX_R08D_COMPABILITYMODE},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
        {0xaa, 0x12, 0x0080},
-       {0xa0, 0x02, 0x0083},
-       {0xa0, 0x01, 0x0085},
-       {0xa0, 0x90, 0x0086},
-       {0xa0, 0x91, 0x0087},
-       {0xa0, 0x10, 0x0088},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xd8, 0x009c},
-       {0xa0, 0x88, 0x009e},
+       {0xa0, 0x02, ZC3XX_R083_RGAINADDR},
+       {0xa0, 0x01, ZC3XX_R085_BGAINADDR},
+       {0xa0, 0x90, ZC3XX_R086_EXPTIMEHIGH},
+       {0xa0, 0x91, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x10, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xd8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
        {0xaa, 0x12, 0x0069},
        {0xaa, 0x04, 0x0020},
        {0xaa, 0x06, 0x0050},
@@ -3817,131 +3830,131 @@ static const struct usb_action ov7630c_Initial[] = {
        {0xaa, 0x77, 0x00b5},
        {0xaa, 0x01, 0x0060},
        {0xaa, 0x02, 0x0060},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x77, 0x0101},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x04, 0x01a7},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x60, 0x0116},
-       {0xa0, 0x46, 0x0118},
-       {0xa0, 0x04, 0x0113},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x60, ZC3XX_R116_RGAIN},
+       {0xa0, 0x46, ZC3XX_R118_BGAIN},
+       {0xa0, 0x04, ZC3XX_R113_RGB03},
 /* 0x10, */
        {0xa1, 0x01, 0x0002},
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
 /* 0x03, */
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x01, 0x0120},   /* gamma 2 ?*/
-       {0xa0, 0x0c, 0x0121},
-       {0xa0, 0x1f, 0x0122},
-       {0xa0, 0x3a, 0x0123},
-       {0xa0, 0x53, 0x0124},
-       {0xa0, 0x6d, 0x0125},
-       {0xa0, 0x85, 0x0126},
-       {0xa0, 0x9c, 0x0127},
-       {0xa0, 0xb0, 0x0128},
-       {0xa0, 0xc2, 0x0129},
-       {0xa0, 0xd1, 0x012a},
-       {0xa0, 0xde, 0x012b},
-       {0xa0, 0xe9, 0x012c},
-       {0xa0, 0xf2, 0x012d},
-       {0xa0, 0xf9, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x05, 0x0130},
-       {0xa0, 0x0f, 0x0131},
-       {0xa0, 0x16, 0x0132},
-       {0xa0, 0x1a, 0x0133},
-       {0xa0, 0x19, 0x0134},
-       {0xa0, 0x19, 0x0135},
-       {0xa0, 0x17, 0x0136},
-       {0xa0, 0x15, 0x0137},
-       {0xa0, 0x12, 0x0138},
-       {0xa0, 0x10, 0x0139},
-       {0xa0, 0x0e, 0x013a},
-       {0xa0, 0x0b, 0x013b},
-       {0xa0, 0x09, 0x013c},
-       {0xa0, 0x08, 0x013d},
-       {0xa0, 0x06, 0x013e},
-       {0xa0, 0x03, 0x013f},
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x01, ZC3XX_R120_GAMMA00},       /* gamma 2 ?*/
+       {0xa0, 0x0c, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x1f, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x3a, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x53, ZC3XX_R124_GAMMA04},
+       {0xa0, 0x6d, ZC3XX_R125_GAMMA05},
+       {0xa0, 0x85, ZC3XX_R126_GAMMA06},
+       {0xa0, 0x9c, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xb0, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xc2, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xd1, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xde, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xe9, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf2, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xf9, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x05, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x0f, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x16, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1a, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x19, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x19, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x17, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x15, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x12, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x10, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x0e, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x0b, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x09, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x08, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x06, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x03, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xaa, 0x10, 0x001b},
        {0xaa, 0x76, 0x0002},
        {0xaa, 0x2a, 0x0081},
        {0xaa, 0x2b, 0x0000},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x01, 0x0191},
-       {0xa0, 0xb8, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x37, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x10, 0x01a9},
-       {0xa0, 0x26, 0x01aa},
-       {0xa0, 0x50, 0x011d},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x01, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xb8, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x37, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x50, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xaa, 0x13, 0x0083},   /* 40 */
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 
 static const struct usb_action ov7630c_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x06, 0x0010},
-       {0xa0, 0xa1, 0x008b},
-       {0xa0, 0x08, 0x008d},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0012},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x06, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0xa1, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x08, ZC3XX_R08D_COMPABILITYMODE},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
 
        {0xaa, 0x12, 0x0080},
-       {0xa0, 0x02, 0x0083},
-       {0xa0, 0x01, 0x0085},
-       {0xa0, 0x90, 0x0086},
-       {0xa0, 0x91, 0x0087},
-       {0xa0, 0x10, 0x0088},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xe6, 0x009c},
-       {0xa0, 0x86, 0x009e},
+       {0xa0, 0x02, ZC3XX_R083_RGAINADDR},
+       {0xa0, 0x01, ZC3XX_R085_BGAINADDR},
+       {0xa0, 0x90, ZC3XX_R086_EXPTIMEHIGH},
+       {0xa0, 0x91, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x10, ZC3XX_R088_EXPTIMELOW},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xe6, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x86, ZC3XX_R09E_WINWIDTHLOW},
        {0xaa, 0x12, 0x0069},   /* i2c */
        {0xaa, 0x04, 0x0020},
        {0xaa, 0x06, 0x0050},
@@ -3973,103 +3986,103 @@ static const struct usb_action ov7630c_InitialScale[] = {
        {0xaa, 0x02, 0x0060},
        {0xaa, 0x17, 0x0018},
        {0xaa, 0x18, 0x00ba},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x77, 0x0101},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x04, 0x01a7},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x77, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x04, ZC3XX_R1A7_CALCGLOBALMEAN},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x60, 0x0116},
-       {0xa0, 0x46, 0x0118},
-       {0xa0, 0x04, 0x0113},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x60, ZC3XX_R116_RGAIN},
+       {0xa0, 0x46, ZC3XX_R118_BGAIN},
+       {0xa0, 0x04, ZC3XX_R113_RGB03},
 
        {0xa1, 0x01, 0x0002},
-       {0xa0, 0x4e, 0x010a},   /* matrix */
-       {0xa0, 0xfe, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf7, 0x010d},
-       {0xa0, 0x4d, 0x010e},
-       {0xa0, 0xfc, 0x010f},
-       {0xa0, 0x00, 0x0110},
-       {0xa0, 0xf6, 0x0111},
-       {0xa0, 0x4a, 0x0112},
+       {0xa0, 0x4e, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xfe, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf7, ZC3XX_R10D_RGB10},
+       {0xa0, 0x4d, ZC3XX_R10E_RGB11},
+       {0xa0, 0xfc, ZC3XX_R10F_RGB12},
+       {0xa0, 0x00, ZC3XX_R110_RGB20},
+       {0xa0, 0xf6, ZC3XX_R111_RGB21},
+       {0xa0, 0x4a, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x16, 0x0120},   /* gamma ~4 */
-       {0xa0, 0x3a, 0x0121},
-       {0xa0, 0x5b, 0x0122},
-       {0xa0, 0x7c, 0x0123},
-       {0xa0, 0x94, 0x0124},
-       {0xa0, 0xa9, 0x0125},
-       {0xa0, 0xbb, 0x0126},
-       {0xa0, 0xca, 0x0127},
-       {0xa0, 0xd7, 0x0128},
-       {0xa0, 0xe1, 0x0129},
-       {0xa0, 0xea, 0x012a},
-       {0xa0, 0xf1, 0x012b},
-       {0xa0, 0xf7, 0x012c},
-       {0xa0, 0xfc, 0x012d},
-       {0xa0, 0xff, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x20, 0x0130},
-       {0xa0, 0x22, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x00, 0x013e},
-       {0xa0, 0x01, 0x013f},
-       {0xa0, 0x4e, 0x010a},   /* matrix */
-       {0xa0, 0xfe, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf7, 0x010d},
-       {0xa0, 0x4d, 0x010e},
-       {0xa0, 0xfc, 0x010f},
-       {0xa0, 0x00, 0x0110},
-       {0xa0, 0xf6, 0x0111},
-       {0xa0, 0x4a, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x16, ZC3XX_R120_GAMMA00},       /* gamma ~4 */
+       {0xa0, 0x3a, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x5b, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x7c, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x94, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa9, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xbb, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xca, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd7, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xe1, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xea, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xf1, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf7, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xfc, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xff, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x20, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x22, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x00, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x01, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x4e, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xfe, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf7, ZC3XX_R10D_RGB10},
+       {0xa0, 0x4d, ZC3XX_R10E_RGB11},
+       {0xa0, 0xfc, ZC3XX_R10F_RGB12},
+       {0xa0, 0x00, ZC3XX_R110_RGB20},
+       {0xa0, 0xf6, ZC3XX_R111_RGB21},
+       {0xa0, 0x4a, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xaa, 0x10, 0x000d},
        {0xaa, 0x76, 0x0002},
        {0xaa, 0x2a, 0x0081},
        {0xaa, 0x2b, 0x0000},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x00, 0x0191},
-       {0xa0, 0xd8, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x1b, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x10, 0x01a9},
-       {0xa0, 0x26, 0x01aa},
-       {0xa0, 0x50, 0x011d},
-       {0xa0, 0x02, 0x0180},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x00, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xd8, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x1b, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x50, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xaa, 0x13, 0x00c3},
 
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 
@@ -4077,10 +4090,10 @@ static const struct usb_action pas106b_Initial_com[] = {
 /* Sream and Sensor specific */
        {0xa1, 0x01, 0x0010},   /* CMOSSensorSelect */
 /* System */
-       {0xa0, 0x01, 0x0000},   /* SystemControl */
-       {0xa0, 0x01, 0x0000},   /* SystemControl */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* SystemControl */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* SystemControl */
 /* Picture size */
-       {0xa0, 0x00, 0x0002},   /* ClockSelect */
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},   /* ClockSelect */
        {0xa0, 0x03, 0x003a},
        {0xa0, 0x0c, 0x003b},
        {0xa0, 0x04, 0x0038},
@@ -4089,27 +4102,27 @@ static const struct usb_action pas106b_Initial_com[] = {
 
 static const struct usb_action pas106b_Initial[] = {   /* 176x144 */
 /* JPEG control */
-       {0xa0, 0x03, 0x0008},   /* ClockSetting */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},          /* ClockSetting */
 /* Sream and Sensor specific */
-       {0xa0, 0x0f, 0x0010},   /* CMOSSensorSelect */
+       {0xa0, 0x0f, ZC3XX_R010_CMOSSENSORSELECT},      /* CMOSSensorSelect */
 /* Picture size */
-       {0xa0, 0x00, 0x0003},   /* FrameWidthHigh 00 */
-       {0xa0, 0xb0, 0x0004},   /* FrameWidthLow B0 */
-       {0xa0, 0x00, 0x0005},   /* FrameHeightHigh 00 */
-       {0xa0, 0x90, 0x0006},   /* FrameHightLow 90 */
+       {0xa0, 0x00, ZC3XX_R003_FRAMEWIDTHHIGH},  /* FrameWidthHigh 00 */
+       {0xa0, 0xb0, ZC3XX_R004_FRAMEWIDTHLOW},   /* FrameWidthLow B0 */
+       {0xa0, 0x00, ZC3XX_R005_FRAMEHEIGHTHIGH}, /* FrameHeightHigh 00 */
+       {0xa0, 0x90, ZC3XX_R006_FRAMEHEIGHTLOW},  /* FrameHightLow 90 */
 /* System */
-       {0xa0, 0x01, 0x0001},   /* SystemOperating */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, /* SystemOperating */
 /* Sream and Sensor specific */
-       {0xa0, 0x03, 0x0012},   /* VideoControlFunction */
-       {0xa0, 0x01, 0x0012},   /* VideoControlFunction */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC}, /* VideoControlFunction */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, /* VideoControlFunction */
 /* Sensor Interface */
-       {0xa0, 0x08, 0x008d},   /* Compatibily Mode */
+       {0xa0, 0x08, ZC3XX_R08D_COMPABILITYMODE},  /* Compatibily Mode */
 /* Window inside sensor array */
-       {0xa0, 0x03, 0x009a},   /* WinXStartLow */
-       {0xa0, 0x00, 0x011a},   /* FirstYLow */
-       {0xa0, 0x03, 0x011c},   /* FirstxLow */
-       {0xa0, 0x28, 0x009c},   /* WinHeightLow */
-       {0xa0, 0x68, 0x009e},   /* WinWidthLow */
+       {0xa0, 0x03, ZC3XX_R09A_WINXSTARTLOW},  /* WinXStartLow */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},     /* FirstYLow */
+       {0xa0, 0x03, ZC3XX_R11C_FIRSTXLOW},     /* FirstxLow */
+       {0xa0, 0x28, ZC3XX_R09C_WINHEIGHTLOW},  /* WinHeightLow */
+       {0xa0, 0x68, ZC3XX_R09E_WINWIDTHLOW},   /* WinWidthLow */
 /* Init the sensor */
        {0xaa, 0x02, 0x0004},
        {0xaa, 0x08, 0x0000},
@@ -4122,112 +4135,112 @@ static const struct usb_action pas106b_Initial[] = {  /* 176x144 */
        {0xaa, 0x14, 0x0081},
 
 /* Other registors */
-       {0xa0, 0x37, 0x0101},   /* SensorCorrection */
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION}, /* SensorCorrection */
 /* Frame retreiving */
-       {0xa0, 0x00, 0x0019},   /* AutoAdjustFPS */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* AutoAdjustFPS */
 /* Gains */
-       {0xa0, 0xa0, 0x01a8},   /* DigitalGain */
+       {0xa0, 0xa0, ZC3XX_R1A8_DIGITALGAIN},   /* DigitalGain */
 /* Unknown */
        {0xa0, 0x00, 0x01ad},
 /* Sharpness */
-       {0xa0, 0x03, 0x01c5},   /* SharpnessMode */
-       {0xa0, 0x13, 0x01cb},   /* Sharpness05 */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* SharpnessMode */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},   /* Sharpness05 */
 /* Other registors */
-       {0xa0, 0x0d, 0x0100},   /* OperationMode */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* OperationMode */
 /* Auto exposure and white balance */
-       {0xa0, 0x06, 0x0189},   /* AWBStatus */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},     /* AWBStatus */
 /*Dead pixels */
-       {0xa0, 0x08, 0x0250},   /* DeadPixelsMode */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* DeadPixelsMode */
 /* EEPROM */
-       {0xa0, 0x08, 0x0301},   /* EEPROMAccess */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},  /* EEPROMAccess */
 /* JPEG control */
-       {0xa0, 0x03, 0x0008},   /* ClockSetting */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* ClockSetting */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
 /* Other registers */
-       {0xa0, 0x0d, 0x0100},   /* OperationMode */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* OperationMode */
 /* Auto exposure and white balance */
-       {0xa0, 0x06, 0x0189},   /* AWBStatus */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},     /* AWBStatus */
 /*Dead pixels */
-       {0xa0, 0x08, 0x0250},   /* DeadPixelsMode */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* DeadPixelsMode */
 /* EEPROM */
-       {0xa0, 0x08, 0x0301},   /* EEPROMAccess */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},  /* EEPROMAccess */
 /* JPEG control */
-       {0xa0, 0x03, 0x0008},   /* ClockSetting */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x58, 0x010a},   /* matrix */
-       {0xa0, 0xf4, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf4, 0x010d},
-       {0xa0, 0x58, 0x010e},
-       {0xa0, 0xf4, 0x010f},
-       {0xa0, 0xf4, 0x0110},
-       {0xa0, 0xf4, 0x0111},
-       {0xa0, 0x58, 0x0112},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* ClockSetting */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x58, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf4, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf4, ZC3XX_R10D_RGB10},
+       {0xa0, 0x58, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf4, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf4, ZC3XX_R110_RGB20},
+       {0xa0, 0xf4, ZC3XX_R111_RGB21},
+       {0xa0, 0x58, ZC3XX_R112_RGB22},
 /* Auto correction */
-       {0xa0, 0x03, 0x0181},   /* WinXstart */
-       {0xa0, 0x08, 0x0182},   /* WinXWidth */
-       {0xa0, 0x16, 0x0183},   /* WinXCenter */
-       {0xa0, 0x03, 0x0184},   /* WinYStart */
-       {0xa0, 0x05, 0x0185},   /* WinYWidth */
-       {0xa0, 0x14, 0x0186},   /* WinYCenter */
-       {0xa0, 0x00, 0x0180},   /* AutoCorrectEnable */
+       {0xa0, 0x03, ZC3XX_R181_WINXSTART},     /* WinXstart */
+       {0xa0, 0x08, ZC3XX_R182_WINXWIDTH},     /* WinXWidth */
+       {0xa0, 0x16, ZC3XX_R183_WINXCENTER},    /* WinXCenter */
+       {0xa0, 0x03, ZC3XX_R184_WINYSTART},     /* WinYStart */
+       {0xa0, 0x05, ZC3XX_R185_WINYWIDTH},     /* WinYWidth */
+       {0xa0, 0x14, ZC3XX_R186_WINYCENTER},    /* WinYCenter */
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, /* AutoCorrectEnable */
 
 /* Auto exposure and white balance */
-       {0xa0, 0x00, 0x0190},   /* ExposureLimitHigh */
-       {0xa0, 0x03, 0x0191},   /* ExposureLimitMid */
-       {0xa0, 0xb1, 0x0192},   /* ExposureLimitLow */
-       {0xa0, 0x00, 0x0195},   /* AntiFlickerHigh */
-       {0xa0, 0x00, 0x0196},   /* AntiFlickerLow */
-       {0xa0, 0x87, 0x0197},   /* AntiFlickerLow */
-       {0xa0, 0x0c, 0x018c},   /* AEBFreeze */
-       {0xa0, 0x18, 0x018f},   /* AEBUnfreeze */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* ExposureLimitHigh */
+       {0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID},      /* ExposureLimitMid */
+       {0xa0, 0xb1, ZC3XX_R192_EXPOSURELIMITLOW},      /* ExposureLimitLow */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* AntiFlickerHigh */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* AntiFlickerLow */
+       {0xa0, 0x87, ZC3XX_R197_ANTIFLICKERLOW},        /* AntiFlickerLow */
+       {0xa0, 0x0c, ZC3XX_R18C_AEFREEZE},              /* AEBFreeze */
+       {0xa0, 0x18, ZC3XX_R18F_AEUNFREEZE},            /* AEBUnfreeze */
 /* sensor on */
        {0xaa, 0x07, 0x00b1},
        {0xaa, 0x05, 0x0003},
        {0xaa, 0x04, 0x0001},
        {0xaa, 0x03, 0x003b},
 /* Gains */
-       {0xa0, 0x20, 0x01a9},   /* DigitalLimitDiff */
-       {0xa0, 0x26, 0x01aa},   /* DigitalGainStep */
-       {0xa0, 0xa0, 0x011d},   /* GlobalGain */
-       {0xa0, 0x60, 0x011d},   /* GlobalGain */
+       {0xa0, 0x20, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* DigitalLimitDiff */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP},       /* DigitalGainStep */
+       {0xa0, 0xa0, ZC3XX_R11D_GLOBALGAIN},            /* GlobalGain */
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},            /* GlobalGain */
 /* Auto correction */
-       {0xa0, 0x40, 0x0180},   /* AutoCorrectEnable */
-       {0xa1, 0x01, 0x0180},   /* AutoCorrectEnable */
-       {0xa0, 0x42, 0x0180},   /* AutoCorrectEnable */
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},     /* AutoCorrectEnable */
+       {0xa1, 0x01, 0x0180},                           /* AutoCorrectEnable */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* AutoCorrectEnable */
 /* Gains */
-       {0xa0, 0x40, 0x0116},   /* RGain */
-       {0xa0, 0x40, 0x0117},   /* GGain */
-       {0xa0, 0x40, 0x0118},   /* BGain */
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},                 /* RGain */
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},                 /* GGain */
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},                 /* BGain */
        {}
 };
 
 static const struct usb_action pas106b_InitialScale[] = {      /* 352x288 */
 /* JPEG control */
-       {0xa0, 0x03, 0x0008},   /* ClockSetting */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},          /* ClockSetting */
 /* Sream and Sensor specific */
-       {0xa0, 0x0f, 0x0010},   /* CMOSSensorSelect */
+       {0xa0, 0x0f, ZC3XX_R010_CMOSSENSORSELECT},      /* CMOSSensorSelect */
 /* Picture size */
-       {0xa0, 0x01, 0x0003},   /* FrameWidthHigh */
-       {0xa0, 0x60, 0x0004},   /* FrameWidthLow */
-       {0xa0, 0x01, 0x0005},   /* FrameHeightHigh */
-       {0xa0, 0x20, 0x0006},   /* FrameHightLow */
+       {0xa0, 0x01, ZC3XX_R003_FRAMEWIDTHHIGH},        /* FrameWidthHigh */
+       {0xa0, 0x60, ZC3XX_R004_FRAMEWIDTHLOW},         /* FrameWidthLow */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},       /* FrameHeightHigh */
+       {0xa0, 0x20, ZC3XX_R006_FRAMEHEIGHTLOW},        /* FrameHightLow */
 /* System */
-       {0xa0, 0x01, 0x0001},   /* SystemOperating */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},       /* SystemOperating */
 /* Sream and Sensor specific */
-       {0xa0, 0x03, 0x0012},   /* VideoControlFunction */
-       {0xa0, 0x01, 0x0012},   /* VideoControlFunction */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC}, /* VideoControlFunction */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, /* VideoControlFunction */
 /* Sensor Interface */
-       {0xa0, 0x08, 0x008d},   /* Compatibily Mode */
+       {0xa0, 0x08, ZC3XX_R08D_COMPABILITYMODE},       /* Compatibily Mode */
 /* Window inside sensor array */
-       {0xa0, 0x03, 0x009a},   /* WinXStartLow */
-       {0xa0, 0x00, 0x011a},   /* FirstYLow */
-       {0xa0, 0x03, 0x011c},   /* FirstxLow */
-       {0xa0, 0x28, 0x009c},   /* WinHeightLow */
-       {0xa0, 0x68, 0x009e},   /* WinWidthLow */
+       {0xa0, 0x03, ZC3XX_R09A_WINXSTARTLOW},  /* WinXStartLow */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},     /* FirstYLow */
+       {0xa0, 0x03, ZC3XX_R11C_FIRSTXLOW},     /* FirstxLow */
+       {0xa0, 0x28, ZC3XX_R09C_WINHEIGHTLOW},  /* WinHeightLow */
+       {0xa0, 0x68, ZC3XX_R09E_WINWIDTHLOW},   /* WinWidthLow */
 /* Init the sensor */
        {0xaa, 0x02, 0x0004},
        {0xaa, 0x08, 0x0000},
@@ -4240,161 +4253,161 @@ static const struct usb_action pas106b_InitialScale[] = {     /* 352x288 */
        {0xaa, 0x14, 0x0081},
 
 /* Other registors */
-       {0xa0, 0x37, 0x0101},   /* SensorCorrection */
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION}, /* SensorCorrection */
 /* Frame retreiving */
-       {0xa0, 0x00, 0x0019},   /* AutoAdjustFPS */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* AutoAdjustFPS */
 /* Gains */
-       {0xa0, 0xa0, 0x01a8},   /* DigitalGain */
+       {0xa0, 0xa0, ZC3XX_R1A8_DIGITALGAIN},   /* DigitalGain */
 /* Unknown */
        {0xa0, 0x00, 0x01ad},
 /* Sharpness */
-       {0xa0, 0x03, 0x01c5},   /* SharpnessMode */
-       {0xa0, 0x13, 0x01cb},   /* Sharpness05 */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* SharpnessMode */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},   /* Sharpness05 */
 /* Other registors */
-       {0xa0, 0x0d, 0x0100},   /* OperationMode */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* OperationMode */
 /* Auto exposure and white balance */
-       {0xa0, 0x06, 0x0189},   /* AWBStatus */
-       {0xa0, 0x80, 0x018d},   /* ????????? */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},     /* AWBStatus */
+       {0xa0, 0x80, ZC3XX_R18D_YTARGET},       /* ????????? */
 /*Dead pixels */
-       {0xa0, 0x08, 0x0250},   /* DeadPixelsMode */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* DeadPixelsMode */
 /* EEPROM */
-       {0xa0, 0x08, 0x0301},   /* EEPROMAccess */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},  /* EEPROMAccess */
 /* JPEG control */
-       {0xa0, 0x03, 0x0008},   /* ClockSetting */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* ClockSetting */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
 /* Other registers */
-       {0xa0, 0x0d, 0x0100},   /* OperationMode */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* OperationMode */
 /* Auto exposure and white balance */
-       {0xa0, 0x06, 0x0189},   /* AWBStatus */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},     /* AWBStatus */
 /*Dead pixels */
-       {0xa0, 0x08, 0x0250},   /* DeadPixelsMode */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* DeadPixelsMode */
 /* EEPROM */
-       {0xa0, 0x08, 0x0301},   /* EEPROMAccess */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},  /* EEPROMAccess */
 /* JPEG control */
-       {0xa0, 0x03, 0x0008},   /* ClockSetting */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x58, 0x010a},   /* matrix */
-       {0xa0, 0xf4, 0x010b},
-       {0xa0, 0xf4, 0x010c},
-       {0xa0, 0xf4, 0x010d},
-       {0xa0, 0x58, 0x010e},
-       {0xa0, 0xf4, 0x010f},
-       {0xa0, 0xf4, 0x0110},
-       {0xa0, 0xf4, 0x0111},
-       {0xa0, 0x58, 0x0112},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* ClockSetting */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x58, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf4, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf4, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf4, ZC3XX_R10D_RGB10},
+       {0xa0, 0x58, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf4, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf4, ZC3XX_R110_RGB20},
+       {0xa0, 0xf4, ZC3XX_R111_RGB21},
+       {0xa0, 0x58, ZC3XX_R112_RGB22},
 /* Auto correction */
-       {0xa0, 0x03, 0x0181},   /* WinXstart */
-       {0xa0, 0x08, 0x0182},   /* WinXWidth */
-       {0xa0, 0x16, 0x0183},   /* WinXCenter */
-       {0xa0, 0x03, 0x0184},   /* WinYStart */
-       {0xa0, 0x05, 0x0185},   /* WinYWidth */
-       {0xa0, 0x14, 0x0186},   /* WinYCenter */
-       {0xa0, 0x00, 0x0180},   /* AutoCorrectEnable */
+       {0xa0, 0x03, ZC3XX_R181_WINXSTART},     /* WinXstart */
+       {0xa0, 0x08, ZC3XX_R182_WINXWIDTH},     /* WinXWidth */
+       {0xa0, 0x16, ZC3XX_R183_WINXCENTER},    /* WinXCenter */
+       {0xa0, 0x03, ZC3XX_R184_WINYSTART},     /* WinYStart */
+       {0xa0, 0x05, ZC3XX_R185_WINYWIDTH},     /* WinYWidth */
+       {0xa0, 0x14, ZC3XX_R186_WINYCENTER},    /* WinYCenter */
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE}, /* AutoCorrectEnable */
 
 /* Auto exposure and white balance */
-       {0xa0, 0x00, 0x0190},   /* ExposureLimitHigh 0 */
-       {0xa0, 0x03, 0x0191},   /* ExposureLimitMid */
-       {0xa0, 0xb1, 0x0192},   /* ExposureLimitLow 0xb1 */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* ExposureLimitHigh 0 */
+       {0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID},  /* ExposureLimitMid */
+       {0xa0, 0xb1, ZC3XX_R192_EXPOSURELIMITLOW},  /* ExposureLimitLow 0xb1 */
 
-       {0xa0, 0x00, 0x0195},   /* AntiFlickerHigh 0x00 */
-       {0xa0, 0x00, 0x0196},   /* AntiFlickerLow 0x00 */
-       {0xa0, 0x87, 0x0197},   /* AntiFlickerLow 0x87 */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},   /* AntiFlickerHigh 0x00 */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},    /* AntiFlickerLow 0x00 */
+       {0xa0, 0x87, ZC3XX_R197_ANTIFLICKERLOW},    /* AntiFlickerLow 0x87 */
 
-       {0xa0, 0x10, 0x018c},   /* AEBFreeze 0x10 0x0c */
-       {0xa0, 0x20, 0x018f},   /* AEBUnfreeze 0x30 0x18 */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},      /* AEBFreeze 0x10 0x0c */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},    /* AEBUnfreeze 0x30 0x18 */
 /* sensor on */
        {0xaa, 0x07, 0x00b1},
        {0xaa, 0x05, 0x0003},
        {0xaa, 0x04, 0x0001},
        {0xaa, 0x03, 0x003b},
 /* Gains */
-       {0xa0, 0x20, 0x01a9},   /* DigitalLimitDiff */
-       {0xa0, 0x26, 0x01aa},   /* DigitalGainStep */
-       {0xa0, 0xa0, 0x011d},   /* GlobalGain */
-       {0xa0, 0x60, 0x011d},   /* GlobalGain */
+       {0xa0, 0x20, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* DigitalLimitDiff */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP},       /* DigitalGainStep */
+       {0xa0, 0xa0, ZC3XX_R11D_GLOBALGAIN},    /* GlobalGain */
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},    /* GlobalGain */
 /* Auto correction */
-       {0xa0, 0x40, 0x0180},   /* AutoCorrectEnable */
-       {0xa1, 0x01, 0x0180},   /* AutoCorrectEnable */
-       {0xa0, 0x42, 0x0180},   /* AutoCorrectEnable */
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},     /* AutoCorrectEnable */
+       {0xa1, 0x01, 0x0180},                           /* AutoCorrectEnable */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* AutoCorrectEnable */
 /* Gains */
-       {0xa0, 0x40, 0x0116},   /* RGain */
-       {0xa0, 0x40, 0x0117},   /* GGain */
-       {0xa0, 0x40, 0x0118},   /* BGain */
+       {0xa0, 0x40, ZC3XX_R116_RGAIN},         /* RGain */
+       {0xa0, 0x40, ZC3XX_R117_GGAIN},         /* GGain */
+       {0xa0, 0x40, ZC3XX_R118_BGAIN},         /* BGain */
 
-       {0xa0, 0x00, 0x0007},   /* AutoCorrectEnable */
-       {0xa0, 0xff, 0x0018},   /* Frame adjust */
+       {0xa0, 0x00, 0x0007},                   /* AutoCorrectEnable */
+       {0xa0, 0xff, ZC3XX_R018_FRAMELOST},     /* Frame adjust */
        {}
 };
 static const struct usb_action pas106b_50HZ[] = {
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x06, 0x0191}, /* 01,91,06,cc */
-       {0xa0, 0x54, 0x0192}, /* 01,92,54,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x87, 0x0197}, /* 01,97,87,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x30, 0x018f}, /* 01,8f,30,cc */
-       {0xaa, 0x03, 0x0021}, /* 00,03,21,aa */
-       {0xaa, 0x04, 0x000c}, /* 00,04,0c,aa */
-       {0xaa, 0x05, 0x0002}, /* 00,05,02,aa */
-       {0xaa, 0x07, 0x001c}, /* 00,07,1c,aa */
-       {0xa0, 0x04, 0x01a9}, /* 01,a9,04,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x06, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,06,cc */
+       {0xa0, 0x54, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,54,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x87, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,87,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},      /* 01,8c,10,cc */
+       {0xa0, 0x30, ZC3XX_R18F_AEUNFREEZE},    /* 01,8f,30,cc */
+       {0xaa, 0x03, 0x0021},                   /* 00,03,21,aa */
+       {0xaa, 0x04, 0x000c},                   /* 00,04,0c,aa */
+       {0xaa, 0x05, 0x0002},                   /* 00,05,02,aa */
+       {0xaa, 0x07, 0x001c},                   /* 00,07,1c,aa */
+       {0xa0, 0x04, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,04,cc */
        {}
 };
 static const struct usb_action pas106b_60HZ[] = {
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x06, 0x0191}, /* 01,91,06,cc */
-       {0xa0, 0x2e, 0x0192}, /* 01,92,2e,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x71, 0x0197}, /* 01,97,71,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x30, 0x018f}, /* 01,8f,30,cc */
-       {0xaa, 0x03, 0x001c}, /* 00,03,1c,aa */
-       {0xaa, 0x04, 0x0004}, /* 00,04,04,aa */
-       {0xaa, 0x05, 0x0001}, /* 00,05,01,aa */
-       {0xaa, 0x07, 0x00c4}, /* 00,07,c4,aa */
-       {0xa0, 0x04, 0x01a9}, /* 01,a9,04,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x06, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,06,cc */
+       {0xa0, 0x2e, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,2e,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x71, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,71,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},      /* 01,8c,10,cc */
+       {0xa0, 0x30, ZC3XX_R18F_AEUNFREEZE},    /* 01,8f,30,cc */
+       {0xaa, 0x03, 0x001c},                   /* 00,03,1c,aa */
+       {0xaa, 0x04, 0x0004},                   /* 00,04,04,aa */
+       {0xaa, 0x05, 0x0001},                   /* 00,05,01,aa */
+       {0xaa, 0x07, 0x00c4},                   /* 00,07,c4,aa */
+       {0xa0, 0x04, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,04,cc */
        {}
 };
 static const struct usb_action pas106b_NoFliker[] = {
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x06, 0x0191}, /* 01,91,06,cc */
-       {0xa0, 0x50, 0x0192}, /* 01,92,50,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xaa, 0x03, 0x0013}, /* 00,03,13,aa */
-       {0xaa, 0x04, 0x0000}, /* 00,04,00,aa */
-       {0xaa, 0x05, 0x0001}, /* 00,05,01,aa */
-       {0xaa, 0x07, 0x0030}, /* 00,07,30,aa */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x06, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,06,cc */
+       {0xa0, 0x50, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,50,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},      /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},    /* 01,8f,20,cc */
+       {0xaa, 0x03, 0x0013},                   /* 00,03,13,aa */
+       {0xaa, 0x04, 0x0000},                   /* 00,04,00,aa */
+       {0xaa, 0x05, 0x0001},                   /* 00,05,01,aa */
+       {0xaa, 0x07, 0x0030},                   /* 00,07,30,aa */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
        {}
 };
 
 static const struct usb_action pb03303x_Initial[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x0a, 0x0010},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0xdc, 0x008b},   /* 8b -> dc */
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xdc, 0x008b},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, /* 8b -> dc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR},
        {0xaa, 0x01, 0x0001},
        {0xaa, 0x06, 0x0000},
        {0xaa, 0x08, 0x0483},
@@ -4414,20 +4427,20 @@ static const struct usb_action pb03303x_Initial[] = {
        {0xaa, 0x2c, 0x0030},
        {0xaa, 0x2d, 0x0030},
        {0xaa, 0x2e, 0x0028},
-       {0xa0, 0x10, 0x0087},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
+       {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x60, 0x01a8},
-       {0xa0, 0x78, 0x018d},
-       {0xa0, 0x61, 0x0116},
-       {0xa0, 0x65, 0x0118},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x61, ZC3XX_R116_RGAIN},
+       {0xa0, 0x65, ZC3XX_R118_BGAIN},
 
        {0xa1, 0x01, 0x0002},
        {0xa0, 0x09, 0x01ad},
@@ -4435,112 +4448,112 @@ static const struct usb_action pb03303x_Initial[] = {
        {0xa0, 0x0d, 0x003a},
        {0xa0, 0x02, 0x003b},
        {0xa0, 0x00, 0x0038},
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x13, 0x0120},   /* gamma 4 */
-       {0xa0, 0x38, 0x0121},
-       {0xa0, 0x59, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x92, 0x0124},
-       {0xa0, 0xa7, 0x0125},
-       {0xa0, 0xb9, 0x0126},
-       {0xa0, 0xc8, 0x0127},
-       {0xa0, 0xd4, 0x0128},
-       {0xa0, 0xdf, 0x0129},
-       {0xa0, 0xe7, 0x012a},
-       {0xa0, 0xee, 0x012b},
-       {0xa0, 0xf4, 0x012c},
-       {0xa0, 0xf9, 0x012d},
-       {0xa0, 0xfc, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x22, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x13, ZC3XX_R120_GAMMA00},       /* gamma 4 */
+       {0xa0, 0x38, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x59, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x92, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa7, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb9, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc8, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd4, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xdf, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xee, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x22, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x05, 0x0009},
        {0xaa, 0x09, 0x0134},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x07, 0x0191},
-       {0xa0, 0xec, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x9c, 0x0197},
-       {0xa0, 0x0e, 0x018c},
-       {0xa0, 0x1c, 0x018f},
-       {0xa0, 0x14, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0xd7, 0x001d},
-       {0xa0, 0xf4, 0x001e},
-       {0xa0, 0xf9, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xec, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x9c, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xf4, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xf9, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 
 static const struct usb_action pb03303x_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x0a, 0x0010},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0xdc, 0x008b},   /* 8b -> dc */
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x03, 0x0012},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xdc, 0x008b},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR}, /* 8b -> dc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR},
        {0xaa, 0x01, 0x0001},
        {0xaa, 0x06, 0x0000},
        {0xaa, 0x08, 0x0483},
@@ -4560,20 +4573,20 @@ static const struct usb_action pb03303x_InitialScale[] = {
        {0xaa, 0x2c, 0x0030},
        {0xaa, 0x2d, 0x0030},
        {0xaa, 0x2e, 0x0028},
-       {0xa0, 0x10, 0x0087},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
+       {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x60, 0x01a8},
-       {0xa0, 0x78, 0x018d},
-       {0xa0, 0x61, 0x0116},
-       {0xa0, 0x65, 0x0118},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x61, ZC3XX_R116_RGAIN},
+       {0xa0, 0x65, ZC3XX_R118_BGAIN},
 
        {0xa1, 0x01, 0x0002},
 
@@ -4583,113 +4596,113 @@ static const struct usb_action pb03303x_InitialScale[] = {
        {0xa0, 0x0d, 0x003a},
        {0xa0, 0x02, 0x003b},
        {0xa0, 0x00, 0x0038},
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x13, 0x0120},   /* gamma 4 */
-       {0xa0, 0x38, 0x0121},
-       {0xa0, 0x59, 0x0122},
-       {0xa0, 0x79, 0x0123},
-       {0xa0, 0x92, 0x0124},
-       {0xa0, 0xa7, 0x0125},
-       {0xa0, 0xb9, 0x0126},
-       {0xa0, 0xc8, 0x0127},
-       {0xa0, 0xd4, 0x0128},
-       {0xa0, 0xdf, 0x0129},
-       {0xa0, 0xe7, 0x012a},
-       {0xa0, 0xee, 0x012b},
-       {0xa0, 0xf4, 0x012c},
-       {0xa0, 0xf9, 0x012d},
-       {0xa0, 0xfc, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x26, 0x0130},
-       {0xa0, 0x22, 0x0131},
-       {0xa0, 0x20, 0x0132},
-       {0xa0, 0x1c, 0x0133},
-       {0xa0, 0x16, 0x0134},
-       {0xa0, 0x13, 0x0135},
-       {0xa0, 0x10, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x06, 0x013b},
-       {0xa0, 0x05, 0x013c},
-       {0xa0, 0x04, 0x013d},
-       {0xa0, 0x03, 0x013e},
-       {0xa0, 0x02, 0x013f},
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x13, ZC3XX_R120_GAMMA00},       /* gamma 4 */
+       {0xa0, 0x38, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x59, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x79, ZC3XX_R123_GAMMA03},
+       {0xa0, 0x92, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xa7, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xb9, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xc8, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xd4, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xdf, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xe7, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xee, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xf4, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xf9, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xfc, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x26, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x22, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x20, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1c, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x16, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x13, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x10, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x06, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x05, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x04, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x03, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x02, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x05, 0x0009},
        {0xaa, 0x09, 0x0134},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x07, 0x0191},
-       {0xa0, 0xec, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x9c, 0x0197},
-       {0xa0, 0x0e, 0x018c},
-       {0xa0, 0x1c, 0x018f},
-       {0xa0, 0x14, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0xd7, 0x001d},
-       {0xa0, 0xf4, 0x001e},
-       {0xa0, 0xf9, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xec, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x9c, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xf4, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xf9, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 static const struct usb_action pb0330xx_Initial[] = {
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x03, 0x0008},   /* 00 */
-       {0xa0, 0x0a, 0x0010},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x07, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0x05, 0x0012},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00 */
+       {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x07, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
        {0xaa, 0x01, 0x0006},
        {0xaa, 0x02, 0x0011},
        {0xaa, 0x03, 0x01e7},
@@ -4706,79 +4719,79 @@ static const struct usb_action pb0330xx_Initial[] = {
        {0xaa, 0x40, 0x01e0},
        {0xaa, 0x58, 0x0078},
        {0xaa, 0x62, 0x0411},
-       {0xa0, 0x10, 0x0087},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
+       {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x60, 0x01a8},
-       {0xa0, 0x6c, 0x018d},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0x6c, ZC3XX_R18D_YTARGET},
        {0xa1, 0x01, 0x0002},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x00, 0x0092},
-       {0xa0, 0x02, 0x0090},
+       {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND},
        {0xa1, 0x01, 0x0091},
        {0xa1, 0x01, 0x0095},
        {0xa1, 0x01, 0x0096},
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x05, 0x0066},
        {0xaa, 0x09, 0x02b2},
        {0xaa, 0x10, 0x0002},
 
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x07, 0x0191},
-       {0xa0, 0x8c, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x8a, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x14, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0xd7, 0x001d},
-       {0xa0, 0xf0, 0x001e},
-       {0xa0, 0xf8, 0x001f},
-       {0xa0, 0xff, 0x0020},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x8c, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x8a, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xf0, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0007},
 /*     {0xa0, 0x30, 0x0007}, */
@@ -4789,22 +4802,22 @@ static const struct usb_action pb0330xx_Initial[] = {
 static const struct usb_action pb0330xx_InitialScale[] = {
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x03, 0x0008},   /* 00 */
-       {0xa0, 0x0a, 0x0010},
-       {0xa0, 0x00, 0x0002},   /* 10 */
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x07, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0x05, 0x0012},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* 00 */
+       {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},   /* 10 */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x07, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
        {0xaa, 0x01, 0x0006},
        {0xaa, 0x02, 0x0011},
        {0xaa, 0x03, 0x01e7},
@@ -4821,78 +4834,78 @@ static const struct usb_action pb0330xx_InitialScale[] = {
        {0xaa, 0x40, 0x01e0},
        {0xaa, 0x58, 0x0078},
        {0xaa, 0x62, 0x0411},
-       {0xa0, 0x10, 0x0087},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
+       {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x60, 0x01a8},
-       {0xa0, 0x6c, 0x018d},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0x6c, ZC3XX_R18D_YTARGET},
        {0xa1, 0x01, 0x0002},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x00, 0x0092},
-       {0xa0, 0x02, 0x0090},
+       {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND},
        {0xa1, 0x01, 0x0091},
        {0xa1, 0x01, 0x0095},
        {0xa1, 0x01, 0x0096},
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x50, 0x010a},   /* matrix */
-       {0xa0, 0xf8, 0x010b},
-       {0xa0, 0xf8, 0x010c},
-       {0xa0, 0xf8, 0x010d},
-       {0xa0, 0x50, 0x010e},
-       {0xa0, 0xf8, 0x010f},
-       {0xa0, 0xf8, 0x0110},
-       {0xa0, 0xf8, 0x0111},
-       {0xa0, 0x50, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x50, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf8, ZC3XX_R10B_RGB01},
+       {0xa0, 0xf8, ZC3XX_R10C_RGB02},
+       {0xa0, 0xf8, ZC3XX_R10D_RGB10},
+       {0xa0, 0x50, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf8, ZC3XX_R10F_RGB12},
+       {0xa0, 0xf8, ZC3XX_R110_RGB20},
+       {0xa0, 0xf8, ZC3XX_R111_RGB21},
+       {0xa0, 0x50, ZC3XX_R112_RGB22},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0x05, 0x0066},
        {0xaa, 0x09, 0x02b2},
        {0xaa, 0x10, 0x0002},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x07, 0x0191},
-       {0xa0, 0x8c, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x8a, 0x0197},
-       {0xa0, 0x10, 0x018c},
-       {0xa0, 0x20, 0x018f},
-       {0xa0, 0x14, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0xd7, 0x001d},
-       {0xa0, 0xf0, 0x001e},
-       {0xa0, 0xf8, 0x001f},
-       {0xa0, 0xff, 0x0020},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x8c, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x8a, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xf0, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0008},
        {0xa1, 0x01, 0x0007},
 /*     {0xa0, 0x30, 0x0007}, */
@@ -4900,136 +4913,136 @@ static const struct usb_action pb0330xx_InitialScale[] = {
        {}
 };
 static const struct usb_action pb0330_50HZ[] = {
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x07, 0x0191}, /* 01,91,07,cc */
-       {0xa0, 0xee, 0x0192}, /* 01,92,ee,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x46, 0x0197}, /* 01,97,46,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x26, 0x01aa}, /* 01,aa,26,cc */
-       {0xa0, 0x68, 0x001d}, /* 00,1d,68,cc */
-       {0xa0, 0x90, 0x001e}, /* 00,1e,90,cc */
-       {0xa0, 0xc8, 0x001f}, /* 00,1f,c8,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */
+       {0xa0, 0xee, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,ee,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x46, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,46,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */
+       {0xa0, 0x68, ZC3XX_R01D_HSYNC_0}, /* 00,1d,68,cc */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1}, /* 00,1e,90,cc */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,c8,cc */
        {}
 };
 static const struct usb_action pb0330_50HZScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x07, 0x0191}, /* 01,91,07,cc */
-       {0xa0, 0xa0, 0x0192}, /* 01,92,a0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x7a, 0x0197}, /* 01,97,7a,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x26, 0x01aa}, /* 01,aa,26,cc */
-       {0xa0, 0xe5, 0x001d}, /* 00,1d,e5,cc */
-       {0xa0, 0xf0, 0x001e}, /* 00,1e,f0,cc */
-       {0xa0, 0xf8, 0x001f}, /* 00,1f,f8,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */
+       {0xa0, 0xa0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,a0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x7a, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,7a,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */
+       {0xa0, 0xe5, ZC3XX_R01D_HSYNC_0}, /* 00,1d,e5,cc */
+       {0xa0, 0xf0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,f0,cc */
+       {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,f8,cc */
        {}
 };
 static const struct usb_action pb0330_60HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x07, 0x0191}, /* 01,91,07,cc */
-       {0xa0, 0xdd, 0x0192}, /* 01,92,dd,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x3d, 0x0197}, /* 01,97,3d,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x26, 0x01aa}, /* 01,aa,26,cc */
-       {0xa0, 0x43, 0x001d}, /* 00,1d,43,cc */
-       {0xa0, 0x50, 0x001e}, /* 00,1e,50,cc */
-       {0xa0, 0x90, 0x001f}, /* 00,1f,90,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */
+       {0xa0, 0xdd, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,dd,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x3d, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,3d,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */
+       {0xa0, 0x43, ZC3XX_R01D_HSYNC_0}, /* 00,1d,43,cc */
+       {0xa0, 0x50, ZC3XX_R01E_HSYNC_1}, /* 00,1e,50,cc */
+       {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, /* 00,1f,90,cc */
        {}
 };
 static const struct usb_action pb0330_60HZScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x07, 0x0191}, /* 01,91,07,cc */
-       {0xa0, 0xa0, 0x0192}, /* 01,92,a0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x7a, 0x0197}, /* 01,97,7a,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x26, 0x01aa}, /* 01,aa,26,cc */
-       {0xa0, 0x41, 0x001d}, /* 00,1d,41,cc */
-       {0xa0, 0x50, 0x001e}, /* 00,1e,50,cc */
-       {0xa0, 0x90, 0x001f}, /* 00,1f,90,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */
+       {0xa0, 0xa0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,a0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x7a, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,7a,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */
+       {0xa0, 0x41, ZC3XX_R01D_HSYNC_0}, /* 00,1d,41,cc */
+       {0xa0, 0x50, ZC3XX_R01E_HSYNC_1}, /* 00,1e,50,cc */
+       {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, /* 00,1f,90,cc */
        {}
 };
 static const struct usb_action pb0330_NoFliker[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x07, 0x0191}, /* 01,91,07,cc */
-       {0xa0, 0xf0, 0x0192}, /* 01,92,f0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0x09, 0x001d}, /* 00,1d,09,cc */
-       {0xa0, 0x40, 0x001e}, /* 00,1e,40,cc */
-       {0xa0, 0x90, 0x001f}, /* 00,1f,90,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */
+       {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0x09, ZC3XX_R01D_HSYNC_0}, /* 00,1d,09,cc */
+       {0xa0, 0x40, ZC3XX_R01E_HSYNC_1}, /* 00,1e,40,cc */
+       {0xa0, 0x90, ZC3XX_R01F_HSYNC_2}, /* 00,1f,90,cc */
        {}
 };
 static const struct usb_action pb0330_NoFlikerScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x07, 0x0191}, /* 01,91,07,cc */
-       {0xa0, 0xf0, 0x0192}, /* 01,92,f0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0x09, 0x001d}, /* 00,1d,09,cc */
-       {0xa0, 0x40, 0x001e}, /* 00,1e,40,cc */
-       {0xa0, 0x90, 0x001f}, /* 00,1f,90,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,07,cc */
+       {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE},      /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE},    /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0x09, ZC3XX_R01D_HSYNC_0},       /* 00,1d,09,cc */
+       {0xa0, 0x40, ZC3XX_R01E_HSYNC_1},       /* 00,1e,40,cc */
+       {0xa0, 0x90, ZC3XX_R01F_HSYNC_2},       /* 00,1f,90,cc */
        {}
 };
 
 /* from oem9.inf - HKR,%PO2030%,Initial - 640x480 - (close to CS2102) */
 static const struct usb_action PO2030_mode0[] = {
-       {0xa0, 0x01, 0x0000}, /* 00,00,01,cc */
-       {0xa0, 0x04, 0x0002}, /* 00,02,04,cc */
-       {0xa0, 0x01, 0x0010}, /* 00,10,01,cc */
-       {0xa0, 0x01, 0x0001}, /* 00,01,01,cc */
-       {0xa0, 0x04, 0x0080}, /* 00,80,04,cc */
-       {0xa0, 0x05, 0x0081}, /* 00,81,05,cc */
-       {0xa0, 0x16, 0x0083}, /* 00,83,16,cc */
-       {0xa0, 0x18, 0x0085}, /* 00,85,18,cc */
-       {0xa0, 0x1a, 0x0086}, /* 00,86,1a,cc */
-       {0xa0, 0x1b, 0x0087}, /* 00,87,1b,cc */
-       {0xa0, 0x1c, 0x0088}, /* 00,88,1c,cc */
-       {0xa0, 0xee, 0x008b}, /* 00,8b,ee,cc */
-       {0xa0, 0x03, 0x0008}, /* 00,08,03,cc */
-       {0xa0, 0x03, 0x0012}, /* 00,12,03,cc */
-       {0xa0, 0x01, 0x0012}, /* 00,12,01,cc */
-       {0xa0, 0x02, 0x0003}, /* 00,03,02,cc */
-       {0xa0, 0x80, 0x0004}, /* 00,04,80,cc */
-       {0xa0, 0x01, 0x0005}, /* 00,05,01,cc */
-       {0xa0, 0xe0, 0x0006}, /* 00,06,e0,cc */
-       {0xa0, 0x42, 0x0180}, /* 01,80,42,cc */
-       {0xaa, 0x8d, 0x0008}, /* 00,8d,08,aa */
-       {0xa0, 0x00, 0x0098}, /* 00,98,00,cc */
-       {0xa0, 0x00, 0x009a}, /* 00,9a,00,cc */
-       {0xa0, 0x00, 0x011a}, /* 01,1a,00,cc */
-       {0xa0, 0x00, 0x011c}, /* 01,1c,00,cc */
-       {0xa0, 0xe6, 0x009c}, /* 00,9c,e6,cc */
-       {0xa0, 0x86, 0x009e}, /* 00,9e,86,cc */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
+       {0xa0, 0x04, ZC3XX_R002_CLOCKSELECT},   /* 00,02,04,cc */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT}, /* 00,10,01,cc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, /* 00,01,01,cc */
+       {0xa0, 0x04, ZC3XX_R080_HBLANKHIGH}, /* 00,80,04,cc */
+       {0xa0, 0x05, ZC3XX_R081_HBLANKLOW}, /* 00,81,05,cc */
+       {0xa0, 0x16, ZC3XX_R083_RGAINADDR}, /* 00,83,16,cc */
+       {0xa0, 0x18, ZC3XX_R085_BGAINADDR}, /* 00,85,18,cc */
+       {0xa0, 0x1a, ZC3XX_R086_EXPTIMEHIGH}, /* 00,86,1a,cc */
+       {0xa0, 0x1b, ZC3XX_R087_EXPTIMEMID}, /* 00,87,1b,cc */
+       {0xa0, 0x1c, ZC3XX_R088_EXPTIMELOW}, /* 00,88,1c,cc */
+       {0xa0, 0xee, ZC3XX_R08B_I2CDEVICEADDR}, /* 00,8b,ee,cc */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* 00,08,03,cc */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,03,cc */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,01,cc */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, /* 00,03,02,cc */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, /* 00,04,80,cc */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, /* 00,05,01,cc */
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW}, /* 00,06,e0,cc */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, /* 01,80,42,cc */
+       {0xaa, 0x8d, 0x0008},                   /* 00,8d,08,aa */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},  /* 00,98,00,cc */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},  /* 00,9a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},     /* 01,1a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},     /* 01,1c,00,cc */
+       {0xa0, 0xe6, ZC3XX_R09C_WINHEIGHTLOW},  /* 00,9c,e6,cc */
+       {0xa0, 0x86, ZC3XX_R09E_WINWIDTHLOW},   /* 00,9e,86,cc */
        {0xaa, 0x09, 0x00ce}, /* 00,09,ce,aa */
        {0xaa, 0x0b, 0x0005}, /* 00,0b,05,aa */
        {0xaa, 0x0d, 0x0054}, /* 00,0d,54,aa */
@@ -5064,49 +5077,49 @@ static const struct usb_action PO2030_mode0[] = {
        {0xaa, 0x6b, 0x00a0}, /* 00,6b,a0,aa */
        {0xaa, 0x6c, 0x0054}, /* 00,6c,54,aa */
        {0xaa, 0xd6, 0x0007}, /* 00,d6,07,aa */
-       {0xa0, 0xf7, 0x0101}, /* 01,01,f7,cc */
-       {0xa0, 0x05, 0x0012}, /* 00,12,05,cc */
-       {0xa0, 0x0d, 0x0100}, /* 01,00,0d,cc */
-       {0xa0, 0x06, 0x0189}, /* 01,89,06,cc */
+       {0xa0, 0xf7, ZC3XX_R101_SENSORCORRECTION}, /* 01,01,f7,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,05,cc */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0d,cc */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, /* 01,89,06,cc */
        {0xa0, 0x00, 0x01ad}, /* 01,ad,00,cc */
-       {0xa0, 0x03, 0x01c5}, /* 01,c5,03,cc */
-       {0xa0, 0x13, 0x01cb}, /* 01,cb,13,cc */
-       {0xa0, 0x08, 0x0250}, /* 02,50,08,cc */
-       {0xa0, 0x08, 0x0301}, /* 03,01,08,cc */
-       {0xa0, 0x7a, 0x0116}, /* 01,16,7a,cc */
-       {0xa0, 0x4a, 0x0118}, /* 01,18,4a,cc */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* 01,c5,03,cc */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, /* 01,cb,13,cc */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* 02,50,08,cc */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, /* 03,01,08,cc */
+       {0xa0, 0x7a, ZC3XX_R116_RGAIN}, /* 01,16,7a,cc */
+       {0xa0, 0x4a, ZC3XX_R118_BGAIN}, /* 01,18,4a,cc */
        {}
 };
 
 /* from oem9.inf - HKR,%PO2030%,InitialScale - 320x240 */
 static const struct usb_action PO2030_mode1[] = {
-       {0xa0, 0x01, 0x0000}, /* 00,00,01,cc */
-       {0xa0, 0x10, 0x0002}, /* 00,02,10,cc */
-       {0xa0, 0x01, 0x0010}, /* 00,10,01,cc */
-       {0xa0, 0x01, 0x0001}, /* 00,01,01,cc */
-       {0xa0, 0x04, 0x0080}, /* 00,80,04,cc */
-       {0xa0, 0x05, 0x0081}, /* 00,81,05,cc */
-       {0xa0, 0x16, 0x0083}, /* 00,83,16,cc */
-       {0xa0, 0x18, 0x0085}, /* 00,85,18,cc */
-       {0xa0, 0x1a, 0x0086}, /* 00,86,1a,cc */
-       {0xa0, 0x1b, 0x0087}, /* 00,87,1b,cc */
-       {0xa0, 0x1c, 0x0088}, /* 00,88,1c,cc */
-       {0xa0, 0xee, 0x008b}, /* 00,8b,ee,cc */
-       {0xa0, 0x03, 0x0008}, /* 00,08,03,cc */
-       {0xa0, 0x03, 0x0012}, /* 00,12,03,cc */
-       {0xa0, 0x01, 0x0012}, /* 00,12,01,cc */
-       {0xa0, 0x02, 0x0003}, /* 00,03,02,cc */
-       {0xa0, 0x80, 0x0004}, /* 00,04,80,cc */
-       {0xa0, 0x01, 0x0005}, /* 00,05,01,cc */
-       {0xa0, 0xe0, 0x0006}, /* 00,06,e0,cc */
-       {0xa0, 0x42, 0x0180}, /* 01,80,42,cc */
-       {0xaa, 0x8d, 0x0008}, /* 00,8d,08,aa */
-       {0xa0, 0x00, 0x0098}, /* 00,98,00,cc */
-       {0xa0, 0x00, 0x009a}, /* 00,9a,00,cc */
-       {0xa0, 0x00, 0x011a}, /* 01,1a,00,cc */
-       {0xa0, 0x00, 0x011c}, /* 01,1c,00,cc */
-       {0xa0, 0xe8, 0x009c}, /* 00,9c,e8,cc */
-       {0xa0, 0x88, 0x009e}, /* 00,9e,88,cc */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT}, /* 00,02,10,cc */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT}, /* 00,10,01,cc */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING}, /* 00,01,01,cc */
+       {0xa0, 0x04, ZC3XX_R080_HBLANKHIGH}, /* 00,80,04,cc */
+       {0xa0, 0x05, ZC3XX_R081_HBLANKLOW}, /* 00,81,05,cc */
+       {0xa0, 0x16, ZC3XX_R083_RGAINADDR}, /* 00,83,16,cc */
+       {0xa0, 0x18, ZC3XX_R085_BGAINADDR}, /* 00,85,18,cc */
+       {0xa0, 0x1a, ZC3XX_R086_EXPTIMEHIGH}, /* 00,86,1a,cc */
+       {0xa0, 0x1b, ZC3XX_R087_EXPTIMEMID}, /* 00,87,1b,cc */
+       {0xa0, 0x1c, ZC3XX_R088_EXPTIMELOW}, /* 00,88,1c,cc */
+       {0xa0, 0xee, ZC3XX_R08B_I2CDEVICEADDR}, /* 00,8b,ee,cc */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING}, /* 00,08,03,cc */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,03,cc */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,01,cc */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH}, /* 00,03,02,cc */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW}, /* 00,04,80,cc */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH}, /* 00,05,01,cc */
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW}, /* 00,06,e0,cc */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, /* 01,80,42,cc */
+       {0xaa, 0x8d, 0x0008},                   /* 00,8d,08,aa */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW}, /* 00,98,00,cc */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW}, /* 00,9a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW}, /* 01,1a,00,cc */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW}, /* 01,1c,00,cc */
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW}, /* 00,9c,e8,cc */
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW}, /* 00,9e,88,cc */
        {0xaa, 0x09, 0x00cc}, /* 00,09,cc,aa */
        {0xaa, 0x0b, 0x0005}, /* 00,0b,05,aa */
        {0xaa, 0x0d, 0x0058}, /* 00,0d,58,aa */
@@ -5141,17 +5154,17 @@ static const struct usb_action PO2030_mode1[] = {
        {0xaa, 0x6b, 0x00a0}, /* 00,6b,a0,aa */
        {0xaa, 0x6c, 0x0054}, /* 00,6c,54,aa */
        {0xaa, 0xd6, 0x0007}, /* 00,d6,07,aa */
-       {0xa0, 0xf7, 0x0101}, /* 01,01,f7,cc */
-       {0xa0, 0x05, 0x0012}, /* 00,12,05,cc */
-       {0xa0, 0x0d, 0x0100}, /* 01,00,0d,cc */
-       {0xa0, 0x06, 0x0189}, /* 01,89,06,cc */
+       {0xa0, 0xf7, ZC3XX_R101_SENSORCORRECTION}, /* 01,01,f7,cc */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC}, /* 00,12,05,cc */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE}, /* 01,00,0d,cc */
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS}, /* 01,89,06,cc */
        {0xa0, 0x00, 0x01ad}, /* 01,ad,00,cc */
-       {0xa0, 0x03, 0x01c5}, /* 01,c5,03,cc */
-       {0xa0, 0x13, 0x01cb}, /* 01,cb,13,cc */
-       {0xa0, 0x08, 0x0250}, /* 02,50,08,cc */
-       {0xa0, 0x08, 0x0301}, /* 03,01,08,cc */
-       {0xa0, 0x7a, 0x0116}, /* 01,16,7a,cc */
-       {0xa0, 0x4a, 0x0118}, /* 01,18,4a,cc */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE}, /* 01,c5,03,cc */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, /* 01,cb,13,cc */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, /* 02,50,08,cc */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, /* 03,01,08,cc */
+       {0xa0, 0x7a, ZC3XX_R116_RGAIN}, /* 01,16,7a,cc */
+       {0xa0, 0x4a, ZC3XX_R118_BGAIN}, /* 01,18,4a,cc */
        {}
 };
 
@@ -5160,20 +5173,20 @@ static const struct usb_action PO2030_50HZ[] = {
        {0xaa, 0x1a, 0x0001}, /* 00,1a,01,aa */
        {0xaa, 0x1b, 0x000a}, /* 00,1b,0a,aa */
        {0xaa, 0x1c, 0x00b0}, /* 00,1c,b0,aa */
-       {0xa0, 0x05, 0x0190}, /* 01,90,05,cc */
-       {0xa0, 0x35, 0x0191}, /* 01,91,35,cc */
-       {0xa0, 0x70, 0x0192}, /* 01,92,70,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x85, 0x0196}, /* 01,96,85,cc */
-       {0xa0, 0x58, 0x0197}, /* 01,97,58,cc */
-       {0xa0, 0x0c, 0x018c}, /* 01,8c,0c,cc */
-       {0xa0, 0x18, 0x018f}, /* 01,8f,18,cc */
-       {0xa0, 0x60, 0x01a8}, /* 01,a8,60,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x22, 0x01aa}, /* 01,aa,22,cc */
-       {0xa0, 0x88, 0x018d}, /* 01,8d,88,cc */
-       {0xa0, 0x58, 0x011d}, /* 01,1d,58,cc */
-       {0xa0, 0x42, 0x0180}, /* 01,80,42,cc */
+       {0xa0, 0x05, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,05,cc */
+       {0xa0, 0x35, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,35,cc */
+       {0xa0, 0x70, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,70,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x85, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,85,cc */
+       {0xa0, 0x58, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,58,cc */
+       {0xa0, 0x0c, ZC3XX_R18C_AEFREEZE}, /* 01,8c,0c,cc */
+       {0xa0, 0x18, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,18,cc */
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, /* 01,a8,60,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x22, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,22,cc */
+       {0xa0, 0x88, ZC3XX_R18D_YTARGET}, /* 01,8d,88,cc */
+       {0xa0, 0x58, ZC3XX_R11D_GLOBALGAIN}, /* 01,1d,58,cc */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE}, /* 01,80,42,cc */
        {}
 };
 
@@ -5182,25 +5195,26 @@ static const struct usb_action PO2030_60HZ[] = {
        {0xaa, 0x1a, 0x0000}, /* 00,1a,00,aa */
        {0xaa, 0x1b, 0x00de}, /* 00,1b,de,aa */
        {0xaa, 0x1c, 0x0040}, /* 00,1c,40,aa */
-       {0xa0, 0x08, 0x0190}, /* 01,90,08,cc */
-       {0xa0, 0xae, 0x0191}, /* 01,91,ae,cc */
-       {0xa0, 0x80, 0x0192}, /* 01,92,80,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x6f, 0x0196}, /* 01,96,6f,cc */
-       {0xa0, 0x20, 0x0197}, /* 01,97,20,cc */
-       {0xa0, 0x0c, 0x018c}, /* 01,8c,0c,cc */
-       {0xa0, 0x18, 0x018f}, /* 01,8f,18,cc */
-       {0xa0, 0x60, 0x01a8}, /* 01,a8,60,cc */
-       {0xa0, 0x10, 0x01a9}, /* 01,a9,10,cc */
-       {0xa0, 0x22, 0x01aa}, /* 01,aa,22,cc */
-       {0xa0, 0x88, 0x018d}, /* 01,8d,88,cc */ /* win: 01,8d,80 */
-       {0xa0, 0x58, 0x011d}, /* 01,1d,58,cc */
-       {0xa0, 0x42, 0x0180}, /* 01,80,42,cc */
+       {0xa0, 0x08, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,08,cc */
+       {0xa0, 0xae, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,ae,cc */
+       {0xa0, 0x80, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,80,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x6f, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,6f,cc */
+       {0xa0, 0x20, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,20,cc */
+       {0xa0, 0x0c, ZC3XX_R18C_AEFREEZE}, /* 01,8c,0c,cc */
+       {0xa0, 0x18, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,18,cc */
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN}, /* 01,a8,60,cc */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,10,cc */
+       {0xa0, 0x22, ZC3XX_R1AA_DIGITALGAINSTEP},       /* 01,aa,22,cc */
+       {0xa0, 0x88, ZC3XX_R18D_YTARGET},               /* 01,8d,88,cc */
+                                                       /* win: 01,8d,80 */
+       {0xa0, 0x58, ZC3XX_R11D_GLOBALGAIN},            /* 01,1d,58,cc */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,42,cc */
        {}
 };
 
 static const struct usb_action PO2030_NoFliker[] = {
-       {0xa0, 0x02, 0x0180}, /* 01,80,02,cc */
+       {0xa0, 0x02, ZC3XX_R180_AUTOCORRECTENABLE}, /* 01,80,02,cc */
        {0xaa, 0x8d, 0x000d}, /* 00,8d,0d,aa */
        {0xaa, 0x1a, 0x0000}, /* 00,1a,00,aa */
        {0xaa, 0x1b, 0x0002}, /* 00,1b,02,aa */
@@ -5212,756 +5226,759 @@ static const struct usb_action PO2030_NoFliker[] = {
 
 /* TEST */
 static const struct usb_action tas5130CK_Initial[] = {
-       {0xa0, 0x01, 0x0000},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
        {0xa0, 0x01, 0x003b},
        {0xa0, 0x0e, 0x003a},
        {0xa0, 0x01, 0x0038},
        {0xa0, 0x0b, 0x0039},
        {0xa0, 0x00, 0x0038},
        {0xa0, 0x0b, 0x0039},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x0a, 0x0010},
-       {0xa0, 0x10, 0x0002},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0xdc, 0x008b},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x07, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xdc, 0x008b},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x01, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x06, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x08, 0x0092},
-       {0xa0, 0x83, 0x0093},
-       {0xa0, 0x04, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x01, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x08, 0x0092},
-       {0xa0, 0x06, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x02, 0x0092},
-       {0xa0, 0x11, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x03, 0x0092},
-       {0xa0, 0xE7, 0x0093},
-       {0xa0, 0x01, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x04, 0x0092},
-       {0xa0, 0x87, 0x0093},
-       {0xa0, 0x02, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x07, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x30, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x51, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x35, 0x0092},
-       {0xa0, 0x7F, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x30, 0x0092},
-       {0xa0, 0x05, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x31, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x58, 0x0092},
-       {0xa0, 0x78, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x62, 0x0092},
-       {0xa0, 0x11, 0x0093},
-       {0xa0, 0x04, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x2B, 0x0092},
-       {0xa0, 0x7f, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x2c, 0x0092},
-       {0xa0, 0x7f, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x2D, 0x0092},
-       {0xa0, 0x7f, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x2e, 0x0092},
-       {0xa0, 0x7f, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x10, 0x0087},
-       {0xa0, 0xb7, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x07, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x06, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x08, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x83, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x04, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x01, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x08, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x06, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x02, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x11, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x03, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xE7, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x01, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x04, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x87, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x02, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x07, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x30, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x51, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x35, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7F, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x30, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x05, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x31, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x58, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x78, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x62, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x11, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x04, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x2B, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7f, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x2c, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7f, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x2D, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7f, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x2e, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7f, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
        {0xa0, 0x09, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x60, 0x01a8},
-       {0xa0, 0x6c, 0x018d},
-       {0xa0, 0x61, 0x0116},
-       {0xa0, 0x65, 0x0118},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0x6c, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x61, ZC3XX_R116_RGAIN},
+       {0xa0, 0x65, ZC3XX_R118_BGAIN},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x4c, 0x010a},   /* matrix */
-       {0xa0, 0xf1, 0x010b},
-       {0xa0, 0x03, 0x010c},
-       {0xa0, 0xfe, 0x010d},
-       {0xa0, 0x51, 0x010e},
-       {0xa0, 0xf1, 0x010f},
-       {0xa0, 0xec, 0x0110},
-       {0xa0, 0x03, 0x0111},
-       {0xa0, 0x51, 0x0112},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x38, 0x0120},   /* gamma > 5 */
-       {0xa0, 0x51, 0x0121},
-       {0xa0, 0x6e, 0x0122},
-       {0xa0, 0x8c, 0x0123},
-       {0xa0, 0xa2, 0x0124},
-       {0xa0, 0xb6, 0x0125},
-       {0xa0, 0xc8, 0x0126},
-       {0xa0, 0xd6, 0x0127},
-       {0xa0, 0xe2, 0x0128},
-       {0xa0, 0xed, 0x0129},
-       {0xa0, 0xf5, 0x012a},
-       {0xa0, 0xfc, 0x012b},
-       {0xa0, 0xff, 0x012c},
-       {0xa0, 0xff, 0x012d},
-       {0xa0, 0xff, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x12, 0x0130},
-       {0xa0, 0x1b, 0x0131},
-       {0xa0, 0x1d, 0x0132},
-       {0xa0, 0x1a, 0x0133},
-       {0xa0, 0x15, 0x0134},
-       {0xa0, 0x12, 0x0135},
-       {0xa0, 0x0f, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x05, 0x013b},
-       {0xa0, 0x00, 0x013c},
-       {0xa0, 0x00, 0x013d},
-       {0xa0, 0x00, 0x013e},
-       {0xa0, 0x01, 0x013f},
-       {0xa0, 0x4c, 0x010a},   /* matrix */
-       {0xa0, 0xf1, 0x010b},
-       {0xa0, 0x03, 0x010c},
-       {0xa0, 0xfe, 0x010d},
-       {0xa0, 0x51, 0x010e},
-       {0xa0, 0xf1, 0x010f},
-       {0xa0, 0xec, 0x0110},
-       {0xa0, 0x03, 0x0111},
-       {0xa0, 0x51, 0x0112},
-       {0xa0, 0x10, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x05, 0x0092},
-       {0xa0, 0x09, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x09, 0x0092},
-       {0xa0, 0x34, 0x0093},
-       {0xa0, 0x01, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x07, 0x0191},
-       {0xa0, 0xd2, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x9a, 0x0197},
-       {0xa0, 0x0e, 0x018c},
-       {0xa0, 0x1c, 0x018f},
-       {0xa0, 0x14, 0x01a9},
-       {0xa0, 0x66, 0x01aa},
-       {0xa0, 0xd7, 0x001d},
-       {0xa0, 0xf4, 0x001e},
-       {0xa0, 0xf9, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x4c, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf1, ZC3XX_R10B_RGB01},
+       {0xa0, 0x03, ZC3XX_R10C_RGB02},
+       {0xa0, 0xfe, ZC3XX_R10D_RGB10},
+       {0xa0, 0x51, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf1, ZC3XX_R10F_RGB12},
+       {0xa0, 0xec, ZC3XX_R110_RGB20},
+       {0xa0, 0x03, ZC3XX_R111_RGB21},
+       {0xa0, 0x51, ZC3XX_R112_RGB22},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x38, ZC3XX_R120_GAMMA00},       /* gamma > 5 */
+       {0xa0, 0x51, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x6e, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x8c, ZC3XX_R123_GAMMA03},
+       {0xa0, 0xa2, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xb6, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xc8, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xd6, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xe2, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xed, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xf5, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xfc, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xff, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xff, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xff, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x12, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x1b, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x1d, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1a, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x15, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x12, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x0f, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x05, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x00, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x00, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x00, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x01, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x4c, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf1, ZC3XX_R10B_RGB01},
+       {0xa0, 0x03, ZC3XX_R10C_RGB02},
+       {0xa0, 0xfe, ZC3XX_R10D_RGB10},
+       {0xa0, 0x51, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf1, ZC3XX_R10F_RGB12},
+       {0xa0, 0xec, ZC3XX_R110_RGB20},
+       {0xa0, 0x03, ZC3XX_R111_RGB21},
+       {0xa0, 0x51, ZC3XX_R112_RGB22},
+       {0xa0, 0x10, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x05, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x09, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x09, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x34, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x01, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x07, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0xd2, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x9a, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x66, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0xd7, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xf4, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xf9, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x40, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 
 static const struct usb_action tas5130CK_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
        {0xa0, 0x01, 0x003b},
        {0xa0, 0x0e, 0x003a},
        {0xa0, 0x01, 0x0038},
        {0xa0, 0x0b, 0x0039},
        {0xa0, 0x00, 0x0038},
        {0xa0, 0x0b, 0x0039},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x0a, 0x0010},
-       {0xa0, 0x00, 0x0002},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0xdc, 0x008b},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x07, 0x0012},
-       {0xa0, 0x00, 0x0098},
-       {0xa0, 0x00, 0x009a},
-       {0xa0, 0x00, 0x011a},
-       {0xa0, 0x00, 0x011c},
-       {0xa0, 0xdc, 0x008b},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x01, 0x0092},
-       {0xa0, 0x01, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x06, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x08, 0x0092},
-       {0xa0, 0x83, 0x0093},
-       {0xa0, 0x04, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x01, 0x0092},
-       {0xa0, 0x04, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x08, 0x0092},
-       {0xa0, 0x06, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x02, 0x0092},
-       {0xa0, 0x11, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x03, 0x0092},
-       {0xa0, 0xe5, 0x0093},
-       {0xa0, 0x01, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x04, 0x0092},
-       {0xa0, 0x85, 0x0093},
-       {0xa0, 0x02, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x07, 0x0092},
-       {0xa0, 0x02, 0x0093},
-       {0xa0, 0x30, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x20, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x51, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x35, 0x0092},
-       {0xa0, 0x7F, 0x0093},
-       {0xa0, 0x50, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x30, 0x0092},
-       {0xa0, 0x05, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x31, 0x0092},
-       {0xa0, 0x00, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x58, 0x0092},
-       {0xa0, 0x78, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x62, 0x0092},
-       {0xa0, 0x11, 0x0093},
-       {0xa0, 0x04, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x2B, 0x0092},
-       {0xa0, 0x7f, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x2C, 0x0092},
-       {0xa0, 0x7F, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x2D, 0x0092},
-       {0xa0, 0x7f, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x2e, 0x0092},
-       {0xa0, 0x7f, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x10, 0x0087},
-       {0xa0, 0xb7, 0x0101},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x0a, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x07, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xdc, ZC3XX_R08B_I2CDEVICEADDR},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x01, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x06, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x08, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x83, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x04, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x01, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x04, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x08, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x06, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x02, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x11, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x03, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xe5, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x01, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x04, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x85, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x02, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x07, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x02, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x30, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x20, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x51, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x35, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7F, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x50, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x30, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x05, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x31, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x00, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x58, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x78, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x62, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x11, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x04, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x2B, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7f, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x2C, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7F, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x2D, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7f, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x2e, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x7f, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID},
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
        {0xa0, 0x09, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
-       {0xa0, 0x60, 0x01a8},
-       {0xa0, 0x6c, 0x018d},
-       {0xa0, 0x61, 0x0116},
-       {0xa0, 0x65, 0x0118},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
+       {0xa0, 0x6c, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x61, ZC3XX_R116_RGAIN},
+       {0xa0, 0x65, ZC3XX_R118_BGAIN},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x4c, 0x010a},   /* matrix */
-       {0xa0, 0xf1, 0x010b},
-       {0xa0, 0x03, 0x010c},
-       {0xa0, 0xfe, 0x010d},
-       {0xa0, 0x51, 0x010e},
-       {0xa0, 0xf1, 0x010f},
-       {0xa0, 0xec, 0x0110},
-       {0xa0, 0x03, 0x0111},
-       {0xa0, 0x51, 0x0112},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-       {0xa0, 0x38, 0x0120},   /* gamma > 5 */
-       {0xa0, 0x51, 0x0121},
-       {0xa0, 0x6e, 0x0122},
-       {0xa0, 0x8c, 0x0123},
-       {0xa0, 0xa2, 0x0124},
-       {0xa0, 0xb6, 0x0125},
-       {0xa0, 0xc8, 0x0126},
-       {0xa0, 0xd6, 0x0127},
-       {0xa0, 0xe2, 0x0128},
-       {0xa0, 0xed, 0x0129},
-       {0xa0, 0xf5, 0x012a},
-       {0xa0, 0xfc, 0x012b},
-       {0xa0, 0xff, 0x012c},
-       {0xa0, 0xff, 0x012d},
-       {0xa0, 0xff, 0x012e},
-       {0xa0, 0xff, 0x012f},
-       {0xa0, 0x12, 0x0130},
-       {0xa0, 0x1b, 0x0131},
-       {0xa0, 0x1d, 0x0132},
-       {0xa0, 0x1a, 0x0133},
-       {0xa0, 0x15, 0x0134},
-       {0xa0, 0x12, 0x0135},
-       {0xa0, 0x0f, 0x0136},
-       {0xa0, 0x0d, 0x0137},
-       {0xa0, 0x0b, 0x0138},
-       {0xa0, 0x09, 0x0139},
-       {0xa0, 0x07, 0x013a},
-       {0xa0, 0x05, 0x013b},
-       {0xa0, 0x00, 0x013c},
-       {0xa0, 0x00, 0x013d},
-       {0xa0, 0x00, 0x013e},
-       {0xa0, 0x01, 0x013f},
-       {0xa0, 0x4c, 0x010a},   /* matrix */
-       {0xa0, 0xf1, 0x010b},
-       {0xa0, 0x03, 0x010c},
-       {0xa0, 0xfe, 0x010d},
-       {0xa0, 0x51, 0x010e},
-       {0xa0, 0xf1, 0x010f},
-       {0xa0, 0xec, 0x0110},
-       {0xa0, 0x03, 0x0111},
-       {0xa0, 0x51, 0x0112},
-       {0xa0, 0x10, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
-       {0xa0, 0x05, 0x0092},
-       {0xa0, 0x62, 0x0093},
-       {0xa0, 0x00, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x09, 0x0092},
-       {0xa0, 0xaa, 0x0093},
-       {0xa0, 0x01, 0x0094},
-       {0xa0, 0x01, 0x0090},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x03, 0x0191},
-       {0xa0, 0x9b, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x47, 0x0197},
-       {0xa0, 0x0e, 0x018c},
-       {0xa0, 0x1c, 0x018f},
-       {0xa0, 0x14, 0x01a9},
-       {0xa0, 0x66, 0x01aa},
-       {0xa0, 0x62, 0x001d},
-       {0xa0, 0x90, 0x001e},
-       {0xa0, 0xc8, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x60, 0x011d},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x4c, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf1, ZC3XX_R10B_RGB01},
+       {0xa0, 0x03, ZC3XX_R10C_RGB02},
+       {0xa0, 0xfe, ZC3XX_R10D_RGB10},
+       {0xa0, 0x51, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf1, ZC3XX_R10F_RGB12},
+       {0xa0, 0xec, ZC3XX_R110_RGB20},
+       {0xa0, 0x03, ZC3XX_R111_RGB21},
+       {0xa0, 0x51, ZC3XX_R112_RGB22},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+       {0xa0, 0x38, ZC3XX_R120_GAMMA00},       /* gamma > 5 */
+       {0xa0, 0x51, ZC3XX_R121_GAMMA01},
+       {0xa0, 0x6e, ZC3XX_R122_GAMMA02},
+       {0xa0, 0x8c, ZC3XX_R123_GAMMA03},
+       {0xa0, 0xa2, ZC3XX_R124_GAMMA04},
+       {0xa0, 0xb6, ZC3XX_R125_GAMMA05},
+       {0xa0, 0xc8, ZC3XX_R126_GAMMA06},
+       {0xa0, 0xd6, ZC3XX_R127_GAMMA07},
+       {0xa0, 0xe2, ZC3XX_R128_GAMMA08},
+       {0xa0, 0xed, ZC3XX_R129_GAMMA09},
+       {0xa0, 0xf5, ZC3XX_R12A_GAMMA0A},
+       {0xa0, 0xfc, ZC3XX_R12B_GAMMA0B},
+       {0xa0, 0xff, ZC3XX_R12C_GAMMA0C},
+       {0xa0, 0xff, ZC3XX_R12D_GAMMA0D},
+       {0xa0, 0xff, ZC3XX_R12E_GAMMA0E},
+       {0xa0, 0xff, ZC3XX_R12F_GAMMA0F},
+       {0xa0, 0x12, ZC3XX_R130_GAMMA10},
+       {0xa0, 0x1b, ZC3XX_R131_GAMMA11},
+       {0xa0, 0x1d, ZC3XX_R132_GAMMA12},
+       {0xa0, 0x1a, ZC3XX_R133_GAMMA13},
+       {0xa0, 0x15, ZC3XX_R134_GAMMA14},
+       {0xa0, 0x12, ZC3XX_R135_GAMMA15},
+       {0xa0, 0x0f, ZC3XX_R136_GAMMA16},
+       {0xa0, 0x0d, ZC3XX_R137_GAMMA17},
+       {0xa0, 0x0b, ZC3XX_R138_GAMMA18},
+       {0xa0, 0x09, ZC3XX_R139_GAMMA19},
+       {0xa0, 0x07, ZC3XX_R13A_GAMMA1A},
+       {0xa0, 0x05, ZC3XX_R13B_GAMMA1B},
+       {0xa0, 0x00, ZC3XX_R13C_GAMMA1C},
+       {0xa0, 0x00, ZC3XX_R13D_GAMMA1D},
+       {0xa0, 0x00, ZC3XX_R13E_GAMMA1E},
+       {0xa0, 0x01, ZC3XX_R13F_GAMMA1F},
+       {0xa0, 0x4c, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xf1, ZC3XX_R10B_RGB01},
+       {0xa0, 0x03, ZC3XX_R10C_RGB02},
+       {0xa0, 0xfe, ZC3XX_R10D_RGB10},
+       {0xa0, 0x51, ZC3XX_R10E_RGB11},
+       {0xa0, 0xf1, ZC3XX_R10F_RGB12},
+       {0xa0, 0xec, ZC3XX_R110_RGB20},
+       {0xa0, 0x03, ZC3XX_R111_RGB21},
+       {0xa0, 0x51, ZC3XX_R112_RGB22},
+       {0xa0, 0x10, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
+       {0xa0, 0x05, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0x62, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x00, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x09, ZC3XX_R092_I2CADDRESSSELECT},
+       {0xa0, 0xaa, ZC3XX_R093_I2CSETVALUE},
+       {0xa0, 0x01, ZC3XX_R094_I2CWRITEACK},
+       {0xa0, 0x01, ZC3XX_R090_I2CCOMMAND},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x9b, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x47, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x1c, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x14, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x66, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x60, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa0, 0x09, 0x01ad},
        {0xa0, 0x15, 0x01ae},
-       {0xa0, 0x40, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa0, 0x30, 0x0007},
-       {0xa0, 0x02, 0x0008},
+       {0xa0, 0x02, ZC3XX_R008_CLOCKSETTING},
        {0xa0, 0x00, 0x0007},
-       {0xa0, 0x03, 0x0008},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
        {}
 };
 
 static const struct usb_action tas5130cxx_Initial[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x50, 0x0002},
-       {0xa0, 0x03, 0x0008},
-       {0xa0, 0x02, 0x0010},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x00, 0x0001},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x07, 0x00a5},
-       {0xa0, 0x02, 0x00a6},
-
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-
-       {0xa0, 0x04, 0x0098},
-       {0xa0, 0x0f, 0x009a},
-       {0xa0, 0x04, 0x011a},
-       {0xa0, 0x0f, 0x011c},
-       {0xa0, 0xe8, 0x009c},
-       {0xa0, 0x02, 0x009d},
-       {0xa0, 0x88, 0x009e},
-       {0xa0, 0x06, 0x008d},
-       {0xa0, 0xf7, 0x0101},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x68, 0x018d},
-       {0xa0, 0x60, 0x01a8},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x50, ZC3XX_R002_CLOCKSELECT},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
+       {0xa0, 0x02, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x00, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x07, ZC3XX_R0A5_EXPOSUREGAIN},
+       {0xa0, 0x02, ZC3XX_R0A6_EXPOSUREBLACKLVL},
+
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+
+       {0xa0, 0x04, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x0f, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x04, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x0f, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH},
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x06, ZC3XX_R08D_COMPABILITYMODE},
+       {0xa0, 0xf7, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x68, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
-       {0xa0, 0x03, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},  /* clock ? */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x68, 0x010a},   /* matrix */
-       {0xa0, 0xec, 0x010b},
-       {0xa0, 0xec, 0x010c},
-       {0xa0, 0xec, 0x010d},
-       {0xa0, 0x68, 0x010e},
-       {0xa0, 0xec, 0x010f},
-       {0xa0, 0xec, 0x0110},
-       {0xa0, 0xec, 0x0111},
-       {0xa0, 0x68, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x68, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xec, ZC3XX_R10B_RGB01},
+       {0xa0, 0xec, ZC3XX_R10C_RGB02},
+       {0xa0, 0xec, ZC3XX_R10D_RGB10},
+       {0xa0, 0x68, ZC3XX_R10E_RGB11},
+       {0xa0, 0xec, ZC3XX_R10F_RGB12},
+       {0xa0, 0xec, ZC3XX_R110_RGB20},
+       {0xa0, 0xec, ZC3XX_R111_RGB21},
+       {0xa0, 0x68, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x018d},
-       {0xa0, 0x90, 0x018d},   /* 90 */
+       {0xa0, 0x90, ZC3XX_R18D_YTARGET},       /* 90 */
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
 
        {0xaa, 0xa3, 0x0001},
        {0xaa, 0xa4, 0x0077},
-       {0xa0, 0x01, 0x00a3},
-       {0xa0, 0x77, 0x00a4},
-
-       {0xa0, 0x00, 0x0190},   /* 00 */
-       {0xa0, 0x03, 0x0191},   /* 03 */
-       {0xa0, 0xe8, 0x0192},   /* e8 */
-       {0xa0, 0x00, 0x0195},   /* 0 */
-       {0xa0, 0x00, 0x0196},   /* 0 */
-       {0xa0, 0x7d, 0x0197},   /* 7d */
-
-       {0xa0, 0x0c, 0x018c},
-       {0xa0, 0x18, 0x018f},
-       {0xa0, 0x08, 0x01a9},   /* 08 */
-       {0xa0, 0x24, 0x01aa},   /* 24 */
-       {0xa0, 0xf0, 0x001d},
-       {0xa0, 0xf4, 0x001e},
-       {0xa0, 0xf8, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x03, 0x009f},
-       {0xa0, 0xc0, 0x00a0},
-       {0xa0, 0x50, 0x011d},   /* 50 */
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH},
+       {0xa0, 0x77, ZC3XX_R0A4_EXPOSURETIMELOW},
+
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 00 */
+       {0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID},      /* 03 */
+       {0xa0, 0xe8, ZC3XX_R192_EXPOSURELIMITLOW},      /* e8 */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 0 */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 0 */
+       {0xa0, 0x7d, ZC3XX_R197_ANTIFLICKERLOW},        /* 7d */
+
+       {0xa0, 0x0c, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x18, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x08, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* 08 */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},       /* 24 */
+       {0xa0, 0xf0, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xf4, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x03, ZC3XX_R09F_MAXXHIGH},
+       {0xa0, 0xc0, ZC3XX_R0A0_MAXXLOW},
+       {0xa0, 0x50, ZC3XX_R11D_GLOBALGAIN},    /* 50 */
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 static const struct usb_action tas5130cxx_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x01, 0x0000},
-       {0xa0, 0x40, 0x0002},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
+       {0xa0, 0x40, ZC3XX_R002_CLOCKSELECT},
 
-       {0xa0, 0x03, 0x0008},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
        {0xa1, 0x01, 0x0008},
 
-       {0xa0, 0x02, 0x0010},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x00, 0x0001},
-       {0xa0, 0x01, 0x0012},
-       {0xa0, 0x01, 0x0001},
-       {0xa0, 0x05, 0x0012},
-       {0xa0, 0x07, 0x00a5},
-       {0xa0, 0x02, 0x00a6},
-       {0xa0, 0x02, 0x0003},
-       {0xa0, 0x80, 0x0004},
-       {0xa0, 0x01, 0x0005},
-       {0xa0, 0xe0, 0x0006},
-       {0xa0, 0x05, 0x0098},
-       {0xa0, 0x0f, 0x009a},
-       {0xa0, 0x05, 0x011a},
-       {0xa0, 0x0f, 0x011c},
-       {0xa0, 0xe6, 0x009c},
-       {0xa0, 0x02, 0x009d},
-       {0xa0, 0x86, 0x009e},
-       {0xa0, 0x06, 0x008d},
-       {0xa0, 0x37, 0x0101},
-       {0xa0, 0x0d, 0x0100},
-       {0xa0, 0x06, 0x0189},
-       {0xa0, 0x68, 0x018d},
-       {0xa0, 0x60, 0x01a8},
+       {0xa0, 0x02, ZC3XX_R010_CMOSSENSORSELECT},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x00, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},
+       {0xa0, 0x07, ZC3XX_R0A5_EXPOSUREGAIN},
+       {0xa0, 0x02, ZC3XX_R0A6_EXPOSUREBLACKLVL},
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},
+       {0xa0, 0x05, ZC3XX_R098_WINYSTARTLOW},
+       {0xa0, 0x0f, ZC3XX_R09A_WINXSTARTLOW},
+       {0xa0, 0x05, ZC3XX_R11A_FIRSTYLOW},
+       {0xa0, 0x0f, ZC3XX_R11C_FIRSTXLOW},
+       {0xa0, 0xe6, ZC3XX_R09C_WINHEIGHTLOW},
+       {0xa0, 0x02, ZC3XX_R09D_WINWIDTHHIGH},
+       {0xa0, 0x86, ZC3XX_R09E_WINWIDTHLOW},
+       {0xa0, 0x06, ZC3XX_R08D_COMPABILITYMODE},
+       {0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},
+       {0xa0, 0x06, ZC3XX_R189_AWBSTATUS},
+       {0xa0, 0x68, ZC3XX_R18D_YTARGET},
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},
        {0xa0, 0x00, 0x01ad},
-       {0xa0, 0x03, 0x01c5},
-       {0xa0, 0x13, 0x01cb},
-       {0xa0, 0x08, 0x0250},
-       {0xa0, 0x08, 0x0301},
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
        {0xa1, 0x01, 0x0002},
        {0xa1, 0x01, 0x0008},
 
-       {0xa0, 0x03, 0x0008},
+       {0xa0, 0x03, ZC3XX_R008_CLOCKSETTING},
        {0xa1, 0x01, 0x0008},   /* clock ? */
-       {0xa0, 0x08, 0x01c6},   /* sharpness+ */
+       {0xa0, 0x08, ZC3XX_R1C6_SHARPNESS00},   /* sharpness+ */
        {0xa1, 0x01, 0x01c8},
        {0xa1, 0x01, 0x01c9},
        {0xa1, 0x01, 0x01ca},
-       {0xa0, 0x0f, 0x01cb},   /* sharpness- */
-
-       {0xa0, 0x68, 0x010a},   /* matrix */
-       {0xa0, 0xec, 0x010b},
-       {0xa0, 0xec, 0x010c},
-       {0xa0, 0xec, 0x010d},
-       {0xa0, 0x68, 0x010e},
-       {0xa0, 0xec, 0x010f},
-       {0xa0, 0xec, 0x0110},
-       {0xa0, 0xec, 0x0111},
-       {0xa0, 0x68, 0x0112},
+       {0xa0, 0x0f, ZC3XX_R1CB_SHARPNESS05},   /* sharpness- */
+
+       {0xa0, 0x68, ZC3XX_R10A_RGB00}, /* matrix */
+       {0xa0, 0xec, ZC3XX_R10B_RGB01},
+       {0xa0, 0xec, ZC3XX_R10C_RGB02},
+       {0xa0, 0xec, ZC3XX_R10D_RGB10},
+       {0xa0, 0x68, ZC3XX_R10E_RGB11},
+       {0xa0, 0xec, ZC3XX_R10F_RGB12},
+       {0xa0, 0xec, ZC3XX_R110_RGB20},
+       {0xa0, 0xec, ZC3XX_R111_RGB21},
+       {0xa0, 0x68, ZC3XX_R112_RGB22},
 
        {0xa1, 0x01, 0x018d},
-       {0xa0, 0x90, 0x018d},
+       {0xa0, 0x90, ZC3XX_R18D_YTARGET},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x00, 0x0180},
-       {0xa0, 0x00, 0x0019},
+       {0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS},
        {0xaa, 0xa3, 0x0001},
        {0xaa, 0xa4, 0x0063},
-       {0xa0, 0x01, 0x00a3},
-       {0xa0, 0x63, 0x00a4},
-       {0xa0, 0x00, 0x0190},
-       {0xa0, 0x02, 0x0191},
-       {0xa0, 0x38, 0x0192},
-       {0xa0, 0x00, 0x0195},
-       {0xa0, 0x00, 0x0196},
-       {0xa0, 0x47, 0x0197},
-       {0xa0, 0x0c, 0x018c},
-       {0xa0, 0x18, 0x018f},
-       {0xa0, 0x08, 0x01a9},
-       {0xa0, 0x24, 0x01aa},
-       {0xa0, 0xd3, 0x001d},
-       {0xa0, 0xda, 0x001e},
-       {0xa0, 0xea, 0x001f},
-       {0xa0, 0xff, 0x0020},
-       {0xa0, 0x03, 0x009f},
-       {0xa0, 0x4c, 0x00a0},
-       {0xa0, 0x50, 0x011d},
-       {0xa0, 0x40, 0x0180},
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH},
+       {0xa0, 0x63, ZC3XX_R0A4_EXPOSURETIMELOW},
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID},
+       {0xa0, 0x38, ZC3XX_R192_EXPOSURELIMITLOW},
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},
+       {0xa0, 0x47, ZC3XX_R197_ANTIFLICKERLOW},
+       {0xa0, 0x0c, ZC3XX_R18C_AEFREEZE},
+       {0xa0, 0x18, ZC3XX_R18F_AEUNFREEZE},
+       {0xa0, 0x08, ZC3XX_R1A9_DIGITALLIMITDIFF},
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},
+       {0xa0, 0xd3, ZC3XX_R01D_HSYNC_0},
+       {0xa0, 0xda, ZC3XX_R01E_HSYNC_1},
+       {0xa0, 0xea, ZC3XX_R01F_HSYNC_2},
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},
+       {0xa0, 0x03, ZC3XX_R09F_MAXXHIGH},
+       {0xa0, 0x4c, ZC3XX_R0A0_MAXXLOW},
+       {0xa0, 0x50, ZC3XX_R11D_GLOBALGAIN},
+       {0xa0, 0x40, ZC3XX_R180_AUTOCORRECTENABLE},
        {0xa1, 0x01, 0x0180},
-       {0xa0, 0x42, 0x0180},
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},
        {}
 };
 static const struct usb_action tas5130cxx_50HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0xa3, 0x0001}, /* 00,a3,01,aa */
        {0xaa, 0xa4, 0x0063}, /* 00,a4,63,aa */
-       {0xa0, 0x01, 0x00a3}, /* 00,a3,01,cc */
-       {0xa0, 0x63, 0x00a4}, /* 00,a4,63,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x02, 0x0191}, /* 01,91,02,cc */
-       {0xa0, 0x38, 0x0192}, /* 01,92,38,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x47, 0x0197}, /* 01,97,47,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x26, 0x01aa}, /* 01,aa,26,cc */
-       {0xa0, 0xd3, 0x001d}, /* 00,1d,d3,cc */
-       {0xa0, 0xda, 0x001e}, /* 00,1e,da,cc */
-       {0xa0, 0xea, 0x001f}, /* 00,1f,ea,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x03, 0x009f}, /* 00,9f,03,cc */
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,01,cc */
+       {0xa0, 0x63, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,63,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x02, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,02,cc */
+       {0xa0, 0x38, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,38,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x47, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,47,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */
+       {0xa0, 0xd3, ZC3XX_R01D_HSYNC_0}, /* 00,1d,d3,cc */
+       {0xa0, 0xda, ZC3XX_R01E_HSYNC_1}, /* 00,1e,da,cc */
+       {0xa0, 0xea, ZC3XX_R01F_HSYNC_2}, /* 00,1f,ea,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x03, ZC3XX_R09F_MAXXHIGH}, /* 00,9f,03,cc */
        {}
 };
 static const struct usb_action tas5130cxx_50HZScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0xa3, 0x0001}, /* 00,a3,01,aa */
        {0xaa, 0xa4, 0x0077}, /* 00,a4,77,aa */
-       {0xa0, 0x01, 0x00a3}, /* 00,a3,01,cc */
-       {0xa0, 0x77, 0x00a4}, /* 00,a4,77,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x03, 0x0191}, /* 01,91,03,cc */
-       {0xa0, 0xe8, 0x0192}, /* 01,92,e8,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x7d, 0x0197}, /* 01,97,7d,cc */
-       {0xa0, 0x14, 0x018c}, /* 01,8c,14,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x26, 0x01aa}, /* 01,aa,26,cc */
-       {0xa0, 0xf0, 0x001d}, /* 00,1d,f0,cc */
-       {0xa0, 0xf4, 0x001e}, /* 00,1e,f4,cc */
-       {0xa0, 0xf8, 0x001f}, /* 00,1f,f8,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x03, 0x009f}, /* 00,9f,03,cc */
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,01,cc */
+       {0xa0, 0x77, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,77,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,03,cc */
+       {0xa0, 0xe8, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,e8,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x7d, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,7d,cc */
+       {0xa0, 0x14, ZC3XX_R18C_AEFREEZE}, /* 01,8c,14,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */
+       {0xa0, 0xf0, ZC3XX_R01D_HSYNC_0}, /* 00,1d,f0,cc */
+       {0xa0, 0xf4, ZC3XX_R01E_HSYNC_1}, /* 00,1e,f4,cc */
+       {0xa0, 0xf8, ZC3XX_R01F_HSYNC_2}, /* 00,1f,f8,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x03, ZC3XX_R09F_MAXXHIGH}, /* 00,9f,03,cc */
        {}
 };
 static const struct usb_action tas5130cxx_60HZ[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0xa3, 0x0001}, /* 00,a3,01,aa */
        {0xaa, 0xa4, 0x0036}, /* 00,a4,36,aa */
-       {0xa0, 0x01, 0x00a3}, /* 00,a3,01,cc */
-       {0xa0, 0x36, 0x00a4}, /* 00,a4,36,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x01, 0x0191}, /* 01,91,01,cc */
-       {0xa0, 0xf0, 0x0192}, /* 01,92,f0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x3e, 0x0197}, /* 01,97,3e,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x26, 0x01aa}, /* 01,aa,26,cc */
-       {0xa0, 0xca, 0x001d}, /* 00,1d,ca,cc */
-       {0xa0, 0xd0, 0x001e}, /* 00,1e,d0,cc */
-       {0xa0, 0xe0, 0x001f}, /* 00,1f,e0,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x03, 0x009f}, /* 00,9f,03,cc */
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,01,cc */
+       {0xa0, 0x36, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,36,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x01, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,01,cc */
+       {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x3e, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,3e,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */
+       {0xa0, 0xca, ZC3XX_R01D_HSYNC_0}, /* 00,1d,ca,cc */
+       {0xa0, 0xd0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d0,cc */
+       {0xa0, 0xe0, ZC3XX_R01F_HSYNC_2}, /* 00,1f,e0,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x03, ZC3XX_R09F_MAXXHIGH}, /* 00,9f,03,cc */
        {}
 };
 static const struct usb_action tas5130cxx_60HZScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0xa3, 0x0001}, /* 00,a3,01,aa */
        {0xaa, 0xa4, 0x0077}, /* 00,a4,77,aa */
-       {0xa0, 0x01, 0x00a3}, /* 00,a3,01,cc */
-       {0xa0, 0x77, 0x00a4}, /* 00,a4,77,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x03, 0x0191}, /* 01,91,03,cc */
-       {0xa0, 0xe8, 0x0192}, /* 01,92,e8,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x7d, 0x0197}, /* 01,97,7d,cc */
-       {0xa0, 0x14, 0x018c}, /* 01,8c,14,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x0c, 0x01a9}, /* 01,a9,0c,cc */
-       {0xa0, 0x26, 0x01aa}, /* 01,aa,26,cc */
-       {0xa0, 0xc8, 0x001d}, /* 00,1d,c8,cc */
-       {0xa0, 0xd0, 0x001e}, /* 00,1e,d0,cc */
-       {0xa0, 0xe0, 0x001f}, /* 00,1f,e0,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x03, 0x009f}, /* 00,9f,03,cc */
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,01,cc */
+       {0xa0, 0x77, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,77,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,03,cc */
+       {0xa0, 0xe8, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,e8,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x7d, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,7d,cc */
+       {0xa0, 0x14, ZC3XX_R18C_AEFREEZE}, /* 01,8c,14,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x0c, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,0c,cc */
+       {0xa0, 0x26, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,26,cc */
+       {0xa0, 0xc8, ZC3XX_R01D_HSYNC_0}, /* 00,1d,c8,cc */
+       {0xa0, 0xd0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d0,cc */
+       {0xa0, 0xe0, ZC3XX_R01F_HSYNC_2}, /* 00,1f,e0,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x03, ZC3XX_R09F_MAXXHIGH}, /* 00,9f,03,cc */
        {}
 };
 static const struct usb_action tas5130cxx_NoFliker[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0xa3, 0x0001}, /* 00,a3,01,aa */
        {0xaa, 0xa4, 0x0040}, /* 00,a4,40,aa */
-       {0xa0, 0x01, 0x00a3}, /* 00,a3,01,cc */
-       {0xa0, 0x40, 0x00a4}, /* 00,a4,40,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x01, 0x0191}, /* 01,91,01,cc */
-       {0xa0, 0xf0, 0x0192}, /* 01,92,f0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0xbc, 0x001d}, /* 00,1d,bc,cc */
-       {0xa0, 0xd0, 0x001e}, /* 00,1e,d0,cc */
-       {0xa0, 0xe0, 0x001f}, /* 00,1f,e0,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x02, 0x009f}, /* 00,9f,02,cc */
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,01,cc */
+       {0xa0, 0x40, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,40,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x01, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,01,cc */
+       {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0xbc, ZC3XX_R01D_HSYNC_0}, /* 00,1d,bc,cc */
+       {0xa0, 0xd0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d0,cc */
+       {0xa0, 0xe0, ZC3XX_R01F_HSYNC_2}, /* 00,1f,e0,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x02, ZC3XX_R09F_MAXXHIGH}, /* 00,9f,02,cc */
        {}
 };
 
 static const struct usb_action tas5130cxx_NoFlikerScale[] = {
-       {0xa0, 0x00, 0x0019}, /* 00,19,00,cc */
+       {0xa0, 0x00, ZC3XX_R019_AUTOADJUSTFPS}, /* 00,19,00,cc */
        {0xaa, 0xa3, 0x0001}, /* 00,a3,01,aa */
        {0xaa, 0xa4, 0x0090}, /* 00,a4,90,aa */
-       {0xa0, 0x01, 0x00a3}, /* 00,a3,01,cc */
-       {0xa0, 0x90, 0x00a4}, /* 00,a4,90,cc */
-       {0xa0, 0x00, 0x0190}, /* 01,90,00,cc */
-       {0xa0, 0x03, 0x0191}, /* 01,91,03,cc */
-       {0xa0, 0xf0, 0x0192}, /* 01,92,f0,cc */
-       {0xa0, 0x00, 0x0195}, /* 01,95,00,cc */
-       {0xa0, 0x00, 0x0196}, /* 01,96,00,cc */
-       {0xa0, 0x10, 0x0197}, /* 01,97,10,cc */
-       {0xa0, 0x10, 0x018c}, /* 01,8c,10,cc */
-       {0xa0, 0x20, 0x018f}, /* 01,8f,20,cc */
-       {0xa0, 0x00, 0x01a9}, /* 01,a9,00,cc */
-       {0xa0, 0x00, 0x01aa}, /* 01,aa,00,cc */
-       {0xa0, 0xbc, 0x001d}, /* 00,1d,bc,cc */
-       {0xa0, 0xd0, 0x001e}, /* 00,1e,d0,cc */
-       {0xa0, 0xe0, 0x001f}, /* 00,1f,e0,cc */
-       {0xa0, 0xff, 0x0020}, /* 00,20,ff,cc */
-       {0xa0, 0x02, 0x009f}, /* 00,9f,02,cc */
+       {0xa0, 0x01, ZC3XX_R0A3_EXPOSURETIMEHIGH}, /* 00,a3,01,cc */
+       {0xa0, 0x90, ZC3XX_R0A4_EXPOSURETIMELOW}, /* 00,a4,90,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH}, /* 01,90,00,cc */
+       {0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID}, /* 01,91,03,cc */
+       {0xa0, 0xf0, ZC3XX_R192_EXPOSURELIMITLOW}, /* 01,92,f0,cc */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH}, /* 01,95,00,cc */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID}, /* 01,96,00,cc */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW}, /* 01,97,10,cc */
+       {0xa0, 0x10, ZC3XX_R18C_AEFREEZE}, /* 01,8c,10,cc */
+       {0xa0, 0x20, ZC3XX_R18F_AEUNFREEZE}, /* 01,8f,20,cc */
+       {0xa0, 0x00, ZC3XX_R1A9_DIGITALLIMITDIFF}, /* 01,a9,00,cc */
+       {0xa0, 0x00, ZC3XX_R1AA_DIGITALGAINSTEP}, /* 01,aa,00,cc */
+       {0xa0, 0xbc, ZC3XX_R01D_HSYNC_0}, /* 00,1d,bc,cc */
+       {0xa0, 0xd0, ZC3XX_R01E_HSYNC_1}, /* 00,1e,d0,cc */
+       {0xa0, 0xe0, ZC3XX_R01F_HSYNC_2}, /* 00,1f,e0,cc */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3}, /* 00,20,ff,cc */
+       {0xa0, 0x02, ZC3XX_R09F_MAXXHIGH}, /* 00,9f,02,cc */
        {}
 };
 
 static const struct usb_action tas5130c_vf0250_Initial[] = {
-       {0xa0, 0x01, 0x0000},           /* 00,00,01,cc, */
-       {0xa0, 0x02, 0x0008},           /* 00,08,02,cc, */
-       {0xa0, 0x01, 0x0010},           /* 00,10,01,cc, */
-       {0xa0, 0x10, 0x0002},           /* 00,02,00,cc,  0<->10 */
-       {0xa0, 0x02, 0x0003},           /* 00,03,02,cc, */
-       {0xa0, 0x80, 0x0004},           /* 00,04,80,cc, */
-       {0xa0, 0x01, 0x0005},           /* 00,05,01,cc, */
-       {0xa0, 0xe0, 0x0006},           /* 00,06,e0,cc, */
-       {0xa0, 0x98, 0x008b},           /* 00,8b,98,cc, */
-       {0xa0, 0x01, 0x0001},           /* 00,01,01,cc, */
-       {0xa0, 0x03, 0x0012},           /* 00,12,03,cc, */
-       {0xa0, 0x01, 0x0012},           /* 00,12,01,cc, */
-       {0xa0, 0x00, 0x0098},           /* 00,98,00,cc, */
-       {0xa0, 0x00, 0x009a},           /* 00,9a,00,cc, */
-       {0xa0, 0x00, 0x011a},           /* 01,1a,00,cc, */
-       {0xa0, 0x00, 0x011c},           /* 01,1c,00,cc, */
-       {0xa0, 0xe8, 0x009c},           /* 00,9c,e6,cc,  6<->8 */
-       {0xa0, 0x88, 0x009e},           /* 00,9e,86,cc,  6<->8 */
-       {0xa0, 0x10, 0x0087},           /* 00,87,10,cc, */
-       {0xa0, 0x98, 0x008b},           /* 00,8b,98,cc, */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},         /* 00,00,01,cc, */
+       {0xa0, 0x02, ZC3XX_R008_CLOCKSETTING},          /* 00,08,02,cc, */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT},      /* 00,10,01,cc, */
+       {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},           /* 00,02,00,cc,
+                                                        * 0<->10 */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},        /* 00,03,02,cc, */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},         /* 00,04,80,cc, */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},       /* 00,05,01,cc, */
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},        /* 00,06,e0,cc, */
+       {0xa0, 0x98, ZC3XX_R08B_I2CDEVICEADDR},         /* 00,8b,98,cc, */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},       /* 00,01,01,cc, */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,03,cc, */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,01,cc, */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},          /* 00,98,00,cc, */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},          /* 00,9a,00,cc, */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},             /* 01,1a,00,cc, */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},             /* 01,1c,00,cc, */
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},          /* 00,9c,e6,cc,
+                                                        * 6<->8 */
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},           /* 00,9e,86,cc,
+                                                        * 6<->8 */
+       {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID},            /* 00,87,10,cc, */
+       {0xa0, 0x98, ZC3XX_R08B_I2CDEVICEADDR},         /* 00,8b,98,cc, */
        {0xaa, 0x1b, 0x0024},           /* 00,1b,24,aa, */
        {0xdd, 0x00, 0x0080},           /* 00,00,80,dd, */
        {0xaa, 0x1b, 0x0000},           /* 00,1b,00,aa, */
@@ -5971,9 +5988,9 @@ static const struct usb_action tas5130c_vf0250_Initial[] = {
        {0xaa, 0x01, 0x0000},
        {0xaa, 0x1a, 0x0000},           /* 00,1a,00,aa, */
        {0xaa, 0x1c, 0x0017},           /* 00,1c,17,aa, */
-       {0xa0, 0x82, 0x0086},           /* 00,86,82,cc, */
-       {0xa0, 0x83, 0x0087},           /* 00,87,83,cc, */
-       {0xa0, 0x84, 0x0088},           /* 00,88,84,cc, */
+       {0xa0, 0x82, ZC3XX_R086_EXPTIMEHIGH},           /* 00,86,82,cc, */
+       {0xa0, 0x83, ZC3XX_R087_EXPTIMEMID},            /* 00,87,83,cc, */
+       {0xa0, 0x84, ZC3XX_R088_EXPTIMELOW},            /* 00,88,84,cc, */
        {0xaa, 0x05, 0x0010},           /* 00,05,10,aa, */
        {0xaa, 0x0a, 0x0000},           /* 00,0a,00,aa, */
        {0xaa, 0x0b, 0x00a0},           /* 00,0b,a0,aa, */
@@ -5990,42 +6007,44 @@ static const struct usb_action tas5130c_vf0250_Initial[] = {
        {0xaa, 0x18, 0x0002},           /* 00,18,02,aa, */
        {0xaa, 0x19, 0x0088},           /* 00,19,86,aa, */
        {0xaa, 0x20, 0x0020},           /* 00,20,20,aa, */
-       {0xa0, 0xb7, 0x0101},           /* 01,01,b7,cc, */
-       {0xa0, 0x05, 0x0012},           /* 00,12,05,cc, */
-       {0xa0, 0x0d, 0x0100},           /* 01,00,0d,cc, */
-       {0xa0, 0x76, 0x0189},           /* 01,89,76,cc, */
-       {0xa0, 0x09, 0x01ad},           /* 01,ad,09,cc, */
-       {0xa0, 0x03, 0x01c5},           /* 01,c5,03,cc, */
-       {0xa0, 0x13, 0x01cb},           /* 01,cb,13,cc, */
-       {0xa0, 0x08, 0x0250},           /* 02,50,08,cc, */
-       {0xa0, 0x08, 0x0301},           /* 03,01,08,cc, */
-       {0xa0, 0x60, 0x01a8},           /* 01,a8,60,cc, */
-       {0xa0, 0x61, 0x0116},           /* 01,16,61,cc, */
-       {0xa0, 0x65, 0x0118},           /* 01,18,65,cc */
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},      /* 01,01,b7,cc, */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,05,cc, */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},         /* 01,00,0d,cc, */
+       {0xa0, 0x76, ZC3XX_R189_AWBSTATUS},             /* 01,89,76,cc, */
+       {0xa0, 0x09, 0x01ad},                           /* 01,ad,09,cc, */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},         /* 01,c5,03,cc, */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},           /* 01,cb,13,cc, */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},        /* 02,50,08,cc, */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},          /* 03,01,08,cc, */
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},           /* 01,a8,60,cc, */
+       {0xa0, 0x61, ZC3XX_R116_RGAIN},                 /* 01,16,61,cc, */
+       {0xa0, 0x65, ZC3XX_R118_BGAIN},                 /* 01,18,65,cc */
        {}
 };
 
 static const struct usb_action tas5130c_vf0250_InitialScale[] = {
-       {0xa0, 0x01, 0x0000},           /* 00,00,01,cc, */
-       {0xa0, 0x02, 0x0008},           /* 00,08,02,cc, */
-       {0xa0, 0x01, 0x0010},           /* 00,10,01,cc, */
-       {0xa0, 0x00, 0x0002},           /* 00,02,10,cc, */
-       {0xa0, 0x02, 0x0003},           /* 00,03,02,cc, */
-       {0xa0, 0x80, 0x0004},           /* 00,04,80,cc, */
-       {0xa0, 0x01, 0x0005},           /* 00,05,01,cc, */
-       {0xa0, 0xe0, 0x0006},           /* 00,06,e0,cc, */
-       {0xa0, 0x98, 0x008b},           /* 00,8b,98,cc, */
-       {0xa0, 0x01, 0x0001},           /* 00,01,01,cc, */
-       {0xa0, 0x03, 0x0012},           /* 00,12,03,cc, */
-       {0xa0, 0x01, 0x0012},           /* 00,12,01,cc, */
-       {0xa0, 0x00, 0x0098},           /* 00,98,00,cc, */
-       {0xa0, 0x00, 0x009a},           /* 00,9a,00,cc, */
-       {0xa0, 0x00, 0x011a},           /* 01,1a,00,cc, */
-       {0xa0, 0x00, 0x011c},           /* 01,1c,00,cc, */
-       {0xa0, 0xe8, 0x009c},           /* 00,9c,e8,cc, 8<->6 */
-       {0xa0, 0x88, 0x009e},           /* 00,9e,88,cc, 8<->6 */
-       {0xa0, 0x10, 0x0087},           /* 00,87,10,cc, */
-       {0xa0, 0x98, 0x008b},           /* 00,8b,98,cc, */
+       {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},         /* 00,00,01,cc, */
+       {0xa0, 0x02, ZC3XX_R008_CLOCKSETTING},          /* 00,08,02,cc, */
+       {0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT},      /* 00,10,01,cc, */
+       {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},           /* 00,02,10,cc, */
+       {0xa0, 0x02, ZC3XX_R003_FRAMEWIDTHHIGH},        /* 00,03,02,cc, */
+       {0xa0, 0x80, ZC3XX_R004_FRAMEWIDTHLOW},         /* 00,04,80,cc, */
+       {0xa0, 0x01, ZC3XX_R005_FRAMEHEIGHTHIGH},       /* 00,05,01,cc, */
+       {0xa0, 0xe0, ZC3XX_R006_FRAMEHEIGHTLOW},        /* 00,06,e0,cc, */
+       {0xa0, 0x98, ZC3XX_R08B_I2CDEVICEADDR},         /* 00,8b,98,cc, */
+       {0xa0, 0x01, ZC3XX_R001_SYSTEMOPERATING},       /* 00,01,01,cc, */
+       {0xa0, 0x03, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,03,cc, */
+       {0xa0, 0x01, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,01,cc, */
+       {0xa0, 0x00, ZC3XX_R098_WINYSTARTLOW},          /* 00,98,00,cc, */
+       {0xa0, 0x00, ZC3XX_R09A_WINXSTARTLOW},          /* 00,9a,00,cc, */
+       {0xa0, 0x00, ZC3XX_R11A_FIRSTYLOW},             /* 01,1a,00,cc, */
+       {0xa0, 0x00, ZC3XX_R11C_FIRSTXLOW},             /* 01,1c,00,cc, */
+       {0xa0, 0xe8, ZC3XX_R09C_WINHEIGHTLOW},          /* 00,9c,e8,cc,
+                                                        * 8<->6 */
+       {0xa0, 0x88, ZC3XX_R09E_WINWIDTHLOW},           /* 00,9e,88,cc,
+                                                        * 8<->6 */
+       {0xa0, 0x10, ZC3XX_R087_EXPTIMEMID},            /* 00,87,10,cc, */
+       {0xa0, 0x98, ZC3XX_R08B_I2CDEVICEADDR},         /* 00,8b,98,cc, */
        {0xaa, 0x1b, 0x0024},           /* 00,1b,24,aa, */
        {0xdd, 0x00, 0x0080},           /* 00,00,80,dd, */
        {0xaa, 0x1b, 0x0000},           /* 00,1b,00,aa, */
@@ -6035,9 +6054,9 @@ static const struct usb_action tas5130c_vf0250_InitialScale[] = {
        {0xaa, 0x01, 0x0000},
        {0xaa, 0x1a, 0x0000},           /* 00,1a,00,aa, */
        {0xaa, 0x1c, 0x0017},           /* 00,1c,17,aa, */
-       {0xa0, 0x82, 0x0086},           /* 00,86,82,cc, */
-       {0xa0, 0x83, 0x0087},           /* 00,87,83,cc, */
-       {0xa0, 0x84, 0x0088},           /* 00,88,84,cc, */
+       {0xa0, 0x82, ZC3XX_R086_EXPTIMEHIGH},   /* 00,86,82,cc, */
+       {0xa0, 0x83, ZC3XX_R087_EXPTIMEMID},    /* 00,87,83,cc, */
+       {0xa0, 0x84, ZC3XX_R088_EXPTIMELOW},    /* 00,88,84,cc, */
        {0xaa, 0x05, 0x0010},           /* 00,05,10,aa, */
        {0xaa, 0x0a, 0x0000},           /* 00,0a,00,aa, */
        {0xaa, 0x0b, 0x00a0},           /* 00,0b,a0,aa, */
@@ -6054,18 +6073,18 @@ static const struct usb_action tas5130c_vf0250_InitialScale[] = {
        {0xaa, 0x18, 0x0002},           /* 00,18,02,aa, */
        {0xaa, 0x19, 0x0088},           /* 00,19,88,aa, */
        {0xaa, 0x20, 0x0020},           /* 00,20,20,aa, */
-       {0xa0, 0xb7, 0x0101},           /* 01,01,b7,cc, */
-       {0xa0, 0x05, 0x0012},           /* 00,12,05,cc, */
-       {0xa0, 0x0d, 0x0100},           /* 01,00,0d,cc, */
-       {0xa0, 0x76, 0x0189},           /* 01,89,76,cc, */
-       {0xa0, 0x09, 0x01ad},           /* 01,ad,09,cc, */
-       {0xa0, 0x03, 0x01c5},           /* 01,c5,03,cc, */
-       {0xa0, 0x13, 0x01cb},           /* 01,cb,13,cc, */
-       {0xa0, 0x08, 0x0250},           /* 02,50,08,cc, */
-       {0xa0, 0x08, 0x0301},           /* 03,01,08,cc, */
-       {0xa0, 0x60, 0x01a8},           /* 01,a8,60,cc, */
-       {0xa0, 0x61, 0x0116},           /* 01,16,61,cc, */
-       {0xa0, 0x65, 0x0118},           /* 01,18,65,cc */
+       {0xa0, 0xb7, ZC3XX_R101_SENSORCORRECTION},      /* 01,01,b7,cc, */
+       {0xa0, 0x05, ZC3XX_R012_VIDEOCONTROLFUNC},      /* 00,12,05,cc, */
+       {0xa0, 0x0d, ZC3XX_R100_OPERATIONMODE},         /* 01,00,0d,cc, */
+       {0xa0, 0x76, ZC3XX_R189_AWBSTATUS},             /* 01,89,76,cc, */
+       {0xa0, 0x09, 0x01ad},                           /* 01,ad,09,cc, */
+       {0xa0, 0x03, ZC3XX_R1C5_SHARPNESSMODE},         /* 01,c5,03,cc, */
+       {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},           /* 01,cb,13,cc, */
+       {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},        /* 02,50,08,cc, */
+       {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},          /* 03,01,08,cc, */
+       {0xa0, 0x60, ZC3XX_R1A8_DIGITALGAIN},           /* 01,a8,60,cc, */
+       {0xa0, 0x61, ZC3XX_R116_RGAIN},         /* 01,16,61,cc, */
+       {0xa0, 0x65, ZC3XX_R118_BGAIN},         /* 01,18,65,cc */
        {}
 };
 /* "50HZ" light frequency banding filter */
@@ -6073,23 +6092,23 @@ static const struct usb_action tas5130c_vf0250_50HZ[] = {
        {0xaa, 0x82, 0x0000},           /* 00,82,00,aa */
        {0xaa, 0x83, 0x0001},           /* 00,83,01,aa */
        {0xaa, 0x84, 0x00aa},           /* 00,84,aa,aa */
-       {0xa0, 0x00, 0x0190},           /* 01,90,00,cc, */
-       {0xa0, 0x06, 0x0191},           /* 01,91,0d,cc, */
-       {0xa0, 0xa8, 0x0192},           /* 01,92,50,cc, */
-       {0xa0, 0x00, 0x0195},           /* 01,95,00,cc, */
-       {0xa0, 0x00, 0x0196},           /* 01,96,00,cc, */
-       {0xa0, 0x8e, 0x0197},           /* 01,97,47,cc, */
-       {0xa0, 0x0e, 0x018c},           /* 01,8c,0e,cc, */
-       {0xa0, 0x15, 0x018f},           /* 01,8f,15,cc, */
-       {0xa0, 0x10, 0x01a9},           /* 01,a9,10,cc, */
-       {0xa0, 0x24, 0x01aa},           /* 01,aa,24,cc, */
-       {0xa0, 0x62, 0x001d},           /* 00,1d,62,cc, */
-       {0xa0, 0x90, 0x001e},           /* 00,1e,90,cc, */
-       {0xa0, 0xc8, 0x001f},           /* 00,1f,c8,cc, */
-       {0xa0, 0xff, 0x0020},           /* 00,20,ff,cc, */
-       {0xa0, 0x58, 0x011d},           /* 01,1d,58,cc, */
-       {0xa0, 0x42, 0x0180},           /* 01,80,42,cc, */
-       {0xa0, 0x78, 0x018d},           /* 01,8d,78,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc, */
+       {0xa0, 0x06, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,0d,cc, */
+       {0xa0, 0xa8, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,50,cc, */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc, */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc, */
+       {0xa0, 0x8e, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,47,cc, */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},              /* 01,8c,0e,cc, */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},            /* 01,8f,15,cc, */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* 01,a9,10,cc, */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},       /* 01,aa,24,cc, */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},               /* 00,1d,62,cc, */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},               /* 00,1e,90,cc, */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},               /* 00,1f,c8,cc, */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},               /* 00,20,ff,cc, */
+       {0xa0, 0x58, ZC3XX_R11D_GLOBALGAIN},            /* 01,1d,58,cc, */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,42,cc, */
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},               /* 01,8d,78,cc */
        {}
 };
 
@@ -6098,23 +6117,23 @@ static const struct usb_action tas5130c_vf0250_50HZScale[] = {
        {0xaa, 0x82, 0x0000},           /* 00,82,00,aa */
        {0xaa, 0x83, 0x0003},           /* 00,83,03,aa */
        {0xaa, 0x84, 0x0054},           /* 00,84,54,aa */
-       {0xa0, 0x00, 0x0190},           /* 01,90,00,cc, */
-       {0xa0, 0x0d, 0x0191},           /* 01,91,0d,cc, */
-       {0xa0, 0x50, 0x0192},           /* 01,92,50,cc, */
-       {0xa0, 0x00, 0x0195},           /* 01,95,00,cc, */
-       {0xa0, 0x00, 0x0196},           /* 01,96,00,cc, */
-       {0xa0, 0x8e, 0x0197},           /* 01,97,8e,cc, */
-       {0xa0, 0x0e, 0x018c},           /* 01,8c,0e,cc, */
-       {0xa0, 0x15, 0x018f},           /* 01,8f,15,cc, */
-       {0xa0, 0x10, 0x01a9},           /* 01,a9,10,cc, */
-       {0xa0, 0x24, 0x01aa},           /* 01,aa,24,cc, */
-       {0xa0, 0x62, 0x001d},           /* 00,1d,62,cc, */
-       {0xa0, 0x90, 0x001e},           /* 00,1e,90,cc, */
-       {0xa0, 0xc8, 0x001f},           /* 00,1f,c8,cc, */
-       {0xa0, 0xff, 0x0020},           /* 00,20,ff,cc, */
-       {0xa0, 0x58, 0x011d},           /* 01,1d,58,cc, */
-       {0xa0, 0x42, 0x0180},           /* 01,80,42,cc, */
-       {0xa0, 0x78, 0x018d},           /* 01,8d,78,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc, */
+       {0xa0, 0x0d, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,0d,cc, */
+       {0xa0, 0x50, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,50,cc, */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc, */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc, */
+       {0xa0, 0x8e, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,8e,cc, */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},              /* 01,8c,0e,cc, */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},            /* 01,8f,15,cc, */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* 01,a9,10,cc, */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},       /* 01,aa,24,cc, */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},               /* 00,1d,62,cc, */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},               /* 00,1e,90,cc, */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},               /* 00,1f,c8,cc, */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},               /* 00,20,ff,cc, */
+       {0xa0, 0x58, ZC3XX_R11D_GLOBALGAIN},            /* 01,1d,58,cc, */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,42,cc, */
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},               /* 01,8d,78,cc */
        {}
 };
 
@@ -6123,23 +6142,23 @@ static const struct usb_action tas5130c_vf0250_60HZ[] = {
        {0xaa, 0x82, 0x0000},           /* 00,82,00,aa */
        {0xaa, 0x83, 0x0001},           /* 00,83,01,aa */
        {0xaa, 0x84, 0x0062},           /* 00,84,62,aa */
-       {0xa0, 0x00, 0x0190},           /* 01,90,00,cc, */
-       {0xa0, 0x05, 0x0191},           /* 01,91,05,cc, */
-       {0xa0, 0x88, 0x0192},           /* 01,92,88,cc, */
-       {0xa0, 0x00, 0x0195},           /* 01,95,00,cc, */
-       {0xa0, 0x00, 0x0196},           /* 01,96,00,cc, */
-       {0xa0, 0x3b, 0x0197},           /* 01,97,3b,cc, */
-       {0xa0, 0x0e, 0x018c},           /* 01,8c,0e,cc, */
-       {0xa0, 0x15, 0x018f},           /* 01,8f,15,cc, */
-       {0xa0, 0x10, 0x01a9},           /* 01,a9,10,cc, */
-       {0xa0, 0x24, 0x01aa},           /* 01,aa,24,cc, */
-       {0xa0, 0x62, 0x001d},           /* 00,1d,62,cc, */
-       {0xa0, 0x90, 0x001e},           /* 00,1e,90,cc, */
-       {0xa0, 0xc8, 0x001f},           /* 00,1f,c8,cc, */
-       {0xa0, 0xff, 0x0020},           /* 00,20,ff,cc, */
-       {0xa0, 0x58, 0x011d},           /* 01,1d,58,cc, */
-       {0xa0, 0x42, 0x0180},           /* 01,80,42,cc, */
-       {0xa0, 0x78, 0x018d},           /* 01,8d,78,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc, */
+       {0xa0, 0x05, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,05,cc, */
+       {0xa0, 0x88, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,88,cc, */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc, */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc, */
+       {0xa0, 0x3b, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,3b,cc, */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},              /* 01,8c,0e,cc, */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},            /* 01,8f,15,cc, */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* 01,a9,10,cc, */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},       /* 01,aa,24,cc, */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},               /* 00,1d,62,cc, */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},               /* 00,1e,90,cc, */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},               /* 00,1f,c8,cc, */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},               /* 00,20,ff,cc, */
+       {0xa0, 0x58, ZC3XX_R11D_GLOBALGAIN},            /* 01,1d,58,cc, */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,42,cc, */
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},               /* 01,8d,78,cc */
        {}
 };
 
@@ -6148,69 +6167,69 @@ static const struct usb_action tas5130c_vf0250_60HZScale[] = {
        {0xaa, 0x82, 0x0000},           /* 00,82,00,aa */
        {0xaa, 0x83, 0x0002},           /* 00,83,02,aa */
        {0xaa, 0x84, 0x00c4},           /* 00,84,c4,aa */
-       {0xa0, 0x00, 0x0190},           /* 01,90,00,cc, */
-       {0xa0, 0x0b, 0x0191},           /* 01,1,0b,cc, */
-       {0xa0, 0x10, 0x0192},           /* 01,2,10,cc, */
-       {0xa0, 0x00, 0x0195},           /* 01,5,00,cc, */
-       {0xa0, 0x00, 0x0196},           /* 01,6,00,cc, */
-       {0xa0, 0x76, 0x0197},           /* 01,7,76,cc, */
-       {0xa0, 0x0e, 0x018c},           /* 01,c,0e,cc, */
-       {0xa0, 0x15, 0x018f},           /* 01,f,15,cc, */
-       {0xa0, 0x10, 0x01a9},           /* 01,9,10,cc, */
-       {0xa0, 0x24, 0x01aa},           /* 01,a,24,cc, */
-       {0xa0, 0x62, 0x001d},           /* 00,d,62,cc, */
-       {0xa0, 0x90, 0x001e},           /* 00,e,90,cc, */
-       {0xa0, 0xc8, 0x001f},           /* 00,f,c8,cc, */
-       {0xa0, 0xff, 0x0020},           /* 00,0,ff,cc, */
-       {0xa0, 0x58, 0x011d},           /* 01,d,58,cc, */
-       {0xa0, 0x42, 0x0180},           /* 01,80,42,cc, */
-       {0xa0, 0x78, 0x018d},           /* 01,d,78,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc, */
+       {0xa0, 0x0b, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,1,0b,cc, */
+       {0xa0, 0x10, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,2,10,cc, */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,5,00,cc, */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,6,00,cc, */
+       {0xa0, 0x76, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,7,76,cc, */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},              /* 01,c,0e,cc, */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},            /* 01,f,15,cc, */
+       {0xa0, 0x10, ZC3XX_R1A9_DIGITALLIMITDIFF},      /* 01,9,10,cc, */
+       {0xa0, 0x24, ZC3XX_R1AA_DIGITALGAINSTEP},       /* 01,a,24,cc, */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},               /* 00,d,62,cc, */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},               /* 00,e,90,cc, */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},               /* 00,f,c8,cc, */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},               /* 00,0,ff,cc, */
+       {0xa0, 0x58, ZC3XX_R11D_GLOBALGAIN},            /* 01,d,58,cc, */
+       {0xa0, 0x42, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,42,cc, */
+       {0xa0, 0x78, ZC3XX_R18D_YTARGET},               /* 01,d,78,cc */
        {}
 };
 
 /* "NoFliker" light frequency banding flter */
 static const struct usb_action tas5130c_vf0250_NoFliker[] = {
-       {0xa0, 0x0c, 0x0100},           /* 01,00,0c,cc, */
+       {0xa0, 0x0c, ZC3XX_R100_OPERATIONMODE},         /* 01,00,0c,cc, */
        {0xaa, 0x82, 0x0000},           /* 00,82,00,aa */
        {0xaa, 0x83, 0x0000},           /* 00,83,00,aa */
        {0xaa, 0x84, 0x0020},           /* 00,84,20,aa */
-       {0xa0, 0x00, 0x0190},           /* 01,0,00,cc, */
-       {0xa0, 0x05, 0x0191},           /* 01,91,05,cc, */
-       {0xa0, 0x88, 0x0192},           /* 01,92,88,cc, */
-       {0xa0, 0x00, 0x0195},           /* 01,95,00,cc, */
-       {0xa0, 0x00, 0x0196},           /* 01,96,00,cc, */
-       {0xa0, 0x10, 0x0197},           /* 01,97,10,cc, */
-       {0xa0, 0x0e, 0x018c},           /* 01,8c,0e,cc, */
-       {0xa0, 0x15, 0x018f},           /* 01,8f,15,cc, */
-       {0xa0, 0x62, 0x001d},           /* 00,1d,62,cc, */
-       {0xa0, 0x90, 0x001e},           /* 00,1e,90,cc, */
-       {0xa0, 0xc8, 0x001f},           /* 00,1f,c8,cc, */
-       {0xa0, 0xff, 0x0020},           /* 00,20,ff,cc, */
-       {0xa0, 0x58, 0x011d},           /* 01,1d,58,cc, */
-       {0xa0, 0x03, 0x0180},           /* 01,80,03,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,0,00,cc, */
+       {0xa0, 0x05, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,05,cc, */
+       {0xa0, 0x88, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,88,cc, */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc, */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc, */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,10,cc, */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},              /* 01,8c,0e,cc, */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},            /* 01,8f,15,cc, */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},               /* 00,1d,62,cc, */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},               /* 00,1e,90,cc, */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},               /* 00,1f,c8,cc, */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},               /* 00,20,ff,cc, */
+       {0xa0, 0x58, ZC3XX_R11D_GLOBALGAIN},            /* 01,1d,58,cc, */
+       {0xa0, 0x03, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,03,cc */
        {}
 };
 
 /* "NoFlikerScale" light frequency banding filter */
 static const struct usb_action tas5130c_vf0250_NoFlikerScale[] = {
-       {0xa0, 0x0c, 0x0100},           /* 01,00,0c,cc, */
+       {0xa0, 0x0c, ZC3XX_R100_OPERATIONMODE},         /* 01,00,0c,cc, */
        {0xaa, 0x82, 0x0000},           /* 00,82,00,aa */
        {0xaa, 0x83, 0x0000},           /* 00,83,00,aa */
        {0xaa, 0x84, 0x0020},           /* 00,84,20,aa */
-       {0xa0, 0x00, 0x0190},           /* 01,90,00,cc, */
-       {0xa0, 0x0b, 0x0191},           /* 01,91,0b,cc, */
-       {0xa0, 0x10, 0x0192},           /* 01,92,10,cc, */
-       {0xa0, 0x00, 0x0195},           /* 01,95,00,cc, */
-       {0xa0, 0x00, 0x0196},           /* 01,96,00,cc, */
-       {0xa0, 0x10, 0x0197},           /* 01,97,10,cc, */
-       {0xa0, 0x0e, 0x018c},           /* 01,8c,0e,cc, */
-       {0xa0, 0x15, 0x018f},           /* 01,8f,15,cc, */
-       {0xa0, 0x62, 0x001d},           /* 00,1d,62,cc, */
-       {0xa0, 0x90, 0x001e},           /* 00,1e,90,cc, */
-       {0xa0, 0xc8, 0x001f},           /* 00,1f,c8,cc, */
-       {0xa0, 0xff, 0x0020},           /* 00,20,ff,cc, */
-       {0xa0, 0x58, 0x011d},           /* 01,1d,58,cc, */
-       {0xa0, 0x03, 0x0180},           /* 01,80,03,cc */
+       {0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},     /* 01,90,00,cc, */
+       {0xa0, 0x0b, ZC3XX_R191_EXPOSURELIMITMID},      /* 01,91,0b,cc, */
+       {0xa0, 0x10, ZC3XX_R192_EXPOSURELIMITLOW},      /* 01,92,10,cc, */
+       {0xa0, 0x00, ZC3XX_R195_ANTIFLICKERHIGH},       /* 01,95,00,cc, */
+       {0xa0, 0x00, ZC3XX_R196_ANTIFLICKERMID},        /* 01,96,00,cc, */
+       {0xa0, 0x10, ZC3XX_R197_ANTIFLICKERLOW},        /* 01,97,10,cc, */
+       {0xa0, 0x0e, ZC3XX_R18C_AEFREEZE},              /* 01,8c,0e,cc, */
+       {0xa0, 0x15, ZC3XX_R18F_AEUNFREEZE},            /* 01,8f,15,cc, */
+       {0xa0, 0x62, ZC3XX_R01D_HSYNC_0},               /* 00,1d,62,cc, */
+       {0xa0, 0x90, ZC3XX_R01E_HSYNC_1},               /* 00,1e,90,cc, */
+       {0xa0, 0xc8, ZC3XX_R01F_HSYNC_2},               /* 00,1f,c8,cc, */
+       {0xa0, 0xff, ZC3XX_R020_HSYNC_3},               /* 00,20,ff,cc, */
+       {0xa0, 0x58, ZC3XX_R11D_GLOBALGAIN},            /* 01,1d,58,cc, */
+       {0xa0, 0x03, ZC3XX_R180_AUTOCORRECTENABLE},     /* 01,80,03,cc */
        {}
 };