Lines Matching refs:ioaddr
193 static int atp_probe1(long ioaddr);
195 static unsigned short eeprom_op(long ioaddr, unsigned int cmd);
198 static void write_packet(long ioaddr, int length, unsigned char *packet, int pad, int mode);
199 static void trigger_send(long ioaddr, int length);
204 static void read_block(long ioaddr, int length, unsigned char *buffer, int data_mode);
232 long ioaddr = *port; in atp_init() local
233 outb(0x57, ioaddr + PAR_DATA); in atp_init()
234 if (inb(ioaddr + PAR_DATA) != 0x57) in atp_init()
236 if (atp_probe1(ioaddr) == 0) in atp_init()
253 static int __init atp_probe1(long ioaddr) in atp_probe1() argument
260 outb(0xff, ioaddr + PAR_DATA); in atp_probe1()
263 saved_ctrl_reg = inb(ioaddr + PAR_CONTROL); in atp_probe1()
267 outb(0x04, ioaddr + PAR_CONTROL); in atp_probe1()
272 outb(mux_8012[i], ioaddr + PAR_DATA); in atp_probe1()
273 write_reg(ioaddr, MODSEL, 0x00); in atp_probe1()
276 printk(" %2.2x", read_nibble(ioaddr, i)); in atp_probe1()
282 outb(mux_8012[i], ioaddr + PAR_DATA); in atp_probe1()
283 write_reg_high(ioaddr, CMR1, CMR1h_RESET); in atp_probe1()
285 status = read_nibble(ioaddr, CMR1); in atp_probe1()
290 printk(" %2.2x", read_nibble(ioaddr, i)); in atp_probe1()
296 outb(saved_ctrl_reg, ioaddr + PAR_CONTROL); in atp_probe1()
299 status = read_nibble(ioaddr, CMR2_h); in atp_probe1()
301 outb(saved_ctrl_reg, ioaddr + PAR_CONTROL); in atp_probe1()
310 write_reg_byte(ioaddr, CMR2, 0x01); /* No accept mode, IRQ out. */ in atp_probe1()
311 write_reg_high(ioaddr, CMR1, CMR1h_RxENABLE | CMR1h_TxENABLE); /* Enable Tx and Rx. */ in atp_probe1()
316 else if (ioaddr == 0x378) in atp_probe1()
320 write_reg_high(ioaddr, CMR1, CMR1h_TxRxOFF); /* Disable Tx and Rx units. */ in atp_probe1()
321 write_reg(ioaddr, CMR2, CMR2_NULL); in atp_probe1()
323 dev->base_addr = ioaddr; in atp_probe1()
338 write_reg_high(ioaddr, CMR1, CMR1h_RESET | CMR1h_MUX); in atp_probe1()
370 long ioaddr = dev->base_addr; in get_node_ID() local
374 write_reg(ioaddr, CMR2, CMR2_EEPROM); /* Point to the EEPROM control registers. */ in get_node_ID()
378 if (eeprom_op(ioaddr, EE_READ(0)) == 0xffff) in get_node_ID()
383 cpu_to_be16(eeprom_op(ioaddr, EE_READ(sa_offset + i))); in get_node_ID()
385 write_reg(ioaddr, CMR2, CMR2_NULL); in get_node_ID()
400 static unsigned short __init eeprom_op(long ioaddr, u32 cmd) in eeprom_op() argument
407 write_reg_high(ioaddr, PROM_CMD, outval | EE_CLK_LOW); in eeprom_op()
408 write_reg_high(ioaddr, PROM_CMD, outval | EE_CLK_HIGH); in eeprom_op()
410 if (read_nibble(ioaddr, PROM_DATA) & EE_DATA_READ) in eeprom_op()
413 write_reg_high(ioaddr, PROM_CMD, EE_CLK_LOW & ~EE_CS); in eeprom_op()
456 long ioaddr = dev->base_addr; in hardware_init() local
461 outb(mux_8012[i], ioaddr + PAR_DATA); in hardware_init()
462 write_reg_high(ioaddr, CMR1, CMR1h_RESET); in hardware_init()
465 write_reg_byte(ioaddr, PAR0 + i, dev->dev_addr[i]); in hardware_init()
467 write_reg_high(ioaddr, CMR2, lp->addr_mode); in hardware_init()
471 (read_nibble(ioaddr, CMR2_h) >> 3) & 0x0f); in hardware_init()
474 write_reg(ioaddr, CMR2, CMR2_IRQOUT); in hardware_init()
475 write_reg_high(ioaddr, CMR1, CMR1h_RxENABLE | CMR1h_TxENABLE); in hardware_init()
478 outb(Ctrl_SelData + Ctrl_IRQEN, ioaddr + PAR_CONTROL); in hardware_init()
481 write_reg(ioaddr, IMR, ISR_RxOK | ISR_TxErr | ISR_TxOK); in hardware_init()
482 write_reg_high(ioaddr, IMR, ISRh_RxErr); in hardware_init()
489 static void trigger_send(long ioaddr, int length) in trigger_send() argument
491 write_reg_byte(ioaddr, TxCNT0, length & 0xff); in trigger_send()
492 write_reg(ioaddr, TxCNT1, length >> 8); in trigger_send()
493 write_reg(ioaddr, CMR1, CMR1_Xmit); in trigger_send()
496 static void write_packet(long ioaddr, int length, unsigned char *packet, int pad_len, int data_mode) in write_packet() argument
504 outb(EOC+MAR, ioaddr + PAR_DATA); in write_packet()
507 outb(WrAddr+MAR, ioaddr + PAR_DATA); in write_packet()
509 write_byte_mode0(ioaddr, *packet++); in write_packet()
512 write_byte_mode0(ioaddr, 0); in write_packet()
518 outb(Ctrl_LNibWrite + Ctrl_IRQEN, ioaddr + PAR_CONTROL); in write_packet()
519 outb(WrAddr+MAR, ioaddr + PAR_DATA); in write_packet()
521 outb((outbyte & 0x0f)|0x40, ioaddr + PAR_DATA); in write_packet()
522 outb(outbyte & 0x0f, ioaddr + PAR_DATA); in write_packet()
524 outb(outbyte & 0x0f, ioaddr + PAR_DATA); in write_packet()
525 outb(Ctrl_HNibWrite + Ctrl_IRQEN, ioaddr + PAR_CONTROL); in write_packet()
527 write_byte_mode1(ioaddr, *packet++); in write_packet()
529 write_byte_mode1(ioaddr, 0); in write_packet()
532 outb(0xff, ioaddr + PAR_DATA); in write_packet()
533 outb(Ctrl_HNibWrite | Ctrl_SelData | Ctrl_IRQEN, ioaddr + PAR_CONTROL); in write_packet()
538 long ioaddr = dev->base_addr; in tx_timeout() local
541 inb(ioaddr + PAR_CONTROL) & 0x10 ? "network cable problem" in tx_timeout()
555 long ioaddr = dev->base_addr; in atp_send_packet() local
567 write_reg(ioaddr, IMR, 0); in atp_send_packet()
568 write_reg_high(ioaddr, IMR, 0); in atp_send_packet()
571 write_packet(ioaddr, length, skb->data, length-skb->len, dev->if_port); in atp_send_packet()
575 trigger_send(ioaddr, length); in atp_send_packet()
582 write_reg(ioaddr, IMR, ISR_RxOK | ISR_TxErr | ISR_TxOK); in atp_send_packet()
583 write_reg_high(ioaddr, IMR, ISRh_RxErr); in atp_send_packet()
596 long ioaddr; in atp_interrupt() local
601 ioaddr = dev->base_addr; in atp_interrupt()
607 outb(Ctrl_SelData, ioaddr + PAR_CONTROL); in atp_interrupt()
610 write_reg(ioaddr, CMR2, CMR2_NULL); in atp_interrupt()
611 write_reg(ioaddr, IMR, 0); in atp_interrupt()
616 int status = read_nibble(ioaddr, ISR); in atp_interrupt()
622 write_reg(ioaddr, ISR, ISR_RxOK); /* Clear the Rx interrupt. */ in atp_interrupt()
624 int read_status = read_nibble(ioaddr, CMR1); in atp_interrupt()
632 write_reg_high(ioaddr, CMR2, CMR2h_OFF); in atp_interrupt()
635 write_reg_high(ioaddr, ISR, ISRh_RxErr); in atp_interrupt()
636 write_reg_high(ioaddr, CMR2, lp->addr_mode); in atp_interrupt()
649 write_reg(ioaddr, ISR, ISR_TxErr + ISR_TxOK); in atp_interrupt()
659 write_reg(ioaddr, CMR1, CMR1_ReXmit + CMR1_Xmit); in atp_interrupt()
665 trigger_send(ioaddr, lp->saved_tx_size); in atp_interrupt()
679 (read_nibble(ioaddr, CMR1) >> 3) & 15); in atp_interrupt()
693 write_reg_byte(ioaddr, PAR0 + i, dev->dev_addr[i]); in atp_interrupt()
700 write_reg(ioaddr, CMR2, CMR2_IRQOUT); in atp_interrupt()
702 outb(Ctrl_SelData + Ctrl_IRQEN, ioaddr + PAR_CONTROL); in atp_interrupt()
704 write_reg(ioaddr, IMR, ISR_RxOK | ISR_TxErr | ISR_TxOK); in atp_interrupt()
705 write_reg_high(ioaddr, IMR, ISRh_RxErr); /* Hmmm, really needed? */ in atp_interrupt()
720 long ioaddr = dev->base_addr; in atp_timed_checker() local
728 write_reg_byte(ioaddr, PAR0 + i, dev->dev_addr[i]); in atp_timed_checker()
732 if (read_cmd_byte(ioaddr, PAR0 + i) != atp_timed_dev->dev_addr[i]) in atp_timed_checker()
735 write_reg_byte(ioaddr, PAR0 + i, atp_timed_dev->dev_addr[i]); in atp_timed_checker()
757 long ioaddr = dev->base_addr; in net_rx() local
761 outb(EOC+MAR, ioaddr + PAR_DATA); in net_rx()
762 read_block(ioaddr, 8, (unsigned char*)&rx_head, dev->if_port); in net_rx()
775 write_reg_high(ioaddr, CMR1, CMR1h_TxENABLE); in net_rx()
776 write_reg_high(ioaddr, CMR1, CMR1h_RxENABLE | CMR1h_TxENABLE); in net_rx()
792 read_block(ioaddr, pkt_len, skb_put(skb,pkt_len), dev->if_port); in net_rx()
799 write_reg(ioaddr, CMR1, CMR1_NextPkt); in net_rx()
803 static void read_block(long ioaddr, int length, unsigned char *p, int data_mode) in read_block() argument
806 outb(Ctrl_LNibRead, ioaddr + PAR_CONTROL); in read_block()
808 ioaddr + PAR_DATA); in read_block()
810 do { *p++ = read_byte_mode0(ioaddr); } while (--length > 0); in read_block()
812 do { *p++ = read_byte_mode2(ioaddr); } while (--length > 0); in read_block()
815 do { *p++ = read_byte_mode4(ioaddr); } while (--length > 0); in read_block()
817 do { *p++ = read_byte_mode6(ioaddr); } while (--length > 0); in read_block()
820 outb(EOC+HNib+MAR, ioaddr + PAR_DATA); in read_block()
821 outb(Ctrl_SelData, ioaddr + PAR_CONTROL); in read_block()
829 long ioaddr = dev->base_addr; in net_close() local
837 write_reg_high(ioaddr, CMR2, CMR2h_OFF); in net_close()
840 outb(0x00, ioaddr + PAR_CONTROL); in net_close()
844 write_reg_high(ioaddr, CMR1, CMR1h_RESET | CMR1h_MUX); in net_close()
855 long ioaddr = dev->base_addr; in set_rx_mode() local
861 write_reg_high(ioaddr, CMR2, lp->addr_mode); in set_rx_mode()