Lines Matching refs:elsa

178 	return (readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset));  in ReadISAC()
184 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset, value); in WriteISAC()
190 readfifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0, data, size); in ReadISACfifo()
196 writefifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0, data, size); in WriteISACfifo()
202 return (readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset + 0x80)); in ReadISAC_IPAC()
208 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset | 0x80, value); in WriteISAC_IPAC()
214 readfifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0x80, data, size); in ReadISACfifo_IPAC()
220 writefifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0x80, data, size); in WriteISACfifo_IPAC()
226 return (readreg(cs->hw.elsa.ale, in ReadHSCX()
227 cs->hw.elsa.hscx, offset + (hscx ? 0x40 : 0))); in ReadHSCX()
233 writereg(cs->hw.elsa.ale, in WriteHSCX()
234 cs->hw.elsa.hscx, offset + (hscx ? 0x40 : 0), value); in WriteHSCX()
242 byteout(cs->hw.elsa.ale, off); in readitac()
243 ret = bytein(cs->hw.elsa.itac); in readitac()
250 byteout(cs->hw.elsa.ale, off); in writeitac()
251 byteout(cs->hw.elsa.itac, data); in writeitac()
259 v = bytein(cs->hw.elsa.cfg); in TimerRun()
270 #define READHSCX(cs, nr, reg) readreg(cs->hw.elsa.ale, \
271 cs->hw.elsa.hscx, reg + (nr ? 0x40 : 0))
272 #define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.elsa.ale, \
273 cs->hw.elsa.hscx, reg + (nr ? 0x40 : 0), data)
275 #define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.elsa.ale, \
276 cs->hw.elsa.hscx, (nr ? 0x40 : 0), ptr, cnt)
278 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.elsa.ale, \
279 cs->hw.elsa.hscx, (nr ? 0x40 : 0), ptr, cnt)
299 if (cs->hw.elsa.MFlag) { in elsa_interrupt()
307 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_ISTA + 0x40); in elsa_interrupt()
312 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_ISTA); in elsa_interrupt()
317 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_ISTA + 0x40); in elsa_interrupt()
324 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_ISTA); in elsa_interrupt()
333 writereg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_MASK, 0xFF); in elsa_interrupt()
334 writereg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_MASK + 0x40, 0xFF); in elsa_interrupt()
335 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_MASK, 0xFF); in elsa_interrupt()
336 if (cs->hw.elsa.status & ELIRQF_TIMER_AKTIV) { in elsa_interrupt()
339 byteout(cs->hw.elsa.timer, 0); in elsa_interrupt()
340 cs->hw.elsa.counter++; in elsa_interrupt()
344 if (cs->hw.elsa.MFlag) { in elsa_interrupt()
353 if (cs->hw.elsa.trig) in elsa_interrupt()
354 byteout(cs->hw.elsa.trig, 0x00); in elsa_interrupt()
355 writereg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_MASK, 0x0); in elsa_interrupt()
356 writereg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_MASK + 0x40, 0x0); in elsa_interrupt()
357 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_MASK, 0x0); in elsa_interrupt()
372 val = bytein(cs->hw.elsa.cfg + 0x4c); /* PCI IRQ */ in elsa_interrupt_ipac()
379 if (cs->hw.elsa.MFlag) { in elsa_interrupt_ipac()
387 ista = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ISTA); in elsa_interrupt_ipac()
392 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_ISTA + 0x40); in elsa_interrupt_ipac()
403 val = 0xfe & readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_ISTA + 0x80); in elsa_interrupt_ipac()
412 ista = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ISTA); in elsa_interrupt_ipac()
419 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_MASK, 0xFF); in elsa_interrupt_ipac()
420 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_MASK, 0xC0); in elsa_interrupt_ipac()
430 del_timer(&cs->hw.elsa.tl); in release_io_elsa()
434 if (cs->hw.elsa.ctrl) in release_io_elsa()
435 byteout(cs->hw.elsa.ctrl, 0); /* LEDs Out */ in release_io_elsa()
437 byteout(cs->hw.elsa.cfg + 0x4c, 0x01); /* disable IRQ */ in release_io_elsa()
438 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff); in release_io_elsa()
440 release_region(cs->hw.elsa.cfg, 0x80); in release_io_elsa()
443 byteout(cs->hw.elsa.cfg + 0x4c, 0x03); /* disable ELSA PCI IRQ */ in release_io_elsa()
444 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff); in release_io_elsa()
445 release_region(cs->hw.elsa.cfg, 0x80); in release_io_elsa()
448 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff); in release_io_elsa()
459 if (cs->hw.elsa.base) in release_io_elsa()
460 release_region(cs->hw.elsa.base, bytecnt); in release_io_elsa()
466 if (cs->hw.elsa.timer) { in reset_elsa()
468 byteout(cs->hw.elsa.timer, 0); in reset_elsa()
470 cs->hw.elsa.ctrl_reg |= 0x50; in reset_elsa()
471 cs->hw.elsa.ctrl_reg &= ~ELSA_ISDN_RESET; /* Reset On */ in reset_elsa()
472 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg); in reset_elsa()
474 byteout(cs->hw.elsa.timer, 0); in reset_elsa()
476 cs->hw.elsa.ctrl_reg |= ELSA_ISDN_RESET; /* Reset Off */ in reset_elsa()
477 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg); in reset_elsa()
479 byteout(cs->hw.elsa.timer, 0); in reset_elsa()
481 if (cs->hw.elsa.trig) in reset_elsa()
482 byteout(cs->hw.elsa.trig, 0xff); in reset_elsa()
485 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_POTA2, 0x20); in reset_elsa()
487 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_POTA2, 0x00); in reset_elsa()
488 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_MASK, 0xc0); in reset_elsa()
491 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ACFG, 0x0); in reset_elsa()
492 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_AOE, 0x3c); in reset_elsa()
494 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_PCFG, 0x10); in reset_elsa()
495 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ACFG, 0x4); in reset_elsa()
496 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_AOE, 0xf8); in reset_elsa()
498 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff); in reset_elsa()
500 byteout(cs->hw.elsa.cfg + 0x4c, 0x41); /* enable ELSA PCI IRQ */ in reset_elsa()
502 byteout(cs->hw.elsa.cfg + 0x4c, 0x43); /* enable ELSA PCI IRQ */ in reset_elsa()
571 cs->hw.elsa.base + 8); in check_arcofi()
572 release_region(cs->hw.elsa.base, 8); in check_arcofi()
573 if (!request_region(cs->hw.elsa.base, 16, "elsa isdn modem")) { in check_arcofi()
577 cs->hw.elsa.base + 8, in check_arcofi()
578 cs->hw.elsa.base + 16); in check_arcofi()
585 cs->hw.elsa.base + 8); in check_arcofi()
586 release_region(cs->hw.elsa.base, 8); in check_arcofi()
587 if (!request_region(cs->hw.elsa.base, 16, "elsa isdn modem")) { in check_arcofi()
591 cs->hw.elsa.base + 8, in check_arcofi()
592 cs->hw.elsa.base + 16); in check_arcofi()
598 cs->hw.elsa.base + 8); in check_arcofi()
611 struct IsdnCardState *cs = from_timer(cs, t, hw.elsa.tl); in elsa_led_handler()
616 del_timer(&cs->hw.elsa.tl); in elsa_led_handler()
617 if (cs->hw.elsa.status & ELSA_ASSIGN) in elsa_led_handler()
618 cs->hw.elsa.ctrl_reg |= ELSA_STAT_LED; in elsa_led_handler()
619 else if (cs->hw.elsa.status & ELSA_BAD_PWR) in elsa_led_handler()
620 cs->hw.elsa.ctrl_reg &= ~ELSA_STAT_LED; in elsa_led_handler()
622 cs->hw.elsa.ctrl_reg ^= ELSA_STAT_LED; in elsa_led_handler()
625 if (cs->hw.elsa.status & 0xf000) in elsa_led_handler()
626 cs->hw.elsa.ctrl_reg |= ELSA_LINE_LED; in elsa_led_handler()
627 else if (cs->hw.elsa.status & 0x0f00) { in elsa_led_handler()
628 cs->hw.elsa.ctrl_reg ^= ELSA_LINE_LED; in elsa_led_handler()
631 cs->hw.elsa.ctrl_reg &= ~ELSA_LINE_LED; in elsa_led_handler()
636 if (cs->hw.elsa.ctrl_reg & ELSA_LINE_LED) in elsa_led_handler()
638 if (cs->hw.elsa.ctrl_reg & ELSA_STAT_LED) in elsa_led_handler()
640 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, led); in elsa_led_handler()
642 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg); in elsa_led_handler()
644 cs->hw.elsa.tl.expires = jiffies + ((blink * HZ) / 1000); in elsa_led_handler()
645 add_timer(&cs->hw.elsa.tl); in elsa_led_handler()
672 byteout(cs->hw.elsa.timer, 0); in Elsa_card_msg()
674 if (cs->hw.elsa.trig) in Elsa_card_msg()
675 byteout(cs->hw.elsa.trig, 0xff); in Elsa_card_msg()
688 cs->hw.elsa.counter = 0; in Elsa_card_msg()
689 cs->hw.elsa.ctrl_reg |= ELSA_ENA_TIMER_INT; in Elsa_card_msg()
690 cs->hw.elsa.status |= ELIRQF_TIMER_AKTIV; in Elsa_card_msg()
691 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg); in Elsa_card_msg()
692 byteout(cs->hw.elsa.timer, 0); in Elsa_card_msg()
696 cs->hw.elsa.ctrl_reg &= ~ELSA_ENA_TIMER_INT; in Elsa_card_msg()
697 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg); in Elsa_card_msg()
698 cs->hw.elsa.status &= ~ELIRQF_TIMER_AKTIV; in Elsa_card_msg()
701 cs->hw.elsa.counter); in Elsa_card_msg()
702 if ((cs->hw.elsa.counter > 10) && in Elsa_card_msg()
703 (cs->hw.elsa.counter < 16)) { in Elsa_card_msg()
709 cs->hw.elsa.counter, cs->irq); in Elsa_card_msg()
718 elsa_led_handler(&cs->hw.elsa.tl); in Elsa_card_msg()
721 cs->hw.elsa.status &= 0; in Elsa_card_msg()
724 cs->hw.elsa.status |= ELSA_ASSIGN; in Elsa_card_msg()
728 cs->hw.elsa.status |= 0x0200; in Elsa_card_msg()
730 cs->hw.elsa.status |= 0x0100; in Elsa_card_msg()
734 cs->hw.elsa.status |= 0x2000; in Elsa_card_msg()
736 cs->hw.elsa.status |= 0x1000; in Elsa_card_msg()
740 cs->hw.elsa.status &= ~0x2000; in Elsa_card_msg()
741 cs->hw.elsa.status &= ~0x0200; in Elsa_card_msg()
743 cs->hw.elsa.status &= ~0x1000; in Elsa_card_msg()
744 cs->hw.elsa.status &= ~0x0100; in Elsa_card_msg()
749 if (cs->hw.elsa.MFlag) { in Elsa_card_msg()
764 int pwr = bytein(cs->hw.elsa.ale); in Elsa_card_msg()
766 cs->hw.elsa.status |= ELSA_BAD_PWR; in Elsa_card_msg()
768 cs->hw.elsa.status &= ~ELSA_BAD_PWR; in Elsa_card_msg()
770 elsa_led_handler(&cs->hw.elsa.tl); in Elsa_card_msg()
842 cs->hw.elsa.base = card->para[0]; in setup_elsa_isa()
844 if (cs->hw.elsa.base) { in setup_elsa_isa()
845 if (!(cs->subtyp = probe_elsa_adr(cs->hw.elsa.base, in setup_elsa_isa()
849 cs->hw.elsa.base); in setup_elsa_isa()
853 cs->hw.elsa.base = probe_elsa(cs); in setup_elsa_isa()
855 if (!cs->hw.elsa.base) { in setup_elsa_isa()
861 cs->hw.elsa.cfg = cs->hw.elsa.base + ELSA_CONFIG; in setup_elsa_isa()
862 cs->hw.elsa.ctrl = cs->hw.elsa.base + ELSA_CONTROL; in setup_elsa_isa()
863 cs->hw.elsa.ale = cs->hw.elsa.base + ELSA_ALE; in setup_elsa_isa()
864 cs->hw.elsa.isac = cs->hw.elsa.base + ELSA_ISAC; in setup_elsa_isa()
865 cs->hw.elsa.itac = cs->hw.elsa.base + ELSA_ITAC; in setup_elsa_isa()
866 cs->hw.elsa.hscx = cs->hw.elsa.base + ELSA_HSCX; in setup_elsa_isa()
867 cs->hw.elsa.trig = cs->hw.elsa.base + ELSA_TRIG_IRQ; in setup_elsa_isa()
868 cs->hw.elsa.timer = cs->hw.elsa.base + ELSA_START_TIMER; in setup_elsa_isa()
869 val = bytein(cs->hw.elsa.cfg); in setup_elsa_isa()
883 val = bytein(cs->hw.elsa.ale) & ELSA_HW_RELEASE; in setup_elsa_isa()
894 cs->hw.elsa.base, in setup_elsa_isa()
896 val = bytein(cs->hw.elsa.ale) & ELSA_S0_POWER_BAD; in setup_elsa_isa()
900 cs->hw.elsa.status |= ELSA_BAD_PWR; in setup_elsa_isa()
975 cs->hw.elsa.base = card->para[1]; in setup_elsa_isapnp()
982 cs->hw.elsa.cfg = cs->hw.elsa.base + ELSA_CONFIG; in setup_elsa_isapnp()
983 cs->hw.elsa.ale = cs->hw.elsa.base + ELSA_ALE; in setup_elsa_isapnp()
984 cs->hw.elsa.isac = cs->hw.elsa.base + ELSA_ISAC; in setup_elsa_isapnp()
985 cs->hw.elsa.hscx = cs->hw.elsa.base + ELSA_HSCX; in setup_elsa_isapnp()
986 cs->hw.elsa.trig = cs->hw.elsa.base + ELSA_TRIG_IRQ; in setup_elsa_isapnp()
987 cs->hw.elsa.timer = cs->hw.elsa.base + ELSA_START_TIMER; in setup_elsa_isapnp()
988 cs->hw.elsa.ctrl = cs->hw.elsa.base + ELSA_CONTROL; in setup_elsa_isapnp()
992 cs->hw.elsa.base, in setup_elsa_isapnp()
1003 cs->hw.elsa.base = card->para[1]; in setup_elsa_pcmcia()
1005 val = readreg(cs->hw.elsa.base + 0, cs->hw.elsa.base + 2, IPAC_ID); in setup_elsa_pcmcia()
1008 cs->hw.elsa.ale = cs->hw.elsa.base + 0; in setup_elsa_pcmcia()
1009 cs->hw.elsa.isac = cs->hw.elsa.base + 2; in setup_elsa_pcmcia()
1010 cs->hw.elsa.hscx = cs->hw.elsa.base + 2; in setup_elsa_pcmcia()
1014 cs->hw.elsa.ale = cs->hw.elsa.base + ELSA_ALE_PCM; in setup_elsa_pcmcia()
1015 cs->hw.elsa.isac = cs->hw.elsa.base + ELSA_ISAC_PCM; in setup_elsa_pcmcia()
1016 cs->hw.elsa.hscx = cs->hw.elsa.base + ELSA_HSCX; in setup_elsa_pcmcia()
1018 cs->hw.elsa.timer = 0; in setup_elsa_pcmcia()
1019 cs->hw.elsa.trig = 0; in setup_elsa_pcmcia()
1020 cs->hw.elsa.ctrl = 0; in setup_elsa_pcmcia()
1025 cs->hw.elsa.base, in setup_elsa_pcmcia()
1044 cs->hw.elsa.cfg = pci_resource_start(dev_qs1000, 1); in setup_elsa_pci()
1045 cs->hw.elsa.base = pci_resource_start(dev_qs1000, 3); in setup_elsa_pci()
1052 cs->hw.elsa.cfg = pci_resource_start(dev_qs3000, 1); in setup_elsa_pci()
1053 cs->hw.elsa.base = pci_resource_start(dev_qs3000, 3); in setup_elsa_pci()
1063 if (!(cs->hw.elsa.base && cs->hw.elsa.cfg)) { in setup_elsa_pci()
1067 if ((cs->hw.elsa.cfg & 0xff) || (cs->hw.elsa.base & 0xf)) { in setup_elsa_pci()
1072 cs->hw.elsa.ale = cs->hw.elsa.base; in setup_elsa_pci()
1073 cs->hw.elsa.isac = cs->hw.elsa.base + 1; in setup_elsa_pci()
1074 cs->hw.elsa.hscx = cs->hw.elsa.base + 1; in setup_elsa_pci()
1076 cs->hw.elsa.timer = 0; in setup_elsa_pci()
1077 cs->hw.elsa.trig = 0; in setup_elsa_pci()
1082 cs->hw.elsa.base, in setup_elsa_pci()
1083 cs->hw.elsa.cfg, in setup_elsa_pci()
1129 if (cs->typ != ISDN_CTYPE_ELSA_PCMCIA && !request_region(cs->hw.elsa.base, bytecnt, "elsa isdn")) { in setup_elsa_common()
1132 cs->hw.elsa.base, in setup_elsa_common()
1133 cs->hw.elsa.base + bytecnt); in setup_elsa_common()
1137 if (!request_region(cs->hw.elsa.cfg, 0x80, "elsa isdn pci")) { in setup_elsa_common()
1140 cs->hw.elsa.cfg, in setup_elsa_common()
1141 cs->hw.elsa.cfg + 0x80); in setup_elsa_common()
1142 release_region(cs->hw.elsa.base, bytecnt); in setup_elsa_common()
1150 timer_setup(&cs->hw.elsa.tl, elsa_led_handler, 0); in setup_elsa_common()
1152 if (cs->hw.elsa.timer) { in setup_elsa_common()
1153 byteout(cs->hw.elsa.trig, 0xff); in setup_elsa_common()
1154 byteout(cs->hw.elsa.timer, 0); in setup_elsa_common()
1156 byteout(cs->hw.elsa.timer, 0); /* 2. Versuch */ in setup_elsa_common()
1182 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ID); in setup_elsa_common()
1218 cs->hw.elsa.ctrl_reg = 0; in setup_elsa()
1219 cs->hw.elsa.status = 0; in setup_elsa()
1220 cs->hw.elsa.MFlag = 0; in setup_elsa()