Lines Matching defs:ser12

5  *	baycom_ser_hdx.c  -- baycom ser12 halfduplex radio modem driver.
15 * ser12: This is a very simple 1200 baud AFSK modem. The modem consists only
25 * mode ser12 hardware DCD
26 * ser12* software DCD
27 * ser12@ hardware/software DCD, i.e. no explicit DCD signal but hardware
29 * ser12+ hardware DCD, inverted signal at DCD pin
37 * 0.4 08.07.1997 alternative ser12 decoding algorithm (uses delta CTS ints)
38 * 0.5 11.11.1997 ser12/par96 split into separate files
116 } ser12;
193 outb(0x0e | (!!bc->modem.ser12.tx_bit), MCR(dev->base_addr));
196 bc->modem.ser12.tx_bit = !(bc->modem.ser12.tx_bit ^
211 bc->modem.ser12.dcd_shreg = (bc->modem.ser12.dcd_shreg << 1) |
212 (cur_s != bc->modem.ser12.last_sample);
213 bc->modem.ser12.last_sample = cur_s;
214 if(bc->modem.ser12.dcd_shreg & 1) {
219 dcdspos += ((bc->modem.ser12.dcd_shreg >> 1) & 1);
220 if (!(bc->modem.ser12.dcd_shreg & 0x7ffffffe))
222 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 2) & 1);
223 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 3) & 1);
224 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 4) & 1);
226 bc->modem.ser12.dcd_sum0 += 16*dcdspos - dcdsneg;
228 bc->modem.ser12.dcd_sum0--;
230 if(!bc->modem.ser12.dcd_time) {
231 hdlcdrv_setdcd(&bc->hdrv, (bc->modem.ser12.dcd_sum0 +
232 bc->modem.ser12.dcd_sum1 +
233 bc->modem.ser12.dcd_sum2) < 0);
234 bc->modem.ser12.dcd_sum2 = bc->modem.ser12.dcd_sum1;
235 bc->modem.ser12.dcd_sum1 = bc->modem.ser12.dcd_sum0;
237 bc->modem.ser12.dcd_sum0 = 2;
238 bc->modem.ser12.dcd_time = SER12_DCD_INTERVAL(bc);
240 bc->modem.ser12.dcd_time--;
245 if (bc->modem.ser12.interm_sample) {
254 switch (bc->modem.ser12.dcd_shreg & 7) {
272 if (bc->modem.ser12.last_sample ==
273 bc->modem.ser12.last_rxbit)
275 bc->modem.ser12.last_rxbit =
276 bc->modem.ser12.last_sample;
278 if (++bc->modem.ser12.interm_sample >= 3)
279 bc->modem.ser12.interm_sample = 0;
283 if (bc->modem.ser12.dcd_shreg & 1) {
287 dcdspos += ((bc->modem.ser12.dcd_shreg >> 1) & 1);
288 dcdspos += (!(bc->modem.ser12.dcd_shreg & 0x7ffffffe))
290 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 2) & 1);
291 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 3) & 1);
292 dcdsneg += ((bc->modem.ser12.dcd_shreg >> 4) & 1);
294 bc->modem.ser12.dcd_sum0 += 16*dcdspos - dcdsneg;
300 if (bc->modem.ser12.interm_sample) {
309 switch (bc->modem.ser12.dcd_shreg & 3) {
327 if (bc->modem.ser12.last_sample ==
328 bc->modem.ser12.last_rxbit)
330 bc->modem.ser12.last_rxbit =
331 bc->modem.ser12.last_sample;
333 bc->modem.ser12.interm_sample = !bc->modem.ser12.interm_sample;
337 bc->modem.ser12.dcd_sum0 -= (bc->modem.ser12.dcd_shreg & 1);
344 if(!bc->modem.ser12.dcd_time) {
348 hdlcdrv_setdcd(&bc->hdrv, (bc->modem.ser12.dcd_sum0 +
349 bc->modem.ser12.dcd_sum1 +
350 bc->modem.ser12.dcd_sum2) < 0);
351 bc->modem.ser12.dcd_sum2 = bc->modem.ser12.dcd_sum1;
352 bc->modem.ser12.dcd_sum1 = bc->modem.ser12.dcd_sum0;
354 bc->modem.ser12.dcd_sum0 = 2;
355 bc->modem.ser12.dcd_time = SER12_DCD_INTERVAL(bc);
357 bc->modem.ser12.dcd_time--;
492 printk(KERN_INFO "%s: ser12 at iobase 0x%lx irq %u uart %s\n",
512 printk(KERN_INFO "%s: close ser12 at iobase 0x%lx irq %u\n",
573 strcpy(hi->data.modename, "ser12");
587 strcpy(hi->data.modename, "ser12");
623 static char *mode[NR_PORTS] = { "ser12*", };
635 MODULE_DESCRIPTION("Baycom ser12 half duplex amateur radio modem driver");
700 * mode: ser12 hardware DCD
701 * ser12* software DCD
702 * ser12@ hardware/software DCD, i.e. no explicit DCD signal but hardware
704 * ser12+ hardware DCD, inverted signal at DCD pin