~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/u-boot/arch/arm/include/asm/arch-at91/at91_emac.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2009 Jens Scharsig (js_at_ng@scharsoft.de)
 
3
 *
 
4
 * based on AT91RM9200 datasheet revision I (36. Ethernet MAC (EMAC))
 
5
 *
 
6
 * SPDX-License-Identifier:     GPL-2.0+
 
7
 */
 
8
 
 
9
#ifndef AT91_H
 
10
#define AT91_H
 
11
 
 
12
typedef struct at91_emac {
 
13
        u32      ctl;
 
14
        u32      cfg;
 
15
        u32      sr;
 
16
        u32      tar;
 
17
        u32      tcr;
 
18
        u32      tsr;
 
19
        u32      rbqp;
 
20
        u32      reserved0;
 
21
        u32      rsr;
 
22
        u32      isr;
 
23
        u32      ier;
 
24
        u32      idr;
 
25
        u32      imr;
 
26
        u32      man;
 
27
        u32      reserved1[2];
 
28
        u32      fra;
 
29
        u32      scol;
 
30
        u32      mocl;
 
31
        u32      ok;
 
32
        u32      seqe;
 
33
        u32      ale;
 
34
        u32      dte;
 
35
        u32      lcol;
 
36
        u32      ecol;
 
37
        u32      cse;
 
38
        u32      tue;
 
39
        u32      cde;
 
40
        u32      elr;
 
41
        u32      rjb;
 
42
        u32      usf;
 
43
        u32      sqee;
 
44
        u32      drfc;
 
45
        u32      reserved2[3];
 
46
        u32      hsh;
 
47
        u32      hsl;
 
48
        u32      sa1l;
 
49
        u32      sa1h;
 
50
        u32      sa2l;
 
51
        u32      sa2h;
 
52
        u32      sa3l;
 
53
        u32      sa3h;
 
54
        u32      sa4l;
 
55
        u32      sa4h;
 
56
} at91_emac_t;
 
57
 
 
58
#define AT91_EMAC_CTL_LB        0x0001
 
59
#define AT91_EMAC_CTL_LBL       0x0002
 
60
#define AT91_EMAC_CTL_RE        0x0004
 
61
#define AT91_EMAC_CTL_TE        0x0008
 
62
#define AT91_EMAC_CTL_MPE       0x0010
 
63
#define AT91_EMAC_CTL_CSR       0x0020
 
64
#define AT91_EMAC_CTL_ISR       0x0040
 
65
#define AT91_EMAC_CTL_WES       0x0080
 
66
#define AT91_EMAC_CTL_BP        0x1000
 
67
 
 
68
#define AT91_EMAC_CFG_SPD       0x0001
 
69
#define AT91_EMAC_CFG_FD        0x0002
 
70
#define AT91_EMAC_CFG_BR        0x0004
 
71
#define AT91_EMAC_CFG_CAF       0x0010
 
72
#define AT91_EMAC_CFG_NBC       0x0020
 
73
#define AT91_EMAC_CFG_MTI       0x0040
 
74
#define AT91_EMAC_CFG_UNI       0x0080
 
75
#define AT91_EMAC_CFG_BIG       0x0100
 
76
#define AT91_EMAC_CFG_EAE       0x0200
 
77
#define AT91_EMAC_CFG_CLK_MASK  0xFFFFF3FF
 
78
#define AT91_EMAC_CFG_MCLK_8    0x0000
 
79
#define AT91_EMAC_CFG_MCLK_16   0x0400
 
80
#define AT91_EMAC_CFG_MCLK_32   0x0800
 
81
#define AT91_EMAC_CFG_MCLK_64   0x0C00
 
82
#define AT91_EMAC_CFG_RTY       0x1000
 
83
#define AT91_EMAC_CFG_RMII      0x2000
 
84
 
 
85
#define AT91_EMAC_SR_LINK       0x0001
 
86
#define AT91_EMAC_SR_MDIO       0x0002
 
87
#define AT91_EMAC_SR_IDLE       0x0004
 
88
 
 
89
#define AT91_EMAC_TCR_LEN(x)    (x & 0x7FF)
 
90
#define AT91_EMAC_TCR_NCRC      0x8000
 
91
 
 
92
#define AT91_EMAC_TSR_OVR       0x0001
 
93
#define AT91_EMAC_TSR_COL       0x0002
 
94
#define AT91_EMAC_TSR_RLE       0x0004
 
95
#define AT91_EMAC_TSR_TXIDLE    0x0008
 
96
#define AT91_EMAC_TSR_BNQ       0x0010
 
97
#define AT91_EMAC_TSR_COMP      0x0020
 
98
#define AT91_EMAC_TSR_UND       0x0040
 
99
 
 
100
#define AT91_EMAC_RSR_BNA       0x0001
 
101
#define AT91_EMAC_RSR_REC       0x0002
 
102
#define AT91_EMAC_RSR_OVR       0x0004
 
103
 
 
104
/*  ISR, IER, IDR, IMR use the same bits */
 
105
#define AT91_EMAC_IxR_DONE      0x0001
 
106
#define AT91_EMAC_IxR_RCOM      0x0002
 
107
#define AT91_EMAC_IxR_RBNA      0x0004
 
108
#define AT91_EMAC_IxR_TOVR      0x0008
 
109
#define AT91_EMAC_IxR_TUND      0x0010
 
110
#define AT91_EMAC_IxR_RTRY      0x0020
 
111
#define AT91_EMAC_IxR_TBRE      0x0040
 
112
#define AT91_EMAC_IxR_TCOM      0x0080
 
113
#define AT91_EMAC_IxR_TIDLE     0x0100
 
114
#define AT91_EMAC_IxR_LINK      0x0200
 
115
#define AT91_EMAC_IxR_ROVR      0x0400
 
116
#define AT91_EMAC_IxR_HRESP     0x0800
 
117
 
 
118
#define AT91_EMAC_MAN_DATA_MASK         0xFFFF
 
119
#define AT91_EMAC_MAN_CODE_802_3        0x00020000
 
120
#define AT91_EMAC_MAN_REGA(reg)         ((reg & 0x1F) << 18)
 
121
#define AT91_EMAC_MAN_PHYA(phy)         ((phy & 0x1F) << 23)
 
122
#define AT91_EMAC_MAN_RW_R              0x20000000
 
123
#define AT91_EMAC_MAN_RW_W              0x10000000
 
124
#define AT91_EMAC_MAN_HIGH              0x40000000
 
125
#define AT91_EMAC_MAN_LOW               0x80000000
 
126
 
 
127
#endif