summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-10-09 18:09:17 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2007-10-09 18:09:17 +0200
commitda3d28149520659e842c69ca2d79e8075b5ecf0d (patch)
tree55fd7c264b98325ddb01ce0933257c7b48b9e239 /drivers
parentb1613059460b93dbc55adcc9d52895eb3ce721eb (diff)
downloadbarebox-da3d28149520659e842c69ca2d79e8075b5ecf0d.tar.gz
barebox-da3d28149520659e842c69ca2d79e8075b5ecf0d.tar.xz
add some register bitmask values from the linux kernel
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec_mpc5200.c7
-rw-r--r--drivers/net/fec_mpc5200.h40
2 files changed, 44 insertions, 3 deletions
diff --git a/drivers/net/fec_mpc5200.c b/drivers/net/fec_mpc5200.c
index 6814818500..805542a0f2 100644
--- a/drivers/net/fec_mpc5200.c
+++ b/drivers/net/fec_mpc5200.c
@@ -597,17 +597,18 @@ static int mpc5xxx_fec_recv(struct eth_device *dev)
*/
ievent = fec->eth->ievent;
fec->eth->ievent = ievent;
- if (ievent & 0x20060000) {
+ if (ievent & (FEC_IEVENT_BABT | FEC_IEVENT_XFIFO_ERROR |
+ FEC_IEVENT_RFIFO_ERROR)) {
/* BABT, Rx/Tx FIFO errors */
mpc5xxx_fec_halt(dev);
mpc5xxx_fec_init(dev);
return 0;
}
- if (ievent & 0x80000000) {
+ if (ievent & FEC_IEVENT_HBERR) {
/* Heartbeat error */
fec->eth->x_cntrl |= 0x00000001;
}
- if (ievent & 0x10000000) {
+ if (ievent & FEC_IEVENT_GRA) {
/* Graceful stop complete */
if (fec->eth->x_cntrl & 0x00000001) {
mpc5xxx_fec_halt(dev);
diff --git a/drivers/net/fec_mpc5200.h b/drivers/net/fec_mpc5200.h
index af2b700382..ffc028a6b0 100644
--- a/drivers/net/fec_mpc5200.h
+++ b/drivers/net/fec_mpc5200.h
@@ -202,6 +202,46 @@ typedef struct ethernet_register_set {
volatile uint32 RES11[64]; /* MBAR_ETH + 0x300-3FF */
} ethernet_regs;
+#define FEC_IEVENT_HBERR 0x80000000
+#define FEC_IEVENT_BABR 0x40000000
+#define FEC_IEVENT_BABT 0x20000000
+#define FEC_IEVENT_GRA 0x10000000
+#define FEC_IEVENT_TFINT 0x08000000
+#define FEC_IEVENT_MII 0x00800000
+#define FEC_IEVENT_LATE_COL 0x00200000
+#define FEC_IEVENT_COL_RETRY_LIM 0x00100000
+#define FEC_IEVENT_XFIFO_UN 0x00080000
+#define FEC_IEVENT_XFIFO_ERROR 0x00040000
+#define FEC_IEVENT_RFIFO_ERROR 0x00020000
+
+#define FEC_IMASK_HBERR 0x80000000
+#define FEC_IMASK_BABR 0x40000000
+#define FEC_IMASK_BABT 0x20000000
+#define FEC_IMASK_GRA 0x10000000
+#define FEC_IMASK_MII 0x00800000
+#define FEC_IMASK_LATE_COL 0x00200000
+#define FEC_IMASK_COL_RETRY_LIM 0x00100000
+#define FEC_IMASK_XFIFO_UN 0x00080000
+#define FEC_IMASK_XFIFO_ERROR 0x00040000
+#define FEC_IMASK_RFIFO_ERROR 0x00020000
+
+#define FEC_RCNTRL_MAX_FL_SHIFT 16
+#define FEC_RCNTRL_LOOP 0x01
+#define FEC_RCNTRL_DRT 0x02
+#define FEC_RCNTRL_MII_MODE 0x04
+#define FEC_RCNTRL_PROM 0x08
+#define FEC_RCNTRL_BC_REJ 0x10
+#define FEC_RCNTRL_FCE 0x20
+
+#define FEC_TCNTRL_GTS 0x00000001
+#define FEC_TCNTRL_HBC 0x00000002
+#define FEC_TCNTRL_FDEN 0x00000004
+#define FEC_TCNTRL_TFC_PAUSE 0x00000008
+#define FEC_TCNTRL_RFC_PAUSE 0x00000010
+
+#define FEC_ECNTRL_RESET 0x00000001
+#define FEC_ECNTRL_ETHER_EN 0x00000002
+
/* Receive & Transmit Buffer Descriptor definitions */
typedef struct BufferDescriptor {
uint16 status;