Lines Matching refs:fec

49 #include <linux/fsl/bestcomm/fec.h>
53 #define DRIVER_NAME "mpc52xx-fec"
62 struct mpc52xx_fec __iomem *fec;
107 struct mpc52xx_fec __iomem *fec = priv->fec;
109 out_be32(&fec->paddr1, *(const u32 *)(&mac[0]));
110 out_be32(&fec->paddr2, (*(const u16 *)(&mac[4]) << 16) | FEC_PADDR2_TYPE);
174 struct mpc52xx_fec __iomem *fec = priv->fec;
181 rcntrl = in_be32(&fec->r_cntrl);
182 tcntrl = in_be32(&fec->x_cntrl);
191 out_be32(&fec->r_cntrl, rcntrl);
192 out_be32(&fec->x_cntrl, tcntrl);
447 struct mpc52xx_fec __iomem *fec = priv->fec;
450 ievent = in_be32(&fec->ievent);
456 out_be32(&fec->ievent, ievent); /* clear pending events */
458 /* on fifo error, soft-reset fec */
487 struct mpc52xx_fec __iomem *fec = priv->fec;
489 stats->rx_bytes = in_be32(&fec->rmon_r_octets);
490 stats->rx_packets = in_be32(&fec->rmon_r_packets);
491 stats->rx_errors = in_be32(&fec->rmon_r_crc_align) +
492 in_be32(&fec->rmon_r_undersize) +
493 in_be32(&fec->rmon_r_oversize) +
494 in_be32(&fec->rmon_r_frag) +
495 in_be32(&fec->rmon_r_jab);
497 stats->tx_bytes = in_be32(&fec->rmon_t_octets);
498 stats->tx_packets = in_be32(&fec->rmon_t_packets);
499 stats->tx_errors = in_be32(&fec->rmon_t_crc_align) +
500 in_be32(&fec->rmon_t_undersize) +
501 in_be32(&fec->rmon_t_oversize) +
502 in_be32(&fec->rmon_t_frag) +
503 in_be32(&fec->rmon_t_jab);
505 stats->multicast = in_be32(&fec->rmon_r_mc_pkt);
506 stats->collisions = in_be32(&fec->rmon_t_col);
509 stats->rx_length_errors = in_be32(&fec->rmon_r_undersize)
510 + in_be32(&fec->rmon_r_oversize)
511 + in_be32(&fec->rmon_r_frag)
512 + in_be32(&fec->rmon_r_jab);
513 stats->rx_over_errors = in_be32(&fec->r_macerr);
514 stats->rx_crc_errors = in_be32(&fec->ieee_r_crc);
515 stats->rx_frame_errors = in_be32(&fec->ieee_r_align);
516 stats->rx_fifo_errors = in_be32(&fec->rmon_r_drop);
517 stats->rx_missed_errors = in_be32(&fec->rmon_r_drop);
521 stats->tx_carrier_errors = in_be32(&fec->ieee_t_cserr);
522 stats->tx_fifo_errors = in_be32(&fec->rmon_t_drop);
523 stats->tx_heartbeat_errors = in_be32(&fec->ieee_t_sqe);
524 stats->tx_window_errors = in_be32(&fec->ieee_t_lcol);
536 struct mpc52xx_fec __iomem *fec = priv->fec;
538 out_be32(&fec->mib_control, FEC_MIB_DISABLE);
539 memset_io(&fec->rmon_t_drop, 0,
542 out_be32(&fec->mib_control, 0);
553 struct mpc52xx_fec __iomem *fec = priv->fec;
556 rx_control = in_be32(&fec->r_cntrl);
560 out_be32(&fec->r_cntrl, rx_control);
563 out_be32(&fec->r_cntrl, rx_control);
566 out_be32(&fec->gaddr1, 0xffffffff);
567 out_be32(&fec->gaddr2, 0xffffffff);
581 out_be32(&fec->gaddr1, gaddr1);
582 out_be32(&fec->gaddr2, gaddr2);
596 struct mpc52xx_fec __iomem *fec = priv->fec;
600 out_be32(&fec->ecntrl, FEC_ECNTRL_RESET);
602 if ((in_be32(&fec->ecntrl) & FEC_ECNTRL_RESET) == 0)
610 out_be32(&fec->op_pause, FEC_OP_PAUSE_OPCODE | 0x20);
615 out_be32(&fec->rfifo_cntrl, FEC_FIFO_CNTRL_FRAME | FEC_FIFO_CNTRL_LTG_7);
616 out_be32(&fec->tfifo_cntrl, FEC_FIFO_CNTRL_FRAME | FEC_FIFO_CNTRL_LTG_7);
619 out_be32(&fec->rfifo_alarm, 0x0000030c);
620 out_be32(&fec->tfifo_alarm, 0x00000100);
623 out_be32(&fec->x_wmrk, FEC_FIFO_WMRK_256B);
626 out_be32(&fec->xmit_fsm, FEC_XMIT_FSM_APPEND_CRC | FEC_XMIT_FSM_ENABLE_CRC);
627 out_be32(&fec->iaddr1, 0x00000000); /* No individual filter */
628 out_be32(&fec->iaddr2, 0x00000000); /* No individual filter */
632 * before fec stuff (even on resume) */
633 out_be32(&fec->mii_speed, priv->mdio_speed);
647 struct mpc52xx_fec __iomem *fec = priv->fec;
654 out_be32(&fec->rfifo_status, in_be32(&fec->rfifo_status) & tmp);
655 out_be32(&fec->tfifo_status, in_be32(&fec->tfifo_status) & tmp);
658 out_be32(&fec->reset_cntrl, FEC_RESET_CNTRL_ENABLE_IS_RESET);
678 out_be32(&fec->r_cntrl, rcntrl);
679 out_be32(&fec->x_cntrl, tcntrl);
682 out_be32(&fec->ievent, 0xffffffff);
685 out_be32(&fec->imask, FEC_IMASK_ENABLE);
688 out_be32(&fec->ecntrl, FEC_ECNTRL_ETHER_EN);
689 out_be32(&fec->r_des_active, 0x01000000);
696 * stop all activity on fec and empty dma buffers
701 struct mpc52xx_fec __iomem *fec = priv->fec;
705 out_be32(&fec->imask, 0);
734 out_be32(&fec->ecntrl, in_be32(&fec->ecntrl) & ~FEC_ECNTRL_ETHER_EN);
737 /* reset fec and bestcomm tasks */
741 struct mpc52xx_fec __iomem *fec = priv->fec;
745 out_be32(&fec->rfifo_status, in_be32(&fec->rfifo_status));
746 out_be32(&fec->reset_cntrl, FEC_RESET_CNTRL_RESET_FIFO);
860 priv->fec = ioremap(mem.start, sizeof(struct mpc52xx_fec));
862 if (!priv->fec) {
897 struct mpc52xx_fec __iomem *fec = priv->fec;
904 *(u32 *)(&addr[0]) = in_be32(&fec->paddr1);
905 *(u16 *)(&addr[4]) = in_be32(&fec->paddr2) >> 16;
968 iounmap(priv->fec);
996 iounmap(priv->fec);
1029 { .compatible = "fsl,mpc5200b-fec", },
1030 { .compatible = "fsl,mpc5200-fec", },
1031 { .compatible = "mpc5200-fec", },