1141cc406Sopenharmony_ci/*.............................................................................
2141cc406Sopenharmony_ci * Project : SANE library for Plustek flatbed scanners.
3141cc406Sopenharmony_ci *.............................................................................
4141cc406Sopenharmony_ci */
5141cc406Sopenharmony_ci
6141cc406Sopenharmony_ci/** @file plustek-usbdevs.c
7141cc406Sopenharmony_ci *  @brief Here we have our USB device definitions.
8141cc406Sopenharmony_ci *
9141cc406Sopenharmony_ci * Based on sources acquired from Plustek Inc.<br>
10141cc406Sopenharmony_ci * Copyright (C) 2001-2013 Gerhard Jaeger <gerhard@gjaeger.de>
11141cc406Sopenharmony_ci *
12141cc406Sopenharmony_ci * History:
13141cc406Sopenharmony_ci * - 0.40 - starting version of the USB support
14141cc406Sopenharmony_ci * - 0.41 - added EPSON1250 entries
15141cc406Sopenharmony_ci *        - changed reg 0x58 of EPSON Hw0x04B8_0x010F to 0x0d
16141cc406Sopenharmony_ci *        - reduced memory size of EPSON to 512
17141cc406Sopenharmony_ci *        - adjusted tpa origin of UT24
18141cc406Sopenharmony_ci * - 0.42 - added register 0x27, 0x2c-0x37
19141cc406Sopenharmony_ci *        - tweaked EPSON1250 settings according to Gene and Reinhard
20141cc406Sopenharmony_ci *        - tweaked HP2200 settings according to Stefan
21141cc406Sopenharmony_ci *        - added UMAX 3400 entries
22141cc406Sopenharmony_ci *        - added HP2100 settings according to Craig Smoothey
23141cc406Sopenharmony_ci *        - added LM9832 based U24
24141cc406Sopenharmony_ci *        - added Canon N650U entry
25141cc406Sopenharmony_ci * - 0.43 - tweaked HP 2200C entries
26141cc406Sopenharmony_ci *        - added _WAF_MISC_IO5 for HP lamp switching
27141cc406Sopenharmony_ci *        - added motor profiles
28141cc406Sopenharmony_ci *        - cleanup
29141cc406Sopenharmony_ci * - 0.44 - added EPSON 1260 and 660
30141cc406Sopenharmony_ci *        - added Genius Model strings
31141cc406Sopenharmony_ci *        - added Canon N670U entry
32141cc406Sopenharmony_ci *        - added bStepsToReverse to the HwDesc structure
33141cc406Sopenharmony_ci *        - tweaked EPSON1250 settings for TPA (thanks to Till Kamppeter)
34141cc406Sopenharmony_ci * - 0.45 - added UMAX motor settings
35141cc406Sopenharmony_ci *        - added UMAX 5400 settings
36141cc406Sopenharmony_ci *        - added CanoScan1240 settings (thanks to Johann Philipp)
37141cc406Sopenharmony_ci *        - tweaked EPSON 1260 settings
38141cc406Sopenharmony_ci *        - removed EPSON 660 stuff
39141cc406Sopenharmony_ci *        - added Canon 1220U entry
40141cc406Sopenharmony_ci *        - added entry for Compaq S4-100
41141cc406Sopenharmony_ci * - 0.46 - fine-tuning for the CanoScan devices
42141cc406Sopenharmony_ci *        - fixed HP2200 shading position
43141cc406Sopenharmony_ci *        - renamed to plustek-usbdevs.c
44141cc406Sopenharmony_ci * - 0.47 - added BearPaw 1200 settings for PID 0x4001 (LM9832)
45141cc406Sopenharmony_ci *        - tweaked the LiDE20 MCLK setting for 75DPI grayscale
46141cc406Sopenharmony_ci *        - enlarged the scan-area of the UMAX3400 to 11.7"
47141cc406Sopenharmony_ci *        - added CanoScan D660U
48141cc406Sopenharmony_ci * - 0.48 - added another incarnation of the UMAX 3400
49141cc406Sopenharmony_ci *        - added parameters for UMAX 3450 TPA
50141cc406Sopenharmony_ci *        - parameter tuning for CanoScan D660U
51141cc406Sopenharmony_ci *        - cleanup
52141cc406Sopenharmony_ci * - 0.49 - tweaked motor settings for EPSON and CANON1200
53141cc406Sopenharmony_ci *        - added support for CanoScan LiDE25
54141cc406Sopenharmony_ci * - 0.50 - cleanup
55141cc406Sopenharmony_ci *        - removed obsolete _WAF_BLACKFINE
56141cc406Sopenharmony_ci *        - LiDE20 does not seem to have a reliable black calibration area
57141cc406Sopenharmony_ci *          so the devices now will switch off the lamp for dark calibration
58141cc406Sopenharmony_ci *        - added Stephan Februarys' <stephanf@singnet.com.sg> LiDE25 changes
59141cc406Sopenharmony_ci *        - fixed high-speed feature of CanoScan D660U
60141cc406Sopenharmony_ci *        - tweaked LiDE25, LiDE30 and N1220U settings
61141cc406Sopenharmony_ci *        - changed high-speed setting for UMAX 3400, due to bugreport #302317
62141cc406Sopenharmony_ci *        - fixed CanoScan N650U settings
63141cc406Sopenharmony_ci *        - fixed CanoScan N670U settings, see (bugreport #302738)
64141cc406Sopenharmony_ci *        - added high-speed setting for HP2200
65141cc406Sopenharmony_ci * - 0.51 - tweaked CanoScan N1220U settings again
66141cc406Sopenharmony_ci *        - added settings for Syscan TravelScan 662
67141cc406Sopenharmony_ci *        - tweaked settings for Bearpaw 1200
68141cc406Sopenharmony_ci *        - fixed CanoScan LiDE20 settings, cause of various reports, seems
69141cc406Sopenharmony_ci *          Canon has built-in different motortypes
70141cc406Sopenharmony_ci *        - also fixed Motorsettings for LiDE30
71141cc406Sopenharmony_ci * - 0.52 - added Q-Scan USB001 settings
72141cc406Sopenharmony_ci *        - added Q-Scan USB201 settings (thanks to Hiroshi Miura)
73141cc406Sopenharmony_ci *        - tweaked motor settings for Bearpaw 1200
74141cc406Sopenharmony_ci *        - added TravelScan 464 settings
75141cc406Sopenharmony_ci *        - tweaked highspeed motor settings for Epson 1260
76141cc406Sopenharmony_ci *        - tweaked CanoScan N650U motor settings
77141cc406Sopenharmony_ci *
78141cc406Sopenharmony_ci * <hr>
79141cc406Sopenharmony_ci * This file is part of the SANE package.
80141cc406Sopenharmony_ci *
81141cc406Sopenharmony_ci * This program is free software; you can redistribute it and/or
82141cc406Sopenharmony_ci * modify it under the terms of the GNU General Public License as
83141cc406Sopenharmony_ci * published by the Free Software Foundation; either version 2 of the
84141cc406Sopenharmony_ci * License, or (at your option) any later version.
85141cc406Sopenharmony_ci *
86141cc406Sopenharmony_ci * This program is distributed in the hope that it will be useful, but
87141cc406Sopenharmony_ci * WITHOUT ANY WARRANTY; without even the implied warranty of
88141cc406Sopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
89141cc406Sopenharmony_ci * General Public License for more details.
90141cc406Sopenharmony_ci *
91141cc406Sopenharmony_ci * You should have received a copy of the GNU General Public License
92141cc406Sopenharmony_ci * along with this program.  If not, see <https://www.gnu.org/licenses/>.
93141cc406Sopenharmony_ci *
94141cc406Sopenharmony_ci * As a special exception, the authors of SANE give permission for
95141cc406Sopenharmony_ci * additional uses of the libraries contained in this release of SANE.
96141cc406Sopenharmony_ci *
97141cc406Sopenharmony_ci * The exception is that, if you link a SANE library with other files
98141cc406Sopenharmony_ci * to produce an executable, this does not by itself cause the
99141cc406Sopenharmony_ci * resulting executable to be covered by the GNU General Public
100141cc406Sopenharmony_ci * License.  Your use of that executable is in no way restricted on
101141cc406Sopenharmony_ci * account of linking the SANE library code into it.
102141cc406Sopenharmony_ci *
103141cc406Sopenharmony_ci * This exception does not, however, invalidate any other reasons why
104141cc406Sopenharmony_ci * the executable file might be covered by the GNU General Public
105141cc406Sopenharmony_ci * License.
106141cc406Sopenharmony_ci *
107141cc406Sopenharmony_ci * If you submit changes to SANE to the maintainers to be included in
108141cc406Sopenharmony_ci * a subsequent release, you agree by submitting the changes that
109141cc406Sopenharmony_ci * those changes may be distributed with this exception intact.
110141cc406Sopenharmony_ci *
111141cc406Sopenharmony_ci * If you write modifications of your own for SANE, it is your choice
112141cc406Sopenharmony_ci * whether to permit this exception to apply to your modifications.
113141cc406Sopenharmony_ci * If you do not wish that, delete this exception notice.
114141cc406Sopenharmony_ci * <hr>
115141cc406Sopenharmony_ci */
116141cc406Sopenharmony_ci
117141cc406Sopenharmony_ci/* the other stuff is included by plustek.c ...*/
118141cc406Sopenharmony_ci#include "plustek-usb.h"
119141cc406Sopenharmony_ci
120141cc406Sopenharmony_ci/** for Register 0x26
121141cc406Sopenharmony_ci */
122141cc406Sopenharmony_ci#define _ONE_CH_COLOR 0x04
123141cc406Sopenharmony_ci#define _RED_CH       0x00
124141cc406Sopenharmony_ci#define _GREEN_CH     0x08
125141cc406Sopenharmony_ci#define _BLUE_CH      0x10
126141cc406Sopenharmony_ci
127141cc406Sopenharmony_ci
128141cc406Sopenharmony_ci/* Plustek Model: UT12/UT16
129141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3799
130141cc406Sopenharmony_ci */
131141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0017_0 =
132141cc406Sopenharmony_ci{
133141cc406Sopenharmony_ci	{	/* Normal */
134141cc406Sopenharmony_ci		{0, 93},        /* DataOrigin (X: 0, Y: 8mm from home) */
135141cc406Sopenharmony_ci		0, -1,          /* ShadingOriginY, DarkShadOrgY        */
136141cc406Sopenharmony_ci		{2550, 3508},   /* Size                                */
137141cc406Sopenharmony_ci		{50, 50}       /* MinDpi                              */
138141cc406Sopenharmony_ci	},
139141cc406Sopenharmony_ci	{	/* Positive */
140141cc406Sopenharmony_ci		{1040 + 15, 744 - 32},/* DataOrigin (X: 7cm + 1.8cm, Y: 8mm + 5.5cm)*/
141141cc406Sopenharmony_ci		543, -1,              /* ShadingOriginY (Y: 8mm + 3.8cm)     */
142141cc406Sopenharmony_ci		{473, 414},           /* Size (X: 4cm, Y: 3.5cm)             */
143141cc406Sopenharmony_ci		{150, 150}           /* MinDpi                              */
144141cc406Sopenharmony_ci	},
145141cc406Sopenharmony_ci	{	/* Negative */
146141cc406Sopenharmony_ci		{1004 + 55, 744 + 12},	/* DataOrigin (X: 7cm + 1.5cm, Y: 8mm + 5.5cm)*/
147141cc406Sopenharmony_ci
148141cc406Sopenharmony_ci		/* 533 blaustichig */
149141cc406Sopenharmony_ci		537 /* hell */
150141cc406Sopenharmony_ci		/* 543 gruenstichig  */
151141cc406Sopenharmony_ci
152141cc406Sopenharmony_ci		/*543*/, -1,    /* ShadingOriginY (Y: 8mm + 3.8cm)     */
153141cc406Sopenharmony_ci		{567, 414},     /* Size	(X: 4.8cm, Y: 3.5cm)           */
154141cc406Sopenharmony_ci		{150, 150}     /* MinDpi                              */
155141cc406Sopenharmony_ci	},
156141cc406Sopenharmony_ci	{	/* Adf */
157141cc406Sopenharmony_ci		{0, 95},        /* DataOrigin (X: 0, Y: 8mm from home) */
158141cc406Sopenharmony_ci		0, -1,          /* ShadingOriginY, DarkShadOrgY        */
159141cc406Sopenharmony_ci		{2550, 3508},   /* Size                                */
160141cc406Sopenharmony_ci		{50, 50}        /* MinDpi                              */
161141cc406Sopenharmony_ci	},
162141cc406Sopenharmony_ci	{600, 600},                                   /* OpticDpi */
163141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,  /* wFlags   */
164141cc406Sopenharmony_ci	SENSORORDER_rgb,    /* bSensorOrder    */
165141cc406Sopenharmony_ci	4,                  /* bSensorDistance */
166141cc406Sopenharmony_ci	4,                  /* bButtons        */
167141cc406Sopenharmony_ci	kNEC3799,           /* bCCD            */
168141cc406Sopenharmony_ci	0x07,               /* bPCB            */
169141cc406Sopenharmony_ci	_WAF_NONE,          /* no workarounds or other special stuff needed */
170141cc406Sopenharmony_ci 	_NO_MIO             /* does not use misc I/O for lamp               */
171141cc406Sopenharmony_ci};
172141cc406Sopenharmony_ci
173141cc406Sopenharmony_ci/* Plustek Model: U24
174141cc406Sopenharmony_ci * Description of the entries, see above...
175141cc406Sopenharmony_ci */
176141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0015_0 =
177141cc406Sopenharmony_ci{
178141cc406Sopenharmony_ci	{{0, 93},               0,   -1, {2550, 3508}, { 50,  50}},
179141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32},	543, -1, {473, 414},   {150, 150}},
180141cc406Sopenharmony_ci	{{1004 + 20, 744 + 32},	543, -1, {567, 414},   {150, 150}},
181141cc406Sopenharmony_ci	{{0, 95},               0,   -1, {2550, 3508}, { 50,  50}},
182141cc406Sopenharmony_ci	{600, 600},
183141cc406Sopenharmony_ci	0,
184141cc406Sopenharmony_ci	SENSORORDER_rgb,
185141cc406Sopenharmony_ci	4, 4, kNEC3799, 0x05, _WAF_NONE, _NO_MIO
186141cc406Sopenharmony_ci};
187141cc406Sopenharmony_ci
188141cc406Sopenharmony_ci/* Plustek Model: ???
189141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3799
190141cc406Sopenharmony_ci */
191141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0014_0 =
192141cc406Sopenharmony_ci{
193141cc406Sopenharmony_ci	{{0, 93},               0,   -1, {2550, 3508}, { 50,  50}},
194141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32},	543, -1, {473, 414},   {150, 150}},
195141cc406Sopenharmony_ci	{{1004 + 20, 744 + 32},	543, -1, {567, 414},   {150, 150}},
196141cc406Sopenharmony_ci	{{0, 95},               0,   -1, {2550, 3508}, { 50,  50}},
197141cc406Sopenharmony_ci	{600, 600},
198141cc406Sopenharmony_ci	0,
199141cc406Sopenharmony_ci	SENSORORDER_rgb,
200141cc406Sopenharmony_ci	4, 0, kNEC3799, 0x04, _WAF_NONE, _NO_MIO
201141cc406Sopenharmony_ci};
202141cc406Sopenharmony_ci
203141cc406Sopenharmony_ci/* Plustek Model: ??? and Genius ColorPage-HR6 V2
204141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3799
205141cc406Sopenharmony_ci*/
206141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0007_0 =
207141cc406Sopenharmony_ci{
208141cc406Sopenharmony_ci	{{0,    124},  36, -1, {2550, 3508}, { 50, 50 }},
209141cc406Sopenharmony_ci	{{1040, 744}, 543, -1, { 473, 414 }, {150, 150}},
210141cc406Sopenharmony_ci	{{1004, 744}, 543, -1, { 567, 414 }, {150, 150}},
211141cc406Sopenharmony_ci	{{0,     95},	0, -1, {2550, 3508}, { 50, 50 }},
212141cc406Sopenharmony_ci	{600, 600},
213141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
214141cc406Sopenharmony_ci	SENSORORDER_rgb,
215141cc406Sopenharmony_ci	4, 5, kNEC3799, 0x07, _WAF_NONE, _NO_MIO
216141cc406Sopenharmony_ci};
217141cc406Sopenharmony_ci
218141cc406Sopenharmony_ci/* Plustek Model: ???
219141cc406Sopenharmony_ci * Tokyo: NS9832 + Button + SONY548
220141cc406Sopenharmony_ci */
221141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0005_2 =
222141cc406Sopenharmony_ci{
223141cc406Sopenharmony_ci	{{ 0, 64}, 0, -1, {2550, 3508}, { 50, 50 }},
224141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
225141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
226141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
227141cc406Sopenharmony_ci	{600, 600},
228141cc406Sopenharmony_ci	0,
229141cc406Sopenharmony_ci	SENSORORDER_rgb,
230141cc406Sopenharmony_ci	8, 2, kSONY548, 0x05, _WAF_NONE, _NO_MIO
231141cc406Sopenharmony_ci};
232141cc406Sopenharmony_ci
233141cc406Sopenharmony_ci/* Genius ColorPage-HR7
234141cc406Sopenharmony_ci * Hualien: NS9832 + TPA + Button + NEC3778
235141cc406Sopenharmony_ci */
236141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0007_4 =
237141cc406Sopenharmony_ci{
238141cc406Sopenharmony_ci	{{       0,  111 - 4 },	  0, -1, {2550, 3508}, { 50, 50 }},
239141cc406Sopenharmony_ci	{{1040 + 5,  744 - 32}, 543, -1, { 473, 414 }, {150, 150}},
240141cc406Sopenharmony_ci	{{1040 - 20, 768     },	543, -1, { 567, 414 }, {150, 150}},
241141cc406Sopenharmony_ci	{{        0, 95      },   0, -1, {2550, 3508}, { 50, 50 }},
242141cc406Sopenharmony_ci	{1200, 1200},
243141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
244141cc406Sopenharmony_ci	SENSORORDER_rgb,
245141cc406Sopenharmony_ci	12,	5, kNEC3778, 0x07, _WAF_NONE, _NO_MIO
246141cc406Sopenharmony_ci};
247141cc406Sopenharmony_ci
248141cc406Sopenharmony_ci/* Genius ColorPage-HR7LE and ColorPage-HR6X
249141cc406Sopenharmony_ci * Hualien: NS9832 + Button + NEC3778
250141cc406Sopenharmony_ci */
251141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0005_4 =
252141cc406Sopenharmony_ci{
253141cc406Sopenharmony_ci	{{ 0,  111 - 4 }, 0, -1, {2550, 3508}, {50, 50}},
254141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
255141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
256141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
257141cc406Sopenharmony_ci	{1200, 1200},
258141cc406Sopenharmony_ci	0,
259141cc406Sopenharmony_ci	SENSORORDER_rgb,
260141cc406Sopenharmony_ci	12, 5, kNEC3778, 0x05, _WAF_NONE, _NO_MIO
261141cc406Sopenharmony_ci};
262141cc406Sopenharmony_ci
263141cc406Sopenharmony_ci/* Plustek Model: ???, Genius ColorPage HR6A
264141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3799
265141cc406Sopenharmony_ci */
266141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x000F_0 =
267141cc406Sopenharmony_ci{
268141cc406Sopenharmony_ci	{{   0, 130},  12, -1, {2550, 3508}, { 50, 50 }},
269141cc406Sopenharmony_ci	{{1040, 744}, 543, -1, { 473, 414 }, {150, 150}},
270141cc406Sopenharmony_ci	{{1004, 744}, 543, -1, { 567, 414 }, {150, 150}},
271141cc406Sopenharmony_ci	{{   0, 244},  12, -1, {2550, 4200}, { 50, 50 }},
272141cc406Sopenharmony_ci	{600, 600},
273141cc406Sopenharmony_ci	DEVCAPSFLAG_Normal + DEVCAPSFLAG_Adf,
274141cc406Sopenharmony_ci	SENSORORDER_rgb,
275141cc406Sopenharmony_ci	4, 5, kNEC3799, 0x0F, _WAF_NONE, _NO_MIO
276141cc406Sopenharmony_ci};
277141cc406Sopenharmony_ci
278141cc406Sopenharmony_ci/* Plustek Model: UT12
279141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3799
280141cc406Sopenharmony_ci */
281141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0013_0 =
282141cc406Sopenharmony_ci{
283141cc406Sopenharmony_ci	{{        0,       93},   0, -1, {2550, 3508}, { 50,  50}},
284141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32}, 543, -1, { 473,  414}, {150, 150}},
285141cc406Sopenharmony_ci	{{1004 + 30, 744 + 32},	543, -1, { 567,  414}, {150, 150}},
286141cc406Sopenharmony_ci	{{        0,       95},   0, -1, {2550, 3508}, { 50,  50}},
287141cc406Sopenharmony_ci	{600, 600},
288141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
289141cc406Sopenharmony_ci	SENSORORDER_rgb,
290141cc406Sopenharmony_ci	4, 4, kNEC3799, 0x03, _WAF_NONE, _NO_MIO
291141cc406Sopenharmony_ci};
292141cc406Sopenharmony_ci
293141cc406Sopenharmony_ci/* Plustek Model: U24
294141cc406Sopenharmony_ci * KH: NS9831 + Button + NEC3799
295141cc406Sopenharmony_ci//  */
296141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0011_0 =
297141cc406Sopenharmony_ci{
298141cc406Sopenharmony_ci	{{        0,       93},   0, -1, {2550, 3508}, { 50,  50}},
299141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32},	543, -1, { 473,  414}, {150, 150}},
300141cc406Sopenharmony_ci	{{1004 + 20, 744 + 32}, 543, -1, { 567,  414}, {150, 150}},
301141cc406Sopenharmony_ci	{{        0,       95},   0, -1, {2550, 3508}, { 50,  50}},
302141cc406Sopenharmony_ci	{600, 600},
303141cc406Sopenharmony_ci	0,
304141cc406Sopenharmony_ci	SENSORORDER_rgb,
305141cc406Sopenharmony_ci	4, 4, kNEC3799, 0x01, _WAF_NONE, _NO_MIO
306141cc406Sopenharmony_ci};
307141cc406Sopenharmony_ci
308141cc406Sopenharmony_ci/* Plustek Model: U12
309141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3799
310141cc406Sopenharmony_ci */
311141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0010_0 =
312141cc406Sopenharmony_ci{
313141cc406Sopenharmony_ci	{{        0,       93},   0, -1, {2550, 3508}, { 50,  50}},
314141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32},	543, -1, { 473,  414}, {150, 150}},
315141cc406Sopenharmony_ci	{{1004 + 20, 744 + 32}, 543, -1, { 567,  414}, {150, 150}},
316141cc406Sopenharmony_ci	{{        0,       95},	  0, -1, {2550, 3508}, { 50,  50}},
317141cc406Sopenharmony_ci	{600, 600},
318141cc406Sopenharmony_ci	0,
319141cc406Sopenharmony_ci	SENSORORDER_rgb,
320141cc406Sopenharmony_ci	4, 0, kNEC3799, 0x00, _WAF_BSHIFT7_BUG, _NO_MIO
321141cc406Sopenharmony_ci};
322141cc406Sopenharmony_ci
323141cc406Sopenharmony_ci/* Plustek Model: ???
324141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3778
325141cc406Sopenharmony_ci */
326141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0013_4 =
327141cc406Sopenharmony_ci{
328141cc406Sopenharmony_ci	{{        0, 99 /*114*/},   0, -1, {2550, 3508}, { 50,  50}},
329141cc406Sopenharmony_ci	{{     1055,   744 - 84}, 543, -1, { 473,  414}, {150, 150}},
330141cc406Sopenharmony_ci	{{1004 + 20,   744 - 20}, 543, -1, { 567,  414}, {150, 150}},
331141cc406Sopenharmony_ci	{{        0,         95},   0, -1, {2550, 3508}, { 50,  50}},
332141cc406Sopenharmony_ci	{1200, 1200},
333141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
334141cc406Sopenharmony_ci	SENSORORDER_rgb,
335141cc406Sopenharmony_ci	12, 4, kNEC3778, 0x03, _WAF_NONE, _NO_MIO
336141cc406Sopenharmony_ci};
337141cc406Sopenharmony_ci
338141cc406Sopenharmony_ci/* Plustek Model: ???
339141cc406Sopenharmony_ci * KH: NS9831 + Button + NEC3778
340141cc406Sopenharmony_ci */
341141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0011_4 =
342141cc406Sopenharmony_ci{
343141cc406Sopenharmony_ci	{{        0, 99 /*114*/},   0, -1, {2550, 3508}, { 50,  50}},
344141cc406Sopenharmony_ci	{{     1055,   744 - 84}, 543, -1, { 473,  414}, {150, 150}},
345141cc406Sopenharmony_ci	{{1004 + 20,   744 - 20}, 543, -1 ,{ 567,  414}, {150, 150}},
346141cc406Sopenharmony_ci	{{        0,         95},   0, -1, {2550, 3508}, { 50,  50}},
347141cc406Sopenharmony_ci	{1200, 1200},
348141cc406Sopenharmony_ci	0,
349141cc406Sopenharmony_ci	SENSORORDER_rgb,
350141cc406Sopenharmony_ci	12, 4, kNEC3778, 0x01, _WAF_NONE, _NO_MIO
351141cc406Sopenharmony_ci};
352141cc406Sopenharmony_ci
353141cc406Sopenharmony_ci/* Plustek Model: ???
354141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3778
355141cc406Sopenharmony_ci */
356141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0010_4 =
357141cc406Sopenharmony_ci{
358141cc406Sopenharmony_ci	{{        0, 99 /*114*/},   0, -1, {2550, 3508}, { 50,  50}},
359141cc406Sopenharmony_ci	{{     1055,   744 - 84}, 543, -1, { 473,  414}, {150, 150}},
360141cc406Sopenharmony_ci	{{1004 + 20,   744 - 20}, 543, -1, { 567,  414}, {150, 150}},
361141cc406Sopenharmony_ci	{{        0,         95},   0, -1, {2550, 3508}, { 50,  50}},
362141cc406Sopenharmony_ci	{1200, 1200},
363141cc406Sopenharmony_ci	0,
364141cc406Sopenharmony_ci	SENSORORDER_rgb,
365141cc406Sopenharmony_ci	12, 0, kNEC3778, 0x00, _WAF_NONE, _NO_MIO
366141cc406Sopenharmony_ci};
367141cc406Sopenharmony_ci
368141cc406Sopenharmony_ci/* Plustek Model: UA18?
369141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3778
370141cc406Sopenharmony_ci */
371141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x000F_4 =
372141cc406Sopenharmony_ci{
373141cc406Sopenharmony_ci	{{        0,      107},   0, -1, {2550, 3508}, { 50,  50}},
374141cc406Sopenharmony_ci	{{ 1040 + 5, 744 - 32}, 543, -1, { 473,  414}, {150, 150}},
375141cc406Sopenharmony_ci	{{1040 - 20,      768}, 543, -1, { 567,  414}, {150, 150}},
376141cc406Sopenharmony_ci	{{        0,      244},   0, -1, {2550, 4200}, { 50,  50}},
377141cc406Sopenharmony_ci	{1200, 1200},
378141cc406Sopenharmony_ci	DEVCAPSFLAG_Normal + DEVCAPSFLAG_Adf,
379141cc406Sopenharmony_ci	SENSORORDER_rgb,
380141cc406Sopenharmony_ci	12, 5, kNEC3778, 0x0F, _WAF_NONE, _NO_MIO
381141cc406Sopenharmony_ci};
382141cc406Sopenharmony_ci
383141cc406Sopenharmony_ci/* Plustek Model: ???
384141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3778
385141cc406Sopenharmony_ci */
386141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0016_4 =
387141cc406Sopenharmony_ci{
388141cc406Sopenharmony_ci	{{   0,  93},   0, -1, {2550, 3508}, { 50,  50}},
389141cc406Sopenharmony_ci	{{ 954, 422}, 272, -1, { 624, 1940}, {150, 150}},
390141cc406Sopenharmony_ci	{{1120, 438}, 275, -1, { 304, 1940}, {150, 150}},
391141cc406Sopenharmony_ci	{{   0,  95},   0, -1, {2550, 3508}, { 50,  50}},
392141cc406Sopenharmony_ci	{1200, 1200},
393141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
394141cc406Sopenharmony_ci	SENSORORDER_rgb,
395141cc406Sopenharmony_ci	12, 4, kNEC3778, 0x06, _WAF_NONE, _NO_MIO
396141cc406Sopenharmony_ci};
397141cc406Sopenharmony_ci
398141cc406Sopenharmony_ci/* Plustek Model: UT24
399141cc406Sopenharmony_ci * KH: NS9832 + TPA + Button + NEC3778
400141cc406Sopenharmony_ci */
401141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0017_4 =
402141cc406Sopenharmony_ci{
403141cc406Sopenharmony_ci	{{             0,  99 - 6},	    0, -1, {2550, 3508}, { 50,  50}},
404141cc406Sopenharmony_ci	{{1025 /*1055*/, 744 - 84},   543, -1, { 473,  414}, {150, 150}},
405141cc406Sopenharmony_ci	{{1048 /*1024*/, 754/*724*/}, 543, -1, { 567,  414}, {150, 150}},
406141cc406Sopenharmony_ci	{{            0,       95},     0, -1, {2550, 3508}, { 50,  50}},
407141cc406Sopenharmony_ci	{1200, 1200},
408141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
409141cc406Sopenharmony_ci	SENSORORDER_rgb,
410141cc406Sopenharmony_ci	12, 4, kNEC3778, 0x07, _WAF_NONE, _NO_MIO
411141cc406Sopenharmony_ci};
412141cc406Sopenharmony_ci
413141cc406Sopenharmony_ci/* Plustek Model: U24
414141cc406Sopenharmony_ci * KH: NS9832 + Button + NEC3778
415141cc406Sopenharmony_ci */
416141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0015_4 =
417141cc406Sopenharmony_ci{
418141cc406Sopenharmony_ci	{{        0,   99 - 6},   0, -1, {2550, 3508}, { 50,  50}},
419141cc406Sopenharmony_ci	{{     1055, 744 - 84}, 543, -1, { 473,  414}, {150, 150}},
420141cc406Sopenharmony_ci	{{1004 + 20, 744 - 20}, 543, -1, { 567,  414}, {150, 150}},
421141cc406Sopenharmony_ci	{{        0,       95},   0, -1, {2550, 3508}, { 50,  50}},
422141cc406Sopenharmony_ci	{1200, 1200},
423141cc406Sopenharmony_ci	0,
424141cc406Sopenharmony_ci	SENSORORDER_rgb,
425141cc406Sopenharmony_ci	12, 4, kNEC3778, 0x05, _WAF_NONE, _NO_MIO
426141cc406Sopenharmony_ci};
427141cc406Sopenharmony_ci
428141cc406Sopenharmony_ci/* Plustek Model: ???
429141cc406Sopenharmony_ci * KH: NS9832 + TPA + Button + NEC3778
430141cc406Sopenharmony_ci */
431141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0014_4 =
432141cc406Sopenharmony_ci{
433141cc406Sopenharmony_ci	{{        0,   99 - 6},   0, -1, {2550, 3508}, { 50,  50}},
434141cc406Sopenharmony_ci	{{     1055, 744 - 84}, 543, -1, { 473,  414}, {150, 150}},
435141cc406Sopenharmony_ci	{{1004 + 20, 744 - 20},	543, -1, { 567,  414}, {150, 150}},
436141cc406Sopenharmony_ci	{{        0,       95},   0, -1, {2550, 3508}, { 50,  50}},
437141cc406Sopenharmony_ci	{1200, 1200},
438141cc406Sopenharmony_ci	0,
439141cc406Sopenharmony_ci	SENSORORDER_rgb,
440141cc406Sopenharmony_ci	12, 0, kNEC3778, 0x04, _WAF_NONE, _NO_MIO
441141cc406Sopenharmony_ci};
442141cc406Sopenharmony_ci
443141cc406Sopenharmony_ci/* Plustek Model: ??? A3 model
444141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + SONY518
445141cc406Sopenharmony_ci */
446141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0014_1 =
447141cc406Sopenharmony_ci{
448141cc406Sopenharmony_ci	{{        0,       93},   0, -1, {3600, 5100}, { 50,  50}},
449141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32}, 543, -1, { 473,  414}, {150, 150}},
450141cc406Sopenharmony_ci	{{1004 + 20, 744 + 32}, 543, -1, { 567,  414}, {150, 150}},
451141cc406Sopenharmony_ci	{{        0,       95},   0, -1, {2550, 3508}, { 50,  50}},
452141cc406Sopenharmony_ci	{400, 400},
453141cc406Sopenharmony_ci	0,
454141cc406Sopenharmony_ci	SENSORORDER_rgb,
455141cc406Sopenharmony_ci	8, 0, kSONY518, 0x04, _WAF_NONE, _NO_MIO
456141cc406Sopenharmony_ci};
457141cc406Sopenharmony_ci
458141cc406Sopenharmony_ci/* Model: ???
459141cc406Sopenharmony_ci * KH: NS9832 + NEC3799 + 600 DPI Motor (for Brother demo only)
460141cc406Sopenharmony_ci */
461141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0012_0 =
462141cc406Sopenharmony_ci{
463141cc406Sopenharmony_ci	{{        0,       93},   0, -1, {2550, 3508}, { 50,  50}},
464141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32},	543, -1, { 473,  414}, {150, 150}},
465141cc406Sopenharmony_ci	{{1004 + 20, 744 + 32}, 543, -1, { 567,  414}, {150, 150}},
466141cc406Sopenharmony_ci	{{        0,       95},   0, -1, {2550, 3508}, { 50,  50}},
467141cc406Sopenharmony_ci	{600, 600},
468141cc406Sopenharmony_ci	0,
469141cc406Sopenharmony_ci	SENSORORDER_rgb,
470141cc406Sopenharmony_ci	4, 0, kNEC3799, 0x02, _WAF_NONE, _NO_MIO
471141cc406Sopenharmony_ci};
472141cc406Sopenharmony_ci
473141cc406Sopenharmony_ci/* Plustek Model: ???
474141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + SONY548
475141cc406Sopenharmony_ci */
476141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0017_2 =
477141cc406Sopenharmony_ci{
478141cc406Sopenharmony_ci	{{        0,       93},   0, -1, {2550, 3508}, { 50,  50}},
479141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32}, 543, -1, { 473,  414}, {150, 150}},
480141cc406Sopenharmony_ci	{{     1004,      744},	543, -1, { 567,  414}, {150, 150}},
481141cc406Sopenharmony_ci	{{        0,       95},   0, -1, {2550, 3508}, { 50,  50}},
482141cc406Sopenharmony_ci	{600, 600},
483141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
484141cc406Sopenharmony_ci	SENSORORDER_bgr,
485141cc406Sopenharmony_ci	8, 4, kSONY548, 0x07, _WAF_NONE, _NO_MIO
486141cc406Sopenharmony_ci};
487141cc406Sopenharmony_ci
488141cc406Sopenharmony_ci/* Plustek Model: ???
489141cc406Sopenharmony_ci * KH: NS9831 + TPA + Button + NEC3799
490141cc406Sopenharmony_ci */
491141cc406Sopenharmony_cistatic DCapsDef Cap0x07B3_0x0017_3 =
492141cc406Sopenharmony_ci{
493141cc406Sopenharmony_ci	{{        0,       93},   0, -1, {2550, 3508}, { 50,  50}},
494141cc406Sopenharmony_ci	{{1040 + 15, 744 - 32}, 543, -1, { 473,  414}, {150, 150}},
495141cc406Sopenharmony_ci	{{1004 + 30, 744 + 32}, 543, -1, { 567,  414}, {150, 150}},
496141cc406Sopenharmony_ci	{{        0,       95},   0, -1, {2550, 3508}, { 50,  50}},
497141cc406Sopenharmony_ci	{600, 600},
498141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
499141cc406Sopenharmony_ci	SENSORORDER_rgb,
500141cc406Sopenharmony_ci	8, 4, kNEC8861, 0x07, _WAF_NONE, _NO_MIO
501141cc406Sopenharmony_ci};
502141cc406Sopenharmony_ci
503141cc406Sopenharmony_ci/* Model: HP Scanjet 2100c */
504141cc406Sopenharmony_cistatic DCapsDef Cap0x03F0_0x0505 =
505141cc406Sopenharmony_ci{
506141cc406Sopenharmony_ci	{{ 0,  65}, 10, -1, {2550, 3508}, { 50,  50}},
507141cc406Sopenharmony_ci	{{ 0,   0},  0, -1, {0, 0}, { 0, 0 }},
508141cc406Sopenharmony_ci	{{ 0,   0},  0, -1, {0, 0}, { 0, 0 }},
509141cc406Sopenharmony_ci	{{ 0,   0},  0, -1, {0, 0}, { 0, 0 }},
510141cc406Sopenharmony_ci	{600, 600},
511141cc406Sopenharmony_ci	0,
512141cc406Sopenharmony_ci	SENSORORDER_rgb,
513141cc406Sopenharmony_ci	4, 0, kNECSLIM, 0x00, _WAF_NONE, _NO_MIO
514141cc406Sopenharmony_ci};
515141cc406Sopenharmony_ci
516141cc406Sopenharmony_ci/* Model: HP Scanjet 2200c (thanks to Stefan Nilsen)
517141cc406Sopenharmony_ci * NS9832 + 2 Buttons + NEC3799 + 600 DPI Motor
518141cc406Sopenharmony_ci */
519141cc406Sopenharmony_cistatic DCapsDef Cap0x03F0_0x0605 =
520141cc406Sopenharmony_ci{
521141cc406Sopenharmony_ci	/* DataOrigin (x, y), ShadingOriginY */
522141cc406Sopenharmony_ci	{{ 0, 209},  40, -1, {2550, 3508}, { 50,  50}},
523141cc406Sopenharmony_ci	{{ 0,   0},   0, -1, {0, 0}, { 0, 0 }},
524141cc406Sopenharmony_ci	{{ 0,   0},   0, -1, {0, 0}, { 0, 0 }},
525141cc406Sopenharmony_ci	{{ 0,   0},   0, -1, {0, 0}, { 0, 0 }},
526141cc406Sopenharmony_ci	{600, 600},
527141cc406Sopenharmony_ci	0,
528141cc406Sopenharmony_ci	SENSORORDER_rgb,
529141cc406Sopenharmony_ci	4, 2, kNECSLIM, 0x00, _WAF_NONE, _NO_MIO
530141cc406Sopenharmony_ci};
531141cc406Sopenharmony_ci
532141cc406Sopenharmony_ci/* Mustek BearPaw 1200 (thanks to Henning Meier-Geinitz)
533141cc406Sopenharmony_ci * NS9831 + 5 Buttons + NEC3798
534141cc406Sopenharmony_ci */
535141cc406Sopenharmony_cistatic DCapsDef Cap0x0400_0x1000_0 =
536141cc406Sopenharmony_ci{
537141cc406Sopenharmony_ci	{{ 0, 130}, 20, -1, {2550, 3508}, { 50, 50 }},
538141cc406Sopenharmony_ci	{{ 0,  0},   0, -1, {0, 0}, { 0, 0 }},
539141cc406Sopenharmony_ci	{{ 0,  0},   0, -1, {0, 0}, { 0, 0 }},
540141cc406Sopenharmony_ci	{{ 0,  0},   0, -1, {0, 0}, { 0, 0 }},
541141cc406Sopenharmony_ci	{600, 600},
542141cc406Sopenharmony_ci	0,
543141cc406Sopenharmony_ci	SENSORORDER_rgb,
544141cc406Sopenharmony_ci	8,
545141cc406Sopenharmony_ci	5, kNEC8861, 0x00,
546141cc406Sopenharmony_ci	_WAF_MISC_IO_LAMPS | _WAF_LOFF_ON_START | _WAF_USE_ALT_DESC,
547141cc406Sopenharmony_ci	_NO_MIO
548141cc406Sopenharmony_ci};
549141cc406Sopenharmony_ci
550141cc406Sopenharmony_ci/* Mustek BearPaw 2400
551141cc406Sopenharmony_ci * NS9832 + 5 Buttons + SONY548
552141cc406Sopenharmony_ci */
553141cc406Sopenharmony_cistatic DCapsDef Cap0x0400_0x1001_0 =
554141cc406Sopenharmony_ci{
555141cc406Sopenharmony_ci	{{ 0, 130/*209*/}, 35/*20*/, -1, {2550, 3508}, { 50, 50 }},
556141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
557141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
558141cc406Sopenharmony_ci	{{ 0,  0}, 0, -1, {0, 0}, { 0, 0 }},
559141cc406Sopenharmony_ci	{ 600, 600 }, /*{ 1200, 1200 }, */
560141cc406Sopenharmony_ci	0,
561141cc406Sopenharmony_ci	SENSORORDER_rgb,
562141cc406Sopenharmony_ci	4,/*16*/            /* sensor distance   */
563141cc406Sopenharmony_ci	5,                  /* number of buttons */
564141cc406Sopenharmony_ci	kSONY548,           /* CCD type          */
565141cc406Sopenharmony_ci	0, _WAF_USE_ALT_DESC, _NO_MIO
566141cc406Sopenharmony_ci};
567141cc406Sopenharmony_ci
568141cc406Sopenharmony_ci/* Epson Perfection/Photo1250 (thanks to Gene Heskett and Reinhard Max)
569141cc406Sopenharmony_ci * Epson Perfection/Photo1260 (thanks to Till Kamppeter)
570141cc406Sopenharmony_ci * NS9832 + 4 Buttons + CCD????
571141cc406Sopenharmony_ci */
572141cc406Sopenharmony_cistatic DCapsDef Cap0x04B8_0x010F =
573141cc406Sopenharmony_ci{
574141cc406Sopenharmony_ci	/* Normal */
575141cc406Sopenharmony_ci	{{   25,   85},  10, -1, {2550, 3508}, { 100, 100 }},
576141cc406Sopenharmony_ci	/* Positive */
577141cc406Sopenharmony_ci	{{ 1100,  972}, 720, -1, { 473,  414}, { 150, 150 }},
578141cc406Sopenharmony_ci	/* Negative */
579141cc406Sopenharmony_ci	{{ 1116, 1049}, 720, -1, { 567,  414}, { 150, 150 }},
580141cc406Sopenharmony_ci	{{ 0,  0},   0, -1, {0, 0}, { 0, 0 }},
581141cc406Sopenharmony_ci	{1200, 1200},
582141cc406Sopenharmony_ci	0,
583141cc406Sopenharmony_ci	SENSORORDER_rgb,
584141cc406Sopenharmony_ci	8,                  /* sensor distance                         */
585141cc406Sopenharmony_ci	4,                  /* number of buttons                       */
586141cc406Sopenharmony_ci	kEPSON,             /* use default settings during calibration */
587141cc406Sopenharmony_ci	0,                  /* not used here...                        */
588141cc406Sopenharmony_ci	_WAF_MISC_IO_LAMPS, /* use miscio 6 for lamp switching         */
589141cc406Sopenharmony_ci	_MIO6 + _TPA(_MIO1) /* and miscio 1 for optional TPA           */
590141cc406Sopenharmony_ci};
591141cc406Sopenharmony_ci
592141cc406Sopenharmony_ci/* Umax 3400/3450
593141cc406Sopenharmony_ci */
594141cc406Sopenharmony_cistatic DCapsDef Cap0x1606_0x0060 =
595141cc406Sopenharmony_ci{
596141cc406Sopenharmony_ci	/* Normal */
597141cc406Sopenharmony_ci	{{  30, 105 },  15, -1, {2550, 3508}, { 100, 100 }},
598141cc406Sopenharmony_ci	/* Positive */
599141cc406Sopenharmony_ci	{{ 700, 760 }, 650, -1, {1200, 1500}, { 150, 150 }},
600141cc406Sopenharmony_ci	/* Negative */
601141cc406Sopenharmony_ci	{{ 700, 760 }, 650, -1, {1200, 1500}, { 150, 150 }},
602141cc406Sopenharmony_ci	{{   0,   0 },   0, -1, {0, 0}, { 0, 0 }},
603141cc406Sopenharmony_ci	{600, 600},
604141cc406Sopenharmony_ci	DEVCAPSFLAG_LargeTPA,
605141cc406Sopenharmony_ci	SENSORORDER_bgr,
606141cc406Sopenharmony_ci	8,                  /* sensor distance                         */
607141cc406Sopenharmony_ci	4,                  /* number of buttons                       */
608141cc406Sopenharmony_ci	kNEC8861,           /* use default settings during calibration */
609141cc406Sopenharmony_ci	0,                  /* not used here...                        */
610141cc406Sopenharmony_ci	_WAF_MISC_IO_LAMPS, /* use miscio 3 for lamp switching         */
611141cc406Sopenharmony_ci	_MIO3 + _TPA(_MIO6) /* and miscio 6 for optional TPA           */
612141cc406Sopenharmony_ci};
613141cc406Sopenharmony_ci
614141cc406Sopenharmony_ci/* Umax 5400
615141cc406Sopenharmony_ci */
616141cc406Sopenharmony_cistatic DCapsDef Cap0x1606_0x0160 =
617141cc406Sopenharmony_ci{
618141cc406Sopenharmony_ci 	{{ 30, 165}, 0, -1, {2550, 3508}, {100, 100}},
619141cc406Sopenharmony_ci 	{{  0,   0}, 0, -1, {0, 0}, { 0, 0 }},
620141cc406Sopenharmony_ci 	{{  0,   0}, 0, -1, {0, 0}, { 0, 0 }},
621141cc406Sopenharmony_ci 	{{  0,   0}, 0, -1, {0, 0}, { 0, 0 }},
622141cc406Sopenharmony_ci 	{1200, 1200},
623141cc406Sopenharmony_ci 	0,
624141cc406Sopenharmony_ci 	SENSORORDER_bgr,
625141cc406Sopenharmony_ci 	12,                 /* sensor distance                         */
626141cc406Sopenharmony_ci 	4,                  /* number of buttons                       */
627141cc406Sopenharmony_ci 	kNEC3778,           /* use default settings during calibration */
628141cc406Sopenharmony_ci 	0,                  /* not used here...                        */
629141cc406Sopenharmony_ci 	_WAF_MISC_IO_LAMPS, /* use miscio 3 for lamp switching         */
630141cc406Sopenharmony_ci    _MIO3
631141cc406Sopenharmony_ci};
632141cc406Sopenharmony_ci
633141cc406Sopenharmony_ci/* Canon N650U/N656U
634141cc406Sopenharmony_ci */
635141cc406Sopenharmony_cistatic DCapsDef Cap0x04A9_0x2206 =
636141cc406Sopenharmony_ci{
637141cc406Sopenharmony_ci	{{ 0, 90}, 45, 10, {2550, 3508}, {75, 75}},
638141cc406Sopenharmony_ci	{{ 0,  0},  0,  0, {0, 0}, { 0, 0 }},
639141cc406Sopenharmony_ci	{{ 0,  0},  0,  0, {0, 0}, { 0, 0 }},
640141cc406Sopenharmony_ci	{{ 0,  0},  0,  0, {0, 0}, { 0, 0 }},
641141cc406Sopenharmony_ci	{600, 600},
642141cc406Sopenharmony_ci	0,
643141cc406Sopenharmony_ci	SENSORORDER_rgb,
644141cc406Sopenharmony_ci	8,                  /* sensor distance                         */
645141cc406Sopenharmony_ci	1,                  /* number of buttons                       */
646141cc406Sopenharmony_ci	kCIS650,            /* use default settings during calibration */
647141cc406Sopenharmony_ci	0,                  /* not used here...                        */
648141cc406Sopenharmony_ci	_WAF_MISC_IO_LAMPS, _NO_MIO
649141cc406Sopenharmony_ci};
650141cc406Sopenharmony_ci
651141cc406Sopenharmony_ci/* Canon N1220U
652141cc406Sopenharmony_ci */
653141cc406Sopenharmony_cistatic DCapsDef Cap0x04A9_0x2207 =
654141cc406Sopenharmony_ci{
655141cc406Sopenharmony_ci	{{ 0, 85}, 45, 10, {2550, 3508}, {75, 75}},
656141cc406Sopenharmony_ci	{{ 0,  0},  0,  0, {0, 0}, { 0, 0 }},
657141cc406Sopenharmony_ci	{{ 0,  0},  0,  0, {0, 0}, { 0, 0 }},
658141cc406Sopenharmony_ci	{{ 0,  0},  0,  0, {0, 0}, { 0, 0 }},
659141cc406Sopenharmony_ci	{1200, 1200},
660141cc406Sopenharmony_ci	0,
661141cc406Sopenharmony_ci	SENSORORDER_rgb,
662141cc406Sopenharmony_ci	16,                 /* sensor distance                         */
663141cc406Sopenharmony_ci	1,                  /* number of buttons                       */
664141cc406Sopenharmony_ci	kCIS1220,           /* use default settings during calibration */
665141cc406Sopenharmony_ci	0,                  /* not used here...                        */
666141cc406Sopenharmony_ci	_WAF_MISC_IO_LAMPS, _NO_MIO
667141cc406Sopenharmony_ci};
668141cc406Sopenharmony_ci
669141cc406Sopenharmony_ci/* Canon D660U
670141cc406Sopenharmony_ci */
671141cc406Sopenharmony_cistatic DCapsDef Cap0x04A9_0x2208 =
672141cc406Sopenharmony_ci{
673141cc406Sopenharmony_ci	{{  45, 125},  15, -1, {2550, 3508}, { 50,  50}},
674141cc406Sopenharmony_ci	{{1060, 744}, 510, -1, { 473,  414}, {150, 150}},
675141cc406Sopenharmony_ci	{{1082, 842}, 610, -1, { 567,  414}, {150, 150}},
676141cc406Sopenharmony_ci	{{   0,   0},   0,  0, {   0,    0}, {  0,   0}},
677141cc406Sopenharmony_ci	{600, 600},
678141cc406Sopenharmony_ci	DEVCAPSFLAG_Positive + DEVCAPSFLAG_Negative,
679141cc406Sopenharmony_ci	SENSORORDER_rgb,
680141cc406Sopenharmony_ci	4,
681141cc406Sopenharmony_ci	1,
682141cc406Sopenharmony_ci	kNEC8861,           /* use default settings during calibration */
683141cc406Sopenharmony_ci	0,
684141cc406Sopenharmony_ci	(_WAF_MISC_IO_LAMPS | _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR),
685141cc406Sopenharmony_ci	_MIO5 + _TPA(_MIO6)
686141cc406Sopenharmony_ci};
687141cc406Sopenharmony_ci
688141cc406Sopenharmony_ci/* Canon N670U/N676U/LiDE20
689141cc406Sopenharmony_ci */
690141cc406Sopenharmony_cistatic DCapsDef Cap0x04A9_0x220D =
691141cc406Sopenharmony_ci{
692141cc406Sopenharmony_ci	{{ 0, 110}, 45, -1, {2550, 3508}, {75, 75}},
693141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
694141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
695141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
696141cc406Sopenharmony_ci	{600, 600},
697141cc406Sopenharmony_ci	0,
698141cc406Sopenharmony_ci	SENSORORDER_rgb,
699141cc406Sopenharmony_ci	8,                  /* sensor distance                         */
700141cc406Sopenharmony_ci	3,                  /* number of buttons                       */
701141cc406Sopenharmony_ci	kCIS670,
702141cc406Sopenharmony_ci	0,                  /* not used here...                        */
703141cc406Sopenharmony_ci	_WAF_MISC_IO_LAMPS, _NO_MIO
704141cc406Sopenharmony_ci};
705141cc406Sopenharmony_ci
706141cc406Sopenharmony_ci/* Canon N1240U/LiDE30
707141cc406Sopenharmony_ci */
708141cc406Sopenharmony_cistatic DCapsDef Cap0x04A9_0x220E =
709141cc406Sopenharmony_ci{
710141cc406Sopenharmony_ci	{{ 0, 100}, 50, 10, {2550, 3508}, {75, 75}},
711141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
712141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
713141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
714141cc406Sopenharmony_ci	{1200, 1200},
715141cc406Sopenharmony_ci	0,
716141cc406Sopenharmony_ci	SENSORORDER_rgb,
717141cc406Sopenharmony_ci	16,                 /* sensor distance                         */
718141cc406Sopenharmony_ci	3,                  /* number of buttons                       */
719141cc406Sopenharmony_ci	kCIS1240,
720141cc406Sopenharmony_ci	0,                  /* not used here...                        */
721141cc406Sopenharmony_ci	_WAF_MISC_IO_LAMPS, _NO_MIO
722141cc406Sopenharmony_ci};
723141cc406Sopenharmony_ci
724141cc406Sopenharmony_ci/* Canon LiDE25
725141cc406Sopenharmony_ci */
726141cc406Sopenharmony_cistatic DCapsDef Cap0x04A9_0x2220 =
727141cc406Sopenharmony_ci{
728141cc406Sopenharmony_ci	{{ 0, 100}, 50, 10, {2550, 3508}, {75, 75}},
729141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
730141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
731141cc406Sopenharmony_ci	{{ 0,   0},  0,  0, {0, 0}, { 0, 0 }},
732141cc406Sopenharmony_ci	{1200, 1200},
733141cc406Sopenharmony_ci	0,
734141cc406Sopenharmony_ci	SENSORORDER_rgb,
735141cc406Sopenharmony_ci	16,                 /* sensor distance                         */
736141cc406Sopenharmony_ci	3,                  /* number of buttons                       */
737141cc406Sopenharmony_ci	kCIS1240,
738141cc406Sopenharmony_ci	0,                  /* not used here...                        */
739141cc406Sopenharmony_ci	_WAF_MISC_IO_LAMPS, _NO_MIO
740141cc406Sopenharmony_ci};
741141cc406Sopenharmony_ci
742141cc406Sopenharmony_ci/* Syscan TravelScan 662 A6 sheet-fed scanner
743141cc406Sopenharmony_ci */
744141cc406Sopenharmony_cistatic DCapsDef Cap0x0A82_0x6620 =
745141cc406Sopenharmony_ci{
746141cc406Sopenharmony_ci	{{ 0,   0}, 100, -1, {1226, 3508}, {75, 75}},
747141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
748141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
749141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
750141cc406Sopenharmony_ci	{600, 600},
751141cc406Sopenharmony_ci	DEVCAPSFLAG_SheetFed,
752141cc406Sopenharmony_ci	SENSORORDER_rgb,
753141cc406Sopenharmony_ci	8,
754141cc406Sopenharmony_ci	1,
755141cc406Sopenharmony_ci	kNEC8861,           /* use default settings during calibration */
756141cc406Sopenharmony_ci	0,                  /* not used here... */
757141cc406Sopenharmony_ci	(_WAF_MISC_IO_LAMPS | _WAF_MISC_IO_BUTTONS |
758141cc406Sopenharmony_ci	 _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR),
759141cc406Sopenharmony_ci	_MIO5 + _PORT1 + _PS_INP_MIO2
760141cc406Sopenharmony_ci};
761141cc406Sopenharmony_ci
762141cc406Sopenharmony_ci/* Syscan TravelScan 464 A4 sheet-fed scanner
763141cc406Sopenharmony_ci */
764141cc406Sopenharmony_cistatic DCapsDef Cap0x0A82_0x4600 =
765141cc406Sopenharmony_ci{
766141cc406Sopenharmony_ci	{{ 0,   0}, 150, -1, {2550, 3508}, {75, 75}},
767141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
768141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
769141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
770141cc406Sopenharmony_ci	{600, 600},
771141cc406Sopenharmony_ci	DEVCAPSFLAG_SheetFed,
772141cc406Sopenharmony_ci	SENSORORDER_rgb,
773141cc406Sopenharmony_ci	8,
774141cc406Sopenharmony_ci	1,
775141cc406Sopenharmony_ci	kNEC8861,           /* use default settings during calibration */
776141cc406Sopenharmony_ci	0,                  /* not used here... */
777141cc406Sopenharmony_ci	(_WAF_MISC_IO_LAMPS | _WAF_MISC_IO_BUTTONS |
778141cc406Sopenharmony_ci	 _WAF_BIN_FROM_COLOR | _WAF_GRAY_FROM_COLOR),
779141cc406Sopenharmony_ci	_MIO5 + _PORT1 + _PS_INP_MIO2
780141cc406Sopenharmony_ci};
781141cc406Sopenharmony_ci
782141cc406Sopenharmony_ci/* IRIScan/Q-Scan USB001 A4 sheet-fed scanner
783141cc406Sopenharmony_ci */
784141cc406Sopenharmony_cistatic DCapsDef Cap0x0A53_0x1000 =
785141cc406Sopenharmony_ci{
786141cc406Sopenharmony_ci	{{ 0,   0}, 150, -1, {2550, 3508}, {150, 150}},
787141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
788141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
789141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
790141cc406Sopenharmony_ci	{300, 300},
791141cc406Sopenharmony_ci	DEVCAPSFLAG_SheetFed,
792141cc406Sopenharmony_ci	SENSORORDER_gbr,
793141cc406Sopenharmony_ci	2,                  /* sensor distance                         */
794141cc406Sopenharmony_ci	0,                  /* number of buttons                       */
795141cc406Sopenharmony_ci	kNEC8861,           /* use default settings during calibration */
796141cc406Sopenharmony_ci	200,                /* threshold for resetting sensor-order    */
797141cc406Sopenharmony_ci	(_WAF_MISC_IO_LAMPS | _WAF_RESET_SO_TO_RGB | _WAF_ONLY_8BIT),
798141cc406Sopenharmony_ci	_PS_INP1
799141cc406Sopenharmony_ci};
800141cc406Sopenharmony_ci
801141cc406Sopenharmony_ci/* PandP USB201 Q-Scan A6 Scanner
802141cc406Sopenharmony_ci */
803141cc406Sopenharmony_cistatic DCapsDef Cap0x0A53_0x2000 =
804141cc406Sopenharmony_ci{
805141cc406Sopenharmony_ci	{{ 0,   0},   0, -1, {1226, 3508}, { 50, 50 }},
806141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
807141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
808141cc406Sopenharmony_ci	{{ 0,   0},   0,  0, {0, 0}, { 0, 0 }},
809141cc406Sopenharmony_ci	{600, 600},
810141cc406Sopenharmony_ci	DEVCAPSFLAG_SheetFed,
811141cc406Sopenharmony_ci	SENSORORDER_rgb,
812141cc406Sopenharmony_ci	4,
813141cc406Sopenharmony_ci	0,
814141cc406Sopenharmony_ci	kNEC8861,
815141cc406Sopenharmony_ci	0,
816141cc406Sopenharmony_ci	_WAF_NONE,
817141cc406Sopenharmony_ci	_PS_INP1
818141cc406Sopenharmony_ci};
819141cc406Sopenharmony_ci
820141cc406Sopenharmony_ci/******************* additional Hardware descriptions ************************/
821141cc406Sopenharmony_ci
822141cc406Sopenharmony_ci/** U24, UT12 and UT16
823141cc406Sopenharmony_ci */
824141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0017_0 =
825141cc406Sopenharmony_ci{
826141cc406Sopenharmony_ci	1.5,            /* dMaxMotorSpeed                           */
827141cc406Sopenharmony_ci	1.2,            /* dMaxMoveSpeed                            */
828141cc406Sopenharmony_ci	0.0,            /* dHighSpeed                               */
829141cc406Sopenharmony_ci	9,              /* dIntegrationTimeLowLamp                  */
830141cc406Sopenharmony_ci	9,              /* dIntegrationTimeHighLamp                 */
831141cc406Sopenharmony_ci	300,            /* wMotorDpi (Full step DPI)                */
832141cc406Sopenharmony_ci	512,            /* wRAMSize (KB)                            */
833141cc406Sopenharmony_ci	4,              /* dMinIntegrationTimeLowres (ms)           */
834141cc406Sopenharmony_ci	5,              /* dMinIntegrationTimeHighres (ms)          */
835141cc406Sopenharmony_ci	3000,           /* wGreenPWMDutyCycleLow                    */
836141cc406Sopenharmony_ci	4095,           /* wGreenPWMDutyCycleHigh                   */
837141cc406Sopenharmony_ci	0x02,           /* bSensorConfiguration (0x0b)              */
838141cc406Sopenharmony_ci	0x04,           /* bReg_0x0c                                */
839141cc406Sopenharmony_ci	0x37,           /* bReg_0x0d                                */
840141cc406Sopenharmony_ci	0x13,           /* bReg_0x0e                                */
841141cc406Sopenharmony_ci	/* bReg_0x0f_Mono [10]  (0x0f to 0x18)                      */
842141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
843141cc406Sopenharmony_ci	/* bReg_0x0f_Color [10]	(0x0f to 0x18)                      */
844141cc406Sopenharmony_ci	{5, 23, 1, 3, 0, 0, 0, 12, 10, 22},
845141cc406Sopenharmony_ci
846141cc406Sopenharmony_ci	_GREEN_CH,      /* bReg_0x26 color mode - bits 4 and 5      */
847141cc406Sopenharmony_ci	0,              /* bReg 0x27 color mode                     */
848141cc406Sopenharmony_ci
849141cc406Sopenharmony_ci	1,              /* bReg 0x29 illumination mode              */
850141cc406Sopenharmony_ci
851141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)    */
852141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
853141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
854141cc406Sopenharmony_ci
855141cc406Sopenharmony_ci	1,              /* StepperPhaseCorrection (0x1a & 0x1b)     */
856141cc406Sopenharmony_ci	14,             /* 15,  bOpticBlackStart (0x1c)             */
857141cc406Sopenharmony_ci	62,             /* 60,  bOpticBlackEnd (0x1d)               */
858141cc406Sopenharmony_ci	110,            /* 65,  wActivePixelsStart (0x1e & 0x1f)    */
859141cc406Sopenharmony_ci	5400,           /* 5384 ,wLineEnd   (0x20 & 0x21)           */
860141cc406Sopenharmony_ci
861141cc406Sopenharmony_ci	0,              /* red lamp on    (reg 0x2c + 0x2d)         */
862141cc406Sopenharmony_ci	16383,          /* red lamp off   (reg 0x2e + 0x2f)         */
863141cc406Sopenharmony_ci	0,              /* green lamp on  (reg 0x30 + 0x31)         */
864141cc406Sopenharmony_ci	0,              /* green lamp off (reg 0x32 + 0x33)         */
865141cc406Sopenharmony_ci	0,              /* blue lamp on   (reg 0x34 + 0x35)         */
866141cc406Sopenharmony_ci	16383,          /* blue lamp off  (reg 0x36 + 0x37)         */
867141cc406Sopenharmony_ci
868141cc406Sopenharmony_ci	/* Misc                                                     */
869141cc406Sopenharmony_ci	3,              /* bReg_0x45                                */
870141cc406Sopenharmony_ci	0,              /* wStepsAfterPaperSensor2 (0x4c & 0x4d)    */
871141cc406Sopenharmony_ci	0x1e,           /* bstepsToReverse reg 0x50)                */
872141cc406Sopenharmony_ci	0xa8,           /* 0xfc -bReg_0x51                          */
873141cc406Sopenharmony_ci	0,              /* bReg_0x54                                */
874141cc406Sopenharmony_ci	0xff,           /* 0xa3 - bReg_0x55                         */
875141cc406Sopenharmony_ci	64,             /* bReg_0x56                                */
876141cc406Sopenharmony_ci	20,             /* bReg_0x57                                */
877141cc406Sopenharmony_ci	0x0d,           /* bReg_0x58                                */
878141cc406Sopenharmony_ci	0x22,           /* bReg_0x59                                */
879141cc406Sopenharmony_ci	0x82,           /* bReg_0x5a                                */
880141cc406Sopenharmony_ci	0x88,           /* bReg_0x5b                                */
881141cc406Sopenharmony_ci	0,              /* bReg_0x5c                                */
882141cc406Sopenharmony_ci	0,              /* bReg_0x5d                                */
883141cc406Sopenharmony_ci	0,              /* bReg_0x5e                                */
884141cc406Sopenharmony_ci	_LM9832,        /* chip type                                */
885141cc406Sopenharmony_ci	MODEL_KaoHsiung,/* motorModel                               */
886141cc406Sopenharmony_ci	1.0
887141cc406Sopenharmony_ci};
888141cc406Sopenharmony_ci
889141cc406Sopenharmony_ci/** Genius ColorPage-HR6 V2 and ColorPage-HR6X
890141cc406Sopenharmony_ci */
891141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0007_0 =
892141cc406Sopenharmony_ci{
893141cc406Sopenharmony_ci	1.5, 1.2, 0.0,
894141cc406Sopenharmony_ci	9, 9,
895141cc406Sopenharmony_ci	300,
896141cc406Sopenharmony_ci	512,
897141cc406Sopenharmony_ci	4, 5,
898141cc406Sopenharmony_ci	3000, 4095,
899141cc406Sopenharmony_ci	0x02, 0x14,	0x27, 0x13,
900141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
901141cc406Sopenharmony_ci	{5, 23, 1, 3, 0, 0, 0, 6, 10, 22},
902141cc406Sopenharmony_ci	_GREEN_CH,
903141cc406Sopenharmony_ci	0,
904141cc406Sopenharmony_ci	1,
905141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
906141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
907141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
908141cc406Sopenharmony_ci	1,
909141cc406Sopenharmony_ci	14,
910141cc406Sopenharmony_ci	62,
911141cc406Sopenharmony_ci	110,
912141cc406Sopenharmony_ci	5384,
913141cc406Sopenharmony_ci	0,
914141cc406Sopenharmony_ci	16383,
915141cc406Sopenharmony_ci	0,
916141cc406Sopenharmony_ci	0,
917141cc406Sopenharmony_ci	0,
918141cc406Sopenharmony_ci	16383,
919141cc406Sopenharmony_ci	3,
920141cc406Sopenharmony_ci	0,
921141cc406Sopenharmony_ci	0x1e,
922141cc406Sopenharmony_ci	0xa8,
923141cc406Sopenharmony_ci	0,
924141cc406Sopenharmony_ci	0xff,
925141cc406Sopenharmony_ci	64,
926141cc406Sopenharmony_ci	20,
927141cc406Sopenharmony_ci	0x0d, 0x88, 0x28, 0x3b,
928141cc406Sopenharmony_ci	0, 0, 0,
929141cc406Sopenharmony_ci	_LM9832,
930141cc406Sopenharmony_ci	MODEL_HuaLien,
931141cc406Sopenharmony_ci	1.0
932141cc406Sopenharmony_ci};
933141cc406Sopenharmony_ci
934141cc406Sopenharmony_ci/** unknown
935141cc406Sopenharmony_ci */
936141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0007_2 =
937141cc406Sopenharmony_ci{
938141cc406Sopenharmony_ci	1.4, 1.2, 0.0,
939141cc406Sopenharmony_ci	9, 9,
940141cc406Sopenharmony_ci	600,
941141cc406Sopenharmony_ci	512,
942141cc406Sopenharmony_ci	4, 5,
943141cc406Sopenharmony_ci	3000, 4095,
944141cc406Sopenharmony_ci	0x02, 0x3f,	0x2f, 0x36,
945141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
946141cc406Sopenharmony_ci	{7, 20, 1, 4, 7, 10, 0, 6, 12, 0},
947141cc406Sopenharmony_ci	_GREEN_CH,
948141cc406Sopenharmony_ci	0,
949141cc406Sopenharmony_ci	1,
950141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
951141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
952141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
953141cc406Sopenharmony_ci	1,
954141cc406Sopenharmony_ci	16,
955141cc406Sopenharmony_ci	64,
956141cc406Sopenharmony_ci	152,
957141cc406Sopenharmony_ci	5416,
958141cc406Sopenharmony_ci	0,
959141cc406Sopenharmony_ci	16383,
960141cc406Sopenharmony_ci	0,
961141cc406Sopenharmony_ci	0,
962141cc406Sopenharmony_ci	0,
963141cc406Sopenharmony_ci	16383,
964141cc406Sopenharmony_ci	3,
965141cc406Sopenharmony_ci	0,
966141cc406Sopenharmony_ci	0x1e,
967141cc406Sopenharmony_ci	0xfc,
968141cc406Sopenharmony_ci	0,
969141cc406Sopenharmony_ci	0xff,
970141cc406Sopenharmony_ci	64,
971141cc406Sopenharmony_ci	20,
972141cc406Sopenharmony_ci	0x0d, 0x88, 0x28, 0x3b,
973141cc406Sopenharmony_ci	0, 0, 0,
974141cc406Sopenharmony_ci	_LM9832,
975141cc406Sopenharmony_ci	MODEL_Tokyo600,
976141cc406Sopenharmony_ci	1.0
977141cc406Sopenharmony_ci};
978141cc406Sopenharmony_ci
979141cc406Sopenharmony_ci/** Genius ColorPage-HR7 and ColorPage-HR7LE
980141cc406Sopenharmony_ci */
981141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0007_4 =
982141cc406Sopenharmony_ci{
983141cc406Sopenharmony_ci	1.1, 0.9, 0.0,
984141cc406Sopenharmony_ci	12, 12,
985141cc406Sopenharmony_ci	600,
986141cc406Sopenharmony_ci	2048,
987141cc406Sopenharmony_ci	8, 8,
988141cc406Sopenharmony_ci	4095, 4095,
989141cc406Sopenharmony_ci	0x06, 0x30,	0x2f, 0x2a,
990141cc406Sopenharmony_ci	{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
991141cc406Sopenharmony_ci	{20, 4, 13, 16, 19, 22, 0, 6, 23, 11},
992141cc406Sopenharmony_ci	_GREEN_CH,
993141cc406Sopenharmony_ci	0,
994141cc406Sopenharmony_ci	1,
995141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
996141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
997141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
998141cc406Sopenharmony_ci	1,
999141cc406Sopenharmony_ci	13,
1000141cc406Sopenharmony_ci	62,
1001141cc406Sopenharmony_ci	304,
1002141cc406Sopenharmony_ci	10684,
1003141cc406Sopenharmony_ci	0,
1004141cc406Sopenharmony_ci	16383,
1005141cc406Sopenharmony_ci	0,
1006141cc406Sopenharmony_ci	0,
1007141cc406Sopenharmony_ci	0,
1008141cc406Sopenharmony_ci	16383,
1009141cc406Sopenharmony_ci	3,
1010141cc406Sopenharmony_ci	0,
1011141cc406Sopenharmony_ci	0x1e,
1012141cc406Sopenharmony_ci	0xa8,
1013141cc406Sopenharmony_ci	0,
1014141cc406Sopenharmony_ci	0xff,
1015141cc406Sopenharmony_ci	24,
1016141cc406Sopenharmony_ci	40,
1017141cc406Sopenharmony_ci	0x0d, 0x88, 0x28, 0x3b,
1018141cc406Sopenharmony_ci	0, 0, 0,
1019141cc406Sopenharmony_ci	_LM9832,
1020141cc406Sopenharmony_ci	MODEL_HuaLien,
1021141cc406Sopenharmony_ci	1.0
1022141cc406Sopenharmony_ci};
1023141cc406Sopenharmony_ci
1024141cc406Sopenharmony_ci/** Genius ColorPage-HR6A
1025141cc406Sopenharmony_ci */
1026141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x000F_0 =
1027141cc406Sopenharmony_ci{
1028141cc406Sopenharmony_ci	1.5, 1.0, 0.0,
1029141cc406Sopenharmony_ci	9, 9,
1030141cc406Sopenharmony_ci	300,
1031141cc406Sopenharmony_ci	512,
1032141cc406Sopenharmony_ci	4, 5,
1033141cc406Sopenharmony_ci	3000, 4095,
1034141cc406Sopenharmony_ci	0x02, 0x14,	0x27, 0x13,
1035141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
1036141cc406Sopenharmony_ci	{5, 23, 1, 3, 0, 0, 0, 6, 10, 22},
1037141cc406Sopenharmony_ci	_GREEN_CH,
1038141cc406Sopenharmony_ci	0,
1039141cc406Sopenharmony_ci	1,
1040141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)    */
1041141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1042141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1043141cc406Sopenharmony_ci	1,
1044141cc406Sopenharmony_ci	14,
1045141cc406Sopenharmony_ci	62,
1046141cc406Sopenharmony_ci	110,
1047141cc406Sopenharmony_ci	5384,
1048141cc406Sopenharmony_ci	0,
1049141cc406Sopenharmony_ci	16383,
1050141cc406Sopenharmony_ci	0,
1051141cc406Sopenharmony_ci	0,
1052141cc406Sopenharmony_ci	0,
1053141cc406Sopenharmony_ci	16383,
1054141cc406Sopenharmony_ci	3,
1055141cc406Sopenharmony_ci	0,
1056141cc406Sopenharmony_ci	0x1e,
1057141cc406Sopenharmony_ci	0xa8,
1058141cc406Sopenharmony_ci	0,
1059141cc406Sopenharmony_ci	0xff,
1060141cc406Sopenharmony_ci	64,
1061141cc406Sopenharmony_ci	20,
1062141cc406Sopenharmony_ci	0x05, 0x88, 0x08, 0x3b,
1063141cc406Sopenharmony_ci	0, 0, 0,
1064141cc406Sopenharmony_ci	_LM9832,
1065141cc406Sopenharmony_ci	MODEL_HuaLien,
1066141cc406Sopenharmony_ci	1.0
1067141cc406Sopenharmony_ci};
1068141cc406Sopenharmony_ci
1069141cc406Sopenharmony_ci/** U12/UT12 and U24
1070141cc406Sopenharmony_ci */
1071141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0013_0 =
1072141cc406Sopenharmony_ci{
1073141cc406Sopenharmony_ci	1.5, 1.2, 0.0,
1074141cc406Sopenharmony_ci	9, 9,
1075141cc406Sopenharmony_ci	300,
1076141cc406Sopenharmony_ci	512,
1077141cc406Sopenharmony_ci	4, 5,
1078141cc406Sopenharmony_ci	3000, 4095,
1079141cc406Sopenharmony_ci	0x02, 0x04, 0x37, 0x13,
1080141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
1081141cc406Sopenharmony_ci	{5, 23, 1, 3, 0, 0, 0, 12, 10, 22},
1082141cc406Sopenharmony_ci	_GREEN_CH,
1083141cc406Sopenharmony_ci	0,
1084141cc406Sopenharmony_ci	1,
1085141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1086141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1087141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1088141cc406Sopenharmony_ci	1,
1089141cc406Sopenharmony_ci	14,
1090141cc406Sopenharmony_ci	62,
1091141cc406Sopenharmony_ci	110,
1092141cc406Sopenharmony_ci	5400,
1093141cc406Sopenharmony_ci	0,
1094141cc406Sopenharmony_ci	16383,
1095141cc406Sopenharmony_ci	0,
1096141cc406Sopenharmony_ci	0,
1097141cc406Sopenharmony_ci	0,
1098141cc406Sopenharmony_ci	16383,
1099141cc406Sopenharmony_ci	3,
1100141cc406Sopenharmony_ci	0,
1101141cc406Sopenharmony_ci	0x1e,
1102141cc406Sopenharmony_ci	0xa8,
1103141cc406Sopenharmony_ci	0,
1104141cc406Sopenharmony_ci	0xff,
1105141cc406Sopenharmony_ci	64,
1106141cc406Sopenharmony_ci	20,
1107141cc406Sopenharmony_ci	0x0d, 0x22,	0x82, 0x88,
1108141cc406Sopenharmony_ci	0, 0, 0,
1109141cc406Sopenharmony_ci	_LM9831,
1110141cc406Sopenharmony_ci	MODEL_KaoHsiung,
1111141cc406Sopenharmony_ci	1.0
1112141cc406Sopenharmony_ci};
1113141cc406Sopenharmony_ci
1114141cc406Sopenharmony_ci/** unknown
1115141cc406Sopenharmony_ci */
1116141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0013_4 =
1117141cc406Sopenharmony_ci{
1118141cc406Sopenharmony_ci	1.0, 0.9, 0.0,
1119141cc406Sopenharmony_ci	12, 12,
1120141cc406Sopenharmony_ci	600,
1121141cc406Sopenharmony_ci	2048,
1122141cc406Sopenharmony_ci	8, 8,
1123141cc406Sopenharmony_ci	4095, 4095,
1124141cc406Sopenharmony_ci	0x06, 0x20, 0x2f, 0x2a,
1125141cc406Sopenharmony_ci	{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
1126141cc406Sopenharmony_ci	{20, 4, 13, 16, 19, 22, 0, 0, 23, 11},
1127141cc406Sopenharmony_ci	_GREEN_CH,
1128141cc406Sopenharmony_ci	0,
1129141cc406Sopenharmony_ci	1,
1130141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1131141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1132141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1133141cc406Sopenharmony_ci	1,
1134141cc406Sopenharmony_ci	13,
1135141cc406Sopenharmony_ci	62,
1136141cc406Sopenharmony_ci	320,
1137141cc406Sopenharmony_ci	10684,
1138141cc406Sopenharmony_ci	0,
1139141cc406Sopenharmony_ci	16383,
1140141cc406Sopenharmony_ci	0,
1141141cc406Sopenharmony_ci	0,
1142141cc406Sopenharmony_ci	0,
1143141cc406Sopenharmony_ci	16383,
1144141cc406Sopenharmony_ci	3,
1145141cc406Sopenharmony_ci	0,
1146141cc406Sopenharmony_ci	0x1e,
1147141cc406Sopenharmony_ci	0xa8,
1148141cc406Sopenharmony_ci	0,
1149141cc406Sopenharmony_ci	0xff,
1150141cc406Sopenharmony_ci	10,
1151141cc406Sopenharmony_ci	48,
1152141cc406Sopenharmony_ci	0x0d, 0x22, 0x82, 0x88,
1153141cc406Sopenharmony_ci	0, 0, 0,
1154141cc406Sopenharmony_ci	_LM9831,
1155141cc406Sopenharmony_ci	MODEL_KaoHsiung,
1156141cc406Sopenharmony_ci	1.0
1157141cc406Sopenharmony_ci};
1158141cc406Sopenharmony_ci
1159141cc406Sopenharmony_ci/** unknown
1160141cc406Sopenharmony_ci */
1161141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x000F_4 =
1162141cc406Sopenharmony_ci{
1163141cc406Sopenharmony_ci	1.1, 0.9, 0.0,
1164141cc406Sopenharmony_ci	12,	12,
1165141cc406Sopenharmony_ci	600,
1166141cc406Sopenharmony_ci	2048,
1167141cc406Sopenharmony_ci	8, 8,
1168141cc406Sopenharmony_ci	4095, 4095,
1169141cc406Sopenharmony_ci	0x06, 0x30,	0x2f, 0x2a,
1170141cc406Sopenharmony_ci	{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
1171141cc406Sopenharmony_ci	{20, 4, 13, 16, 19, 22, 0, 6, 23, 11},
1172141cc406Sopenharmony_ci	_GREEN_CH,
1173141cc406Sopenharmony_ci	0,
1174141cc406Sopenharmony_ci	1,
1175141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1176141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1177141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1178141cc406Sopenharmony_ci	1,
1179141cc406Sopenharmony_ci	13,
1180141cc406Sopenharmony_ci	62,
1181141cc406Sopenharmony_ci	304,
1182141cc406Sopenharmony_ci	10684,
1183141cc406Sopenharmony_ci	0,
1184141cc406Sopenharmony_ci	16383,
1185141cc406Sopenharmony_ci	0,
1186141cc406Sopenharmony_ci	0,
1187141cc406Sopenharmony_ci	0,
1188141cc406Sopenharmony_ci	16383,
1189141cc406Sopenharmony_ci	3,
1190141cc406Sopenharmony_ci	0,
1191141cc406Sopenharmony_ci	0x1e,
1192141cc406Sopenharmony_ci	0xa8,
1193141cc406Sopenharmony_ci	0,
1194141cc406Sopenharmony_ci	0xff,
1195141cc406Sopenharmony_ci	24,
1196141cc406Sopenharmony_ci	40,
1197141cc406Sopenharmony_ci	0x05, 0x88, 0x08, 0x3b,
1198141cc406Sopenharmony_ci	0, 0, 0,
1199141cc406Sopenharmony_ci	_LM9832,
1200141cc406Sopenharmony_ci	MODEL_HuaLien,
1201141cc406Sopenharmony_ci	1.0
1202141cc406Sopenharmony_ci};
1203141cc406Sopenharmony_ci
1204141cc406Sopenharmony_ci/** unknown
1205141cc406Sopenharmony_ci */
1206141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0016_4 =
1207141cc406Sopenharmony_ci{
1208141cc406Sopenharmony_ci	1.0, 0.9, 0.0,
1209141cc406Sopenharmony_ci	12, 12,
1210141cc406Sopenharmony_ci	600,
1211141cc406Sopenharmony_ci	2048,
1212141cc406Sopenharmony_ci	8, 8,
1213141cc406Sopenharmony_ci	4095, 4095,
1214141cc406Sopenharmony_ci	0x06, 0x20,	0x2f, 0x2a,
1215141cc406Sopenharmony_ci	{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
1216141cc406Sopenharmony_ci	{20, 4, 13, 16, 19, 22, 0, 0, 23, 11},
1217141cc406Sopenharmony_ci	_GREEN_CH,
1218141cc406Sopenharmony_ci	0,
1219141cc406Sopenharmony_ci	1,
1220141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1221141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1222141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1223141cc406Sopenharmony_ci	1,
1224141cc406Sopenharmony_ci	13,
1225141cc406Sopenharmony_ci	62,
1226141cc406Sopenharmony_ci	320,
1227141cc406Sopenharmony_ci	10684,
1228141cc406Sopenharmony_ci	0,
1229141cc406Sopenharmony_ci	16383,
1230141cc406Sopenharmony_ci	0,
1231141cc406Sopenharmony_ci	0,
1232141cc406Sopenharmony_ci	0,
1233141cc406Sopenharmony_ci	16383,
1234141cc406Sopenharmony_ci	3,
1235141cc406Sopenharmony_ci	0,
1236141cc406Sopenharmony_ci	0x1e,
1237141cc406Sopenharmony_ci	0xa8,
1238141cc406Sopenharmony_ci	0,
1239141cc406Sopenharmony_ci	0xff,
1240141cc406Sopenharmony_ci	10,
1241141cc406Sopenharmony_ci	48,
1242141cc406Sopenharmony_ci	0x0d, 0x22, 0x82, 0x88,
1243141cc406Sopenharmony_ci	0, 0, 0,
1244141cc406Sopenharmony_ci	_LM9832,
1245141cc406Sopenharmony_ci	MODEL_KaoHsiung,
1246141cc406Sopenharmony_ci	1.0
1247141cc406Sopenharmony_ci};
1248141cc406Sopenharmony_ci
1249141cc406Sopenharmony_ci/** Plustek OpticPro UT24 and others...
1250141cc406Sopenharmony_ci */
1251141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0017_4 =
1252141cc406Sopenharmony_ci{
1253141cc406Sopenharmony_ci	1.0, 0.9, 0.0,
1254141cc406Sopenharmony_ci	12, 12,
1255141cc406Sopenharmony_ci	600,
1256141cc406Sopenharmony_ci	2048,
1257141cc406Sopenharmony_ci	8, 8,
1258141cc406Sopenharmony_ci	4095, 4095,
1259141cc406Sopenharmony_ci	0x06, 0x20, 0x2f, 0x2a,
1260141cc406Sopenharmony_ci	{2, 7, 5, 6, 6, 7, 0, 0, 0, 5},
1261141cc406Sopenharmony_ci	{20, 4, 13, 16, 19, 22, 0, 0, 23, 11},
1262141cc406Sopenharmony_ci	_GREEN_CH,
1263141cc406Sopenharmony_ci	0,
1264141cc406Sopenharmony_ci	1,
1265141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1266141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1267141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1268141cc406Sopenharmony_ci	1,
1269141cc406Sopenharmony_ci	13,
1270141cc406Sopenharmony_ci	62,
1271141cc406Sopenharmony_ci	320,
1272141cc406Sopenharmony_ci	10684,
1273141cc406Sopenharmony_ci	0,
1274141cc406Sopenharmony_ci	16383,
1275141cc406Sopenharmony_ci	0,
1276141cc406Sopenharmony_ci	0,
1277141cc406Sopenharmony_ci	0,
1278141cc406Sopenharmony_ci	16383,
1279141cc406Sopenharmony_ci	3,
1280141cc406Sopenharmony_ci	0,
1281141cc406Sopenharmony_ci	0x1e,
1282141cc406Sopenharmony_ci	0xa8,
1283141cc406Sopenharmony_ci	0,
1284141cc406Sopenharmony_ci	0xff,
1285141cc406Sopenharmony_ci	10,
1286141cc406Sopenharmony_ci	48,
1287141cc406Sopenharmony_ci	0x0d, 0x22, 0x82, 0x88,
1288141cc406Sopenharmony_ci	0, 0, 0,
1289141cc406Sopenharmony_ci	_LM9832,
1290141cc406Sopenharmony_ci	MODEL_KaoHsiung,
1291141cc406Sopenharmony_ci	1.0
1292141cc406Sopenharmony_ci};
1293141cc406Sopenharmony_ci
1294141cc406Sopenharmony_ci/** unknown
1295141cc406Sopenharmony_ci */
1296141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0017_1 =
1297141cc406Sopenharmony_ci{
1298141cc406Sopenharmony_ci	1.5, 1.5, 0.0,
1299141cc406Sopenharmony_ci	9, 9,
1300141cc406Sopenharmony_ci	200,
1301141cc406Sopenharmony_ci	2048,
1302141cc406Sopenharmony_ci	4, 5,
1303141cc406Sopenharmony_ci	3000, 4095,
1304141cc406Sopenharmony_ci	0x02, 0x08, 0x2f, 0x36,
1305141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
1306141cc406Sopenharmony_ci	{5, 23, 1, 4, 7, 10, 0, 0, 10, 12},
1307141cc406Sopenharmony_ci	_GREEN_CH,
1308141cc406Sopenharmony_ci	0,
1309141cc406Sopenharmony_ci	1,
1310141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1311141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1312141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1313141cc406Sopenharmony_ci	1,
1314141cc406Sopenharmony_ci	15,
1315141cc406Sopenharmony_ci	60,
1316141cc406Sopenharmony_ci	110,
1317141cc406Sopenharmony_ci	5415,
1318141cc406Sopenharmony_ci	0,
1319141cc406Sopenharmony_ci	16383,
1320141cc406Sopenharmony_ci	0,
1321141cc406Sopenharmony_ci	0,
1322141cc406Sopenharmony_ci	0,
1323141cc406Sopenharmony_ci	16383,
1324141cc406Sopenharmony_ci	3,
1325141cc406Sopenharmony_ci	0,
1326141cc406Sopenharmony_ci	0x1e,
1327141cc406Sopenharmony_ci	0xa8,
1328141cc406Sopenharmony_ci	0,
1329141cc406Sopenharmony_ci	0xff,
1330141cc406Sopenharmony_ci	64,
1331141cc406Sopenharmony_ci	20,
1332141cc406Sopenharmony_ci	0x0d, 0x22, 0x82, 0x88,
1333141cc406Sopenharmony_ci	0, 0, 0,
1334141cc406Sopenharmony_ci	_LM9832,
1335141cc406Sopenharmony_ci	MODEL_KaoHsiung,
1336141cc406Sopenharmony_ci	1.0
1337141cc406Sopenharmony_ci};
1338141cc406Sopenharmony_ci
1339141cc406Sopenharmony_ci/** unknown
1340141cc406Sopenharmony_ci */
1341141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0012_0 =
1342141cc406Sopenharmony_ci{
1343141cc406Sopenharmony_ci	1.5, 1.4, 0.0,
1344141cc406Sopenharmony_ci	9, 9,
1345141cc406Sopenharmony_ci	600,
1346141cc406Sopenharmony_ci	2048,
1347141cc406Sopenharmony_ci	4, 5,
1348141cc406Sopenharmony_ci	3000, 4095,
1349141cc406Sopenharmony_ci	0x02, 0x04, 0x37, 0x13,
1350141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
1351141cc406Sopenharmony_ci	{5, 23, 1, 3, 0, 0, 0, 12, 10, 22},
1352141cc406Sopenharmony_ci	_GREEN_CH,
1353141cc406Sopenharmony_ci	0,
1354141cc406Sopenharmony_ci	1,
1355141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1356141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1357141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1358141cc406Sopenharmony_ci	1,
1359141cc406Sopenharmony_ci	14,
1360141cc406Sopenharmony_ci	62,
1361141cc406Sopenharmony_ci	110,
1362141cc406Sopenharmony_ci	5400,
1363141cc406Sopenharmony_ci	0,
1364141cc406Sopenharmony_ci	16383,
1365141cc406Sopenharmony_ci	0,
1366141cc406Sopenharmony_ci	0,
1367141cc406Sopenharmony_ci	0,
1368141cc406Sopenharmony_ci	16383,
1369141cc406Sopenharmony_ci	3,
1370141cc406Sopenharmony_ci	0,
1371141cc406Sopenharmony_ci	0x1e,
1372141cc406Sopenharmony_ci	0xa8,
1373141cc406Sopenharmony_ci	0,
1374141cc406Sopenharmony_ci	0xff,
1375141cc406Sopenharmony_ci	64,
1376141cc406Sopenharmony_ci	20,
1377141cc406Sopenharmony_ci	0x0d, 0x22, 0x82, 0x88,
1378141cc406Sopenharmony_ci	0, 0, 0,
1379141cc406Sopenharmony_ci	_LM9832,
1380141cc406Sopenharmony_ci	MODEL_KaoHsiung,
1381141cc406Sopenharmony_ci	1.0
1382141cc406Sopenharmony_ci};
1383141cc406Sopenharmony_ci
1384141cc406Sopenharmony_ci/** unknown
1385141cc406Sopenharmony_ci */
1386141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0017_2 =
1387141cc406Sopenharmony_ci{
1388141cc406Sopenharmony_ci	1.5, 1.2, 0.0,
1389141cc406Sopenharmony_ci	9, 9,
1390141cc406Sopenharmony_ci	300,
1391141cc406Sopenharmony_ci	512,
1392141cc406Sopenharmony_ci	4, 5,
1393141cc406Sopenharmony_ci	3000, 4095,
1394141cc406Sopenharmony_ci	0x02, 0, 0x2f, 0x36,
1395141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
1396141cc406Sopenharmony_ci	{5, 0, 1, 4, 7, 10, 0, 0, 12, 0},
1397141cc406Sopenharmony_ci	_GREEN_CH,
1398141cc406Sopenharmony_ci	0,
1399141cc406Sopenharmony_ci	1,
1400141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1401141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1402141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1403141cc406Sopenharmony_ci	1,
1404141cc406Sopenharmony_ci	16,
1405141cc406Sopenharmony_ci	64,
1406141cc406Sopenharmony_ci	110,
1407141cc406Sopenharmony_ci	5416,
1408141cc406Sopenharmony_ci	0,
1409141cc406Sopenharmony_ci	16383,
1410141cc406Sopenharmony_ci	0,
1411141cc406Sopenharmony_ci	0,
1412141cc406Sopenharmony_ci	0,
1413141cc406Sopenharmony_ci	16383,
1414141cc406Sopenharmony_ci	3,
1415141cc406Sopenharmony_ci	0,
1416141cc406Sopenharmony_ci	0x1e,
1417141cc406Sopenharmony_ci	0xa8,
1418141cc406Sopenharmony_ci	0,
1419141cc406Sopenharmony_ci	0xff,
1420141cc406Sopenharmony_ci	64,
1421141cc406Sopenharmony_ci	20,
1422141cc406Sopenharmony_ci	0x0d, 0x22,	0x82, 0x88,
1423141cc406Sopenharmony_ci	0, 0, 0,
1424141cc406Sopenharmony_ci	_LM9832,
1425141cc406Sopenharmony_ci	MODEL_KaoHsiung,
1426141cc406Sopenharmony_ci	1.0
1427141cc406Sopenharmony_ci};
1428141cc406Sopenharmony_ci
1429141cc406Sopenharmony_ci/** unknown
1430141cc406Sopenharmony_ci */
1431141cc406Sopenharmony_cistatic HWDef Hw0x07B3_0x0017_3 =
1432141cc406Sopenharmony_ci{
1433141cc406Sopenharmony_ci	1.5, 1.2, 0.0,
1434141cc406Sopenharmony_ci	9, 9,
1435141cc406Sopenharmony_ci	300,
1436141cc406Sopenharmony_ci	512,
1437141cc406Sopenharmony_ci	4, 5,
1438141cc406Sopenharmony_ci	3000, 4095,
1439141cc406Sopenharmony_ci	0x02, 0x04, 0x37, 0x13,
1440141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
1441141cc406Sopenharmony_ci	{5, 23, 1, 4, 7, 10, 0, 0, 11, 23},
1442141cc406Sopenharmony_ci	_GREEN_CH,
1443141cc406Sopenharmony_ci	0,
1444141cc406Sopenharmony_ci	1,
1445141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1446141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1447141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1448141cc406Sopenharmony_ci	1,
1449141cc406Sopenharmony_ci	14,
1450141cc406Sopenharmony_ci	62,
1451141cc406Sopenharmony_ci	110,
1452141cc406Sopenharmony_ci	5400,
1453141cc406Sopenharmony_ci	0,
1454141cc406Sopenharmony_ci	16383,
1455141cc406Sopenharmony_ci	0,
1456141cc406Sopenharmony_ci	0,
1457141cc406Sopenharmony_ci	0,
1458141cc406Sopenharmony_ci	16383,
1459141cc406Sopenharmony_ci	3,
1460141cc406Sopenharmony_ci	0,
1461141cc406Sopenharmony_ci	0x1e,
1462141cc406Sopenharmony_ci	0xa8,
1463141cc406Sopenharmony_ci	0,
1464141cc406Sopenharmony_ci	0xff,
1465141cc406Sopenharmony_ci	64,
1466141cc406Sopenharmony_ci	20,
1467141cc406Sopenharmony_ci	0x0d, 0x22, 0x82, 0x88,
1468141cc406Sopenharmony_ci	0, 0, 0,
1469141cc406Sopenharmony_ci	_LM9832,
1470141cc406Sopenharmony_ci	MODEL_KaoHsiung,
1471141cc406Sopenharmony_ci	1.0
1472141cc406Sopenharmony_ci};
1473141cc406Sopenharmony_ci
1474141cc406Sopenharmony_ci/** HP Scanjet 2100C
1475141cc406Sopenharmony_ci */
1476141cc406Sopenharmony_cistatic HWDef Hw0x03F0_0x0505 =
1477141cc406Sopenharmony_ci{
1478141cc406Sopenharmony_ci	1.05,   /* dMaxMotorSpeed                           */
1479141cc406Sopenharmony_ci	1.05,   /* dMaxMoveSpeed                            */
1480141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                               */
1481141cc406Sopenharmony_ci	6,      /* dIntegrationTimeLowLamp                  */
1482141cc406Sopenharmony_ci	8,      /* dIntegrationTimeHighLamp                 */
1483141cc406Sopenharmony_ci	600,    /* wMotorDpi (Full step DPI)                */
1484141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                            */
1485141cc406Sopenharmony_ci	6,      /* dMinIntegrationTimeLowres (ms)           */
1486141cc406Sopenharmony_ci	6,      /* dMinIntegrationTimeHighres (ms)          */
1487141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleLow                    */
1488141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleHigh                   */
1489141cc406Sopenharmony_ci	0x02,   /* bSensorConfiguration (0x0b)              */
1490141cc406Sopenharmony_ci	0x00,   /* bReg_0x0c                                */
1491141cc406Sopenharmony_ci	0x2F,   /* bReg_0x0d                                */
1492141cc406Sopenharmony_ci	0x13,   /* bReg_0x0e                                */
1493141cc406Sopenharmony_ci	        /* bReg_0x0f_Mono[10] (0x0f to 0x18)        */
1494141cc406Sopenharmony_ci
1495141cc406Sopenharmony_ci	{ 0x02, 0x07, 0x01, 0x02, 0x02, 0x03, 0x00, 0x00, 0x04, 0x07 },
1496141cc406Sopenharmony_ci
1497141cc406Sopenharmony_ci	       /* bReg_0x0f_Color[10] (0x0f to 0x18)       */
1498141cc406Sopenharmony_ci	{ 0x08, 0x17, 0x00, 0x03, 0x08, 0x0b, 0x00, 0x00, 0x0a, 0x14 },
1499141cc406Sopenharmony_ci
1500141cc406Sopenharmony_ci	_GREEN_CH,  /* bReg_0x26 color mode - bits 4 and 5  */
1501141cc406Sopenharmony_ci	0,          /* bReg 0x27 color mode                 */
1502141cc406Sopenharmony_ci
1503141cc406Sopenharmony_ci	1,          /* bReg 0x29 illumination mode          */
1504141cc406Sopenharmony_ci
1505141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1506141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1507141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1508141cc406Sopenharmony_ci
1509141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (0x1a & 0x1b)     */
1510141cc406Sopenharmony_ci	15,     /* bOpticBlackStart (0x1c)                  */
1511141cc406Sopenharmony_ci	50,     /* bOpticBlackEnd (0x1d)                    */
1512141cc406Sopenharmony_ci	140,    /* wActivePixelsStart (0x1e & 0x1f)         */
1513141cc406Sopenharmony_ci	5414,   /* wLineEnd=(0x20 & 0x21)                   */
1514141cc406Sopenharmony_ci
1515141cc406Sopenharmony_ci	1,      /* red lamp on    (reg 0x2c + 0x2d)         */
1516141cc406Sopenharmony_ci	16383,  /* red lamp off   (reg 0x2e + 0x2f)         */
1517141cc406Sopenharmony_ci	16383,  /* green lamp on  (reg 0x30 + 0x31)         */
1518141cc406Sopenharmony_ci	1,      /* green lamp off (reg 0x32 + 0x33)         */
1519141cc406Sopenharmony_ci	16383,  /* blue lamp on   (reg 0x34 + 0x35)         */
1520141cc406Sopenharmony_ci	1,      /* blue lamp off  (reg 0x36 + 0x37)         */
1521141cc406Sopenharmony_ci
1522141cc406Sopenharmony_ci	/* Misc                                             */
1523141cc406Sopenharmony_ci	0x13,   /* bReg_0x45                                */
1524141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (0x4c & 0x4d)    */
1525141cc406Sopenharmony_ci	0x1e,   /* steps to reverse on buffer full reg 0x50 */
1526141cc406Sopenharmony_ci	0xfc,   /* 0xa8 -bReg_0x51                          */
1527141cc406Sopenharmony_ci	0,      /* bReg_0x54                                */
1528141cc406Sopenharmony_ci	0x18,   /* bReg_0x55                                */
1529141cc406Sopenharmony_ci	8,      /* bReg_0x56                                */
1530141cc406Sopenharmony_ci	60,     /* bReg_0x57                                */
1531141cc406Sopenharmony_ci	0x0d,   /* bReg_0x58                                */
1532141cc406Sopenharmony_ci	0xaa,   /* bReg_0x59                                */
1533141cc406Sopenharmony_ci	0xba,   /* bReg_0x5a                                */
1534141cc406Sopenharmony_ci	0xbb,   /* bReg_0x5b                                */
1535141cc406Sopenharmony_ci	0,      /* bReg_0x5c                                */
1536141cc406Sopenharmony_ci	0,      /* bReg_0x5d                                */
1537141cc406Sopenharmony_ci	0,      /* bReg_0x5e                                */
1538141cc406Sopenharmony_ci	_LM9831,
1539141cc406Sopenharmony_ci	MODEL_HP,
1540141cc406Sopenharmony_ci	1.0
1541141cc406Sopenharmony_ci};
1542141cc406Sopenharmony_ci
1543141cc406Sopenharmony_ci/** HP Scanjet 2200C */
1544141cc406Sopenharmony_cistatic HWDef Hw0x03F0_0x0605 =
1545141cc406Sopenharmony_ci{
1546141cc406Sopenharmony_ci	1.05,   /* dMaxMotorSpeed                           */
1547141cc406Sopenharmony_ci	1.05,   /* dMaxMoveSpeed                            */
1548141cc406Sopenharmony_ci	2.2,    /* dHighSpeed                               */
1549141cc406Sopenharmony_ci	6,      /* dIntegrationTimeLowLamp                  */
1550141cc406Sopenharmony_ci	8,      /* dIntegrationTimeHighLamp                 */
1551141cc406Sopenharmony_ci	600,    /* ok wMotorDpi (Full step DPI)             */
1552141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                            */
1553141cc406Sopenharmony_ci	6,      /* dMinIntegrationTimeLowres (ms)           */
1554141cc406Sopenharmony_ci	6,      /* dMinIntegrationTimeHighres (ms)          */
1555141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleLow                    */
1556141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleHigh                   */
1557141cc406Sopenharmony_ci	0x02,   /* bSensorConfiguration (0x0b)              */
1558141cc406Sopenharmony_ci	0x04,   /* bReg_0x0c                                */
1559141cc406Sopenharmony_ci	0x2F,   /* bReg_0x0d                                */
1560141cc406Sopenharmony_ci	0x1F,   /* bReg_0x0e                                */
1561141cc406Sopenharmony_ci
1562141cc406Sopenharmony_ci	/* bReg_0x0f_Mono[10] (0x0f to 0x18)        */
1563141cc406Sopenharmony_ci	{ 0x02, 0x07, 0x01, 0x02, 0x02, 0x03, 0x00, 0x00, 0x04, 0x07 },
1564141cc406Sopenharmony_ci
1565141cc406Sopenharmony_ci	/* bReg_0x0f_Color[10] (0x0f to 0x18)       */
1566141cc406Sopenharmony_ci	{ 0x08, 0x17, 0x00, 0x03, 0x08, 0x0b, 0x00, 0x00, 0x0a, 0x14 },
1567141cc406Sopenharmony_ci
1568141cc406Sopenharmony_ci	_GREEN_CH,  /* bReg_0x26 color mode - bits 4 and 5  */
1569141cc406Sopenharmony_ci	0,          /* bReg 0x27 color mode                 */
1570141cc406Sopenharmony_ci	1,          /* bReg 0x29 illumination mode          */
1571141cc406Sopenharmony_ci
1572141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)*/
1573141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1574141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1575141cc406Sopenharmony_ci
1576141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (0x1a & 0x1b)     */
1577141cc406Sopenharmony_ci	14,     /* bOpticBlackStart (0x1c)                  */
1578141cc406Sopenharmony_ci	63,     /* bOpticBlackEnd (0x1d)                    */
1579141cc406Sopenharmony_ci	140,    /* wActivePixelsStart (0x1e & 0x1f)         */
1580141cc406Sopenharmony_ci	5367,   /* wLineEnd=(0x20 & 0x21)                   */
1581141cc406Sopenharmony_ci
1582141cc406Sopenharmony_ci	1,      /* red lamp on    (reg 0x2c + 0x2d)         */
1583141cc406Sopenharmony_ci	16383,  /* red lamp off   (reg 0x2e + 0x2f)         */
1584141cc406Sopenharmony_ci	16383,  /* green lamp on  (reg 0x30 + 0x31)         */
1585141cc406Sopenharmony_ci	1,      /* green lamp off (reg 0x32 + 0x33)         */
1586141cc406Sopenharmony_ci	16383,  /* blue lamp on   (reg 0x34 + 0x35)         */
1587141cc406Sopenharmony_ci	1,      /* blue lamp off  (reg 0x36 + 0x37)         */
1588141cc406Sopenharmony_ci
1589141cc406Sopenharmony_ci	/* Misc                                             */
1590141cc406Sopenharmony_ci	0x13,   /* bReg_0x45                                */
1591141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (0x4c & 0x4d)    */
1592141cc406Sopenharmony_ci	0x1e,   /* steps to reverse on buffer full (0x50)   */
1593141cc406Sopenharmony_ci	0xfc,   /* 0xa8 -bReg_0x51                          */
1594141cc406Sopenharmony_ci	0,      /* bReg_0x54                                */
1595141cc406Sopenharmony_ci	0x18,   /* bReg_0x55                                */
1596141cc406Sopenharmony_ci	8,      /* bReg_0x56                                */
1597141cc406Sopenharmony_ci	60,     /* bReg_0x57                                */
1598141cc406Sopenharmony_ci	0x0d,   /* bReg_0x58                                */
1599141cc406Sopenharmony_ci	0xcc,   /* bReg_0x59                                */
1600141cc406Sopenharmony_ci	0xbc,   /* bReg_0x5a                                */
1601141cc406Sopenharmony_ci	0xbb,   /* bReg_0x5b                                */
1602141cc406Sopenharmony_ci	0,      /* bReg_0x5c                                */
1603141cc406Sopenharmony_ci	0,      /* bReg_0x5d                                */
1604141cc406Sopenharmony_ci	0,      /* bReg_0x5e                                */
1605141cc406Sopenharmony_ci	_LM9832,
1606141cc406Sopenharmony_ci	MODEL_HP,
1607141cc406Sopenharmony_ci	1.0
1608141cc406Sopenharmony_ci};
1609141cc406Sopenharmony_ci
1610141cc406Sopenharmony_ci/** Mustek BearPaw 1200 */
1611141cc406Sopenharmony_cistatic HWDef Hw0x0400_0x1000_0 =
1612141cc406Sopenharmony_ci{
1613141cc406Sopenharmony_ci	1.75,   /* ok dMaxMotorSpeed                            */
1614141cc406Sopenharmony_ci	1.25,   /* ok dMaxMoveSpeed                             */
1615141cc406Sopenharmony_ci	0.0,    /* ok dHighSpeed                                */
1616141cc406Sopenharmony_ci	12,     /* ok dIntegrationTimeLowLamp                   */
1617141cc406Sopenharmony_ci	12,     /* ok dIntegrationTimeHighLamp                  */
1618141cc406Sopenharmony_ci	600,    /* ok wMotorDpi (Full step DPI)                 */
1619141cc406Sopenharmony_ci	512,    /* ok wRAMSize (KB)                             */
1620141cc406Sopenharmony_ci	9,      /* ok dMinIntegrationTimeLowres (ms)            */
1621141cc406Sopenharmony_ci	9,      /* ok dMinIntegrationTimeHighres (ms)           */
1622141cc406Sopenharmony_ci	1169,   /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)   */
1623141cc406Sopenharmony_ci	1169,   /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)  */
1624141cc406Sopenharmony_ci	0x02,   /* ok bSensorConfiguration (0x0b)               */
1625141cc406Sopenharmony_ci	0x7c,   /* ok sensor control settings (reg 0x0c)        */
1626141cc406Sopenharmony_ci	0x3f,   /* ok sensor control settings (reg 0x0d)        */
1627141cc406Sopenharmony_ci	0x15,   /* ok sensor control settings (reg 0x0e)        */
1628141cc406Sopenharmony_ci            /* ok  mono (reg 0x0f to 0x18) */
1629141cc406Sopenharmony_ci	{ 0x04, 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x03, 0x06},
1630141cc406Sopenharmony_ci            /* ok color (reg 0x0f to 0x18)                  */
1631141cc406Sopenharmony_ci	{ 0x04, 0x16, 0x01, 0x02, 0x05, 0x06, 0x00, 0x00, 0x0a, 0x16},
1632141cc406Sopenharmony_ci	_GREEN_CH,	/* bReg_0x26 color mode - bits 4 and 5      */
1633141cc406Sopenharmony_ci	0,          /* bReg 0x27 color mode                     */
1634141cc406Sopenharmony_ci	1,          /* bReg 0x29 illumination mode              */
1635141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)*/
1636141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1637141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1638141cc406Sopenharmony_ci	257,    /* ok StepperPhaseCorrection (reg 0x1a + 0x1b)  */
1639141cc406Sopenharmony_ci	0x0e,   /* ok bOpticBlackStart (reg 0x1c)               */
1640141cc406Sopenharmony_ci	0x1d,   /* ok bOpticBlackEnd (reg 0x1d)                 */
1641141cc406Sopenharmony_ci	140,    /* ok wActivePixelsStart (reg 0x1e + 0x1f)      */
1642141cc406Sopenharmony_ci	5369,   /* ok wLineEnd (reg 0x20 + 0x21)                */
1643141cc406Sopenharmony_ci	0,      /* red lamp on    (reg 0x2c + 0x2d)             */
1644141cc406Sopenharmony_ci	16383,  /* red lamp off   (reg 0x2e + 0x2f)             */
1645141cc406Sopenharmony_ci	0,      /* green lamp on  (reg 0x30 + 0x31)             */
1646141cc406Sopenharmony_ci	0,      /* green lamp off (reg 0x32 + 0x33)             */
1647141cc406Sopenharmony_ci	0,      /* blue lamp on   (reg 0x34 + 0x35)             */
1648141cc406Sopenharmony_ci	16383,  /* blue lamp off  (reg 0x36 + 0x37)             */
1649141cc406Sopenharmony_ci	0x13,   /* ok stepper motor control (reg 0x45)          */
1650141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)    */
1651141cc406Sopenharmony_ci	0x1e,   /* steps to reverse on buffer full (reg 0x50)   */
1652141cc406Sopenharmony_ci	0xfc,   /* ok acceleration profile (reg 0x51)           */
1653141cc406Sopenharmony_ci	0,      /* ok lines to process (reg 0x54)               */
1654141cc406Sopenharmony_ci	0x13,   /* ok kickstart (reg 0x55)                      */
1655141cc406Sopenharmony_ci	0x03,   /* ok pwm freq (reg 0x56)                       */
1656141cc406Sopenharmony_ci	0x20,   /* ok pwm duty cycle (reg 0x57)                 */
1657141cc406Sopenharmony_ci	0x0d,	/* ok Paper sense (reg 0x58)                    */
1658141cc406Sopenharmony_ci	0x44,   /* ok misc io12 (reg 0x59)                      */
1659141cc406Sopenharmony_ci	0x44,   /* ok misc io34 (reg 0x5a)                      */
1660141cc406Sopenharmony_ci	0x16,   /* ok misc io56 (reg 0x5b)                      */
1661141cc406Sopenharmony_ci	0,      /* ok test mode ADC Output CODE MSB (reg 0x5c)  */
1662141cc406Sopenharmony_ci	0,      /* ok test mode ADC Output CODE LSB (reg 0x5d)  */
1663141cc406Sopenharmony_ci	0,      /* ok test mode (reg 0x5e)                      */
1664141cc406Sopenharmony_ci	_LM9831,
1665141cc406Sopenharmony_ci	MODEL_MUSTEK600,
1666141cc406Sopenharmony_ci	1.5
1667141cc406Sopenharmony_ci};
1668141cc406Sopenharmony_ci
1669141cc406Sopenharmony_ci/** Mustek BearPaw 1200 (LM9832) */
1670141cc406Sopenharmony_cistatic HWDef Hw0x0400_0x1001_1 =
1671141cc406Sopenharmony_ci{
1672141cc406Sopenharmony_ci	1.25,   /* ok dMaxMotorSpeed                            */
1673141cc406Sopenharmony_ci	1.25,   /* ok dMaxMoveSpeed                             */
1674141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                   */
1675141cc406Sopenharmony_ci	12,     /* ok dIntegrationTimeLowLamp                   */
1676141cc406Sopenharmony_ci	12,     /* ok dIntegrationTimeHighLamp                  */
1677141cc406Sopenharmony_ci	600,    /* ok wMotorDpi (Full step DPI)                 */
1678141cc406Sopenharmony_ci	512,    /* ok wRAMSize (KB)                             */
1679141cc406Sopenharmony_ci	9,      /* ok dMinIntegrationTimeLowres (ms)            */
1680141cc406Sopenharmony_ci	9,      /* ok dMinIntegrationTimeHighres (ms)           */
1681141cc406Sopenharmony_ci	1169,   /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)   */
1682141cc406Sopenharmony_ci	1169,   /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)  */
1683141cc406Sopenharmony_ci	0x02,   /* ok bSensorConfiguration (0x0b)               */
1684141cc406Sopenharmony_ci	0x7c,   /* ok sensor control settings (reg 0x0c)        */
1685141cc406Sopenharmony_ci	0x3f,   /* ok sensor control settings (reg 0x0d)        */
1686141cc406Sopenharmony_ci	0x15,   /* ok sensor control settings (reg 0x0e)        */
1687141cc406Sopenharmony_ci            /* ok  mono (reg 0x0f to 0x18) */
1688141cc406Sopenharmony_ci	{ 0x04, 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x03, 0x06},
1689141cc406Sopenharmony_ci            /* ok color (reg 0x0f to 0x18)                  */
1690141cc406Sopenharmony_ci	{ 0x04, 0x16, 0x01, 0x02, 0x05, 0x06, 0x00, 0x00, 0x0a, 0x16},
1691141cc406Sopenharmony_ci	_GREEN_CH,	/* bReg_0x26 color mode - bits 4 and 5      */
1692141cc406Sopenharmony_ci	0,          /* bReg 0x27 color mode                     */
1693141cc406Sopenharmony_ci	1,          /* bReg 0x29 illumination mode              */
1694141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)*/
1695141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1696141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1697141cc406Sopenharmony_ci	257,    /* ok StepperPhaseCorrection (reg 0x1a + 0x1b)  */
1698141cc406Sopenharmony_ci	0x0e,   /* ok bOpticBlackStart (reg 0x1c)               */
1699141cc406Sopenharmony_ci	0x1d,   /* ok bOpticBlackEnd (reg 0x1d)                 */
1700141cc406Sopenharmony_ci	140,    /* ok wActivePixelsStart (reg 0x1e + 0x1f)      */
1701141cc406Sopenharmony_ci	5369,   /* ok wLineEnd (reg 0x20 + 0x21)                */
1702141cc406Sopenharmony_ci	0,      /* red lamp on    (reg 0x2c + 0x2d)             */
1703141cc406Sopenharmony_ci	16383,  /* red lamp off   (reg 0x2e + 0x2f)             */
1704141cc406Sopenharmony_ci	0,      /* green lamp on  (reg 0x30 + 0x31)             */
1705141cc406Sopenharmony_ci	0,      /* green lamp off (reg 0x32 + 0x33)             */
1706141cc406Sopenharmony_ci	0,      /* blue lamp on   (reg 0x34 + 0x35)             */
1707141cc406Sopenharmony_ci	16383,  /* blue lamp off  (reg 0x36 + 0x37)             */
1708141cc406Sopenharmony_ci	0x13,   /* ok stepper motor control (reg 0x45)          */
1709141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)    */
1710141cc406Sopenharmony_ci	0x1e,   /* steps to reverse on buffer full (reg 0x50)   */
1711141cc406Sopenharmony_ci	0xfc,   /* ok acceleration profile (reg 0x51)           */
1712141cc406Sopenharmony_ci	0,      /* ok lines to process (reg 0x54)               */
1713141cc406Sopenharmony_ci	0x13,   /* ok kickstart (reg 0x55)                      */
1714141cc406Sopenharmony_ci	0x03,   /* ok pwm freq (reg 0x56)                       */
1715141cc406Sopenharmony_ci	0x20,   /* ok pwm duty cycle (reg 0x57)                 */
1716141cc406Sopenharmony_ci	0x0d,	/* ok Paper sense (reg 0x58)                    */
1717141cc406Sopenharmony_ci	0x44,   /* ok misc io12 (reg 0x59)                      */
1718141cc406Sopenharmony_ci	0x44,   /* ok misc io34 (reg 0x5a)                      */
1719141cc406Sopenharmony_ci	0x16,   /* ok misc io56 (reg 0x5b)                      */
1720141cc406Sopenharmony_ci	0,      /* ok test mode ADC Output CODE MSB (reg 0x5c)  */
1721141cc406Sopenharmony_ci	0,      /* ok test mode ADC Output CODE LSB (reg 0x5d)  */
1722141cc406Sopenharmony_ci	0,      /* ok test mode (reg 0x5e)                      */
1723141cc406Sopenharmony_ci	_LM9832,
1724141cc406Sopenharmony_ci	MODEL_MUSTEK600,
1725141cc406Sopenharmony_ci	1.5
1726141cc406Sopenharmony_ci};
1727141cc406Sopenharmony_ci
1728141cc406Sopenharmony_ci/** BearPaw 2400 */
1729141cc406Sopenharmony_cistatic HWDef Hw0x0400_0x1001_0 =
1730141cc406Sopenharmony_ci{
1731141cc406Sopenharmony_ci	1.0/*1.8*/, /* ok dMaxMotorSpeed                        */
1732141cc406Sopenharmony_ci	0.9/*1.8*/, /* ok dMaxMoveSpeed                         */
1733141cc406Sopenharmony_ci	0.0,    /* ok dHighSpeed                                */
1734141cc406Sopenharmony_ci	12,     /* ok dIntegrationTimeLowLamp                   */
1735141cc406Sopenharmony_ci	12,     /* ok dIntegrationTimeHighLamp                  */
1736141cc406Sopenharmony_ci	1200 /*	600*/ ,   /* ok wMotorDpi (Full step DPI)       */
1737141cc406Sopenharmony_ci	2048,   /* ok wRAMSize (KB)                             */
1738141cc406Sopenharmony_ci	9,      /* ok dMinIntegrationTimeLowres (ms)            */
1739141cc406Sopenharmony_ci	9,      /* ok dMinIntegrationTimeHighres (ms)           */
1740141cc406Sopenharmony_ci	1169,   /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)   */
1741141cc406Sopenharmony_ci	1169,   /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)  */
1742141cc406Sopenharmony_ci
1743141cc406Sopenharmony_ci	0x02 /*0x06*/,   /* ok bSensorConfiguration (0x0b)          */
1744141cc406Sopenharmony_ci	0x3c,   /* ok sensor control settings (reg 0x0c)        */
1745141cc406Sopenharmony_ci	0x3f,   /* ok sensor control settings (reg 0x0d)        */
1746141cc406Sopenharmony_ci	0x11,   /* ok sensor control settings (reg 0x0e)        */
1747141cc406Sopenharmony_ci            /* ok  mono (reg 0x0f to 0x18) */
1748141cc406Sopenharmony_ci
1749141cc406Sopenharmony_ci	{2, 7, 0, 1, 0, 0, 0, 0, 4, 0},
1750141cc406Sopenharmony_ci
1751141cc406Sopenharmony_ci/*	{5, 14, 12, 15, 18, 21, 0, 0, 0, 9 },*/
1752141cc406Sopenharmony_ci	{1,  4,  4,  5,  6,  7, 0, 0, 0, 3 },
1753141cc406Sopenharmony_ci
1754141cc406Sopenharmony_ci	_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5      */
1755141cc406Sopenharmony_ci	0,         /* bReg 0x27 color mode                     */
1756141cc406Sopenharmony_ci	1,         /* bReg 0x29 illumination mode              */
1757141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)*/
1758141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1759141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1760141cc406Sopenharmony_ci
1761141cc406Sopenharmony_ci	257,    /* StepperPhaseCorrection (reg 0x1a + 0x1b)    */
1762141cc406Sopenharmony_ci	13,     /* bOpticBlackStart (reg 0x1c)                 */
1763141cc406Sopenharmony_ci	60,     /* bOpticBlackEnd (reg 0x1d)                   */
1764141cc406Sopenharmony_ci	10,     /* wActivePixelsStart (reg 0x1e + 0x1f)        */
1765141cc406Sopenharmony_ci5416 /*	11000*/,  /* wLineEnd (reg 0x20 + 0x21)            */
1766141cc406Sopenharmony_ci
1767141cc406Sopenharmony_ci	1,      /* ok red lamp on    (reg 0x2c + 0x2d)         */
1768141cc406Sopenharmony_ci	16383,  /* ok red lamp off   (reg 0x2e + 0x2f)         */
1769141cc406Sopenharmony_ci	1,      /* ok green lamp on  (reg 0x30 + 0x31)         */
1770141cc406Sopenharmony_ci	16383,  /* ok green lamp off (reg 0x32 + 0x33)         */
1771141cc406Sopenharmony_ci	1,      /* ok blue lamp on   (reg 0x34 + 0x35)         */
1772141cc406Sopenharmony_ci	16383,  /* ok blue lamp off  (reg 0x36 + 0x37)         */
1773141cc406Sopenharmony_ci
1774141cc406Sopenharmony_ci	0x03,   /* ok stepper motor control (reg 0x45)         */
1775141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)   */
1776141cc406Sopenharmony_ci	0x1e,   /* steps to reverse on buffer full (reg 0x50)  */
1777141cc406Sopenharmony_ci	0xfc,   /* ok acceleration profile (reg 0x51)          */
1778141cc406Sopenharmony_ci	0x03,   /* ok lines to process (reg 0x54)              */
1779141cc406Sopenharmony_ci	0x13,   /* Kickstart      0x55                         */
1780141cc406Sopenharmony_ci	2,      /* PWM frequency  0x56                         */
1781141cc406Sopenharmony_ci	32,     /* PWM duty cycle 0x57                         */
1782141cc406Sopenharmony_ci	0x15,   /* paper sense 0x58                            */
1783141cc406Sopenharmony_ci	0x44,   /* misc I/O 0x59                               */
1784141cc406Sopenharmony_ci	0x44,   /* misc I/O 0x5a,                              */
1785141cc406Sopenharmony_ci	0x46,   /* misc I/O 0x5b                               */
1786141cc406Sopenharmony_ci	0, 0, 0,/* test registers, set to 0 (0x5c, 0x5d, 0x5e) */
1787141cc406Sopenharmony_ci	_LM9832,
1788141cc406Sopenharmony_ci	MODEL_MUSTEK1200,
1789141cc406Sopenharmony_ci	1.0
1790141cc406Sopenharmony_ci};
1791141cc406Sopenharmony_ci
1792141cc406Sopenharmony_ci/** EPSON Perfection/Photo 1250 */
1793141cc406Sopenharmony_cistatic HWDef Hw0x04B8_0x010F =
1794141cc406Sopenharmony_ci{
1795141cc406Sopenharmony_ci	0.8,    /* dMaxMotorSpeed                               */
1796141cc406Sopenharmony_ci	0.8,    /* dMaxMoveSpeed                                */
1797141cc406Sopenharmony_ci	4.1,    /* dHighSpeed                                   */
1798141cc406Sopenharmony_ci	12,     /* dIntegrationTimeLowLamp                      */
1799141cc406Sopenharmony_ci	12,     /* dIntegrationTimeHighLamp                     */
1800141cc406Sopenharmony_ci	600,    /* wMotorDpi (Full step DPI)                    */
1801141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                */
1802141cc406Sopenharmony_ci	4,      /* dMinIntegrationTimeLowres (ms)               */
1803141cc406Sopenharmony_ci	5,      /* dMinIntegrationTimeHighres (ms)              */
1804141cc406Sopenharmony_ci	1,      /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)   */
1805141cc406Sopenharmony_ci	1,      /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)  */
1806141cc406Sopenharmony_ci
1807141cc406Sopenharmony_ci	0x02,   /* ok bSensorConfiguration (0x0b)               */
1808141cc406Sopenharmony_ci	0x04,   /* ok sensor control settings (reg 0x0c)        */
1809141cc406Sopenharmony_ci	0x7d,   /* ok sensor control settings (reg 0x0d)        */
1810141cc406Sopenharmony_ci	0x37,   /* ok sensor control settings (reg 0x0e)        */
1811141cc406Sopenharmony_ci
1812141cc406Sopenharmony_ci	{0x02, 0x07, 0x00, 0x01, 0x04, 0x07, 0x00, 0x00, 0x03, 0x07},
1813141cc406Sopenharmony_ci	        /* ok mono (reg 0x0f to 0x18) */
1814141cc406Sopenharmony_ci	{0x06, 0x16, 0x00, 0x05, 0x0c, 0x17, 0x00, 0x00, 0x0a, 0x17},
1815141cc406Sopenharmony_ci	        /* ok color (reg 0x0f to 0x18)                  */
1816141cc406Sopenharmony_ci	_GREEN_CH,	/* ok bReg_0x26 color mode - bits 4 and 5   */
1817141cc406Sopenharmony_ci	0x40,       /* ok bReg 0x27 color mode                  */
1818141cc406Sopenharmony_ci	3,          /* bReg 0x29 illumination mode              */
1819141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)*/
1820141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1821141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1822141cc406Sopenharmony_ci
1823141cc406Sopenharmony_ci	1,      /* ok StepperPhaseCorrection (reg 0x1a + 0x1b)  */
1824141cc406Sopenharmony_ci	0x00,   /* ok bOpticBlackStart (reg 0x1c)               */
1825141cc406Sopenharmony_ci	0x42,   /* ok bOpticBlackEnd (reg 0x1d)                 */
1826141cc406Sopenharmony_ci	69,     /* ok wActivePixelsStart (reg 0x1e + 0x1f)      */
1827141cc406Sopenharmony_ci	10758,  /* ok wLineEnd (reg 0x20 + 0x21)                */
1828141cc406Sopenharmony_ci
1829141cc406Sopenharmony_ci	16383,  /* ok red lamp on    (reg 0x2c + 0x2d)          */
1830141cc406Sopenharmony_ci	0,      /* ok red lamp off   (reg 0x2e + 0x2f)          */
1831141cc406Sopenharmony_ci	16383,  /* ok green lamp on  (reg 0x30 + 0x31)          */
1832141cc406Sopenharmony_ci	0,      /* ok green lamp off (reg 0x32 + 0x33)          */
1833141cc406Sopenharmony_ci	16383,  /* ok blue lamp on   (reg 0x34 + 0x35)          */
1834141cc406Sopenharmony_ci	0,      /* ok blue lamp off  (reg 0x36 + 0x37)          */
1835141cc406Sopenharmony_ci
1836141cc406Sopenharmony_ci	3,      /* ok stepper motor control (reg 0x45)          */
1837141cc406Sopenharmony_ci	0,      /* ok wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
1838141cc406Sopenharmony_ci	0x1e,   /* steps to reverse on buffer full (reg 0x50)   */
1839141cc406Sopenharmony_ci	0x0c,   /* ok acceleration profile (reg 0x51)           */
1840141cc406Sopenharmony_ci	0,      /* ok lines to process (reg 0x54)               */
1841141cc406Sopenharmony_ci	0x0f,   /* ok kickstart (reg 0x55)                      */
1842141cc406Sopenharmony_ci	0x02,   /* ok pwm freq (reg 0x56)                       */
1843141cc406Sopenharmony_ci	1,      /* ok pwm duty cycle (reg 0x57)                 */
1844141cc406Sopenharmony_ci
1845141cc406Sopenharmony_ci	0x0d,   /* ok Paper sense (reg 0x58)                    */
1846141cc406Sopenharmony_ci
1847141cc406Sopenharmony_ci	0x41,   /* ok misc io12 (reg 0x59)                      */
1848141cc406Sopenharmony_ci	0x44,   /* ok misc io34 (reg 0x5a)                      */
1849141cc406Sopenharmony_ci	0x14,   /* ok misc io56 (reg 0x5b)                      */
1850141cc406Sopenharmony_ci	0,      /* ok test mode ADC Output CODE MSB (reg 0x5c)  */
1851141cc406Sopenharmony_ci	0,      /* ok test mode ADC Output CODE LSB (reg 0x5d)  */
1852141cc406Sopenharmony_ci	0,      /* ok test mode (reg 0x5e)                      */
1853141cc406Sopenharmony_ci	_LM9832,
1854141cc406Sopenharmony_ci	MODEL_EPSON,
1855141cc406Sopenharmony_ci	1.0
1856141cc406Sopenharmony_ci};
1857141cc406Sopenharmony_ci
1858141cc406Sopenharmony_ci/** EPSON Perfection/Photo 1260 */
1859141cc406Sopenharmony_cistatic HWDef Hw0x04B8_0x011D =
1860141cc406Sopenharmony_ci{
1861141cc406Sopenharmony_ci	0.9,    /* dMaxMotorSpeed                               */
1862141cc406Sopenharmony_ci	0.8,    /* dMaxMoveSpeed                                */
1863141cc406Sopenharmony_ci	3.0,    /* dHighSpeed                                   */
1864141cc406Sopenharmony_ci	12,     /* dIntegrationTimeLowLamp                      */
1865141cc406Sopenharmony_ci	12,     /* dIntegrationTimeHighLamp                     */
1866141cc406Sopenharmony_ci	600,    /* wMotorDpi (Full step DPI)                    */
1867141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                */
1868141cc406Sopenharmony_ci	4,      /* dMinIntegrationTimeLowres (ms)               */
1869141cc406Sopenharmony_ci	5,      /* dMinIntegrationTimeHighres (ms)              */
1870141cc406Sopenharmony_ci	1,      /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)   */
1871141cc406Sopenharmony_ci	1,      /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)  */
1872141cc406Sopenharmony_ci
1873141cc406Sopenharmony_ci	0x02,   /* ok bSensorConfiguration (0x0b)               */
1874141cc406Sopenharmony_ci	0x04,   /* ok sensor control settings (reg 0x0c)        */
1875141cc406Sopenharmony_ci	0x7d,   /* ok sensor control settings (reg 0x0d)        */
1876141cc406Sopenharmony_ci	0x37,   /* ok sensor control settings (reg 0x0e)        */
1877141cc406Sopenharmony_ci
1878141cc406Sopenharmony_ci	{0x02, 0x07, 0x00, 0x01, 0x04, 0x07, 0x00, 0x00, 0x03, 0x07},
1879141cc406Sopenharmony_ci	        /* ok mono (reg 0x0f to 0x18) */
1880141cc406Sopenharmony_ci	{0x06, 0x0b, 0x00, 0x05, 0x0c, 0x17, 0x00, 0x00, 0x0a, 0x17},
1881141cc406Sopenharmony_ci	        /* ok color (reg 0x0f to 0x18)                  */
1882141cc406Sopenharmony_ci	_GREEN_CH,  /* ok bReg_0x26 color mode - bits 4 and 5   */
1883141cc406Sopenharmony_ci	0x42,       /* ok bReg 0x27 color mode                  */
1884141cc406Sopenharmony_ci	3,          /* bReg 0x29 illumination mode              */
1885141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)*/
1886141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1887141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1888141cc406Sopenharmony_ci
1889141cc406Sopenharmony_ci	1,      /* ok StepperPhaseCorrection (reg 0x1a + 0x1b)  */
1890141cc406Sopenharmony_ci	0x00,   /* ok bOpticBlackStart (reg 0x1c)               */
1891141cc406Sopenharmony_ci	0x42,   /* ok bOpticBlackEnd (reg 0x1d)                 */
1892141cc406Sopenharmony_ci	69,     /* ok wActivePixelsStart (reg 0x1e + 0x1f)      */
1893141cc406Sopenharmony_ci	10766,  /* ok wLineEnd (reg 0x20 + 0x21)                */
1894141cc406Sopenharmony_ci
1895141cc406Sopenharmony_ci	16383,  /* ok red lamp on    (reg 0x2c + 0x2d)          */
1896141cc406Sopenharmony_ci	0,      /* ok red lamp off   (reg 0x2e + 0x2f)          */
1897141cc406Sopenharmony_ci	16383,  /* ok green lamp on  (reg 0x30 + 0x31)          */
1898141cc406Sopenharmony_ci	0,      /* ok green lamp off (reg 0x32 + 0x33)          */
1899141cc406Sopenharmony_ci	16383,  /* ok blue lamp on   (reg 0x34 + 0x35)          */
1900141cc406Sopenharmony_ci	0,      /* ok blue lamp off  (reg 0x36 + 0x37)          */
1901141cc406Sopenharmony_ci
1902141cc406Sopenharmony_ci	3,      /* ok stepper motor control (reg 0x45)          */
1903141cc406Sopenharmony_ci	0,      /* ok wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
1904141cc406Sopenharmony_ci	0x1e,   /* steps to reverse on buffer full (reg 0x50)   */
1905141cc406Sopenharmony_ci	0x0c,   /* ok acceleration profile (reg 0x51)           */
1906141cc406Sopenharmony_ci	0,      /* ok lines to process (reg 0x54)               */
1907141cc406Sopenharmony_ci	0x0f,   /* ok kickstart (reg 0x55)                      */
1908141cc406Sopenharmony_ci	0x02,   /* ok pwm freq (reg 0x56)                       */
1909141cc406Sopenharmony_ci	1,      /* ok pwm duty cycle (reg 0x57)                 */
1910141cc406Sopenharmony_ci
1911141cc406Sopenharmony_ci	0x0d,   /* ok Paper sense (reg 0x58)                    */
1912141cc406Sopenharmony_ci
1913141cc406Sopenharmony_ci	0x41,   /* ok misc io12 (reg 0x59)                      */
1914141cc406Sopenharmony_ci	0x44,   /* ok misc io34 (reg 0x5a)                      */
1915141cc406Sopenharmony_ci	0x14,   /* ok misc io56 (reg 0x5b)                      */
1916141cc406Sopenharmony_ci	0,      /* ok test mode ADC Output CODE MSB (reg 0x5c)  */
1917141cc406Sopenharmony_ci	0,      /* ok test mode ADC Output CODE LSB (reg 0x5d)  */
1918141cc406Sopenharmony_ci	0,      /* ok test mode (reg 0x5e)                      */
1919141cc406Sopenharmony_ci	_LM9832,
1920141cc406Sopenharmony_ci	MODEL_EPSON,
1921141cc406Sopenharmony_ci	1.5
1922141cc406Sopenharmony_ci};
1923141cc406Sopenharmony_ci
1924141cc406Sopenharmony_ci/** Umax 3400/3450 */
1925141cc406Sopenharmony_cistatic HWDef Hw0x1606_0x0060 =
1926141cc406Sopenharmony_ci{
1927141cc406Sopenharmony_ci	1.5,    /* dMaxMotorSpeed                            */
1928141cc406Sopenharmony_ci	0.8,    /* dMaxMoveSpeed                             */
1929141cc406Sopenharmony_ci	2.75,   /* dHighSpeed                                */
1930141cc406Sopenharmony_ci	9,      /* dIntegrationTimeLowLamp                   */
1931141cc406Sopenharmony_ci	9,      /* dIntegrationTimeHighLamp                  */
1932141cc406Sopenharmony_ci	600,    /* wMotorDpi (Full step DPI)                 */
1933141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                             */
1934141cc406Sopenharmony_ci	8,      /* dMinIntegrationTimeLowres (ms)            */
1935141cc406Sopenharmony_ci	8,      /* dMinIntegrationTimeHighres (ms)           */
1936141cc406Sopenharmony_ci	4095,   /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)   */
1937141cc406Sopenharmony_ci	4095,   /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)  */
1938141cc406Sopenharmony_ci
1939141cc406Sopenharmony_ci	0x06,   /* bSensorConfiguration (0x0b)               */
1940141cc406Sopenharmony_ci	0x73,   /* sensor control settings (reg 0x0c)        */
1941141cc406Sopenharmony_ci	0x77,   /* sensor control settings (reg 0x0d)        */
1942141cc406Sopenharmony_ci	0x15,   /* sensor control settings (reg 0x0e)        */
1943141cc406Sopenharmony_ci
1944141cc406Sopenharmony_ci	{0x00, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03},
1945141cc406Sopenharmony_ci            /* mono (reg 0x0f to 0x18)                   */
1946141cc406Sopenharmony_ci
1947141cc406Sopenharmony_ci	{0x01, 0x0c, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0c},
1948141cc406Sopenharmony_ci                /* color (reg 0x0f to 0x18)              */
1949141cc406Sopenharmony_ci	_GREEN_CH,  /* bReg_0x26 color mode - bits 4 and 5   */
1950141cc406Sopenharmony_ci	0x40,       /* bReg 0x27 color mode                  */
1951141cc406Sopenharmony_ci	1,          /* bReg 0x29 illumination mode           */
1952141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
1953141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1954141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
1955141cc406Sopenharmony_ci
1956141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)  */
1957141cc406Sopenharmony_ci	0x2f,   /* bOpticBlackStart (reg 0x1c)               */
1958141cc406Sopenharmony_ci	0x3e,   /* bOpticBlackEnd (reg 0x1d)                 */
1959141cc406Sopenharmony_ci	110,    /* ? wActivePixelsStart (reg 0x1e + 0x1f)    */
1960141cc406Sopenharmony_ci	5469,   /* wLineEnd (reg 0x20 + 0x21)                */
1961141cc406Sopenharmony_ci
1962141cc406Sopenharmony_ci	1,      /* red lamp on    (reg 0x2c + 0x2d)          */
1963141cc406Sopenharmony_ci	16383,  /* red lamp off   (reg 0x2e + 0x2f)          */
1964141cc406Sopenharmony_ci	0,      /* green lamp on  (reg 0x30 + 0x31)          */
1965141cc406Sopenharmony_ci	0,      /* green lamp off (reg 0x32 + 0x33)          */
1966141cc406Sopenharmony_ci	32,     /* blue lamp on   (reg 0x34 + 0x35)          */
1967141cc406Sopenharmony_ci	48,     /* blue lamp off  (reg 0x36 + 0x37)          */
1968141cc406Sopenharmony_ci
1969141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)          */
1970141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
1971141cc406Sopenharmony_ci	11,     /* steps to reverse on buffer full (reg 0x50)*/
1972141cc406Sopenharmony_ci	0xfc,   /* acceleration profile (reg 0x51)           */
1973141cc406Sopenharmony_ci	3,      /* lines to process (reg 0x54)               */
1974141cc406Sopenharmony_ci	0xcb,   /* kickstart (reg 0x55)                      */
1975141cc406Sopenharmony_ci	0x05,   /* pwm freq (reg 0x56)                       */
1976141cc406Sopenharmony_ci	5,      /* pwm duty cycle (reg 0x57)                 */
1977141cc406Sopenharmony_ci
1978141cc406Sopenharmony_ci	0x0d,   /* Paper sense (reg 0x58)                    */
1979141cc406Sopenharmony_ci
1980141cc406Sopenharmony_ci	0x44,   /* misc io12 (reg 0x59)                      */
1981141cc406Sopenharmony_ci	0x45,   /* misc io34 (reg 0x5a)                      */
1982141cc406Sopenharmony_ci	0x74,   /* misc io56 (reg 0x5b)                      */
1983141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE MSB (reg 0x5c)  */
1984141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)  */
1985141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                      */
1986141cc406Sopenharmony_ci	_LM9832,
1987141cc406Sopenharmony_ci	MODEL_UMAX,
1988141cc406Sopenharmony_ci	1.0
1989141cc406Sopenharmony_ci};
1990141cc406Sopenharmony_ci
1991141cc406Sopenharmony_ci/** Umax 5400 */
1992141cc406Sopenharmony_cistatic HWDef Hw0x1606_0x0160 =
1993141cc406Sopenharmony_ci{
1994141cc406Sopenharmony_ci	1.1,    /* dMaxMotorSpeed                            */
1995141cc406Sopenharmony_ci	0.9,    /* dMaxMoveSpeed                             */
1996141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                */
1997141cc406Sopenharmony_ci	9,      /* dIntegrationTimeLowLamp                   */
1998141cc406Sopenharmony_ci	9,      /* dIntegrationTimeHighLamp                  */
1999141cc406Sopenharmony_ci	600,    /* wMotorDpi (Full step DPI)                 */
2000141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                             */
2001141cc406Sopenharmony_ci	8,      /* dMinIntegrationTimeLowres (ms)            */
2002141cc406Sopenharmony_ci	8,      /* dMinIntegrationTimeHighres (ms)           */
2003141cc406Sopenharmony_ci	4095,   /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)   */
2004141cc406Sopenharmony_ci	4095,   /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)  */
2005141cc406Sopenharmony_ci
2006141cc406Sopenharmony_ci	0x06,   /* bSensorConfiguration (0x0b)               */
2007141cc406Sopenharmony_ci	0x73,   /* sensor control settings (reg 0x0c)        */
2008141cc406Sopenharmony_ci	0x77,   /* sensor control settings (reg 0x0d)        */
2009141cc406Sopenharmony_ci	0x25,   /* sensor control settings (reg 0x0e)        */
2010141cc406Sopenharmony_ci
2011141cc406Sopenharmony_ci	/* mono (reg 0x0f to 0x18) */
2012141cc406Sopenharmony_ci	{0x00, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03},
2013141cc406Sopenharmony_ci
2014141cc406Sopenharmony_ci	/* color (reg 0x0f to 0x18)              */
2015141cc406Sopenharmony_ci	{0x01, 0x0c, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0c},
2016141cc406Sopenharmony_ci
2017141cc406Sopenharmony_ci	_GREEN_CH,	/* bReg_0x26 color mode - bits 4 and 5   */
2018141cc406Sopenharmony_ci	0x40,       /* bReg 0x27 color mode                  */
2019141cc406Sopenharmony_ci	1,          /* bReg 0x29 illumination mode           */
2020141cc406Sopenharmony_ci
2021141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices) */
2022141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
2023141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
2024141cc406Sopenharmony_ci
2025141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)  */
2026141cc406Sopenharmony_ci	20,     /* bOpticBlackStart (reg 0x1c)               */
2027141cc406Sopenharmony_ci	45,     /* bOpticBlackEnd (reg 0x1d)                 */
2028141cc406Sopenharmony_ci	110,    /* ? wActivePixelsStart (reg 0x1e + 0x1f)    */
2029141cc406Sopenharmony_ci	10669,  /* wLineEnd (reg 0x20 + 0x21)                */
2030141cc406Sopenharmony_ci
2031141cc406Sopenharmony_ci	1,      /* red lamp on    (reg 0x2c + 0x2d)          */
2032141cc406Sopenharmony_ci	16383,  /* red lamp off   (reg 0x2e + 0x2f)          */
2033141cc406Sopenharmony_ci	0,      /* green lamp on  (reg 0x30 + 0x31)          */
2034141cc406Sopenharmony_ci	0,      /* green lamp off (reg 0x32 + 0x33)          */
2035141cc406Sopenharmony_ci	32,     /* blue lamp on   (reg 0x34 + 0x35)          */
2036141cc406Sopenharmony_ci	48,     /* blue lamp off  (reg 0x36 + 0x37)          */
2037141cc406Sopenharmony_ci
2038141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)          */
2039141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
2040141cc406Sopenharmony_ci	11,     /* steps to reverse on buffer full (reg 0x50)*/
2041141cc406Sopenharmony_ci	0xfc,   /* acceleration profile (reg 0x51)           */
2042141cc406Sopenharmony_ci	3,      /* lines to process (reg 0x54)               */
2043141cc406Sopenharmony_ci	0xcb,   /* kickstart (reg 0x55)                      */
2044141cc406Sopenharmony_ci	0x05,   /* pwm freq (reg 0x56)                       */
2045141cc406Sopenharmony_ci	5,      /* pwm duty cycle (reg 0x57)                 */
2046141cc406Sopenharmony_ci
2047141cc406Sopenharmony_ci	0x0d,   /* Paper sense (reg 0x58)                    */
2048141cc406Sopenharmony_ci
2049141cc406Sopenharmony_ci	0x44,   /* misc io12 (reg 0x59)                      */
2050141cc406Sopenharmony_ci	0x45,   /* misc io34 (reg 0x5a)                      */
2051141cc406Sopenharmony_ci	0x7c,   /* misc io56 (reg 0x5b)                      */
2052141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE MSB (reg 0x5c)  */
2053141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)  */
2054141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                      */
2055141cc406Sopenharmony_ci	_LM9832,
2056141cc406Sopenharmony_ci	MODEL_UMAX1200,
2057141cc406Sopenharmony_ci	1.0
2058141cc406Sopenharmony_ci};
2059141cc406Sopenharmony_ci
2060141cc406Sopenharmony_ci/** Canon N650U/N656U */
2061141cc406Sopenharmony_cistatic HWDef Hw0x04A9_0x2206 =
2062141cc406Sopenharmony_ci{
2063141cc406Sopenharmony_ci	0.76,   /* dMaxMotorSpeed                                */
2064141cc406Sopenharmony_ci	0.243,  /* dMaxMoveSpeed                                 */
2065141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                    */
2066141cc406Sopenharmony_ci	100,    /* dIntegrationTimeLowLamp                       */
2067141cc406Sopenharmony_ci	100,    /* dIntegrationTimeHighLamp                      */
2068141cc406Sopenharmony_ci	1200,   /* wMotorDpi (Full step DPI)                     */
2069141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                 */
2070141cc406Sopenharmony_ci	3.75,   /* dMinIntegrationTimeLowres (ms)                */
2071141cc406Sopenharmony_ci	5.75,   /* dMinIntegrationTimeHighres (ms)               */
2072141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)       */
2073141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)      */
2074141cc406Sopenharmony_ci
2075141cc406Sopenharmony_ci	0x15,   /* bSensorConfiguration (0x0b)                   */
2076141cc406Sopenharmony_ci	0x4c,   /* sensor control settings (reg 0x0c)            */
2077141cc406Sopenharmony_ci	0x2f,   /* sensor control settings (reg 0x0d)            */
2078141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0e)            */
2079141cc406Sopenharmony_ci
2080141cc406Sopenharmony_ci	/* mono & color (reg 0x0f to 0x18) the
2081141cc406Sopenharmony_ci	   same for CIS devices                          */
2082141cc406Sopenharmony_ci
2083141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
2084141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
2085141cc406Sopenharmony_ci
2086141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode       */
2087141cc406Sopenharmony_ci
2088141cc406Sopenharmony_ci	0x00,   /* bReg 0x27 color mode                           */
2089141cc406Sopenharmony_ci	2,      /* bReg 0x29 illumination mode (runtime)          */
2090141cc406Sopenharmony_ci            /* illumination mode settings                     */
2091141cc406Sopenharmony_ci	{ 3,  0,    0, 23,  850,  0,   0 },
2092141cc406Sopenharmony_ci	{ 2, 23, 2500, 23, 1800, 23, 950 },
2093141cc406Sopenharmony_ci
2094141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2095141cc406Sopenharmony_ci	0,      /* bOpticBlackStart (reg 0x1c)                    */
2096141cc406Sopenharmony_ci	0,      /* bOpticBlackEnd (reg 0x1d)                      */
2097141cc406Sopenharmony_ci	89,     /* ? wActivePixelsStart (reg 0x1e + 0x1f)         */
2098141cc406Sopenharmony_ci	6074,   /* wLineEnd (reg 0x20 + 0x21)                     */
2099141cc406Sopenharmony_ci
2100141cc406Sopenharmony_ci	23,     /* red lamp on    (reg 0x2c + 0x2d)               */
2101141cc406Sopenharmony_ci	2500,   /* red lamp off   (reg 0x2e + 0x2f)               */
2102141cc406Sopenharmony_ci	23,     /* green lamp on  (reg 0x30 + 0x31)               */
2103141cc406Sopenharmony_ci	1800,   /* green lamp off (reg 0x32 + 0x33)               */
2104141cc406Sopenharmony_ci	23,     /* blue lamp on   (reg 0x34 + 0x35)               */
2105141cc406Sopenharmony_ci	950,    /* blue lamp off  (reg 0x36 + 0x37)               */
2106141cc406Sopenharmony_ci
2107141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2108141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2109141cc406Sopenharmony_ci	0x3f,   /* steps to reverse when buffer is full reg 0x50) */
2110141cc406Sopenharmony_ci	0xfc,   /* acceleration profile (reg 0x51)                */
2111141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2112141cc406Sopenharmony_ci	0x0f,   /* kickstart (reg 0x55)                           */
2113141cc406Sopenharmony_ci	0x08,   /* pwm freq (reg 0x56)                            */
2114141cc406Sopenharmony_ci	0x1f,   /* pwm duty cycle (reg 0x57)                      */
2115141cc406Sopenharmony_ci
2116141cc406Sopenharmony_ci	0x05,   /* Paper sense (reg 0x58)                         */
2117141cc406Sopenharmony_ci
2118141cc406Sopenharmony_ci	0x66,   /* misc io12 (reg 0x59)                           */
2119141cc406Sopenharmony_ci	0x16,   /* misc io34 (reg 0x5a)                           */
2120141cc406Sopenharmony_ci	0x91,   /* misc io56 (reg 0x5b)                           */
2121141cc406Sopenharmony_ci	0x01,   /* test mode ADC Output CODE MSB (reg 0x5c)       */
2122141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2123141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2124141cc406Sopenharmony_ci	_LM9832,
2125141cc406Sopenharmony_ci	MODEL_CANON600,
2126141cc406Sopenharmony_ci	2.0
2127141cc406Sopenharmony_ci};
2128141cc406Sopenharmony_ci
2129141cc406Sopenharmony_ci/** Canon N1220U */
2130141cc406Sopenharmony_cistatic HWDef Hw0x04A9_0x2207 =
2131141cc406Sopenharmony_ci{
2132141cc406Sopenharmony_ci	0.72,   /* dMaxMotorSpeed                                 */
2133141cc406Sopenharmony_ci	0.36,   /* dMaxMoveSpeed                                  */
2134141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                     */
2135141cc406Sopenharmony_ci	100,    /* wIntegrationTimeLowLamp                        */
2136141cc406Sopenharmony_ci	100,    /* wIntegrationTimeHighLamp                       */
2137141cc406Sopenharmony_ci	1200,   /* wMotorDpi (Full step DPI)                      */
2138141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                  */
2139141cc406Sopenharmony_ci	3.75,   /* dMinIntegrationTimeLowres (ms)                 */
2140141cc406Sopenharmony_ci	5.75,   /* dMinIntegrationTimeHighres (ms)                */
2141141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2142141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2143141cc406Sopenharmony_ci
2144141cc406Sopenharmony_ci	0x15,   /* bSensorConfiguration (0x0b)                    */
2145141cc406Sopenharmony_ci	0x4c,   /* sensor control settings (reg 0x0c)             */
2146141cc406Sopenharmony_ci	0x2f,   /* sensor control settings (reg 0x0d)             */
2147141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0e)             */
2148141cc406Sopenharmony_ci
2149141cc406Sopenharmony_ci    /* mono (reg 0x0f to 0x18)                        */
2150141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
2151141cc406Sopenharmony_ci
2152141cc406Sopenharmony_ci	/* color (reg 0x0f to 0x18)                       */
2153141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
2154141cc406Sopenharmony_ci
2155141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode       */
2156141cc406Sopenharmony_ci
2157141cc406Sopenharmony_ci	0x00,   /* bReg 0x27 color mode                           */
2158141cc406Sopenharmony_ci	2,      /* bReg 0x29 illumination mode                    */
2159141cc406Sopenharmony_ci	{ 3,  0,     0, 23,  2200,  0,    0 },
2160141cc406Sopenharmony_ci	{ 2, 23, 16383, 23, 15000, 23, 6600 },
2161141cc406Sopenharmony_ci
2162141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2163141cc406Sopenharmony_ci	0,      /* bOpticBlackStart (reg 0x1c)                    */
2164141cc406Sopenharmony_ci	0,      /* bOpticBlackEnd (reg 0x1d)                      */
2165141cc406Sopenharmony_ci	124,    /* wActivePixelsStart (reg 0x1e + 0x1f)           */
2166141cc406Sopenharmony_ci	10586,  /* wLineEnd (reg 0x20 + 0x21)                     */
2167141cc406Sopenharmony_ci
2168141cc406Sopenharmony_ci	23,     /* red lamp on    (reg 0x2c + 0x2d)               */
2169141cc406Sopenharmony_ci	16383,  /* red lamp off   (reg 0x2e + 0x2f)               */
2170141cc406Sopenharmony_ci	23,     /* green lamp on  (reg 0x30 + 0x31)               */
2171141cc406Sopenharmony_ci	15000,  /* green lamp off (reg 0x32 + 0x33)               */
2172141cc406Sopenharmony_ci	23,     /* blue lamp on   (reg 0x34 + 0x35)               */
2173141cc406Sopenharmony_ci	6600,   /* blue lamp off  (reg 0x36 + 0x37)               */
2174141cc406Sopenharmony_ci
2175141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2176141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2177141cc406Sopenharmony_ci	0,      /* steps to reverse when buffer is full reg 0x50) */
2178141cc406Sopenharmony_ci	0xfc,   /* acceleration profile (reg 0x51)                */
2179141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2180141cc406Sopenharmony_ci	0x0f,   /* kickstart (reg 0x55)                           */
2181141cc406Sopenharmony_ci	0x08,   /* pwm freq (reg 0x56)                            */
2182141cc406Sopenharmony_ci	0x1f,   /* pwm duty cycle (reg 0x57)                      */
2183141cc406Sopenharmony_ci
2184141cc406Sopenharmony_ci	0x05,   /* Paper sense (reg 0x58)                         */
2185141cc406Sopenharmony_ci
2186141cc406Sopenharmony_ci	0x66,   /* misc io12 (reg 0x59)                           */
2187141cc406Sopenharmony_ci	0x16,   /* misc io34 (reg 0x5a)                           */
2188141cc406Sopenharmony_ci	0x91,   /* misc io56 (reg 0x5b)                           */
2189141cc406Sopenharmony_ci	0x01,   /* test mode ADC Output CODE MSB (reg 0x5c)       */
2190141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2191141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2192141cc406Sopenharmony_ci	_LM9832,
2193141cc406Sopenharmony_ci	MODEL_CANON1200,
2194141cc406Sopenharmony_ci	2.0
2195141cc406Sopenharmony_ci};
2196141cc406Sopenharmony_ci
2197141cc406Sopenharmony_ci/** Canon D660U */
2198141cc406Sopenharmony_cistatic HWDef Hw0x04A9_0x2208 =
2199141cc406Sopenharmony_ci{
2200141cc406Sopenharmony_ci	1.2,    /* dMaxMotorSpeed                                 */
2201141cc406Sopenharmony_ci	1.1,    /* dMaxMoveSpeed                                  */
2202141cc406Sopenharmony_ci	2.75,   /* dHighSpeed                                     */
2203141cc406Sopenharmony_ci	9,      /* dIntegrationTimeLowLamp                        */
2204141cc406Sopenharmony_ci	9,      /* dIntegrationTimeHighLamp                       */
2205141cc406Sopenharmony_ci	300,    /* wMotorDpi (Full step DPI)                      */
2206141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                  */
2207141cc406Sopenharmony_ci	8,      /* dMinIntegrationTimeLowres (ms)                 */
2208141cc406Sopenharmony_ci	8,      /* dMinIntegrationTimeHighres (ms)                */
2209141cc406Sopenharmony_ci	4095,   /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2210141cc406Sopenharmony_ci	4095,   /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2211141cc406Sopenharmony_ci
2212141cc406Sopenharmony_ci	0x02,   /* bSensorConfiguration (0x0b)                    */
2213141cc406Sopenharmony_ci	0x60,   /* sensor control settings (reg 0x0c)             */
2214141cc406Sopenharmony_ci	0x2f,   /* sensor control settings (reg 0x0d)             */
2215141cc406Sopenharmony_ci	0x13,   /* sensor control settings (reg 0x0e)             */
2216141cc406Sopenharmony_ci
2217141cc406Sopenharmony_ci	{0x06, 0x17, 0x01, 0x03, 0x05, 0x07, 0x00, 0x00, 0x0b },
2218141cc406Sopenharmony_ci	{0x06, 0x17, 0x01, 0x03, 0x05, 0x07, 0x00, 0x00, 0x0b },
2219141cc406Sopenharmony_ci	_GREEN_CH,
2220141cc406Sopenharmony_ci	0,      /* bReg 0x27 color mode                           */
2221141cc406Sopenharmony_ci	1,      /* bReg 0x29 illumination mode                    */
2222141cc406Sopenharmony_ci
2223141cc406Sopenharmony_ci	/* illumination mode settings (not used for CCD devices)  */
2224141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
2225141cc406Sopenharmony_ci	{ 0, 0, 0, 0, 0, 0, 0 },
2226141cc406Sopenharmony_ci
2227141cc406Sopenharmony_ci	0,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2228141cc406Sopenharmony_ci	13,     /* bOpticBlackStart (reg 0x1c)                    */
2229141cc406Sopenharmony_ci	33,     /* bOpticBlackEnd (reg 0x1d)                      */
2230141cc406Sopenharmony_ci	64,     /* wActivePixelsStart (reg 0x1e + 0x1f)           */
2231141cc406Sopenharmony_ci	5440,   /* wLineEnd (reg 0x20 + 0x21)                     */
2232141cc406Sopenharmony_ci
2233141cc406Sopenharmony_ci	16383,  /* red lamp on    (reg 0x2c + 0x2d)               */
2234141cc406Sopenharmony_ci	1,      /* red lamp off   (reg 0x2e + 0x2f)               */
2235141cc406Sopenharmony_ci	0,      /* green lamp on  (reg 0x30 + 0x31)               */
2236141cc406Sopenharmony_ci	0,      /* green lamp off (reg 0x32 + 0x33)               */
2237141cc406Sopenharmony_ci	0,      /* blue lamp on   (reg 0x34 + 0x35)               */
2238141cc406Sopenharmony_ci	0,      /* blue lamp off  (reg 0x36 + 0x37)               */
2239141cc406Sopenharmony_ci
2240141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2241141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2242141cc406Sopenharmony_ci	0x20,   /* steps to reverse when buffer is full reg 0x50) */
2243141cc406Sopenharmony_ci	0xfc,   /* acceleration profile (reg 0x51)                */
2244141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2245141cc406Sopenharmony_ci	0,      /* kickstart (reg 0x55)                           */
2246141cc406Sopenharmony_ci	0x02,   /* pwm freq (reg 0x56)                            */
2247141cc406Sopenharmony_ci	0x1f,   /* pwm duty cycle (reg 0x57)                      */
2248141cc406Sopenharmony_ci	0x05,   /* Paper sense (reg 0x58)                         */
2249141cc406Sopenharmony_ci	0x44,   /* misc io12 (reg 0x59)                           */
2250141cc406Sopenharmony_ci	0x14,   /* misc io34 (reg 0x5a)                           */
2251141cc406Sopenharmony_ci	0x11,   /* misc io56 (reg 0x5b)                           */
2252141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE MSB (reg 0x5c)       */
2253141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2254141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2255141cc406Sopenharmony_ci	_LM9832,
2256141cc406Sopenharmony_ci	MODEL_CANONCCD1200,
2257141cc406Sopenharmony_ci	1.5
2258141cc406Sopenharmony_ci};
2259141cc406Sopenharmony_ci
2260141cc406Sopenharmony_ci/** Canon 670/676/LiDE20 */
2261141cc406Sopenharmony_cistatic HWDef Hw0x04A9_0x220D =
2262141cc406Sopenharmony_ci{
2263141cc406Sopenharmony_ci	0.72,   /* dMaxMotorSpeed                                 */
2264141cc406Sopenharmony_ci	0.23,   /* dMaxMoveSpeed                                  */
2265141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                     */
2266141cc406Sopenharmony_ci	100,    /* dIntegrationTimeLowLamp                        */
2267141cc406Sopenharmony_ci	100,    /* dIntegrationTimeHighLamp                       */
2268141cc406Sopenharmony_ci	1200,   /* wMotorDpi (Full step DPI)                      */
2269141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                  */
2270141cc406Sopenharmony_ci	3.75,   /* dMinIntegrationTimeLowres (ms)                 */
2271141cc406Sopenharmony_ci	5.75,   /* dMinIntegrationTimeHighres (ms)                */
2272141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2273141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2274141cc406Sopenharmony_ci
2275141cc406Sopenharmony_ci	0x15,   /* bSensorConfiguration (0x0b)                    */
2276141cc406Sopenharmony_ci	0x4c,   /* sensor control settings (reg 0x0c)             */
2277141cc406Sopenharmony_ci	0x2f,   /* sensor control settings (reg 0x0d)             */
2278141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0e)             */
2279141cc406Sopenharmony_ci
2280141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
2281141cc406Sopenharmony_ci	        /* mono (reg 0x0f to 0x18)                        */
2282141cc406Sopenharmony_ci
2283141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
2284141cc406Sopenharmony_ci	        /* color (reg 0x0f to 0x18)                       */
2285141cc406Sopenharmony_ci
2286141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode       */
2287141cc406Sopenharmony_ci
2288141cc406Sopenharmony_ci	0x00,   /* bReg 0x27 color mode                           */
2289141cc406Sopenharmony_ci	2,      /* bReg 0x29 illumination mode (runtime)          */
2290141cc406Sopenharmony_ci
2291141cc406Sopenharmony_ci	{ 3,  0,    0, 23, 1800,  0,    0 },
2292141cc406Sopenharmony_ci	{ 2, 23, 3800, 23, 3300, 23, 2700 },
2293141cc406Sopenharmony_ci
2294141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2295141cc406Sopenharmony_ci	0,      /* bOpticBlackStart (reg 0x1c)                    */
2296141cc406Sopenharmony_ci	0,      /* bOpticBlackEnd (reg 0x1d)                      */
2297141cc406Sopenharmony_ci	75,     /* wActivePixelsStart (reg 0x1e + 0x1f)           */
2298141cc406Sopenharmony_ci	6074,   /* wLineEnd (reg 0x20 + 0x21)                     */
2299141cc406Sopenharmony_ci
2300141cc406Sopenharmony_ci	23,     /* red lamp on    (reg 0x2c + 0x2d)               */
2301141cc406Sopenharmony_ci	3800,   /* red lamp off   (reg 0x2e + 0x2f)               */
2302141cc406Sopenharmony_ci	23,     /* green lamp on  (reg 0x30 + 0x31)               */
2303141cc406Sopenharmony_ci	3300,   /* green lamp off (reg 0x32 + 0x33)               */
2304141cc406Sopenharmony_ci	23,     /* blue lamp on   (reg 0x34 + 0x35)               */
2305141cc406Sopenharmony_ci	2700,   /* blue lamp off  (reg 0x36 + 0x37)               */
2306141cc406Sopenharmony_ci
2307141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2308141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2309141cc406Sopenharmony_ci	0x3f,   /* steps to reverse when buffer is full reg 0x50) */
2310141cc406Sopenharmony_ci	0xfc,   /* acceleration profile (reg 0x51)                */
2311141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2312141cc406Sopenharmony_ci	0x0f,   /* kickstart (reg 0x55)                           */
2313141cc406Sopenharmony_ci	0x08,   /* pwm freq (reg 0x56)                            */
2314141cc406Sopenharmony_ci	0x1f,   /* pwm duty cycle (reg 0x57)                      */
2315141cc406Sopenharmony_ci
2316141cc406Sopenharmony_ci	0x04,   /* Paper sense (reg 0x58)                         */
2317141cc406Sopenharmony_ci
2318141cc406Sopenharmony_ci	0x66,   /* misc io12 (reg 0x59)                           */
2319141cc406Sopenharmony_ci	0x16,   /* misc io34 (reg 0x5a)                           */
2320141cc406Sopenharmony_ci	0x91,   /* misc io56 (reg 0x5b)                           */
2321141cc406Sopenharmony_ci	0x01,   /* test mode ADC Output CODE MSB (reg 0x5c)       */
2322141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2323141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2324141cc406Sopenharmony_ci	_LM9833,
2325141cc406Sopenharmony_ci	MODEL_CANON600,
2326141cc406Sopenharmony_ci	2.0
2327141cc406Sopenharmony_ci};
2328141cc406Sopenharmony_ci
2329141cc406Sopenharmony_ci/** Canon N1240U/LiDE30 */
2330141cc406Sopenharmony_cistatic HWDef Hw0x04A9_0x220E =
2331141cc406Sopenharmony_ci{
2332141cc406Sopenharmony_ci	0.72,   /* dMaxMotorSpeed                                 */
2333141cc406Sopenharmony_ci	0.30,   /* dMaxMoveSpeed                                  */
2334141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                     */
2335141cc406Sopenharmony_ci	100,    /* wIntegrationTimeLowLamp                        */
2336141cc406Sopenharmony_ci	100,    /* wIntegrationTimeHighLamp                       */
2337141cc406Sopenharmony_ci	1200,   /* wMotorDpi (Full step DPI)                      */
2338141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                  */
2339141cc406Sopenharmony_ci	3.75,   /* dMinIntegrationTimeLowres (ms)                 */
2340141cc406Sopenharmony_ci	5.75,   /* dMinIntegrationTimeHighres (ms)                */
2341141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2342141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2343141cc406Sopenharmony_ci
2344141cc406Sopenharmony_ci	0x15,   /* bSensorConfiguration (0x0b)                    */
2345141cc406Sopenharmony_ci	0x4c,   /* sensor control settings (reg 0x0c)             */
2346141cc406Sopenharmony_ci	0x2f,   /* sensor control settings (reg 0x0d)             */
2347141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0e)             */
2348141cc406Sopenharmony_ci
2349141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
2350141cc406Sopenharmony_ci	        /* mono (reg 0x0f to 0x18)                        */
2351141cc406Sopenharmony_ci
2352141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
2353141cc406Sopenharmony_ci	        /* color (reg 0x0f to 0x18)                       */
2354141cc406Sopenharmony_ci
2355141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode       */
2356141cc406Sopenharmony_ci
2357141cc406Sopenharmony_ci	0x00,   /* bReg 0x27 color mode                           */
2358141cc406Sopenharmony_ci	2,      /* bReg 0x29 illumination mode                    */
2359141cc406Sopenharmony_ci
2360141cc406Sopenharmony_ci	{ 3,  0,     0, 23,  3000,  0,    0 },
2361141cc406Sopenharmony_ci	{ 2, 23, 16383, 23,  6500, 23, 4900 },
2362141cc406Sopenharmony_ci
2363141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2364141cc406Sopenharmony_ci	0,      /* bOpticBlackStart (reg 0x1c)                    */
2365141cc406Sopenharmony_ci	0,      /* bOpticBlackEnd (reg 0x1d)                      */
2366141cc406Sopenharmony_ci	52,     /* wActivePixelsStart (reg 0x1e + 0x1f)           */
2367141cc406Sopenharmony_ci	10586,  /* wLineEnd (reg 0x20 + 0x21)                     */
2368141cc406Sopenharmony_ci
2369141cc406Sopenharmony_ci	23,     /* red lamp on    (reg 0x2c + 0x2d)               */
2370141cc406Sopenharmony_ci	16383,  /* red lamp off   (reg 0x2e + 0x2f)               */
2371141cc406Sopenharmony_ci	23,     /* green lamp on  (reg 0x30 + 0x31)               */
2372141cc406Sopenharmony_ci	6500,   /* green lamp off (reg 0x32 + 0x33)               */
2373141cc406Sopenharmony_ci	23,     /* blue lamp on   (reg 0x34 + 0x35)               */
2374141cc406Sopenharmony_ci	4900,   /* blue lamp off  (reg 0x36 + 0x37)               */
2375141cc406Sopenharmony_ci
2376141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2377141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2378141cc406Sopenharmony_ci	0x20,   /* steps to reverse when buffer is full reg 0x50) */
2379141cc406Sopenharmony_ci	0xfc,   /* acceleration profile (reg 0x51)                */
2380141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2381141cc406Sopenharmony_ci	0x0f,   /* kickstart (reg 0x55)                           */
2382141cc406Sopenharmony_ci	0x08,   /* pwm freq (reg 0x56)                            */
2383141cc406Sopenharmony_ci	0x1f,   /* pwm duty cycle (reg 0x57)                      */
2384141cc406Sopenharmony_ci
2385141cc406Sopenharmony_ci	0x04,   /* Paper sense (reg 0x58)                         */
2386141cc406Sopenharmony_ci
2387141cc406Sopenharmony_ci	0x66,   /* misc io12 (reg 0x59)                           */
2388141cc406Sopenharmony_ci	0x16,   /* misc io34 (reg 0x5a)                           */
2389141cc406Sopenharmony_ci	0x91,   /* misc io56 (reg 0x5b)                           */
2390141cc406Sopenharmony_ci	0x01,   /* test mode ADC Output CODE MSB (reg 0x5c)       */
2391141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2392141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2393141cc406Sopenharmony_ci	_LM9833,
2394141cc406Sopenharmony_ci	MODEL_CANON1200,
2395141cc406Sopenharmony_ci	2.0
2396141cc406Sopenharmony_ci};
2397141cc406Sopenharmony_ci
2398141cc406Sopenharmony_ci/** Canon LiDE25 */
2399141cc406Sopenharmony_cistatic HWDef Hw0x04A9_0x2220 =
2400141cc406Sopenharmony_ci{
2401141cc406Sopenharmony_ci	0.70,   /* dMaxMotorSpeed                                 */
2402141cc406Sopenharmony_ci	0.25,   /* dMaxMoveSpeed                                  */
2403141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                     */
2404141cc406Sopenharmony_ci	100,    /* wIntegrationTimeLowLamp                        */
2405141cc406Sopenharmony_ci	100,    /* wIntegrationTimeHighLamp                       */
2406141cc406Sopenharmony_ci	1200,   /* wMotorDpi (Full step DPI)                      */
2407141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                  */
2408141cc406Sopenharmony_ci	3.75,   /* dMinIntegrationTimeLowres (ms)                 */
2409141cc406Sopenharmony_ci	5.75,   /* dMinIntegrationTimeHighres (ms)                */
2410141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2411141cc406Sopenharmony_ci	0,      /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2412141cc406Sopenharmony_ci
2413141cc406Sopenharmony_ci	0x11,   /* bSensorConfiguration (0x0b)                    */
2414141cc406Sopenharmony_ci	0x4d,   /* sensor control settings (reg 0x0c)             */
2415141cc406Sopenharmony_ci	0x2f,   /* sensor control settings (reg 0x0d)             */
2416141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0e)             */
2417141cc406Sopenharmony_ci
2418141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x07},
2419141cc406Sopenharmony_ci	        /* mono (reg 0x0f to 0x18)                        */
2420141cc406Sopenharmony_ci
2421141cc406Sopenharmony_ci	{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x07},
2422141cc406Sopenharmony_ci	        /* color (reg 0x0f to 0x18)                       */
2423141cc406Sopenharmony_ci
2424141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode       */
2425141cc406Sopenharmony_ci
2426141cc406Sopenharmony_ci	0x00,   /* bReg 0x27 color mode                           */
2427141cc406Sopenharmony_ci	2,      /* bReg 0x29 illumination mode                    */
2428141cc406Sopenharmony_ci
2429141cc406Sopenharmony_ci	{ 3,  0,    0, 50, 3700,  0,    0 },
2430141cc406Sopenharmony_ci	{ 2, 50, 5600, 50, 7100, 50, 4600 },
2431141cc406Sopenharmony_ci
2432141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2433141cc406Sopenharmony_ci	0,      /* bOpticBlackStart (reg 0x1c)                    */
2434141cc406Sopenharmony_ci	0,      /* bOpticBlackEnd (reg 0x1d)                      */
2435141cc406Sopenharmony_ci	0x7f,   /* wActivePixelsStart (reg 0x1e + 0x1f)           */
2436141cc406Sopenharmony_ci	10559,  /* wLineEnd (reg 0x20 + 0x21)                     */
2437141cc406Sopenharmony_ci
2438141cc406Sopenharmony_ci	50,     /* red lamp on    (reg 0x2c + 0x2d)               */
2439141cc406Sopenharmony_ci	5600,   /* red lamp off   (reg 0x2e + 0x2f)               */
2440141cc406Sopenharmony_ci	50,     /* green lamp on  (reg 0x30 + 0x31)               */
2441141cc406Sopenharmony_ci	7100,   /* green lamp off (reg 0x32 + 0x33)               */
2442141cc406Sopenharmony_ci	50,     /* blue lamp on   (reg 0x34 + 0x35)               */
2443141cc406Sopenharmony_ci	4600,   /* blue lamp off  (reg 0x36 + 0x37)               */
2444141cc406Sopenharmony_ci
2445141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2446141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2447141cc406Sopenharmony_ci	0x20,   /* steps to reverse when buffer is full reg 0x50) */
2448141cc406Sopenharmony_ci	0xfc,   /* acceleration profile (reg 0x51)                */
2449141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2450141cc406Sopenharmony_ci	0x0f,   /* kickstart (reg 0x55)                           */
2451141cc406Sopenharmony_ci	0x08,   /* pwm freq (reg 0x56)                            */
2452141cc406Sopenharmony_ci	0x1f,   /* pwm duty cycle (reg 0x57)                      */
2453141cc406Sopenharmony_ci
2454141cc406Sopenharmony_ci	0x04,   /* Paper sense (reg 0x58)                         */
2455141cc406Sopenharmony_ci
2456141cc406Sopenharmony_ci	0x66,   /* misc io12 (reg 0x59)                           */
2457141cc406Sopenharmony_ci	0x16,   /* misc io34 (reg 0x5a)                           */
2458141cc406Sopenharmony_ci	0x91,   /* misc io56 (reg 0x5b)                           */
2459141cc406Sopenharmony_ci	0x01,   /* test mode ADC Output CODE MSB (reg 0x5c)       */
2460141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2461141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2462141cc406Sopenharmony_ci	_LM9833,
2463141cc406Sopenharmony_ci	MODEL_CANON_LIDE25,
2464141cc406Sopenharmony_ci	2.0
2465141cc406Sopenharmony_ci};
2466141cc406Sopenharmony_ci
2467141cc406Sopenharmony_ci/** TravelScan 662 */
2468141cc406Sopenharmony_cistatic HWDef Hw0x0A82_0x6620 =
2469141cc406Sopenharmony_ci{
2470141cc406Sopenharmony_ci	0.72,   /* dMaxMotorSpeed                                 */
2471141cc406Sopenharmony_ci	0.188,  /* dMaxMoveSpeed                                  */
2472141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                     */
2473141cc406Sopenharmony_ci	100,    /* wIntegrationTimeLowLamp                        */
2474141cc406Sopenharmony_ci	100,    /* wIntegrationTimeHighLamp                       */
2475141cc406Sopenharmony_ci	740,    /* wMotorDpi (Full step DPI)                      */
2476141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                  */
2477141cc406Sopenharmony_ci	3.75,   /* dMinIntegrationTimeLowres (ms)                 */
2478141cc406Sopenharmony_ci	5.75,   /* dMinIntegrationTimeHighres (ms)                */
2479141cc406Sopenharmony_ci	3000,   /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2480141cc406Sopenharmony_ci	3000,   /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2481141cc406Sopenharmony_ci
2482141cc406Sopenharmony_ci	0x0d,   /* bSensorConfiguration (0x0b)                    */
2483141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0c)             */
2484141cc406Sopenharmony_ci	0x25,   /* sensor control settings (reg 0x0d)             */
2485141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0e)             */
2486141cc406Sopenharmony_ci
2487141cc406Sopenharmony_ci	{0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07},
2488141cc406Sopenharmony_ci	        /* mono (reg 0x0f to 0x18)                        */
2489141cc406Sopenharmony_ci
2490141cc406Sopenharmony_ci	{0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07},
2491141cc406Sopenharmony_ci	        /* color (reg 0x0f to 0x18)                       */
2492141cc406Sopenharmony_ci
2493141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode       */
2494141cc406Sopenharmony_ci
2495141cc406Sopenharmony_ci	0x00,   /* bReg 0x27 color mode                           */
2496141cc406Sopenharmony_ci	2,      /* bReg 0x29 illumination mode                    */
2497141cc406Sopenharmony_ci
2498141cc406Sopenharmony_ci	{ 3,  0,    0, 10, 450,  0,   0 },
2499141cc406Sopenharmony_ci	{ 2, 10, 1000, 10, 880, 10, 630 },
2500141cc406Sopenharmony_ci
2501141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2502141cc406Sopenharmony_ci	1,      /* bOpticBlackStart (reg 0x1c)                    */
2503141cc406Sopenharmony_ci	2,      /* bOpticBlackEnd (reg 0x1d)                      */
2504141cc406Sopenharmony_ci	0x17,   /* wActivePixelsStart (reg 0x1e + 0x1f)           */
2505141cc406Sopenharmony_ci	2600,   /* wLineEnd (reg 0x20 + 0x21)                     */
2506141cc406Sopenharmony_ci
2507141cc406Sopenharmony_ci	10,     /* red lamp on    (reg 0x2c + 0x2d)               */
2508141cc406Sopenharmony_ci	1000,   /* red lamp off   (reg 0x2e + 0x2f)               */
2509141cc406Sopenharmony_ci	10,     /* green lamp on  (reg 0x30 + 0x31)               */
2510141cc406Sopenharmony_ci	880,    /* green lamp off (reg 0x32 + 0x33)               */
2511141cc406Sopenharmony_ci	10,     /* blue lamp on   (reg 0x34 + 0x35)               */
2512141cc406Sopenharmony_ci	630,    /* blue lamp off  (reg 0x36 + 0x37)               */
2513141cc406Sopenharmony_ci
2514141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2515141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2516141cc406Sopenharmony_ci
2517141cc406Sopenharmony_ci	0,      /* steps to reverse when buffer is full reg 0x50) */
2518141cc406Sopenharmony_ci	0,      /* acceleration profile (reg 0x51)                */
2519141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2520141cc406Sopenharmony_ci	0x09,   /* kickstart (reg 0x55)                           */
2521141cc406Sopenharmony_ci	0x02,   /* pwm freq (reg 0x56)                            */
2522141cc406Sopenharmony_ci	0x16,   /* pwm duty cycle (reg 0x57)                      */
2523141cc406Sopenharmony_ci
2524141cc406Sopenharmony_ci	0x01,   /* Paper sense (reg 0x58)                         */
2525141cc406Sopenharmony_ci
2526141cc406Sopenharmony_ci	0x0e,   /* misc io12 (reg 0x59)                           */
2527141cc406Sopenharmony_ci	0x96,   /* misc io34 (reg 0x5a)                           */
2528141cc406Sopenharmony_ci	0x01,   /* misc io56 (reg 0x5b)                           */
2529141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE MSB (reg 0x5c)       */
2530141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2531141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2532141cc406Sopenharmony_ci	_LM9833,
2533141cc406Sopenharmony_ci	MODEL_TSCAN,
2534141cc406Sopenharmony_ci	1.8
2535141cc406Sopenharmony_ci};
2536141cc406Sopenharmony_ci
2537141cc406Sopenharmony_ci/** TravelScan 464 */
2538141cc406Sopenharmony_cistatic HWDef Hw0x0A82_0x4600 =
2539141cc406Sopenharmony_ci{
2540141cc406Sopenharmony_ci	0.72,   /* dMaxMotorSpeed                                 */
2541141cc406Sopenharmony_ci	0.26,   /* dMaxMoveSpeed                                  */
2542141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                     */
2543141cc406Sopenharmony_ci	100,    /* wIntegrationTimeLowLamp                        */
2544141cc406Sopenharmony_ci	100,    /* wIntegrationTimeHighLamp                       */
2545141cc406Sopenharmony_ci	740,    /* wMotorDpi (Full step DPI)                      */
2546141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                  */
2547141cc406Sopenharmony_ci	3.75,   /* dMinIntegrationTimeLowres (ms)                 */
2548141cc406Sopenharmony_ci	5.75,   /* dMinIntegrationTimeHighres (ms)                */
2549141cc406Sopenharmony_ci	3000,   /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2550141cc406Sopenharmony_ci	3000,   /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2551141cc406Sopenharmony_ci
2552141cc406Sopenharmony_ci	0x0d,   /* bSensorConfiguration (0x0b)                    */
2553141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0c)             */
2554141cc406Sopenharmony_ci	0x25,   /* sensor control settings (reg 0x0d)             */
2555141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0e)             */
2556141cc406Sopenharmony_ci
2557141cc406Sopenharmony_ci	{0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07},
2558141cc406Sopenharmony_ci	        /* mono (reg 0x0f to 0x18)                        */
2559141cc406Sopenharmony_ci
2560141cc406Sopenharmony_ci	{0x18, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07},
2561141cc406Sopenharmony_ci	        /* color (reg 0x0f to 0x18)                       */
2562141cc406Sopenharmony_ci
2563141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode       */
2564141cc406Sopenharmony_ci
2565141cc406Sopenharmony_ci	0x00,   /* bReg 0x27 color mode                           */
2566141cc406Sopenharmony_ci	2,      /* bReg 0x29 illumination mode                    */
2567141cc406Sopenharmony_ci
2568141cc406Sopenharmony_ci	{ 3, 500, 1045, 500, 990, 500, 990 },
2569141cc406Sopenharmony_ci	{ 2, 500, 1045, 500, 990, 500, 990 },
2570141cc406Sopenharmony_ci
2571141cc406Sopenharmony_ci	1,      /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2572141cc406Sopenharmony_ci	1,      /* bOpticBlackStart (reg 0x1c)                    */
2573141cc406Sopenharmony_ci	2,      /* bOpticBlackEnd (reg 0x1d)                      */
2574141cc406Sopenharmony_ci	0x17,   /* wActivePixelsStart (reg 0x1e + 0x1f)           */
2575141cc406Sopenharmony_ci	5300,   /* wLineEnd (reg 0x20 + 0x21)                     */
2576141cc406Sopenharmony_ci
2577141cc406Sopenharmony_ci	500,    /* red lamp on    (reg 0x2c + 0x2d)               */
2578141cc406Sopenharmony_ci	1045,   /* red lamp off   (reg 0x2e + 0x2f)               */
2579141cc406Sopenharmony_ci	500,    /* green lamp on  (reg 0x30 + 0x31)               */
2580141cc406Sopenharmony_ci	990,    /* green lamp off (reg 0x32 + 0x33)               */
2581141cc406Sopenharmony_ci	500,    /* blue lamp on   (reg 0x34 + 0x35)               */
2582141cc406Sopenharmony_ci	990,    /* blue lamp off  (reg 0x36 + 0x37)               */
2583141cc406Sopenharmony_ci
2584141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2585141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2586141cc406Sopenharmony_ci
2587141cc406Sopenharmony_ci	0,      /* steps to reverse when buffer is full reg 0x50) */
2588141cc406Sopenharmony_ci	0,      /* acceleration profile (reg 0x51)                */
2589141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2590141cc406Sopenharmony_ci	0x09,   /* kickstart (reg 0x55)                           */
2591141cc406Sopenharmony_ci	0x02,   /* pwm freq (reg 0x56)                            */
2592141cc406Sopenharmony_ci	0x16,   /* pwm duty cycle (reg 0x57)                      */
2593141cc406Sopenharmony_ci
2594141cc406Sopenharmony_ci	0x01,   /* Paper sense (reg 0x58)                         */
2595141cc406Sopenharmony_ci
2596141cc406Sopenharmony_ci	0x0e,   /* misc io12 (reg 0x59)                           */
2597141cc406Sopenharmony_ci	0x96,   /* misc io34 (reg 0x5a)                           */
2598141cc406Sopenharmony_ci	0x01,   /* misc io56 (reg 0x5b)                           */
2599141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE MSB (reg 0x5c)       */
2600141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2601141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2602141cc406Sopenharmony_ci	_LM9833,
2603141cc406Sopenharmony_ci	MODEL_TSCAN_A4,
2604141cc406Sopenharmony_ci	1.8
2605141cc406Sopenharmony_ci};
2606141cc406Sopenharmony_ci
2607141cc406Sopenharmony_ci/** IRIScan/Q-Scan USB001 - Portable Peripheral Co., Ltd. */
2608141cc406Sopenharmony_cistatic HWDef Hw0x0A53_0x1000 =
2609141cc406Sopenharmony_ci{
2610141cc406Sopenharmony_ci	0.50,   /* dMaxMotorSpeed                                 */
2611141cc406Sopenharmony_ci	0.40,   /* dMaxMoveSpeed                                  */
2612141cc406Sopenharmony_ci	0.0,    /* dHighSpeed                                     */
2613141cc406Sopenharmony_ci	100,    /* wIntegrationTimeLowLamp                        */
2614141cc406Sopenharmony_ci	100,    /* wIntegrationTimeHighLamp                       */
2615141cc406Sopenharmony_ci	300,    /* wMotorDpi (Full step DPI)                      */
2616141cc406Sopenharmony_ci	512,    /* wRAMSize (KB)                                  */
2617141cc406Sopenharmony_ci	3.75,   /* dMinIntegrationTimeLowres (ms)                 */
2618141cc406Sopenharmony_ci	5.75,   /* dMinIntegrationTimeHighres (ms)                */
2619141cc406Sopenharmony_ci	4095,   /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2620141cc406Sopenharmony_ci	4095,   /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2621141cc406Sopenharmony_ci
2622141cc406Sopenharmony_ci	0x09,   /* bSensorConfiguration (0x0b)                    */
2623141cc406Sopenharmony_ci	0x00,   /* sensor control settings (reg 0x0c)             */
2624141cc406Sopenharmony_ci	0x65,   /* sensor control settings (reg 0x0d)             */
2625141cc406Sopenharmony_ci	0x13,   /* sensor control settings (reg 0x0e)             */
2626141cc406Sopenharmony_ci
2627141cc406Sopenharmony_ci	{0x02, 0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x06, 0x02},
2628141cc406Sopenharmony_ci	       /* mono (reg 0x0f to 0x18)                         */
2629141cc406Sopenharmony_ci
2630141cc406Sopenharmony_ci	{0x02, 0x07, 0x05, 0x07, 0x00, 0x00, 0x00, 0x00, 0x06, 0x02},
2631141cc406Sopenharmony_ci	      /* color (reg 0x0f to 0x18)                         */
2632141cc406Sopenharmony_ci
2633141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode       */
2634141cc406Sopenharmony_ci
2635141cc406Sopenharmony_ci	0x00,   /* bReg 0x27 color mode                           */
2636141cc406Sopenharmony_ci	2,      /* bReg 0x29 illumination mode                    */
2637141cc406Sopenharmony_ci
2638141cc406Sopenharmony_ci	{ 3,    0,    0, 2593, 4600,    0,    0 },
2639141cc406Sopenharmony_ci	{ 2, 2593, 7100, 2593, 4600, 2593, 4480 },
2640141cc406Sopenharmony_ci
2641141cc406Sopenharmony_ci	256,    /* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2642141cc406Sopenharmony_ci	0,      /* bOpticBlackStart (reg 0x1c)                    */
2643141cc406Sopenharmony_ci	0x15,   /* bOpticBlackEnd (reg 0x1d)                      */
2644141cc406Sopenharmony_ci	0x15,   /* wActivePixelsStart (reg 0x1e + 0x1f)           */
2645141cc406Sopenharmony_ci	5500,   /* wLineEnd (reg 0x20 + 0x21)                     */
2646141cc406Sopenharmony_ci
2647141cc406Sopenharmony_ci	2593,   /* red lamp on    (reg 0x2c + 0x2d)               */
2648141cc406Sopenharmony_ci	7100,   /* red lamp off   (reg 0x2e + 0x2f)               */
2649141cc406Sopenharmony_ci	2593,   /* green lamp on  (reg 0x30 + 0x31)               */
2650141cc406Sopenharmony_ci	4600,   /* green lamp off (reg 0x32 + 0x33)               */
2651141cc406Sopenharmony_ci	2593,   /* blue lamp on   (reg 0x34 + 0x35)               */
2652141cc406Sopenharmony_ci	4480,   /* blue lamp off  (reg 0x36 + 0x37)               */
2653141cc406Sopenharmony_ci
2654141cc406Sopenharmony_ci	3,      /* stepper motor control (reg 0x45)               */
2655141cc406Sopenharmony_ci	0,      /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2656141cc406Sopenharmony_ci
2657141cc406Sopenharmony_ci	0,      /* steps to reverse when buffer is full reg 0x50) */
2658141cc406Sopenharmony_ci	0,      /* acceleration profile (reg 0x51)                */
2659141cc406Sopenharmony_ci	0,      /* lines to process (reg 0x54)                    */
2660141cc406Sopenharmony_ci	0x1b,   /* kickstart (reg 0x55)                           */
2661141cc406Sopenharmony_ci	0x08,   /* pwm freq (reg 0x56)                            */
2662141cc406Sopenharmony_ci	0x15,   /* pwm duty cycle (reg 0x57)                      */
2663141cc406Sopenharmony_ci
2664141cc406Sopenharmony_ci	0x00,   /* Paper sense (reg 0x58)                         */
2665141cc406Sopenharmony_ci
2666141cc406Sopenharmony_ci	0x00,   /* misc io12 (reg 0x59)                           */
2667141cc406Sopenharmony_ci	0x00,   /* misc io34 (reg 0x5a)                           */
2668141cc406Sopenharmony_ci	0x00,   /* misc io56 (reg 0x5b)                           */
2669141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE MSB (reg 0x5c)       */
2670141cc406Sopenharmony_ci	0,      /* test mode ADC Output CODE LSB (reg 0x5d)       */
2671141cc406Sopenharmony_ci	0,      /* test mode (reg 0x5e)                           */
2672141cc406Sopenharmony_ci	_LM9832,
2673141cc406Sopenharmony_ci	MODEL_QSCAN,
2674141cc406Sopenharmony_ci	1.1
2675141cc406Sopenharmony_ci};
2676141cc406Sopenharmony_ci
2677141cc406Sopenharmony_ci/** PandP USB201 Q-Scan A6 Scanner */
2678141cc406Sopenharmony_cistatic HWDef Hw0x0A53_0x2000 =
2679141cc406Sopenharmony_ci{
2680141cc406Sopenharmony_ci	0.5,	/* dMaxMotorSpeed                                 */
2681141cc406Sopenharmony_ci	0.2,	/* dMaxMoveSpeed                                  */
2682141cc406Sopenharmony_ci	0.0,	/* dHighSpeed                                     */
2683141cc406Sopenharmony_ci	100,	/* wIntegrationTimeLowLamp                        */
2684141cc406Sopenharmony_ci	100,	/* wIntegrationTimeHighLamp                       */
2685141cc406Sopenharmony_ci	570,	/* wMotorDpi (Full step DPI)                      */
2686141cc406Sopenharmony_ci	512,	/* wRAMSize (KB)                                  */
2687141cc406Sopenharmony_ci	3.75,	/* dMinIntegrationTimeLowres (ms)                 */
2688141cc406Sopenharmony_ci	5.75,	/* dMinIntegrationTimeHighres (ms)                */
2689141cc406Sopenharmony_ci	0x0fff, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b)        */
2690141cc406Sopenharmony_ci	0x0fff, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b)       */
2691141cc406Sopenharmony_ci
2692141cc406Sopenharmony_ci	0x02,	/* bSensorConfiguration (0x0b)                    */
2693141cc406Sopenharmony_ci	0x00,	/* sensor control settings (reg 0x0c)             */
2694141cc406Sopenharmony_ci	0x25,	/* sensor control settings (reg 0x0d)             */
2695141cc406Sopenharmony_ci	0x06,	/* sensor control settings (reg 0x0e)             */
2696141cc406Sopenharmony_ci
2697141cc406Sopenharmony_ci	{0x05, 0x0a, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0x07},
2698141cc406Sopenharmony_ci		/* mono (reg 0x0f to 0x18)                        */
2699141cc406Sopenharmony_ci
2700141cc406Sopenharmony_ci	{0x05, 0x0a, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0x07},
2701141cc406Sopenharmony_ci		/* color (reg 0x0f to 0x18)                       */
2702141cc406Sopenharmony_ci
2703141cc406Sopenharmony_ci	(_BLUE_CH | _ONE_CH_COLOR),	/* bReg_0x26 color mode   */
2704141cc406Sopenharmony_ci
2705141cc406Sopenharmony_ci	0x00,	/* bReg 0x27 color mode                           */
2706141cc406Sopenharmony_ci	2,	/* bReg 0x29 illumination mode                    */
2707141cc406Sopenharmony_ci
2708141cc406Sopenharmony_ci	{ 3,  0,    0, 10, 450,  0,   0 },
2709141cc406Sopenharmony_ci		/* initial illumination settings - mono           */
2710141cc406Sopenharmony_ci	{ 2, 10, 1000, 10, 880, 10, 630 },
2711141cc406Sopenharmony_ci		/* initial illumination settings - color          */
2712141cc406Sopenharmony_ci
2713141cc406Sopenharmony_ci	0x0101,	/* StepperPhaseCorrection (reg 0x1a + 0x1b)       */
2714141cc406Sopenharmony_ci	0x004d,	/* bOpticBlackStart (reg 0x22 + 0x23)             */
2715141cc406Sopenharmony_ci	0x11,	/* bOpticBlackEnd                                 */
2716141cc406Sopenharmony_ci	0x0011,	/* wActivePixelsStart                             */
2717141cc406Sopenharmony_ci	0x0bb8,	/* wLineEnd (reg 0x20 + 0x21)                     */
2718141cc406Sopenharmony_ci
2719141cc406Sopenharmony_ci	10,	/* red lamp on    (reg 0x2c + 0x2d)               */
2720141cc406Sopenharmony_ci	1000,	/* red lamp off   (reg 0x2e + 0x2f)               */
2721141cc406Sopenharmony_ci	10,	/* green lamp on  (reg 0x30 + 0x31)               */
2722141cc406Sopenharmony_ci	880,	/* green lamp off (reg 0x32 + 0x33)               */
2723141cc406Sopenharmony_ci	10,	/* blue lamp on   (reg 0x34 + 0x35)               */
2724141cc406Sopenharmony_ci	630,	/* blue lamp off  (reg 0x36 + 0x37)               */
2725141cc406Sopenharmony_ci
2726141cc406Sopenharmony_ci	0x13,	/* stepper motor control (reg 0x45)               */
2727141cc406Sopenharmony_ci	0x0000,	/* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d)      */
2728141cc406Sopenharmony_ci
2729141cc406Sopenharmony_ci	0,	/* steps to reverse when buffer is full reg 0x50) */
2730141cc406Sopenharmony_ci	0,	/* acceleration profile (reg 0x51)                */
2731141cc406Sopenharmony_ci	0,	/* lines to process (reg 0x54)                    */
2732141cc406Sopenharmony_ci	0x1b,	/* kickstart (reg 0x55)                           */
2733141cc406Sopenharmony_ci	0x08,	/* pwm freq (reg 0x56)                            */
2734141cc406Sopenharmony_ci	0x15,	/* pwm duty cycle (reg 0x57)                      */
2735141cc406Sopenharmony_ci
2736141cc406Sopenharmony_ci	0x00,	/* Paper sense (reg 0x58)                         */
2737141cc406Sopenharmony_ci
2738141cc406Sopenharmony_ci	0x20,	/* misc io12 (reg 0x59)                           */
2739141cc406Sopenharmony_ci	0x02,	/* misc io34 (reg 0x5a)                           */
2740141cc406Sopenharmony_ci	0x90,	/* misc io56 (reg 0x5b)                           */
2741141cc406Sopenharmony_ci	0,	/* test mode ADC Output CODE MSB (reg 0x5c)       */
2742141cc406Sopenharmony_ci	0,	/* test mode ADC Output CODE LSB (reg 0x5d)       */
2743141cc406Sopenharmony_ci	0,	/* test mode (reg 0x5e)                           */
2744141cc406Sopenharmony_ci	_LM9832,
2745141cc406Sopenharmony_ci	MODEL_QSCAN_A6,
2746141cc406Sopenharmony_ci	1.8
2747141cc406Sopenharmony_ci};
2748141cc406Sopenharmony_ci
2749141cc406Sopenharmony_ci/******************** all available combinations *****************************/
2750141cc406Sopenharmony_ci
2751141cc406Sopenharmony_ci/** here we have all supported devices and their settings...
2752141cc406Sopenharmony_ci */
2753141cc406Sopenharmony_cistatic SetDef Settings[] =
2754141cc406Sopenharmony_ci{
2755141cc406Sopenharmony_ci	/* Plustek devices... */
2756141cc406Sopenharmony_ci	/* LM9831 based */
2757141cc406Sopenharmony_ci	{"0x07B3-0x0010-0", &Cap0x07B3_0x0010_0, &Hw0x07B3_0x0013_0, "OpticPro U12"   },
2758141cc406Sopenharmony_ci	{"0x07B3-0x0011-0", &Cap0x07B3_0x0011_0, &Hw0x07B3_0x0013_0, "OpticPro U24"   },
2759141cc406Sopenharmony_ci	{"0x07B3-0x0013-0", &Cap0x07B3_0x0013_0, &Hw0x07B3_0x0013_0, "OpticPro UT12"  },
2760141cc406Sopenharmony_ci
2761141cc406Sopenharmony_ci	/* LM9832 based */
2762141cc406Sopenharmony_ci	{"0x07B3-0x0017-0", &Cap0x07B3_0x0017_0, &Hw0x07B3_0x0017_0, "OpticPro UT12/UT16" },
2763141cc406Sopenharmony_ci	{"0x07B3-0x0015-0", &Cap0x07B3_0x0015_0, &Hw0x07B3_0x0017_0, "OpticPro U24"   },
2764141cc406Sopenharmony_ci	{"0x07B3-0x0015-4", &Cap0x07B3_0x0015_4, &Hw0x07B3_0x0017_4, "OpticPro U24"   },
2765141cc406Sopenharmony_ci	{"0x07B3-0x0017-4", &Cap0x07B3_0x0017_4, &Hw0x07B3_0x0017_4, "OpticPro UT24"  },
2766141cc406Sopenharmony_ci
2767141cc406Sopenharmony_ci	/* never seen yet */
2768141cc406Sopenharmony_ci	{"0x07B3-0x0013-4", &Cap0x07B3_0x0013_4, &Hw0x07B3_0x0013_4, "Unknown device" },
2769141cc406Sopenharmony_ci	{"0x07B3-0x0011-4", &Cap0x07B3_0x0011_4, &Hw0x07B3_0x0013_4, "Unknown device" },
2770141cc406Sopenharmony_ci	{"0x07B3-0x0010-4", &Cap0x07B3_0x0010_4, &Hw0x07B3_0x0013_4, "Unknown device" },
2771141cc406Sopenharmony_ci	{"0x07B3-0x0014-0", &Cap0x07B3_0x0014_0, &Hw0x07B3_0x0017_0, "Unknown device" },
2772141cc406Sopenharmony_ci	{"0x07B3-0x0014-4", &Cap0x07B3_0x0014_4, &Hw0x07B3_0x0017_4, "Unknown device" },
2773141cc406Sopenharmony_ci	{"0x07B3-0x0016-4", &Cap0x07B3_0x0016_4, &Hw0x07B3_0x0016_4, "Unknown device" },
2774141cc406Sopenharmony_ci	{"0x07B3-0x0017-2", &Cap0x07B3_0x0017_2, &Hw0x07B3_0x0017_2, "Unknown device" },
2775141cc406Sopenharmony_ci	{"0x07B3-0x0017-3", &Cap0x07B3_0x0017_3, &Hw0x07B3_0x0017_3, "Unknown device" },
2776141cc406Sopenharmony_ci	{"0x07B3-0x0007",   &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "Unknown device" },
2777141cc406Sopenharmony_ci	{"0x07B3-0x000F",   &Cap0x07B3_0x000F_0, &Hw0x07B3_0x000F_0, "Unknown device" },
2778141cc406Sopenharmony_ci	{"0x07B3-0x000F-4", &Cap0x07B3_0x000F_4, &Hw0x07B3_0x000F_4, "Unknown device" },
2779141cc406Sopenharmony_ci	{"0x07B3-0x0005-2", &Cap0x07B3_0x0005_2, &Hw0x07B3_0x0007_2, "Unknown device" }, /* TOKYO 600 */
2780141cc406Sopenharmony_ci	{"0x07B3-0x0014-1", &Cap0x07B3_0x0014_1, &Hw0x07B3_0x0017_1, "Unknown device" }, /* A3 */
2781141cc406Sopenharmony_ci	{"0x07B3-0x0012-0", &Cap0x07B3_0x0012_0, &Hw0x07B3_0x0012_0, "Unknown device" }, /* Brother Demo */
2782141cc406Sopenharmony_ci
2783141cc406Sopenharmony_ci	/* Mustek BearPaw...*/
2784141cc406Sopenharmony_ci	{"0x0400-0x1000-0", &Cap0x0400_0x1000_0, &Hw0x0400_0x1000_0, "BearPaw 1200" },
2785141cc406Sopenharmony_ci	{"0x0400-0x1001-1", &Cap0x0400_0x1000_0, &Hw0x0400_0x1001_1, "BearPaw 1200" },
2786141cc406Sopenharmony_ci	{"0x0400-0x1001-0", &Cap0x0400_0x1001_0, &Hw0x0400_0x1001_0, "BearPaw 2400" },
2787141cc406Sopenharmony_ci
2788141cc406Sopenharmony_ci	/* Genius devices... */
2789141cc406Sopenharmony_ci	{"0x0458-0x2007",   &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "ColorPage-HR6 V2" },
2790141cc406Sopenharmony_ci	{"0x0458-0x2008",   &Cap0x07B3_0x0007_0, &Hw0x07B3_0x0007_0, "ColorPage-HR6 V2" },
2791141cc406Sopenharmony_ci	{"0x0458-0x2009",   &Cap0x07B3_0x000F_0, &Hw0x07B3_0x000F_0, "ColorPage-HR6A"   },
2792141cc406Sopenharmony_ci	{"0x0458-0x2013",   &Cap0x07B3_0x0007_4, &Hw0x07B3_0x0007_4, "ColorPage-HR7"    },
2793141cc406Sopenharmony_ci	{"0x0458-0x2015",   &Cap0x07B3_0x0005_4, &Hw0x07B3_0x0007_4, "ColorPage-HR7LE"  },
2794141cc406Sopenharmony_ci	{"0x0458-0x2016",   &Cap0x07B3_0x0005_4, &Hw0x07B3_0x0007_0, "ColorPage-HR6X"   },
2795141cc406Sopenharmony_ci
2796141cc406Sopenharmony_ci	/* Hewlett Packard... */
2797141cc406Sopenharmony_ci	{"0x03F0-0x0505",   &Cap0x03F0_0x0505, &Hw0x03F0_0x0505, "Scanjet 2100c" },
2798141cc406Sopenharmony_ci	{"0x03F0-0x0605",   &Cap0x03F0_0x0605, &Hw0x03F0_0x0605, "Scanjet 2200c" },
2799141cc406Sopenharmony_ci
2800141cc406Sopenharmony_ci	/* EPSON... */
2801141cc406Sopenharmony_ci	{"0x04B8-0x010F",   &Cap0x04B8_0x010F, &Hw0x04B8_0x010F, "Perfection 1250/Photo" },
2802141cc406Sopenharmony_ci	{"0x04B8-0x011D",   &Cap0x04B8_0x010F, &Hw0x04B8_0x011D, "Perfection 1260/Photo" },
2803141cc406Sopenharmony_ci
2804141cc406Sopenharmony_ci	/* UMAX... */
2805141cc406Sopenharmony_ci	{"0x1606-0x0050",   &Cap0x1606_0x0060, &Hw0x1606_0x0060, "3400" },
2806141cc406Sopenharmony_ci	{"0x1606-0x0060",   &Cap0x1606_0x0060, &Hw0x1606_0x0060, "3400" },
2807141cc406Sopenharmony_ci	{"0x1606-0x0160",   &Cap0x1606_0x0160, &Hw0x1606_0x0160, "5400" },
2808141cc406Sopenharmony_ci
2809141cc406Sopenharmony_ci	/* COMPAQ... */
2810141cc406Sopenharmony_ci	{"0x049F-0x001A",   &Cap0x1606_0x0060, &Hw0x1606_0x0060, "S4-100" },
2811141cc406Sopenharmony_ci
2812141cc406Sopenharmony_ci	/* CANON... */
2813141cc406Sopenharmony_ci	{"0x04A9-0x2206",   &Cap0x04A9_0x2206, &Hw0x04A9_0x2206, "CanoScan N650U/N656U" },
2814141cc406Sopenharmony_ci	{"0x04A9-0x2207",   &Cap0x04A9_0x2207, &Hw0x04A9_0x2207, "CanoScan N1220U"      },
2815141cc406Sopenharmony_ci	{"0x04A9-0x2208",   &Cap0x04A9_0x2208, &Hw0x04A9_0x2208, "CanoScan D660U"       },
2816141cc406Sopenharmony_ci	{"0x04A9-0x220D",   &Cap0x04A9_0x220D, &Hw0x04A9_0x220D, "CanoScan N670U/N676U/LiDE20" },
2817141cc406Sopenharmony_ci	{"0x04A9-0x220E",   &Cap0x04A9_0x220E, &Hw0x04A9_0x220E, "CanoScan N1240U/LiDE30"      },
2818141cc406Sopenharmony_ci	{"0x04A9-0x2220",   &Cap0x04A9_0x2220, &Hw0x04A9_0x2220, "CanoScan LiDE25"      },
2819141cc406Sopenharmony_ci
2820141cc406Sopenharmony_ci	/* SYSCAN... */
2821141cc406Sopenharmony_ci	{"0x0A82-0x4600",   &Cap0x0A82_0x4600, &Hw0x0A82_0x4600, "TravelScan 460/464" },
2822141cc406Sopenharmony_ci	{"0x0A82-0x6620",   &Cap0x0A82_0x6620, &Hw0x0A82_0x6620, "TravelScan 662" },
2823141cc406Sopenharmony_ci
2824141cc406Sopenharmony_ci	/* Visioneer... */
2825141cc406Sopenharmony_ci	{"0x04A7-0x0427",   &Cap0x0A82_0x4600, &Hw0x0A82_0x4600, "Strobe XP100" },
2826141cc406Sopenharmony_ci
2827141cc406Sopenharmony_ci	/* Portable Peripheral Co., Ltd. */
2828141cc406Sopenharmony_ci	{"0x0A53-0x1000",   &Cap0x0A53_0x1000, &Hw0x0A53_0x1000, "Q-Scan USB001" },
2829141cc406Sopenharmony_ci	{"0x0A53-0x2000",   &Cap0x0A53_0x2000, &Hw0x0A53_0x2000, "Q-Scan USB201" },
2830141cc406Sopenharmony_ci
2831141cc406Sopenharmony_ci	/* Please add other devices here...
2832141cc406Sopenharmony_ci	 * The first entry is a string, composed out of the vendor and product id,
2833141cc406Sopenharmony_ci	 * it's used by the driver to select the device settings. For other devices
2834141cc406Sopenharmony_ci	 * than those of Plustek, you'll not need to add the second '-' part
2835141cc406Sopenharmony_ci	 *
2836141cc406Sopenharmony_ci	 * The second entry describes the capabilities of the device, you may find
2837141cc406Sopenharmony_ci	 * one suitable for your scanner, for a better description of the entries
2838141cc406Sopenharmony_ci	 * have a look at the beginning of this file at Cap0x07B3_0x0017_0 for
2839141cc406Sopenharmony_ci	 * the UT12
2840141cc406Sopenharmony_ci	 *
2841141cc406Sopenharmony_ci	 * The third entry is for the default setting of the LM983x register
2842141cc406Sopenharmony_ci	 * settings, you can often find these in your Windoze driver ini
2843141cc406Sopenharmony_ci	 * Have a look at the Hw0x0400_0x1000_0 or Hw0x07B3_0x0017_0 for further
2844141cc406Sopenharmony_ci	 * description
2845141cc406Sopenharmony_ci	 *
2846141cc406Sopenharmony_ci	 * The fourth entry is simply the name of the device, which will be
2847141cc406Sopenharmony_ci	 * displayed by the frontend
2848141cc406Sopenharmony_ci	 */
2849141cc406Sopenharmony_ci	{ NULL, NULL, NULL, NULL }  /* last entry, never remove... */
2850141cc406Sopenharmony_ci};
2851141cc406Sopenharmony_ci
2852141cc406Sopenharmony_ci/**
2853141cc406Sopenharmony_ci * tables for the motor settings
2854141cc406Sopenharmony_ci * The models KaoHsiung, HuaLien and Tokyo600 are currently set
2855141cc406Sopenharmony_ci * within the code in conjunction with some CCD combinations.
2856141cc406Sopenharmony_ci * NOTE: the touples PWM and PWM_Duty are used to set the registers
2857141cc406Sopenharmony_ci *       0x56 and 0x57, the recommended setting is 8,10
2858141cc406Sopenharmony_ci *       if you notice a whining noise and the motor does not move,
2859141cc406Sopenharmony_ci *       you might increase the MCLK variable.
2860141cc406Sopenharmony_ci */
2861141cc406Sopenharmony_cistatic ClkMotorDef Motors[] = {
2862141cc406Sopenharmony_ci
2863141cc406Sopenharmony_ci	{ MODEL_KaoHsiung,
2864141cc406Sopenharmony_ci		64, 20, 6, /* PWM, PWM_Duty, MCLK for fast move */
2865141cc406Sopenharmony_ci		0, 0,      /* for lineend adjustment, here disabled */
2866141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2867141cc406Sopenharmony_ci		{{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 },
2868141cc406Sopenharmony_ci		 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }},
2869141cc406Sopenharmony_ci		/* Color mode MCLK settings */
2870141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2871141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2872141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2873141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2874141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }
2875141cc406Sopenharmony_ci	},
2876141cc406Sopenharmony_ci
2877141cc406Sopenharmony_ci	{ MODEL_HuaLien, 64, 20, 6, 0, 0,
2878141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2879141cc406Sopenharmony_ci		{{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 },
2880141cc406Sopenharmony_ci		 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }},
2881141cc406Sopenharmony_ci		/* Color mode MCLK settings */
2882141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2883141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2884141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2885141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2886141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }
2887141cc406Sopenharmony_ci	},
2888141cc406Sopenharmony_ci
2889141cc406Sopenharmony_ci	{ MODEL_Tokyo600, 4, 4, 6, 0, 0,
2890141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2891141cc406Sopenharmony_ci		{{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 },
2892141cc406Sopenharmony_ci		 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }},
2893141cc406Sopenharmony_ci		/* Color mode MCLK settings */
2894141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2895141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2896141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2897141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 },
2898141cc406Sopenharmony_ci		{ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 }
2899141cc406Sopenharmony_ci	},
2900141cc406Sopenharmony_ci
2901141cc406Sopenharmony_ci	{ MODEL_MUSTEK600, 4, 4, 6, 0, 0,
2902141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2903141cc406Sopenharmony_ci		{{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 },
2904141cc406Sopenharmony_ci		 { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }},
2905141cc406Sopenharmony_ci		/* Color mode MCLK settings */
2906141cc406Sopenharmony_ci		{ 4.0, 3.5, 3.5, 4.0, 4.0, 5.0, 5.0, 7.5, 7.5, 7.5 },
2907141cc406Sopenharmony_ci		{ 4.0, 3.5, 3.5, 4.0, 4.0, 5.0, 5.0, 7.5, 7.5, 7.5 },
2908141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2909141cc406Sopenharmony_ci		{ 7.5, 7.0, 6.5, 5.5, 5.5, 5.5, 7.0, 7.0, 7.0, 7.0 },
2910141cc406Sopenharmony_ci		{ 7.5, 7.0, 6.5, 5.5, 5.5, 5.5, 7.0, 7.0, 7.0, 7.0 }
2911141cc406Sopenharmony_ci	},
2912141cc406Sopenharmony_ci
2913141cc406Sopenharmony_ci	{ MODEL_MUSTEK1200, 2, 32, 3, 0, 0,
2914141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2915141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi   */
2916141cc406Sopenharmony_ci		{{ 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 },
2917141cc406Sopenharmony_ci		/* <=400dpi      <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
2918141cc406Sopenharmony_ci		 { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }, { 2, 32, 1 }},
2919141cc406Sopenharmony_ci		/* Color mode MCLK settings */
2920141cc406Sopenharmony_ci		{ 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 },
2921141cc406Sopenharmony_ci		{ 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 },
2922141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2923141cc406Sopenharmony_ci		{ 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 },
2924141cc406Sopenharmony_ci		{ 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 }
2925141cc406Sopenharmony_ci	},
2926141cc406Sopenharmony_ci
2927141cc406Sopenharmony_ci	/* settings good for the HP models (tested with 2200)*/
2928141cc406Sopenharmony_ci	{ MODEL_HP, 8, 60, 6, 0, 0,
2929141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2930141cc406Sopenharmony_ci		{{ 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 },
2931141cc406Sopenharmony_ci		 { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }, { 8, 60, 1 }},
2932141cc406Sopenharmony_ci    	/* Color mode MCLK settings */
2933141cc406Sopenharmony_ci		{ 4.0, 4.0, 4.0, 4.0, 3.0, 4.0, 6.0, 6.0, 6.0, 6.0 },
2934141cc406Sopenharmony_ci		{ 4.0, 4.0, 4.0, 4.0, 3.0, 4.0, 6.0, 6.0, 6.0, 6.0 },
2935141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2936141cc406Sopenharmony_ci		{ 8.0, 8.0, 8.0, 8.0, 8.0, 13.0, 13.0, 13.0, 13.0, 13.0 },
2937141cc406Sopenharmony_ci		{ 8.0, 8.0, 8.0, 8.0, 8.0, 13.0, 13.0, 13.0, 13.0, 13.0 }
2938141cc406Sopenharmony_ci	},
2939141cc406Sopenharmony_ci
2940141cc406Sopenharmony_ci	{ MODEL_CANON600, 8, 31, 12, 0, 0,
2941141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2942141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi  */
2943141cc406Sopenharmony_ci		{{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 },
2944141cc406Sopenharmony_ci		/* <=400dpi      <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
2945141cc406Sopenharmony_ci		 { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }},
2946141cc406Sopenharmony_ci		/* Color mode MCLK settings */
2947141cc406Sopenharmony_ci		{ 7.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
2948141cc406Sopenharmony_ci		{ 7.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
2949141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2950141cc406Sopenharmony_ci		{ 15.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0 },
2951141cc406Sopenharmony_ci		{ 15.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0, 12.0 }
2952141cc406Sopenharmony_ci	},
2953141cc406Sopenharmony_ci
2954141cc406Sopenharmony_ci	{ MODEL_CANON1200, 8, 31, 8, 0, 0,
2955141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2956141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi  */
2957141cc406Sopenharmony_ci		{{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 },
2958141cc406Sopenharmony_ci		/* <=400dpi      <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
2959141cc406Sopenharmony_ci		 { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }},
2960141cc406Sopenharmony_ci		/* Color mode MCLK settings */
2961141cc406Sopenharmony_ci		{ 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0 },
2962141cc406Sopenharmony_ci		{ 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 5.0, 6.0, 6.0, 6.0 },
2963141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2964141cc406Sopenharmony_ci		{ 8.5, 7.0, 5.0, 4.0, 2.5, 2.5, 2.5,  2.5,  2.5,  2.5 },
2965141cc406Sopenharmony_ci		{ 8.5, 6.5, 6.0, 6.0, 6.0, 6.0, 8.0, 12.0, 12.0, 12.0 }
2966141cc406Sopenharmony_ci	},
2967141cc406Sopenharmony_ci
2968141cc406Sopenharmony_ci	/* settings good for the UMAX models (tested with 3400) */
2969141cc406Sopenharmony_ci	{ MODEL_UMAX, 16, 4, 6, 0, 0,
2970141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2971141cc406Sopenharmony_ci		{{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 },
2972141cc406Sopenharmony_ci		 { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }},
2973141cc406Sopenharmony_ci    	/* Color mode MCLK settings */
2974141cc406Sopenharmony_ci		{ 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 },
2975141cc406Sopenharmony_ci		{ 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5 },
2976141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2977141cc406Sopenharmony_ci		{ 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5 },
2978141cc406Sopenharmony_ci		{ 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5, 10.5 }
2979141cc406Sopenharmony_ci	},
2980141cc406Sopenharmony_ci
2981141cc406Sopenharmony_ci	{ MODEL_UMAX1200, 16, 4, 6, 0, 0,
2982141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2983141cc406Sopenharmony_ci		{{ 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 },
2984141cc406Sopenharmony_ci		 { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }, { 16, 4, 1 }},
2985141cc406Sopenharmony_ci		/* Color mode MCLK settings */
2986141cc406Sopenharmony_ci		{ 3.0, 3.0, 3.0, 3.0, 3.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
2987141cc406Sopenharmony_ci		{ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 },
2988141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
2989141cc406Sopenharmony_ci		{  6.0,  6.0,  6.0,  6.0,  6.0, 13.0, 13.0, 13.0, 13.0, 13.0 },
2990141cc406Sopenharmony_ci		{ 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0, 13.0 }
2991141cc406Sopenharmony_ci	},
2992141cc406Sopenharmony_ci
2993141cc406Sopenharmony_ci	/* settings good for the EPSON models */
2994141cc406Sopenharmony_ci	{ MODEL_EPSON, 2, 1, 6, 0, 0,
2995141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
2996141cc406Sopenharmony_ci		/* <=75dpi      <=100dpi     <=150dpi     <=200dpi     <=300dpi  */
2997141cc406Sopenharmony_ci		{{ 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 },
2998141cc406Sopenharmony_ci		/* <=400dpi     <=600dpi     <=800dpi     <=1200dpi    <=2400dpi */
2999141cc406Sopenharmony_ci		 { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }},
3000141cc406Sopenharmony_ci		/* Color mode MCLK settings */
3001141cc406Sopenharmony_ci		{ 2.0, 2.0, 2.5, 2.5, 2.5, 2.5, 4.0, 4.0, 6.0, 6.0 },
3002141cc406Sopenharmony_ci		{ 2.0, 2.0, 2.5, 2.5, 3.0, 3.0, 3.0, 4.0, 6.0, 6.0 },
3003141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
3004141cc406Sopenharmony_ci		{ 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 9.0, 9.0, 18.0, 18.0 },
3005141cc406Sopenharmony_ci		{ 6.0, 6.0, 6.0, 6.0, 6.0, 8.0, 9.0, 9.0, 18.0, 18.0 }
3006141cc406Sopenharmony_ci	},
3007141cc406Sopenharmony_ci
3008141cc406Sopenharmony_ci	{ MODEL_CANONCCD1200, 2, 31, 3, 0, 0,
3009141cc406Sopenharmony_ci		/* Motor settings (PWM and PWM_Duty) */
3010141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi  */
3011141cc406Sopenharmony_ci		{{ 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 },
3012141cc406Sopenharmony_ci		/* <=400dpi      <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
3013141cc406Sopenharmony_ci		 { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }, { 2, 31, 1 }},
3014141cc406Sopenharmony_ci		/* Color mode MCLK settings */
3015141cc406Sopenharmony_ci		{ 2.0, 2.0, 2.0, 2.5, 2.5, 2.5, 3.0, 3.5, 5.0, 5.0 },
3016141cc406Sopenharmony_ci		{ 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 5.0, 5.0 },
3017141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
3018141cc406Sopenharmony_ci		{ 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0,  6.0,  6.0,  6.0 },
3019141cc406Sopenharmony_ci		{ 6.5, 6.5, 6.5, 7.0, 8.0, 8.0, 8.0, 10.0, 10.0, 10.0 }
3020141cc406Sopenharmony_ci	},
3021141cc406Sopenharmony_ci
3022141cc406Sopenharmony_ci	{ MODEL_CANON_LIDE25, 8, 31, 3, 0, 0,
3023141cc406Sopenharmony_ci	/* Motor settings (PWM and PWM_Duty) */
3024141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi */
3025141cc406Sopenharmony_ci		{{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 },
3026141cc406Sopenharmony_ci		/* <=400dpi     <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
3027141cc406Sopenharmony_ci		{ 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }, { 8, 31, 1 }},
3028141cc406Sopenharmony_ci		/* Color mode MCLK settings */
3029141cc406Sopenharmony_ci		{ 3.0, 3.0, 3.0, 3.0, 3.5, 3.0, 3.0, 3.0, 3.0, 3.0 },
3030141cc406Sopenharmony_ci		{ 3.0, 3.0, 3.0, 3.0, 3.5, 3.5, 5.0, 6.0, 6.0, 6.0 },
3031141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
3032141cc406Sopenharmony_ci		{ 8.5, 7.0, 5.0, 4.0, 2.5, 2.5, 2.5,  2.5,  2.5,  2.5 },
3033141cc406Sopenharmony_ci		{ 7.5, 6.5, 6.0, 6.0, 6.0, 6.0, 8.0, 12.0, 12.0, 12.0 }
3034141cc406Sopenharmony_ci	},
3035141cc406Sopenharmony_ci
3036141cc406Sopenharmony_ci	{ MODEL_TSCAN, 2, 22, 6, 75, 4000,
3037141cc406Sopenharmony_ci	/* Motor settings (PWM and PWM_Duty) */
3038141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi */
3039141cc406Sopenharmony_ci		{{ 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 },
3040141cc406Sopenharmony_ci		/* <=400dpi     <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
3041141cc406Sopenharmony_ci		{ 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }},
3042141cc406Sopenharmony_ci		/* Color mode MCLK settings */
3043141cc406Sopenharmony_ci		{ 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
3044141cc406Sopenharmony_ci		{ 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
3045141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
3046141cc406Sopenharmony_ci		{ 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 },
3047141cc406Sopenharmony_ci		{ 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 },
3048141cc406Sopenharmony_ci	},
3049141cc406Sopenharmony_ci
3050141cc406Sopenharmony_ci	{ MODEL_TSCAN_A4, 2, 22, 6, 75, 8400,
3051141cc406Sopenharmony_ci	/* Motor settings (PWM and PWM_Duty) */
3052141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi */
3053141cc406Sopenharmony_ci		{{ 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 },
3054141cc406Sopenharmony_ci		/* <=400dpi     <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
3055141cc406Sopenharmony_ci		{ 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }, { 2, 22, 1 }},
3056141cc406Sopenharmony_ci		/* Color mode MCLK settings */
3057141cc406Sopenharmony_ci		{ 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
3058141cc406Sopenharmony_ci		{ 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
3059141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
3060141cc406Sopenharmony_ci		{ 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 },
3061141cc406Sopenharmony_ci		{ 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0 },
3062141cc406Sopenharmony_ci	},
3063141cc406Sopenharmony_ci
3064141cc406Sopenharmony_ci	{ MODEL_QSCAN, 8, 21, 6, 300, 4600,
3065141cc406Sopenharmony_ci	/* Motor settings (PWM and PWM_Duty) */
3066141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi */
3067141cc406Sopenharmony_ci		{{ 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 },
3068141cc406Sopenharmony_ci		/* <=400dpi     <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
3069141cc406Sopenharmony_ci		{ 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }, { 8, 21, 1 }},
3070141cc406Sopenharmony_ci		/* Color mode MCLK settings */
3071141cc406Sopenharmony_ci		{ 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
3072141cc406Sopenharmony_ci		{ 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
3073141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
3074141cc406Sopenharmony_ci		{ 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
3075141cc406Sopenharmony_ci		{ 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
3076141cc406Sopenharmony_ci	},
3077141cc406Sopenharmony_ci
3078141cc406Sopenharmony_ci	{ MODEL_QSCAN_A6, 8, 15, 6, 0, 0,
3079141cc406Sopenharmony_ci	/* Motor settings (PWM and PWM_Duty) */
3080141cc406Sopenharmony_ci		/* <=75dpi       <=100dpi      <=150dpi      <=200dpi      <=300dpi */
3081141cc406Sopenharmony_ci		{{ 8, 15, 1}, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 },
3082141cc406Sopenharmony_ci		/* <=400dpi     <=600dpi      <=800dpi      <=1200dpi     <=2400dpi */
3083141cc406Sopenharmony_ci		{ 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }},
3084141cc406Sopenharmony_ci		/* Color mode MCLK settings */
3085141cc406Sopenharmony_ci		{ 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5 },
3086141cc406Sopenharmony_ci		{ 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5 },
3087141cc406Sopenharmony_ci		/* Gray mode MCLK settings */
3088141cc406Sopenharmony_ci		{ 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0 },
3089141cc406Sopenharmony_ci		{ 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0 },
3090141cc406Sopenharmony_ci	}
3091141cc406Sopenharmony_ci};
3092141cc406Sopenharmony_ci
3093141cc406Sopenharmony_ci/* END PLUSTEK-USBDEVS.C ....................................................*/
3094