Lines Matching refs:ns

327 #define __kick_rx()	writel(CR_RXE, ns->base + CR)
331 writel(virt_to_le32desc(&rx_ring[ns->cur_rx]), ns->base + RXDP); \
332 if (ns->next_rx == ns->next_empty) \
413 static struct ns83820_private *ns; variable
423 cfg = readl(ns->base + CFG) ^ SPDSTS_POLARITY; in phy_intr()
424 if (ns->CFG_cache & CFG_TBI_EN) { in phy_intr()
426 tbisr = readl(ns->base + TBISR); in phy_intr()
427 tanar = readl(ns->base + TANAR); in phy_intr()
428 tanlpar = readl(ns->base + TANLPAR); in phy_intr()
436 writel(readl(ns->base + TXCFG) in phy_intr()
438 ns->base + TXCFG); in phy_intr()
439 writel(readl(ns->base + RXCFG) | RXCFG_RX_FD, in phy_intr()
440 ns->base + RXCFG); in phy_intr()
442 writel(readl(ns->base + GPIOR) | GPIOR_GP1_OUT, in phy_intr()
443 ns->base + GPIOR); in phy_intr()
453 writel((readl(ns->base + TXCFG) in phy_intr()
455 ns->base + TXCFG); in phy_intr()
456 writel(readl(ns->base + RXCFG) & ~RXCFG_RX_FD, in phy_intr()
457 ns->base + RXCFG); in phy_intr()
459 writel(readl(ns->base + GPIOR) & ~GPIOR_GP1_OUT, in phy_intr()
460 ns->base + GPIOR); in phy_intr()
468 ns->CFG_cache & ~(CFG_SB | CFG_MODE_1000 | CFG_SPDSTS); in phy_intr()
482 ((new_cfg ^ ns->CFG_cache) & CFG_MODE_1000)) { in phy_intr()
483 writel(new_cfg, ns->base + CFG); in phy_intr()
484 ns->CFG_cache = new_cfg; in phy_intr()
487 ns->CFG_cache &= ~CFG_SPDSTS; in phy_intr()
488 ns->CFG_cache |= cfg & CFG_SPDSTS; in phy_intr()
493 if (newlinkstate & LINK_UP && ns->linkstate != newlinkstate) { in phy_intr()
497 && ns->linkstate != newlinkstate) { in phy_intr()
500 ns->linkstate = newlinkstate; in phy_intr()
506 ns->idle = 1; in ns83820_setup_rx()
507 ns->next_rx = 0; in ns83820_setup_rx()
508 ns->next_rx_desc = ns->descs; in ns83820_setup_rx()
509 ns->next_empty = 0; in ns83820_setup_rx()
510 ns->cur_rx = 0; in ns83820_setup_rx()
522 writel(0, ns->base + RXDP_HI); in ns83820_setup_rx()
523 writel(virt_to_le32desc(&rx_ring[0]), ns->base + RXDP); in ns83820_setup_rx()
527 writel(0x0001, ns->base + CCSR); in ns83820_setup_rx()
528 writel(0, ns->base + RFCR); in ns83820_setup_rx()
529 writel(0x7fc00000, ns->base + RFCR); in ns83820_setup_rx()
530 writel(0xffc00000, ns->base + RFCR); in ns83820_setup_rx()
532 ns->up = 1; in ns83820_setup_rx()
537 ns->IMR_cache |= ISR_PHY; in ns83820_setup_rx()
538 ns->IMR_cache |= ISR_RXRCMP; in ns83820_setup_rx()
541 ns->IMR_cache |= ISR_RXORN; in ns83820_setup_rx()
542 ns->IMR_cache |= ISR_RXSOVR; in ns83820_setup_rx()
543 ns->IMR_cache |= ISR_RXDESC; in ns83820_setup_rx()
544 ns->IMR_cache |= ISR_RXIDLE; in ns83820_setup_rx()
545 ns->IMR_cache |= ISR_TXDESC; in ns83820_setup_rx()
546 ns->IMR_cache |= ISR_TXIDLE; in ns83820_setup_rx()
559 writel(which, ns->base + CR); in ns83820_do_reset()
562 } while (readl(ns->base + CR) & which); in ns83820_do_reset()
571 writel(0, ns->base + PQCR); in ns83820_reset()
582 ns->tx_idx = 0; in ns83820_reset()
583 ns->tx_done_idx = 0; in ns83820_reset()
584 writel(0, ns->base + TXDP_HI); in ns83820_reset()
595 writel(i * 2, ns->base + RFCR); in ns83820_getmac()
596 data = readl(ns->base + RFDR); in ns83820_getmac()
604 u8 *rfcr = ns->base + RFCR; in ns83820_set_multicast()
630 writel(enable, ns->base + PTSCR); in ns83820_run_bist()
633 status = readl(ns->base + PTSCR); in ns83820_run_bist()
658 u32 isr = readl(ns->base + ISR); in ns83820_check_intr()
679 int entry = ns->cur_rx; in ns83820_poll()
700 ns->cur_rx = ++ns->cur_rx % NR_RX_DESC; in ns83820_poll()
702 if (ns->cur_rx == 0) /* We have wrapped the ring */ in ns83820_poll()
711 writel(CR_TXE, ns->base + CR); in kick_tx()
727 u32 isr = readl(ns->base + ISR); in ns83820_transmit()
752 writel(virt_to_le32desc(&tx_ring[0]), ns->base + TXDP); in ns83820_transmit()
772 writel(0, ns->base + IMR); in ns83820_disable()
773 writel(0, ns->base + IER); in ns83820_disable()
774 readl(ns->base + IER); in ns83820_disable()
776 ns->up = 0; in ns83820_disable()
780 ns->IMR_cache &= in ns83820_disable()
783 writel(ns->IMR_cache, ns->base + IMR); in ns83820_disable()
786 readl(ns->base + IMR); in ns83820_disable()
789 writel(0, ns->base + RXDP_HI); in ns83820_disable()
790 writel(0, ns->base + RXDP); in ns83820_disable()
828 ns = &nsx; in ns83820_probe()
835 ns->base = ioremap(addr, (1UL << 12)); in ns83820_probe()
838 if (!ns->base) in ns83820_probe()
845 writel(0, ns->base + IMR); in ns83820_probe()
846 writel(0, ns->base + IER); in ns83820_probe()
847 readl(ns->base + IER); in ns83820_probe()
849 ns->IMR_cache = 0; in ns83820_probe()
854 writel(PTSCR_RBIST_RST, ns->base + PTSCR); in ns83820_probe()
862 ns->CFG_cache = readl(ns->base + CFG); in ns83820_probe()
864 if ((ns->CFG_cache & CFG_PCI64_DET)) { in ns83820_probe()
867 if (!(ns->CFG_cache & CFG_DATA64_EN)) in ns83820_probe()
872 ns->CFG_cache &= ~(CFG_DATA64_EN); in ns83820_probe()
874 ns->CFG_cache &= (CFG_TBI_EN | CFG_MRM_DIS | CFG_MWI_DIS | in ns83820_probe()
877 ns->CFG_cache |= in ns83820_probe()
880 ns->CFG_cache |= CFG_REQALG; in ns83820_probe()
881 ns->CFG_cache |= CFG_POW; in ns83820_probe()
882 ns->CFG_cache |= CFG_TMRTEST; in ns83820_probe()
888 ns->CFG_cache |= CFG_M64ADDR; in ns83820_probe()
893 ns->CFG_cache |= CFG_T64ADDR; in ns83820_probe()
896 ns->CFG_cache &= ~CFG_BEM; in ns83820_probe()
899 if (ns->CFG_cache & CFG_TBI_EN) { in ns83820_probe()
901 writel(readl(ns->base + GPIOR) | 0x3e8, ns->base + GPIOR); in ns83820_probe()
904 writel(readl(ns->base + TANAR) in ns83820_probe()
906 ns->base + TANAR); in ns83820_probe()
910 ns->base + TBICR); in ns83820_probe()
911 writel(TBICR_MR_AN_ENABLE, ns->base + TBICR); in ns83820_probe()
912 ns->linkstate = LINK_AUTONEGOTIATE; in ns83820_probe()
914 ns->CFG_cache |= CFG_MODE_1000; in ns83820_probe()
916 writel(ns->CFG_cache, ns->base + CFG); in ns83820_probe()
917 dprintf(("CFG: %hX\n", ns->CFG_cache)); in ns83820_probe()
922 writel(ns->CFG_cache | CFG_PHY_RST, ns->base + CFG); in ns83820_probe()
923 writel(ns->CFG_cache, ns->base + CFG); in ns83820_probe()
941 | ((1600 / 32) * 0x100), ns->base + TXCFG); in ns83820_probe()
952 | (RXCFG_MXDMA512) | 0, ns->base + RXCFG); in ns83820_probe()
955 writel(0, ns->base + PQCR); in ns83820_probe()
969 writel(VRCR_IPEN | VRCR_VTDEN, ns->base + VRCR); in ns83820_probe()
972 writel(VTCR_PPCHK, ns->base + VTCR); in ns83820_probe()
978 ns->base + PCR); in ns83820_probe()
981 writel(0, ns->base + WCSR); in ns83820_probe()
984 printf("%! at ioaddr 0x%hX, ", nic->node_addr, ns->base); in ns83820_probe()
992 (unsigned) readl(ns->base + SRR) >> 8, in ns83820_probe()
993 (unsigned) readl(ns->base + SRR) & 0xff, in ns83820_probe()