uboot/arch/arm/mach-at91/include/mach/at91_emac.h
<<
>>
Prefs
   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
  12typedef 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
 128