1141cc406Sopenharmony_ci/*  sane - Scanner Access Now Easy.
2141cc406Sopenharmony_ci
3141cc406Sopenharmony_ci    Copyright (C) 2019 Povilas Kanapickas <povilas@radix.lt>
4141cc406Sopenharmony_ci
5141cc406Sopenharmony_ci    This file is part of the SANE package.
6141cc406Sopenharmony_ci
7141cc406Sopenharmony_ci    This program is free software; you can redistribute it and/or
8141cc406Sopenharmony_ci    modify it under the terms of the GNU General Public License as
9141cc406Sopenharmony_ci    published by the Free Software Foundation; either version 2 of the
10141cc406Sopenharmony_ci    License, or (at your option) any later version.
11141cc406Sopenharmony_ci
12141cc406Sopenharmony_ci    This program is distributed in the hope that it will be useful, but
13141cc406Sopenharmony_ci    WITHOUT ANY WARRANTY; without even the implied warranty of
14141cc406Sopenharmony_ci    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15141cc406Sopenharmony_ci    General Public License for more details.
16141cc406Sopenharmony_ci
17141cc406Sopenharmony_ci    You should have received a copy of the GNU General Public License
18141cc406Sopenharmony_ci    along with this program.  If not, see <https://www.gnu.org/licenses/>.
19141cc406Sopenharmony_ci*/
20141cc406Sopenharmony_ci
21141cc406Sopenharmony_ci#define DEBUG_DECLARE_ONLY
22141cc406Sopenharmony_ci
23141cc406Sopenharmony_ci#include "low.h"
24141cc406Sopenharmony_ci
25141cc406Sopenharmony_cinamespace genesys {
26141cc406Sopenharmony_ci
27141cc406Sopenharmony_ciStaticInit<std::vector<Genesys_Gpo>> s_gpo;
28141cc406Sopenharmony_ci
29141cc406Sopenharmony_civoid genesys_init_gpo_tables()
30141cc406Sopenharmony_ci{
31141cc406Sopenharmony_ci    s_gpo.init();
32141cc406Sopenharmony_ci
33141cc406Sopenharmony_ci    Genesys_Gpo gpo;
34141cc406Sopenharmony_ci    gpo.id = GpioId::UMAX;
35141cc406Sopenharmony_ci    gpo.regs = {
36141cc406Sopenharmony_ci        { 0x66, 0x11 },
37141cc406Sopenharmony_ci        { 0x67, 0x00 },
38141cc406Sopenharmony_ci        { 0x68, 0x51 },
39141cc406Sopenharmony_ci        { 0x69, 0x20 },
40141cc406Sopenharmony_ci    };
41141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
42141cc406Sopenharmony_ci
43141cc406Sopenharmony_ci
44141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
45141cc406Sopenharmony_ci    gpo.id = GpioId::ST12;
46141cc406Sopenharmony_ci    gpo.regs = {
47141cc406Sopenharmony_ci        { 0x66, 0x11 },
48141cc406Sopenharmony_ci        { 0x67, 0x00 },
49141cc406Sopenharmony_ci        { 0x68, 0x51 },
50141cc406Sopenharmony_ci        { 0x69, 0x20 },
51141cc406Sopenharmony_ci    };
52141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
53141cc406Sopenharmony_ci
54141cc406Sopenharmony_ci
55141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
56141cc406Sopenharmony_ci    gpo.id = GpioId::ST24;
57141cc406Sopenharmony_ci    gpo.regs = {
58141cc406Sopenharmony_ci        { 0x66, 0x00 },
59141cc406Sopenharmony_ci        { 0x67, 0x00 },
60141cc406Sopenharmony_ci        { 0x68, 0x51 },
61141cc406Sopenharmony_ci        { 0x69, 0x20 },
62141cc406Sopenharmony_ci    };
63141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
64141cc406Sopenharmony_ci
65141cc406Sopenharmony_ci
66141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
67141cc406Sopenharmony_ci    gpo.id = GpioId::MD_5345; // bits 11-12 are for bipolar V-ref input voltage
68141cc406Sopenharmony_ci    gpo.regs = {
69141cc406Sopenharmony_ci        { 0x66, 0x30 },
70141cc406Sopenharmony_ci        { 0x67, 0x18 },
71141cc406Sopenharmony_ci        { 0x68, 0xa0 },
72141cc406Sopenharmony_ci        { 0x69, 0x18 },
73141cc406Sopenharmony_ci    };
74141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
75141cc406Sopenharmony_ci
76141cc406Sopenharmony_ci
77141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
78141cc406Sopenharmony_ci    gpo.id = GpioId::HP2400;
79141cc406Sopenharmony_ci    gpo.regs = {
80141cc406Sopenharmony_ci        { 0x66, 0x30 },
81141cc406Sopenharmony_ci        { 0x67, 0x00 },
82141cc406Sopenharmony_ci        { 0x68, 0x31 },
83141cc406Sopenharmony_ci        { 0x69, 0x00 },
84141cc406Sopenharmony_ci    };
85141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
86141cc406Sopenharmony_ci
87141cc406Sopenharmony_ci
88141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
89141cc406Sopenharmony_ci    gpo.id = GpioId::HP2300;
90141cc406Sopenharmony_ci    gpo.regs = {
91141cc406Sopenharmony_ci        { 0x66, 0x00 },
92141cc406Sopenharmony_ci        { 0x67, 0x00 },
93141cc406Sopenharmony_ci        { 0x68, 0x00 },
94141cc406Sopenharmony_ci        { 0x69, 0x00 },
95141cc406Sopenharmony_ci    };
96141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
97141cc406Sopenharmony_ci
98141cc406Sopenharmony_ci
99141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
100141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_LIDE_35;
101141cc406Sopenharmony_ci    gpo.regs = {
102141cc406Sopenharmony_ci        { 0x6c, 0x02 },
103141cc406Sopenharmony_ci        { 0x6d, 0x80 },
104141cc406Sopenharmony_ci        { 0x6e, 0xef },
105141cc406Sopenharmony_ci        { 0x6f, 0x80 },
106141cc406Sopenharmony_ci    };
107141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
108141cc406Sopenharmony_ci
109141cc406Sopenharmony_ci
110141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
111141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_LIDE_90;
112141cc406Sopenharmony_ci    gpo.regs = {
113141cc406Sopenharmony_ci        { 0x6b, 0x03 },
114141cc406Sopenharmony_ci        { 0x6c, 0x74 },
115141cc406Sopenharmony_ci        { 0x6d, 0x80 },
116141cc406Sopenharmony_ci        { 0x6e, 0x7f },
117141cc406Sopenharmony_ci        { 0x6f, 0xe0 },
118141cc406Sopenharmony_ci    };
119141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
120141cc406Sopenharmony_ci
121141cc406Sopenharmony_ci
122141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
123141cc406Sopenharmony_ci    gpo.id = GpioId::XP200;
124141cc406Sopenharmony_ci    gpo.regs = {
125141cc406Sopenharmony_ci        { 0x66, 0x30 },
126141cc406Sopenharmony_ci        { 0x67, 0x00 },
127141cc406Sopenharmony_ci        { 0x68, 0xb0 },
128141cc406Sopenharmony_ci        { 0x69, 0x00 },
129141cc406Sopenharmony_ci    };
130141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
131141cc406Sopenharmony_ci
132141cc406Sopenharmony_ci
133141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
134141cc406Sopenharmony_ci    gpo.id = GpioId::HP3670;
135141cc406Sopenharmony_ci    gpo.regs = {
136141cc406Sopenharmony_ci        { 0x66, 0x00 },
137141cc406Sopenharmony_ci        { 0x67, 0x00 },
138141cc406Sopenharmony_ci        { 0x68, 0x00 },
139141cc406Sopenharmony_ci        { 0x69, 0x00 },
140141cc406Sopenharmony_ci    };
141141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
142141cc406Sopenharmony_ci
143141cc406Sopenharmony_ci
144141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
145141cc406Sopenharmony_ci    gpo.id = GpioId::XP300;
146141cc406Sopenharmony_ci    gpo.regs = {
147141cc406Sopenharmony_ci        { 0x6c, 0x09 },
148141cc406Sopenharmony_ci        { 0x6d, 0xc6 },
149141cc406Sopenharmony_ci        { 0x6e, 0xbb },
150141cc406Sopenharmony_ci        { 0x6f, 0x00 },
151141cc406Sopenharmony_ci    };
152141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
153141cc406Sopenharmony_ci
154141cc406Sopenharmony_ci
155141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
156141cc406Sopenharmony_ci    gpo.id = GpioId::DP665;
157141cc406Sopenharmony_ci    gpo.regs = {
158141cc406Sopenharmony_ci        { 0x6c, 0x18 },
159141cc406Sopenharmony_ci        { 0x6d, 0x00 },
160141cc406Sopenharmony_ci        { 0x6e, 0xbb },
161141cc406Sopenharmony_ci        { 0x6f, 0x00 },
162141cc406Sopenharmony_ci    };
163141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
164141cc406Sopenharmony_ci
165141cc406Sopenharmony_ci
166141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
167141cc406Sopenharmony_ci    gpo.id = GpioId::DP685;
168141cc406Sopenharmony_ci    gpo.regs = {
169141cc406Sopenharmony_ci        { 0x6c, 0x3f },
170141cc406Sopenharmony_ci        { 0x6d, 0x46 },
171141cc406Sopenharmony_ci        { 0x6e, 0xfb },
172141cc406Sopenharmony_ci        { 0x6f, 0x00 },
173141cc406Sopenharmony_ci    };
174141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
175141cc406Sopenharmony_ci
176141cc406Sopenharmony_ci
177141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
178141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_LIDE_200;
179141cc406Sopenharmony_ci    gpo.regs = {
180141cc406Sopenharmony_ci        { 0x6b, 0x02 },
181141cc406Sopenharmony_ci        { 0x6c, 0xf9 }, // 0xfb when idle , 0xf9/0xe9 (1200) when scanning
182141cc406Sopenharmony_ci        { 0x6d, 0x20 },
183141cc406Sopenharmony_ci        { 0x6e, 0xff },
184141cc406Sopenharmony_ci        { 0x6f, 0x00 },
185141cc406Sopenharmony_ci        { 0xa6, 0x04 },
186141cc406Sopenharmony_ci        { 0xa7, 0x04 },
187141cc406Sopenharmony_ci        { 0xa8, 0x00 },
188141cc406Sopenharmony_ci        { 0xa9, 0x00 },
189141cc406Sopenharmony_ci    };
190141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
191141cc406Sopenharmony_ci
192141cc406Sopenharmony_ci
193141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
194141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_LIDE_700F;
195141cc406Sopenharmony_ci    gpo.regs = {
196141cc406Sopenharmony_ci        { 0x6b, 0x06 },
197141cc406Sopenharmony_ci        { 0x6c, 0xdb },
198141cc406Sopenharmony_ci        { 0x6d, 0xff },
199141cc406Sopenharmony_ci        { 0x6e, 0xff },
200141cc406Sopenharmony_ci        { 0x6f, 0x80 },
201141cc406Sopenharmony_ci        { 0xa6, 0x15 },
202141cc406Sopenharmony_ci        { 0xa7, 0x07 },
203141cc406Sopenharmony_ci        { 0xa8, 0x20 },
204141cc406Sopenharmony_ci        { 0xa9, 0x10 },
205141cc406Sopenharmony_ci    };
206141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
207141cc406Sopenharmony_ci
208141cc406Sopenharmony_ci
209141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
210141cc406Sopenharmony_ci    gpo.id = GpioId::KVSS080;
211141cc406Sopenharmony_ci    gpo.regs = {
212141cc406Sopenharmony_ci        { 0x6c, 0xf5 },
213141cc406Sopenharmony_ci        { 0x6d, 0x20 },
214141cc406Sopenharmony_ci        { 0x6e, 0x7e },
215141cc406Sopenharmony_ci        { 0x6f, 0xa1 },
216141cc406Sopenharmony_ci        { 0xa6, 0x06 },
217141cc406Sopenharmony_ci        { 0xa7, 0x0f },
218141cc406Sopenharmony_ci        { 0xa8, 0x00 },
219141cc406Sopenharmony_ci        { 0xa9, 0x08 },
220141cc406Sopenharmony_ci    };
221141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
222141cc406Sopenharmony_ci
223141cc406Sopenharmony_ci
224141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
225141cc406Sopenharmony_ci    gpo.id = GpioId::G4050;
226141cc406Sopenharmony_ci    gpo.regs = {
227141cc406Sopenharmony_ci        { 0x6c, 0x20 },
228141cc406Sopenharmony_ci        { 0x6d, 0x00 },
229141cc406Sopenharmony_ci        { 0x6e, 0xfc },
230141cc406Sopenharmony_ci        { 0x6f, 0x00 },
231141cc406Sopenharmony_ci        { 0xa6, 0x08 },
232141cc406Sopenharmony_ci        { 0xa7, 0x1e },
233141cc406Sopenharmony_ci        { 0xa8, 0x3e },
234141cc406Sopenharmony_ci        { 0xa9, 0x06 },
235141cc406Sopenharmony_ci    };
236141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
237141cc406Sopenharmony_ci
238141cc406Sopenharmony_ci
239141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
240141cc406Sopenharmony_ci    gpo.id = GpioId::G4010;
241141cc406Sopenharmony_ci    gpo.regs = {
242141cc406Sopenharmony_ci        { 0x6c, 0x20 },
243141cc406Sopenharmony_ci        { 0x6d, 0x00 },
244141cc406Sopenharmony_ci        { 0x6e, 0xfc },
245141cc406Sopenharmony_ci        { 0x6f, 0x00 },
246141cc406Sopenharmony_ci        { 0xa6, 0x08 },
247141cc406Sopenharmony_ci        { 0xa7, 0x1e },
248141cc406Sopenharmony_ci        { 0xa8, 0x3e },
249141cc406Sopenharmony_ci        { 0xa9, 0x06 },
250141cc406Sopenharmony_ci    };
251141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
252141cc406Sopenharmony_ci
253141cc406Sopenharmony_ci
254141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
255141cc406Sopenharmony_ci    gpo.id = GpioId::HP_N6310;
256141cc406Sopenharmony_ci    gpo.regs = {
257141cc406Sopenharmony_ci        { 0x6c, 0xa3 },
258141cc406Sopenharmony_ci        { 0x6d, 0x00 },
259141cc406Sopenharmony_ci        { 0x6e, 0x7f },
260141cc406Sopenharmony_ci        { 0x6f, 0x00 },
261141cc406Sopenharmony_ci    };
262141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
263141cc406Sopenharmony_ci
264141cc406Sopenharmony_ci
265141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
266141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_LIDE_110;
267141cc406Sopenharmony_ci    gpo.regs = {
268141cc406Sopenharmony_ci        { 0x6c, 0xfb },
269141cc406Sopenharmony_ci        { 0x6d, 0x20 },
270141cc406Sopenharmony_ci        { 0x6e, 0xff },
271141cc406Sopenharmony_ci        { 0x6f, 0x00 },
272141cc406Sopenharmony_ci    };
273141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
274141cc406Sopenharmony_ci
275141cc406Sopenharmony_ci
276141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
277141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_LIDE_120;
278141cc406Sopenharmony_ci    gpo.regs = {
279141cc406Sopenharmony_ci        { 0x6c, 0xfb },
280141cc406Sopenharmony_ci        { 0x6d, 0x20 },
281141cc406Sopenharmony_ci        { 0x6e, 0xff },
282141cc406Sopenharmony_ci        { 0x6f, 0x00 },
283141cc406Sopenharmony_ci    };
284141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
285141cc406Sopenharmony_ci
286141cc406Sopenharmony_ci
287141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
288141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_LIDE_210;
289141cc406Sopenharmony_ci    gpo.regs = {
290141cc406Sopenharmony_ci        { 0x6c, 0xfb },
291141cc406Sopenharmony_ci        { 0x6d, 0x20 },
292141cc406Sopenharmony_ci        { 0x6e, 0xff },
293141cc406Sopenharmony_ci        { 0x6f, 0x00 },
294141cc406Sopenharmony_ci    };
295141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
296141cc406Sopenharmony_ci
297141cc406Sopenharmony_ci
298141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
299141cc406Sopenharmony_ci    gpo.id = GpioId::PLUSTEK_OPTICPRO_3600;
300141cc406Sopenharmony_ci    gpo.regs = {
301141cc406Sopenharmony_ci        { 0x6c, 0x02 },
302141cc406Sopenharmony_ci        { 0x6d, 0x00 },
303141cc406Sopenharmony_ci        { 0x6e, 0x1e },
304141cc406Sopenharmony_ci        { 0x6f, 0x80 },
305141cc406Sopenharmony_ci    };
306141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
307141cc406Sopenharmony_ci
308141cc406Sopenharmony_ci
309141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
310141cc406Sopenharmony_ci    gpo.id = GpioId::PLUSTEK_OPTICFILM_7200;
311141cc406Sopenharmony_ci    gpo.regs = {
312141cc406Sopenharmony_ci        { 0x6b, 0x33 },
313141cc406Sopenharmony_ci        { 0x6c, 0x00 },
314141cc406Sopenharmony_ci        { 0x6d, 0x80 },
315141cc406Sopenharmony_ci        { 0x6e, 0x0c },
316141cc406Sopenharmony_ci        { 0x6f, 0x80 },
317141cc406Sopenharmony_ci        { 0x7e, 0x00 }
318141cc406Sopenharmony_ci    };
319141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
320141cc406Sopenharmony_ci
321141cc406Sopenharmony_ci
322141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
323141cc406Sopenharmony_ci    gpo.id = GpioId::PLUSTEK_OPTICFILM_7200I;
324141cc406Sopenharmony_ci    gpo.regs = {
325141cc406Sopenharmony_ci        { 0x6c, 0x4c },
326141cc406Sopenharmony_ci        { 0x6d, 0x80 },
327141cc406Sopenharmony_ci        { 0x6e, 0x4c },
328141cc406Sopenharmony_ci        { 0x6f, 0x80 },
329141cc406Sopenharmony_ci        { 0xa6, 0x00 },
330141cc406Sopenharmony_ci        { 0xa7, 0x07 },
331141cc406Sopenharmony_ci        { 0xa8, 0x20 },
332141cc406Sopenharmony_ci        { 0xa9, 0x01 },
333141cc406Sopenharmony_ci    };
334141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
335141cc406Sopenharmony_ci
336141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
337141cc406Sopenharmony_ci    gpo.id = GpioId::PLUSTEK_OPTICFILM_7300;
338141cc406Sopenharmony_ci    gpo.regs = {
339141cc406Sopenharmony_ci        { 0x6c, 0x4c },
340141cc406Sopenharmony_ci        { 0x6d, 0x00 },
341141cc406Sopenharmony_ci        { 0x6e, 0x4c },
342141cc406Sopenharmony_ci        { 0x6f, 0x80 },
343141cc406Sopenharmony_ci        { 0xa6, 0x00 },
344141cc406Sopenharmony_ci        { 0xa7, 0x07 },
345141cc406Sopenharmony_ci        { 0xa8, 0x20 },
346141cc406Sopenharmony_ci        { 0xa9, 0x01 },
347141cc406Sopenharmony_ci    };
348141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
349141cc406Sopenharmony_ci
350141cc406Sopenharmony_ci
351141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
352141cc406Sopenharmony_ci    gpo.id = GpioId::PLUSTEK_OPTICFILM_7400;
353141cc406Sopenharmony_ci    gpo.regs = {
354141cc406Sopenharmony_ci        { 0x6b, 0x30 }, { 0x6c, 0x4c }, { 0x6d, 0x80 }, { 0x6e, 0x4c }, { 0x6f, 0x80 },
355141cc406Sopenharmony_ci        { 0xa6, 0x00 }, { 0xa7, 0x07 }, { 0xa8, 0x20 }, { 0xa9, 0x01 },
356141cc406Sopenharmony_ci    };
357141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
358141cc406Sopenharmony_ci
359141cc406Sopenharmony_ci
360141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
361141cc406Sopenharmony_ci    gpo.id = GpioId::PLUSTEK_OPTICFILM_7500I;
362141cc406Sopenharmony_ci    gpo.regs = {
363141cc406Sopenharmony_ci        { 0x6c, 0x4c },
364141cc406Sopenharmony_ci        { 0x6d, 0x00 },
365141cc406Sopenharmony_ci        { 0x6e, 0x4c },
366141cc406Sopenharmony_ci        { 0x6f, 0x80 },
367141cc406Sopenharmony_ci        { 0xa6, 0x00 },
368141cc406Sopenharmony_ci        { 0xa7, 0x07 },
369141cc406Sopenharmony_ci        { 0xa8, 0x20 },
370141cc406Sopenharmony_ci        { 0xa9, 0x01 },
371141cc406Sopenharmony_ci    };
372141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
373141cc406Sopenharmony_ci
374141cc406Sopenharmony_ci
375141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
376141cc406Sopenharmony_ci    gpo.id = GpioId::PLUSTEK_OPTICFILM_8200I;
377141cc406Sopenharmony_ci    gpo.regs = {
378141cc406Sopenharmony_ci        { 0x6b, 0x30 }, { 0x6c, 0x4c }, { 0x6d, 0x80 }, { 0x6e, 0x4c }, { 0x6f, 0x80 },
379141cc406Sopenharmony_ci        { 0xa6, 0x00 }, { 0xa7, 0x07 }, { 0xa8, 0x20 }, { 0xa9, 0x01 },
380141cc406Sopenharmony_ci    };
381141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
382141cc406Sopenharmony_ci
383141cc406Sopenharmony_ci
384141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
385141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_4400F;
386141cc406Sopenharmony_ci    gpo.regs = {
387141cc406Sopenharmony_ci        { 0x6c, 0x01 },
388141cc406Sopenharmony_ci        { 0x6d, 0x7f },
389141cc406Sopenharmony_ci        { 0x6e, 0xff },
390141cc406Sopenharmony_ci        { 0x6f, 0x00 },
391141cc406Sopenharmony_ci        { 0xa6, 0x00 },
392141cc406Sopenharmony_ci        { 0xa7, 0xff },
393141cc406Sopenharmony_ci        { 0xa8, 0x07 },
394141cc406Sopenharmony_ci        { 0xa9, 0x00 },
395141cc406Sopenharmony_ci    };
396141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
397141cc406Sopenharmony_ci
398141cc406Sopenharmony_ci
399141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
400141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_5600F;
401141cc406Sopenharmony_ci    gpo.regs = {
402141cc406Sopenharmony_ci        { 0x6b, 0x87 },
403141cc406Sopenharmony_ci        { 0x6c, 0xf0 },
404141cc406Sopenharmony_ci        { 0x6d, 0x5f },
405141cc406Sopenharmony_ci        { 0x6e, 0x7f },
406141cc406Sopenharmony_ci        { 0x6f, 0xa0 },
407141cc406Sopenharmony_ci        { 0xa6, 0x07 },
408141cc406Sopenharmony_ci        { 0xa7, 0x1c },
409141cc406Sopenharmony_ci        { 0xa8, 0x00 },
410141cc406Sopenharmony_ci        { 0xa9, 0x04 },
411141cc406Sopenharmony_ci    };
412141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
413141cc406Sopenharmony_ci
414141cc406Sopenharmony_ci
415141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
416141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_8400F;
417141cc406Sopenharmony_ci    gpo.regs = {
418141cc406Sopenharmony_ci        { 0x6c, 0x9a },
419141cc406Sopenharmony_ci        { 0x6d, 0xdf },
420141cc406Sopenharmony_ci        { 0x6e, 0xfe },
421141cc406Sopenharmony_ci        { 0x6f, 0x60 },
422141cc406Sopenharmony_ci        { 0xa6, 0x00 },
423141cc406Sopenharmony_ci        { 0xa7, 0x03 },
424141cc406Sopenharmony_ci        { 0xa8, 0x00 },
425141cc406Sopenharmony_ci        { 0xa9, 0x02 },
426141cc406Sopenharmony_ci    };
427141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
428141cc406Sopenharmony_ci
429141cc406Sopenharmony_ci
430141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
431141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_8600F;
432141cc406Sopenharmony_ci    gpo.regs = {
433141cc406Sopenharmony_ci        { 0x6c, 0x20 },
434141cc406Sopenharmony_ci        { 0x6d, 0x7c },
435141cc406Sopenharmony_ci        { 0x6e, 0xff },
436141cc406Sopenharmony_ci        { 0x6f, 0x00 },
437141cc406Sopenharmony_ci        { 0xa6, 0x00 },
438141cc406Sopenharmony_ci        { 0xa7, 0xff },
439141cc406Sopenharmony_ci        { 0xa8, 0x00 },
440141cc406Sopenharmony_ci        { 0xa9, 0x00 },
441141cc406Sopenharmony_ci    };
442141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
443141cc406Sopenharmony_ci
444141cc406Sopenharmony_ci
445141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
446141cc406Sopenharmony_ci    gpo.id = GpioId::IMG101;
447141cc406Sopenharmony_ci    gpo.regs = {
448141cc406Sopenharmony_ci        { 0x6b, 0x72 }, { 0x6c, 0x1f }, { 0x6d, 0xa4 }, { 0x6e, 0x13 }, { 0x6f, 0xa7 },
449141cc406Sopenharmony_ci        { 0xa6, 0x11 }, { 0xa7, 0xff }, { 0xa8, 0x19 }, { 0xa9, 0x05 },
450141cc406Sopenharmony_ci    };
451141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
452141cc406Sopenharmony_ci
453141cc406Sopenharmony_ci
454141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
455141cc406Sopenharmony_ci    gpo.id = GpioId::PLUSTEK_OPTICBOOK_3800;
456141cc406Sopenharmony_ci    gpo.regs = {
457141cc406Sopenharmony_ci        { 0x6b, 0x30 }, { 0x6c, 0x01 }, { 0x6d, 0x80 }, { 0x6e, 0x2d }, { 0x6f, 0x80 },
458141cc406Sopenharmony_ci        { 0xa6, 0x0c }, { 0xa7, 0x8f }, { 0xa8, 0x08 }, { 0xa9, 0x04 },
459141cc406Sopenharmony_ci    };
460141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
461141cc406Sopenharmony_ci
462141cc406Sopenharmony_ci
463141cc406Sopenharmony_ci    gpo = Genesys_Gpo();
464141cc406Sopenharmony_ci    gpo.id = GpioId::CANON_LIDE_80;
465141cc406Sopenharmony_ci    gpo.regs = {
466141cc406Sopenharmony_ci        { 0x6c, 0x28 },
467141cc406Sopenharmony_ci        { 0x6d, 0x90 },
468141cc406Sopenharmony_ci        { 0x6e, 0x75 },
469141cc406Sopenharmony_ci        { 0x6f, 0x80 },
470141cc406Sopenharmony_ci    };
471141cc406Sopenharmony_ci    s_gpo->push_back(gpo);
472141cc406Sopenharmony_ci}
473141cc406Sopenharmony_ci
474141cc406Sopenharmony_ci} // namespace genesys
475