#ifndef __ADM8511_H__
#define __ADM8511_H__
#define EC0 0x00
#define EC1 0x01
#define EC2 0x02
#define MA 0x08
#define EID 0x10
#define PAUSETIMER 0x18
#define RPNBFC 0x1a
#define ORFBFC 0x1b
#define EP1C 0x1c
#define RXFC 0x1d
#define BIST 0x1e
#define EEOFFSET 0x20
#define EEDATA 0x21
#define EECTRL 0x23
#define PHYA 0x25
#define PHYD 0x26
#define PHYAC 0x28
#define USBSTAT 0x2a
#define ETHTXSTAT 0x2b
#define ETHRXSTAT 0x2d
#define LOSTCNT 0x2e
#define WF0MASK 0x30
#define WF0OFFSET 0x40
#define WF0CRC 0x41
#define WF1MASK 0x48
#define WF1OFFSET 0x58
#define WF1CRC 0x59
#define WF2MASK 0x60
#define WF2OFFSET 0x70
#define WF2CRC 0x71
#define WCTRL 0x78
#define WSTAT 0x7a
#define IPHYC 0x7b
#define GPIO54 0x7c
#define GPIO10 0x7e
#define GPIO32 0x7f
#define TEST 0x80
#define TM 0x81
#define RPN 0x82
#define EC0_TXE 0x80U
#define EC0_RXE 0x40U
#define EC0_RXFCE 0x20U
#define EC0_WOE 0x10U
#define EC0_RXSA 0x08U
#define EC0_SBO 0x04U
#define EC0_RXMA 0x02U
#define EC0_RXCS 0x01U
#define EC0_BITS \
"\020" \
"\010TXE" \
"\007RXE" \
"\006RXFCE" \
"\005WOE" \
"\004RXSA" \
"\003SBO" \
"\002RXMA" \
"\001RXCS"
#define EC1_FD 0x20U
#define EC1_100M 0x10U
#define EC1_RM 0x08U
#define EC1_BITS \
"\020" \
"\006FD" \
"\005100M" \
"\004RM"
#define EC2_MEPL 0x80U
#define EC2_RPNC 0x40U
#define EC2_LEEPRS 0x20U
#define EC2_EEPRW 0x10U
#define EC2_LB 0x08U
#define EC2_PROM 0x04U
#define EC2_RXBP 0x02U
#define EC2_EP3RC 0x01U
#define EC2_BITS \
"\020" \
"\010MEPS" \
"\007RPNC" \
"\006LEEPRS" \
"\005EEPRW" \
"\004LB" \
"\003PROM" \
"\002RXBP" \
"\001EP3RC"
#define RPNBFC_PN 0x7eU
#define RPNBFC_PN_SHIFT 1
#define RPNBFC_FCP 0x01U
#define ORFBFC_RXS 0x7eU
#define ORFBFC_RXS_SHIFT 1
#define ORFBFC_RXS_UNIT 1024U
#define ORFBFC_FCRXS 0x01U
#define EP1C_EP1S0E 0x80U
#define EP1C_ITMA 0x60U
#define EP1C_ITMB 0x1fU
#define EP1C_BITS \
"\020" \
"\010EP1S0E"
#define RXFC_EXT_SRAM 0x02
#define RXFC_RX32PKT 0x01
#define EEOFFSET_MASK 0x3f
#define EECTRL_DONE 0x04
#define EECTRL_RD 0x02
#define EECTRL_WR 0x01
#define EECTRL_BITS \
"\020" \
"\003DONE" \
"\002RD" \
"\001WR"
#define PHYAC_DO 0x80U
#define PHYAC_RDPHY 0x40U
#define PHYAC_WRPHY 0x20U
#define PHYAC_PHYRA 0x1fU
#define PHYCTRL_BITS \
"\020" \
"\010DO" \
"\007RDPHY" \
"\006WRPHY"
#define IPHYC_EPHY 0x02
#define IPHYC_PHYR 0x01
#define IPHYC_BITS \
"\020" \
"\002EPHY" \
"\001PHYR"
#define GPIO54_5OE 0x20
#define GPIO54_5O 0x10
#define GPIO54_5I 0x08
#define GPIO54_4OE 0x04
#define GPIO54_4O 0x02
#define GPIO54_4I 0x01
#define GPIO10_1OE 0x20
#define GPIO10_1O 0x10
#define GPIO10_1I 0x08
#define GPIO10_0OE 0x04
#define GPIO10_0O 0x02
#define GPIO10_0I 0x01
#define GPIO32_3OE 0x20
#define GPIO32_3O 0x10
#define GPIO32_3I 0x08
#define GPIO32_2OE 0x04
#define GPIO32_2O 0x02
#define GPIO32_2I 0x01
#define RSR_DRIBBLE 0x10
#define RSR_CRC 0x08
#define RSR_RUNT 0x04
#define RSR_LONG 0x02
#define RSR_MULTI 0x01
#define RSR_ERRORS \
(RSR_DRIBBLE | RSR_CRC | RSR_RUNT | RSR_LONG | RSR_MULTI)
#define RSR_BITS \
"\020" \
"\005DRIBBLE" \
"\004CRC" \
"\003RUNT" \
"\002LONG" \
"\001MULTI"
#endif