Lines Matching defs:reg
61 dev->reg.clear();
63 dev->reg.init_reg(0x01, 0x82);
65 dev->reg.init_reg(0x01, 0x40);
67 dev->reg.init_reg(0x02, 0x18);
68 dev->reg.init_reg(0x03, 0x50);
69 dev->reg.init_reg(0x04, 0x12);
71 dev->reg.init_reg(0x04, 0x20);
73 dev->reg.init_reg(0x05, 0x80);
74 dev->reg.init_reg(0x06, 0x50); // FASTMODE + POWERBIT
76 dev->reg.init_reg(0x06, 0xf8);
78 dev->reg.init_reg(0x08, 0x10);
80 dev->reg.init_reg(0x08, 0x20);
82 dev->reg.init_reg(0x09, 0x01);
84 dev->reg.init_reg(0x09, 0x00);
86 dev->reg.init_reg(0x0a, 0x00);
87 dev->reg.init_reg(0x0b, 0x01);
89 dev->reg.init_reg(0x0b, 0x6b);
91 dev->reg.init_reg(0x0c, 0x02);
93 dev->reg.init_reg(0x0c, 0x00);
97 dev->reg.init_reg(0x10, 0x00); // exposure, overwritten in scanner_setup_sensor() below
98 dev->reg.init_reg(0x11, 0x00); // exposure, overwritten in scanner_setup_sensor() below
99 dev->reg.init_reg(0x12, 0x00); // exposure, overwritten in scanner_setup_sensor() below
100 dev->reg.init_reg(0x13, 0x00); // exposure, overwritten in scanner_setup_sensor() below
101 dev->reg.init_reg(0x14, 0x00); // exposure, overwritten in scanner_setup_sensor() below
102 dev->reg.init_reg(0x15, 0x00); // exposure, overwritten in scanner_setup_sensor() below
104 dev->reg.init_reg(0x16, 0x10); // SENSOR_DEF
105 dev->reg.init_reg(0x17, 0x08); // SENSOR_DEF
106 dev->reg.init_reg(0x18, 0x00); // SENSOR_DEF
107 dev->reg.init_reg(0x19, 0x50); // SENSOR_DEF
109 dev->reg.init_reg(0x1a, 0x34); // SENSOR_DEF
110 dev->reg.init_reg(0x1b, 0x00); // SENSOR_DEF
111 dev->reg.init_reg(0x1c, 0x02); // SENSOR_DEF
112 dev->reg.init_reg(0x1d, 0x04); // SENSOR_DEF
113 dev->reg.init_reg(0x1e, 0x10);
115 dev->reg.init_reg(0x1e, 0xf0);
117 dev->reg.init_reg(0x1f, 0x04);
118 dev->reg.init_reg(0x20, 0x02); // BUFSEL: buffer full condition
119 dev->reg.init_reg(0x21, 0x10); // STEPNO: set during motor setup
120 dev->reg.init_reg(0x22, 0x7f); // FWDSTEP: set during motor setup
121 dev->reg.init_reg(0x23, 0x7f); // BWDSTEP: set during motor setup
122 dev->reg.init_reg(0x24, 0x10); // FASTNO: set during motor setup
123 dev->reg.init_reg(0x25, 0x00); // LINCNT: set during motor setup
124 dev->reg.init_reg(0x26, 0x00); // LINCNT: set during motor setup
125 dev->reg.init_reg(0x27, 0x00); // LINCNT: set during motor setup
127 dev->reg.init_reg(0x2c, 0x09); // DPISET: set during sensor setup
128 dev->reg.init_reg(0x2d, 0x60); // DPISET: set during sensor setup
130 dev->reg.init_reg(0x2e, 0x80); // BWHI: black/white low threshdold
131 dev->reg.init_reg(0x2f, 0x80); // BWLOW: black/white low threshold
133 dev->reg.init_reg(0x30, 0x00); // STRPIXEL: set during sensor setup
134 dev->reg.init_reg(0x31, 0x10); // STRPIXEL: set during sensor setup
135 dev->reg.init_reg(0x32, 0x15); // ENDPIXEL: set during sensor setup
136 dev->reg.init_reg(0x33, 0x0e); // ENDPIXEL: set during sensor setup
138 dev->reg.init_reg(0x34, 0x40); // DUMMY: SENSOR_DEF
139 dev->reg.init_reg(0x35, 0x00); // MAXWD: set during scan setup
140 dev->reg.init_reg(0x36, 0x2a); // MAXWD: set during scan setup
141 dev->reg.init_reg(0x37, 0x30); // MAXWD: set during scan setup
142 dev->reg.init_reg(0x38, 0x2a); // LPERIOD: SENSOR_DEF
143 dev->reg.init_reg(0x39, 0xf8); // LPERIOD: SENSOR_DEF
144 dev->reg.init_reg(0x3d, 0x00); // FEEDL: set during motor setup
145 dev->reg.init_reg(0x3e, 0x00); // FEEDL: set during motor setup
146 dev->reg.init_reg(0x3f, 0x00); // FEEDL: set during motor setup
148 dev->reg.init_reg(0x52, 0x03); // SENSOR_DEF
149 dev->reg.init_reg(0x53, 0x07); // SENSOR_DEF
150 dev->reg.init_reg(0x54, 0x00); // SENSOR_DEF
151 dev->reg.init_reg(0x55, 0x00); // SENSOR_DEF
152 dev->reg.init_reg(0x56, 0x00); // SENSOR_DEF
153 dev->reg.init_reg(0x57, 0x00); // SENSOR_DEF
154 dev->reg.init_reg(0x58, 0x2a); // SENSOR_DEF
155 dev->reg.init_reg(0x59, 0xe1); // SENSOR_DEF
156 dev->reg.init_reg(0x5a, 0x55); // SENSOR_DEF
158 dev->reg.init_reg(0x5e, 0x41); // DECSEL, STOPTIM
159 dev->reg.init_reg(0x5f, 0x40); // FMOVDEC: set during motor setup
161 dev->reg.init_reg(0x60, 0x00); // Z1MOD: overwritten during motor setup
162 dev->reg.init_reg(0x61, 0x21); // Z1MOD: overwritten during motor setup
163 dev->reg.init_reg(0x62, 0x40); // Z1MOD: overwritten during motor setup
164 dev->reg.init_reg(0x63, 0x00); // Z2MOD: overwritten during motor setup
165 dev->reg.init_reg(0x64, 0x21); // Z2MOD: overwritten during motor setup
166 dev->reg.init_reg(0x65, 0x40); // Z2MOD: overwritten during motor setup
167 dev->reg.init_reg(0x67, 0x80); // STEPSEL, MTRPWM: overwritten during motor setup
168 dev->reg.init_reg(0x68, 0x80); // FSTPSEL, FASTPWM: overwritten during motor setup
169 dev->reg.init_reg(0x69, 0x20); // FSHDEC: overwritten during motor setup
170 dev->reg.init_reg(0x6a, 0x20); // FMOVNO: overwritten during motor setup
172 dev->reg.init_reg(0x74, 0x00); // SENSOR_DEF
173 dev->reg.init_reg(0x75, 0x00); // SENSOR_DEF
174 dev->reg.init_reg(0x76, 0x3c); // SENSOR_DEF
175 dev->reg.init_reg(0x77, 0x00); // SENSOR_DEF
176 dev->reg.init_reg(0x78, 0x00); // SENSOR_DEF
177 dev->reg.init_reg(0x79, 0x9f); // SENSOR_DEF
178 dev->reg.init_reg(0x7a, 0x00); // SENSOR_DEF
179 dev->reg.init_reg(0x7b, 0x00); // SENSOR_DEF
180 dev->reg.init_reg(0x7c, 0x55); // SENSOR_DEF
182 dev->reg.init_reg(0x7d, 0x00);
185 dev->reg.init_reg(0x87, 0x02); // TODO: move to SENSOR_DEF
186 dev->reg.init_reg(0x9d, 0x06); // RAMDLY, MOTLAG, CMODE, STEPTIM, IFRS
187 dev->reg.init_reg(0xa2, 0x0f); // misc
190 dev->reg.init_reg(0xab, 0x31);
191 dev->reg.init_reg(0xbb, 0x00);
192 dev->reg.init_reg(0xbc, 0x0f);
194 dev->reg.init_reg(0xbd, 0x18); // misc
195 dev->reg.init_reg(0xfe, 0x08); // misc
197 dev->reg.init_reg(0x9e, 0x00); // sensor reg, but not in SENSOR_DEF
198 dev->reg.init_reg(0x9f, 0x00); // sensor reg, but not in SENSOR_DEF
199 dev->reg.init_reg(0xaa, 0x00); // custom data
200 dev->reg.init_reg(0xff, 0x00);
204 dev->reg.init_reg(0xbe, 0x00);
205 dev->reg.init_reg(0xc5, 0x00);
206 dev->reg.init_reg(0xc6, 0x00);
207 dev->reg.init_reg(0xc7, 0x00);
208 dev->reg.init_reg(0xc8, 0x00);
209 dev->reg.init_reg(0xc9, 0x00);
210 dev->reg.init_reg(0xca, 0x00);
214 dev->reg.init_reg(0x5f, 0x04);
215 dev->reg.init_reg(0x7d, 0x80);
228 sanei_genesys_set_dpihw(dev->reg, dpihw_sensor.register_dpihw);
231 scanner_setup_sensor(*dev, sensor, dev->reg);
271 for (const auto& reg : dev->frontend.regs) {
272 dev->interface->write_fe_register(reg.address, reg.value);
305 Genesys_Register_Set* reg,
319 unsigned step_multiplier = gl847_get_step_multiplier (reg);
321 reg->set24(REG_LINCNT, scan_lines);
323 reg->set8(REG_0x02, 0);
324 sanei_genesys_set_motor_power(*reg, true);
326 std::uint8_t reg02 = reg->get8(REG_0x02);
341 reg->set8(REG_0x02, reg02);
387 reg->set24(REG_FEEDL, feedl);
389 unsigned ccdlmt = (reg->get8(REG_0x0C) & REG_0x0C_CCDLMT) + 1;
390 unsigned tgtime = 1 << (reg->get8(REG_0x1C) & REG_0x1C_TGTIME);
415 reg->set8(REG_FWDSTEP, min_restep);
416 reg->set8(REG_BWDSTEP, min_restep);
428 reg->set24(REG_0x60, z1 | (static_cast<unsigned>(motor_profile.step_type) << (16+REG_0x60S_STEPSEL)));
429 reg->set24(REG_0x63, z2 | (static_cast<unsigned>(motor_profile.step_type) << (16+REG_0x63S_FSTPSEL)));
431 reg->set8_mask(REG_0x1E, scan_dummy, 0x0f);
433 reg->set8(REG_0x67, REG_0x67_MTRPWM);
434 reg->set8(REG_0x68, REG_0x68_FASTPWM);
436 reg->set8(REG_STEPNO, scan_table.table.size() / step_multiplier);
437 reg->set8(REG_FASTNO, scan_table.table.size() / step_multiplier);
438 reg->set8(REG_FSHDEC, scan_table.table.size() / step_multiplier);
439 reg->set8(REG_FMOVNO, fast_table.table.size() / step_multiplier);
440 reg->set8(REG_FMOVDEC, fast_table.table.size() / step_multiplier);
463 Genesys_Register_Set* reg, unsigned int exposure_time,
468 scanner_setup_sensor(*dev, sensor, *reg);
473 regs_set_optical_off(dev->model->asic_type, *reg);
474 reg->find_reg(REG_0x01).value |= REG_0x01_SHDAREA;
480 reg->find_reg(REG_0x01).value &= ~REG_0x01_DVDSET;
482 reg->find_reg(REG_0x01).value |= REG_0x01_DVDSET;
484 reg->find_reg(REG_0x03).value &= ~REG_0x03_AVEENB;
486 reg->find_reg(REG_0x03).value &= ~REG_0x03_XPASEL;
488 reg->find_reg(REG_0x03).value |= REG_0x03_XPASEL;
490 sanei_genesys_set_lamp_power(dev, sensor, *reg,
492 reg->state.is_xpa_on = has_flag(session.params.flags, ScanFlag::USE_XPA);
496 regs_set_exposure(dev->model->asic_type, *reg, sanei_genesys_fixup_exposure({0, 0, 0}));
501 reg->set8(0x2e, 0x7f);
502 reg->set8(0x2f, 0x7f);
507 reg->find_reg(REG_0x04).value &= ~(REG_0x04_LINEART | REG_0x04_BITSET);
510 reg->find_reg(REG_0x04).value &= ~REG_0x04_LINEART;
511 reg->find_reg(REG_0x04).value |= REG_0x04_BITSET;
515 reg->find_reg(REG_0x04).value &= ~(REG_0x04_FILTER | REG_0x04_AFEMOD);
522 reg->find_reg(REG_0x04).value |= 0x14;
525 reg->find_reg(REG_0x04).value |= 0x1c;
528 reg->find_reg(REG_0x04).value |= 0x18;
535 reg->find_reg(REG_0x04).value |= 0x20;
537 reg->find_reg(REG_0x04).value |= 0x10; // mono
544 sanei_genesys_set_dpihw(*reg, dpihw_sensor.register_dpihw);
547 reg->find_reg(REG_0x05).value |= REG_0x05_GMMENB;
549 reg->find_reg(REG_0x05).value &= ~REG_0x05_GMMENB;
555 reg->find_reg(0x87).value &= ~REG_0x87_LEDADD;
558 reg->find_reg(0x87).value |= REG_0x87_LEDADD;
561 reg->find_reg(0x01).value &= ~REG_0x01_TRUEGRAY;
563 reg->find_reg(0x01).value |= REG_0x01_TRUEGRAY;
568 reg->set16(REG_DPISET, sensor.register_dpiset);
569 reg->set16(REG_STRPIXEL, session.pixel_startx);
570 reg->set16(REG_ENDPIXEL, session.pixel_endx);
576 reg->set24(REG_MAXWD, (session.output_line_bytes_raw * session.params.channels >> 2));
577 reg->set16(REG_LPERIOD, exposure_time);
578 reg->set8(0x34, sensor.dummy_pixel);
582 Genesys_Register_Set* reg,
618 gl847_init_optical_regs_scan(dev, sensor, reg, exposure_time, session);
619 gl847_init_motor_regs_scan(dev, sensor, reg, motor_profile, exposure_time, slope_dpi,
722 Genesys_Register_Set* reg, bool start_motor) const
728 if (reg->state.is_xpa_on && reg->state.is_lamp_on) {
781 reg->set8(REG_0x01, val);
790 void CommandSetGl847::end_scan(Genesys_Device* dev, Genesys_Register_Set* reg,
793 (void) reg;
796 if (reg->state.is_xpa_on) {
908 /* base addr of data has been written in reg D0-D4 in 4K word, so AHB address
909 * is 8192*reg value */
963 [&](const GenesysRegisterSetting& reg)
965 dev->interface->write_register(reg.address, reg.value);
981 for (const auto& reg : dev->gpo.regs) {
982 if (std::find(order1.begin(), order1.end(), reg.address) != order1.end()) {
985 if (std::find(order2.begin(), order2.end(), reg.address) != order2.end()) {
988 dev->interface->write_register(reg.address, reg.value);
1014 dev->reg.remove_reg(0x0b);
1043 dev->interface->write_registers(dev->reg);
1046 // Enable DRAM by setting a rising edge on bit 3 of reg 0x0b
1048 val = dev->reg.find_reg(0x0b).value & REG_0x0B_DRAMSEL;
1051 dev->reg.find_reg(0x0b).value = val;
1054 dev->interface->write_register(0x08, dev->reg.find_reg(0x08).value);
1069 dev->reg.init_reg(0xf8, 0x01);
1070 dev->interface->write_register(0xf8, dev->reg.find_reg(0xf8).value);