Lines Matching defs:reg
57 dev->reg.init_reg(0x01, 0x20);
59 dev->reg.find_reg(0x01).value |= REG_0x01_CISSET;
61 dev->reg.find_reg(0x01).value &= ~REG_0x01_CISSET;
64 dev->reg.init_reg(0x01, 0x82);
67 dev->reg.init_reg(0x02, 0x38);
69 dev->reg.init_reg(0x02, 0x10);
72 dev->reg.init_reg(0x03, 0x5f);
74 dev->reg.init_reg(0x03, 0x50);
77 dev->reg.init_reg(0x04, 0x10);
79 dev->reg.init_reg(0x04, 0x22);
81 dev->reg.init_reg(0x04, 0x02);
86 dev->reg.init_reg(0x05, 0x00); // disable gamma, 24 clocks/pixel
88 sanei_genesys_set_dpihw(dev->reg, sensor.register_dpihw);
91 dev->reg.init_reg(0x05, 0x4c);
94 dev->reg.init_reg(0x06, 0x18);
96 dev->reg.init_reg(0x06, 0x38);
104 dev->reg.init_reg(0x06, 0xb8);
107 dev->reg.init_reg(0x07, 0x00);
108 dev->reg.init_reg(0x08, 0x00);
110 dev->reg.init_reg(0x09, 0x10);
112 dev->reg.init_reg(0x09, 0x11);
120 dev->reg.init_reg(0x09, 0x00);
122 dev->reg.init_reg(0x0a, 0x00);
125 dev->reg.init_reg(0x10, 0x00); // SENSOR_DEF
126 dev->reg.init_reg(0x11, 0x00); // SENSOR_DEF
127 dev->reg.init_reg(0x12, 0x00); // SENSOR_DEF
128 dev->reg.init_reg(0x13, 0x00); // SENSOR_DEF
129 dev->reg.init_reg(0x14, 0x00); // SENSOR_DEF
130 dev->reg.init_reg(0x15, 0x00); // SENSOR_DEF
131 dev->reg.init_reg(0x16, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
132 dev->reg.init_reg(0x17, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
133 dev->reg.init_reg(0x18, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
134 dev->reg.init_reg(0x19, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
135 dev->reg.init_reg(0x1a, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
136 dev->reg.init_reg(0x1b, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
137 dev->reg.init_reg(0x1c, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
138 dev->reg.init_reg(0x1d, 0x01); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
139 dev->reg.init_reg(0x1e, 0xf0);
141 dev->reg.init_reg(0x1e, 0x10);
143 dev->reg.init_reg(0x1f, 0x01);
145 dev->reg.init_reg(0x1f, 0x04);
147 dev->reg.init_reg(0x20, 0x20);
148 dev->reg.init_reg(0x21, 0x01);
149 dev->reg.init_reg(0x22, 0x01);
150 dev->reg.init_reg(0x23, 0x01);
151 dev->reg.init_reg(0x24, 0x01);
152 dev->reg.init_reg(0x25, 0x00);
153 dev->reg.init_reg(0x26, 0x00);
154 dev->reg.init_reg(0x27, 0x00);
155 dev->reg.init_reg(0x29, 0xff);
157 dev->reg.init_reg(0x2c, 0x02); // DPISET: overwritten during scanner setup
158 dev->reg.init_reg(0x2d, 0x58); // DPISET: overwritten during scanner setup
159 dev->reg.init_reg(0x2e, 0x80);
160 dev->reg.init_reg(0x2f, 0x80);
162 dev->reg.init_reg(0x30, 0x00); // STRPIXEL: overwritten during scanner setup
163 dev->reg.init_reg(0x31, 0x00); // STRPIXEL: overwritten during scanner setup
164 dev->reg.init_reg(0x32, 0x00); // ENDPIXEL: overwritten during scanner setup
165 dev->reg.init_reg(0x33, 0x00); // ENDPIXEL: overwritten during scanner setup
166 dev->reg.init_reg(0x34, 0x00); // DUMMY: overwritten during scanner setup
167 dev->reg.init_reg(0x35, 0x00); // MAXWD: overwritten during scanner setup
168 dev->reg.init_reg(0x36, 0x00); // MAXWD: overwritten during scanner setup
169 dev->reg.init_reg(0x37, 0x00); // MAXWD: overwritten during scanner setup
170 dev->reg.init_reg(0x38, 0x4f); // LPERIOD: overwritten during scanner setup
171 dev->reg.init_reg(0x39, 0xc1); // LPERIOD: overwritten during scanner setup
173 dev->reg.init_reg(0x3d, 0x00);
174 dev->reg.init_reg(0x3e, 0x00);
175 dev->reg.init_reg(0x3f, 0x00);
177 dev->reg.init_reg(0x52, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
178 dev->reg.init_reg(0x53, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
179 dev->reg.init_reg(0x54, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
180 dev->reg.init_reg(0x55, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
181 dev->reg.init_reg(0x56, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
182 dev->reg.init_reg(0x57, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
183 dev->reg.init_reg(0x58, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
184 dev->reg.init_reg(0x59, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
185 dev->reg.init_reg(0x5a, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
188 dev->reg.init_reg(0x5d, 0x20);
189 dev->reg.init_reg(0x5e, 0x41);
190 dev->reg.init_reg(0x5f, 0x40);
191 dev->reg.init_reg(0x60, 0x00);
192 dev->reg.init_reg(0x61, 0x00);
193 dev->reg.init_reg(0x62, 0x00);
194 dev->reg.init_reg(0x63, 0x00);
195 dev->reg.init_reg(0x64, 0x00);
196 dev->reg.init_reg(0x65, 0x00);
197 dev->reg.init_reg(0x66, 0x00);
198 dev->reg.init_reg(0x67, 0x40);
199 dev->reg.init_reg(0x68, 0x40);
200 dev->reg.init_reg(0x69, 0x20);
201 dev->reg.init_reg(0x6a, 0x20);
202 dev->reg.init_reg(0x6c, 0x00);
203 dev->reg.init_reg(0x6d, 0x00);
204 dev->reg.init_reg(0x6e, 0x00);
205 dev->reg.init_reg(0x6f, 0x00);
208 dev->reg.init_reg(addr, 0);
210 dev->reg.init_reg(0x5e, 0x02);
212 dev->reg.init_reg(0x66, 0xff);
216 dev->reg.init_reg(0x70, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
217 dev->reg.init_reg(0x71, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
218 dev->reg.init_reg(0x72, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
219 dev->reg.init_reg(0x73, 0x00); // SENSOR_DEF, overwritten in scanner_setup_sensor() below
222 dev->reg.init_reg(0x74, 0x00);
223 dev->reg.init_reg(0x75, 0x01);
224 dev->reg.init_reg(0x76, 0xff);
225 dev->reg.init_reg(0x77, 0x00);
226 dev->reg.init_reg(0x78, 0x0f);
227 dev->reg.init_reg(0x79, 0xf0);
228 dev->reg.init_reg(0x7a, 0xf0);
229 dev->reg.init_reg(0x7b, 0x00);
230 dev->reg.init_reg(0x7c, 0x1e);
231 dev->reg.init_reg(0x7d, 0x11);
232 dev->reg.init_reg(0x7e, 0x00);
233 dev->reg.init_reg(0x7f, 0x50);
234 dev->reg.init_reg(0x80, 0x00);
235 dev->reg.init_reg(0x81, 0x00);
236 dev->reg.init_reg(0x82, 0x0f);
237 dev->reg.init_reg(0x83, 0x00);
238 dev->reg.init_reg(0x84, 0x0e);
239 dev->reg.init_reg(0x85, 0x00);
240 dev->reg.init_reg(0x86, 0x0d);
241 dev->reg.init_reg(0x87, 0x02);
242 dev->reg.init_reg(0x88, 0x00);
243 dev->reg.init_reg(0x89, 0x00);
246 dev->reg.init_reg(addr, 0);
250 scanner_setup_sensor(*dev, sensor, dev->reg);
253 for (const auto& reg : dev->gpo.regs) {
254 dev->reg.set8(reg.address, reg.value);
258 dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO18;
259 dev->reg.find_reg(0x6b).value &= ~REG_0x6B_GPO17;
263 dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO17;
268 dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO17 | REG_0x6B_GPO18;
373 std::uint8_t frontend_type = dev->reg.find_reg(0x04).value & REG_0x04_FESET;
419 static void gl841_init_motor_regs_off(Genesys_Register_Set* reg, unsigned int scan_lines)
426 reg->set8(0x3d, (feedl >> 16) & 0xf);
427 reg->set8(0x3e, (feedl >> 8) & 0xff);
428 reg->set8(0x3f, feedl & 0xff);
429 reg->find_reg(0x5e).value &= ~0xe0;
431 reg->set8(0x25, (scan_lines >> 16) & 0xf);
432 reg->set8(0x26, (scan_lines >> 8) & 0xff);
433 reg->set8(0x27, scan_lines & 0xff);
435 reg->set8(0x02, 0x00);
437 reg->set8(0x67, 0x3f);
438 reg->set8(0x68, 0x3f);
440 reg->set8(REG_STEPNO, 1);
441 reg->set8(REG_FASTNO, 1);
443 reg->set8(0x69, 1);
444 reg->set8(0x6a, 1);
445 reg->set8(0x5f, 1);
546 Genesys_Register_Set* reg, unsigned int feed_steps,/*1/base_ydpi*/
582 reg->set8(0x3d, (feedl >> 16) & 0xf);
583 reg->set8(0x3e, (feedl >> 8) & 0xff);
584 reg->set8(0x3f, feedl & 0xff);
585 reg->find_reg(0x5e).value &= ~0xe0;
587 reg->set8(0x25, 0);
588 reg->set8(0x26, 0);
589 reg->set8(0x27, 0);
591 reg->find_reg(0x02).value &= ~0x01; /*LONGCURV OFF*/
592 reg->find_reg(0x02).value &= ~0x80; /*NOT_HOME OFF*/
594 reg->find_reg(0x02).value |= REG_0x02_MTRPWR;
595 reg->find_reg(0x02).value &= ~0x08;
598 reg->find_reg(0x02).value |= 0x20;
600 reg->find_reg(0x02).value &= ~0x20;
603 reg->find_reg(0x02).value &= ~0x40;
606 reg->find_reg(0x02).value |= REG_0x02_MTRREV;
608 reg->find_reg(0x02).value &= ~REG_0x02_MTRREV;
613 reg->set8(0x67, 0x3f);
614 reg->set8(0x68, 0x3f);
615 reg->set8(REG_STEPNO, 1);
616 reg->set8(REG_FASTNO, 1);
617 reg->set8(0x69, 1);
618 reg->set8(0x6a, fast_table.table.size() / step_multiplier);
619 reg->set8(0x5f, 1);
624 Genesys_Register_Set* reg, const MotorProfile& motor_profile,
683 reg->set8(0x3d, (feedl >> 16) & 0xf);
684 reg->set8(0x3e, (feedl >> 8) & 0xff);
685 reg->set8(0x3f, feedl & 0xff);
686 reg->find_reg(0x5e).value &= ~0xe0;
687 reg->set8(0x25, (scan_lines >> 16) & 0xf);
688 reg->set8(0x26, (scan_lines >> 8) & 0xff);
689 reg->set8(0x27, scan_lines & 0xff);
690 reg->find_reg(0x02).value = REG_0x02_MTRPWR;
693 reg->find_reg(0x02).value |= REG_0x02_MTRREV;
695 reg->find_reg(0x02).value &= ~REG_0x02_MTRREV;
698 reg->find_reg(0x02).value &= ~0x08;
701 reg->find_reg(0x02).value |= 0x20;
703 reg->find_reg(0x02).value &= ~0x20;
706 reg->find_reg(0x02).value |= 0x40;
708 reg->find_reg(0x02).value &= ~0x40;
719 /* now reg 0x21 and 0x24 are available, we can calculate reg 0x22 and 0x23,
720 reg 0x60-0x62 and reg 0x63-0x65
733 reg->set8(REG_FWDSTEP, min_restep - slow_table.table.size()*2);
736 reg->set8(REG_BWDSTEP, min_restep - slow_table.table.size()*2);
742 b = time needed for reg 0x1f... wouldn't that be reg0x1f*exposure_time?
744 d = time needed for reg 0x22... wouldn't that be reg0x22*exposure_time?
753 reg->set24(REG_0x60, 0);
754 reg->set24(REG_0x63, 0);
755 reg->find_reg(REG_0x1E).value &= REG_0x1E_WDTIME;
756 reg->find_reg(REG_0x1E).value |= scan_dummy;
757 reg->set8(0x67, 0x3f | (static_cast<unsigned>(motor_profile.step_type) << 6));
758 reg->set8(0x68, 0x3f | (static_cast<unsigned>(fast_profile->step_type) << 6));
759 reg->set8(REG_STEPNO, slow_table.table.size() / step_multiplier);
760 reg->set8(REG_FASTNO, slow_table.table.size() / step_multiplier);
761 reg->set8(0x69, slow_table.table.size() / step_multiplier);
762 reg->set8(0x6a, fast_table.table.size() / step_multiplier);
763 reg->set8(0x5f, fast_table.table.size() / step_multiplier);
767 Genesys_Register_Set* reg, unsigned int exposure_time,
777 reg->find_reg(REG_0x6C).value &= ~0x80;
779 reg->find_reg(REG_0x6C).value |= 0x80;
784 reg->find_reg(REG_0x6C).value &= ~0x40;
785 reg->find_reg(REG_0x6C).value |= 0x20;
787 reg->find_reg(REG_0x6C).value &= ~0x20;
788 reg->find_reg(REG_0x6C).value |= 0x40;
793 reg->find_reg(0x01).value |= REG_0x01_SCAN;
796 reg->find_reg(0x01).value &= ~REG_0x01_DVDSET;
798 reg->find_reg(0x01).value |= REG_0x01_DVDSET;
804 reg->find_reg(0x03).value |= REG_0x03_AVEENB;
805 sanei_genesys_set_lamp_power(dev, sensor, *reg,
809 reg->set8(0x2e, 0x7f);
810 reg->set8(0x2f, 0x7f);
816 reg->find_reg(0x04).value &= ~(REG_0x04_LINEART | REG_0x04_BITSET);
819 reg->find_reg(0x04).value &= ~REG_0x04_LINEART;
820 reg->find_reg(0x04).value |= REG_0x04_BITSET;
826 reg->find_reg(0x04).value &= ~(REG_0x04_FILTER | REG_0x04_AFEMOD);
831 reg->find_reg(0x04).value |= 0x14;
834 reg->find_reg(0x04).value |= 0x18;
837 reg->find_reg(0x04).value |= 0x1c;
840 reg->find_reg(0x04).value |= 0x10;
847 reg->find_reg(0x04).value |= 0x22; /* slow color pixel by pixel */
851 reg->find_reg(0x04).value |= 0x10; /* color pixel by pixel */
856 reg->find_reg(0x87).value &= ~REG_0x87_LEDADD;
860 reg->find_reg(REG_0x05).value |= REG_0x05_GMMENB;
862 reg->find_reg(REG_0x05).value &= ~REG_0x05_GMMENB;
866 scanner_setup_sensor(*dev, sensor, dev->reg);
867 reg->set8(0x29, 255); /*<<<"magic" number, only suitable for cis*/
868 reg->set16(REG_DPISET, sensor.register_dpiset);
869 reg->set16(REG_STRPIXEL, session.pixel_startx);
870 reg->set16(REG_ENDPIXEL, session.pixel_endx);
871 reg->set24(REG_MAXWD, session.output_line_bytes);
872 reg->set16(REG_LPERIOD, exposure_time);
873 reg->set8(0x34, sensor.dummy_pixel);
886 unsigned dummy = dev->reg.find_reg(0x19).value;
897 Genesys_Register_Set* reg,
952 gl841_init_optical_regs_scan(dev, sensor, reg, exposure_time, session);
967 gl841_init_motor_regs_off(reg, session.optical_line_count);
969 gl841_init_motor_regs_scan(dev, sensor, session, reg, motor_profile, exposure_time,
1086 dev->reg.find_reg(0x6b).value &= ~REG_0x6B_GPO17;
1118 dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO17;
1124 dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO18;
1133 dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO17;
1147 local_reg.init_reg(0x01, dev->reg.get8(0x01)); /* disable fastmode */
1148 local_reg.init_reg(0x03, dev->reg.get8(0x03)); /* Lamp power control */
1149 local_reg.init_reg(0x05, dev->reg.get8(0x05)); /*& ~REG_0x05_BASESEL*/; /* 24 clocks/pixel */
1155 local_reg.init_reg(0x1c, dev->reg.get8(0x05) & ~REG_0x1C_TGTIME);
1233 local_reg = dev->reg;
1249 dev->interface->write_registers(dev->reg);
1420 Genesys_Register_Set* reg, bool start_motor) const
1450 local_reg.init_reg(0x03, reg->get8(0x03) | REG_0x03_LAMPPWR);
1453 local_reg.init_reg(0x03, reg->get8(0x03));
1456 local_reg.init_reg(0x01, reg->get8(0x01) | REG_0x01_SCAN);
1474 void CommandSetGl841::end_scan(Genesys_Device* dev, Genesys_Register_Set __sane_unused__* reg,
1688 if ((dev->reg.find_reg(0x04).value & REG_0x04_FESET) == 0x02) {
2031 *local_reg = dev->reg;
2123 if ((dev->reg.find_reg(0x01).value & REG_0x01_SHDAREA) == 0) {
2203 dev->interface->write_registers(dev->reg);
2206 // dev->reg.remove_reg(0x0b);