Nut/OS  4.10.3
API Reference
reg_ax88796.h
Go to the documentation of this file.
00001 #ifndef _DEV_REG_AX88796_H_
00002 #define _DEV_REG_AX88796_H_
00003 
00008 
00009 /*
00010  * Register offset applicable to all register pages.
00011  */
00012 #define CR 0x00        
00013 #define DATAPORT 0x10  
00014 #define IFGS1 0x12     
00015 #define IFGS2 0x13     
00016 #define MII_EEP 0x14   
00017 #define TR 0x15        
00018 #define IFG 0x16       
00019 #define GPI 0x17       
00020 #define GPOC 0x17      
00021 #define SPP1 0x18      
00022 #define SPP2 0x19      
00023 #define SPP3 0x1a      
00024 #define RESET 0x1f     
00026 /*
00027  * Page 0 register offsets.
00028  */
00029 #define PG0_PSTART 0x01   
00030 #define PG0_PSTOP 0x02    
00031 #define PG0_BNRY 0x03     
00032 #define PG0_TSR 0x04      
00033 #define PG0_TPSR 0x04     
00034 #define PG0_NCR 0x05      
00035 #define PG0_TBCR0 0x05    
00036 #define PG0_CPR 0x06      
00037 #define PG0_TBCR1 0x06    
00038 #define PG0_ISR 0x07      
00039 #define PG0_CRDA0 0x08    
00040 #define PG0_RSAR0 0x08    
00042 #define PG0_CRDA1 0x09    
00043 #define PG0_RSAR1 0x09    
00045 #define PG0_RBCR0 0x0a    
00048 #define PG0_RBCR1 0x0b    
00051 #define PG0_RSR 0x0c      
00052 #define PG0_RCR 0x0c      
00053 #define PG0_CNTR0 0x0d    
00054 #define PG0_TCR 0x0d      
00055 #define PG0_DCR 0x0e      
00056 #define PG0_IMR 0x0f      
00058 /*
00059  * Page 1 register offsets.
00060  */
00061 #define PG1_PAR0 0x01      
00062 #define PG1_PAR1 0x02      
00063 #define PG1_PAR2 0x03      
00064 #define PG1_PAR3 0x04      
00065 #define PG1_PAR4 0x05      
00066 #define PG1_PAR5 0x06      
00067 #define PG1_CPR 0x07       
00068 #define PG1_MAR0 0x08      
00069 #define PG1_MAR1 0x09      
00070 #define PG1_MAR2 0x0a      
00071 #define PG1_MAR3 0x0b      
00072 #define PG1_MAR4 0x0c      
00073 #define PG1_MAR5 0x0d      
00074 #define PG1_MAR6 0x0e      
00075 #define PG1_MAR7 0x0f      
00077 /*
00078  * Command register bits. (0x00, Read/Write)
00079  */
00080 #define CR_STOP 0x01   
00081 #define CR_START 0x02  
00082 #define CR_TXP 0x04    
00083 #define CR_RD0 0x08    
00084 #define CR_RD1 0x10    
00085 #define CR_RD2 0x20    
00086 #define CR_PS0 0x40    
00087 #define CR_PS1 0x80    
00089 /*
00090  * Interrupt status register bits. (0x07, Read/Write)
00091  */
00092 #define ISR_PRX 0x01      
00093 #define ISR_PTX 0x02      
00094 #define ISR_RXE 0x04      
00095 #define ISR_TXE 0x08      
00096 #define ISR_OVW 0x10      
00097 #define ISR_CNT 0x20      
00098 #define ISR_RDC 0x40      
00099 #define ISR_RST 0x80      
00101 /*
00102  * Interrupt mask register bits. (0x0F, Write)
00103  */
00104 #define IMR_PRXE 0x01     
00105 #define IMR_PTXE 0x02     
00106 #define IMR_RXEE 0x04     
00107 #define IMR_TXEE 0x08     
00108 #define IMR_OVWE 0x10     
00109 #define IMR_CNTE 0x20     
00110 #define IMR_RCDE 0x40     
00113 /*
00114  * Data configuration register bits. (0x0E, Write)
00115  */
00116 #define DCR_WTS  0x01     
00117 #define DCR_RDCR 0x80     
00119 /*
00120  * Transmit configuration register bits. (0x0D, Write)
00121  */
00122 #define TCR_CRC 0x01      
00123 #define TCR_LB0 0x02      
00124 #define TCR_LB1 0x04      
00125 #define TCR_RLO 0x20      
00126 #define TCR_PD  0x40      
00127 #define TCR_FDU 0x80      
00129 /*
00130  * Transmit status register bits. (0x04, Read)
00131  */
00132 #define TSR_PTX 0x01      
00133 #define TSR_COL 0x04      
00134 #define TSR_ABT 0x08      
00135 #define TSR_OWC 0x80      
00137 /*
00138  * Receive configuration register bits. (0x0C, Write)
00139  */
00140 #define RCR_SEP 0x01      
00141 #define RCR_AR 0x02       
00142 #define RCR_AB 0x04       
00143 #define RCR_AM 0x08       
00144 #define RCR_PRO 0x10      
00145 #define RCR_MON 0x20      
00146 #define RCR_INTT 0x40     
00148 /*
00149  * Receive status register bits. (0x0C, Read)
00150  */
00151 #define RSR_PRX 0x01      
00152 #define RSR_CR 0x02       
00153 #define RSR_FAE 0x04      
00154 #define RSR_FO 0x08       
00155 #define RSR_MPA 0x10      
00156 #define RSR_PHY 0x20      
00157 #define RSR_DIS 0x40      
00159 /*
00160  * MII/EEPROM access regiser bits. (0x14, Read/Write)
00161  */
00162 #define MII_EEP_MDC 0x01   
00163 #define MII_EEP_MDIR 0x02  
00164 #define MII_EEP_MDI 0x04   
00165 #define MII_EEP_MDO 0x08   
00166 #define MII_EEP_EECS 0x10  
00167 #define MII_EEP_EEI 0x20   
00168 #define MII_EEP_EEO 0x40   
00169 #define MII_EEP_EECLK 0x80 
00171 /*
00172  * TR access regiser bits. (0x15, Read/Write)
00173  */
00174 #define TR_RST_B 0x02 
00177 /*
00178  * The Asix Embedded PHY Registers
00179  */
00180 
00181 #define PHY_MR0  0x00   
00182 #define PHY_MR1  0x01   
00183 #define PHY_MR2  0x02   
00184 #define PHY_MR3  0x03   
00185 #define PHY_MR4  0x04   
00186 #define PHY_MR5  0x05   
00187 #define PHY_MR6  0x06   
00188 #define PHY_MR7  0x07   
00189 #define PHY_MR16 0x10   
00190 #define PHY_MR17 0x11   
00191 #define PHY_MR18 0x12   
00192 #define PHY_MR19 0x13   
00193 #define PHY_MR20 0x14   
00194 #define PHY_MR21 0x15   
00195 #define PHY_MR22 0x16   
00196 #define PHY_MR23 0x17   
00197 #define PHY_MR24 0x18   
00198 #define PHY_MR25 0x19   
00199 #define PHY_MR26 0x1a   
00200 #define PHY_MR27 0x1b   
00201 #define PHY_MR28 0x1c   
00202 #define PHY_MR29 0x1d   
00203 #define PHY_MR30 0x1e   
00204 #define PHY_MR31 0x1f   
00206 /*
00207  * PHY MR0 (Control) access regiser bits.
00208  */
00209 #define MR0_SW_RESET    0x8000  /* R/W Reset, all PHY registers will be set to default */
00210 #define MR0_LOOPBACK    0x4000  /* R/W Loopback */
00211 #define MR0_SPEED100    0x2000  /* R/W Speed selection, 1 = 100Mbits/s, 0 = 10Mbits/s */
00212 #define MR0_NWAY_ENA    0x1000  /* R/W Autonegotiation Enable */
00213 #define MR0_PWRDN               0x0800  /* R/W Powerdown */
00214 #define MR0_ISOLATE             0x0400  /* R/W Isolate */
00215 #define MR0_REDONWAY    0x0200  /* R/W Restart autonegotiation */
00216 #define MR0_FULL_DUP    0x0100  /* R/W Duplex mode selection, 1 = FULL, 0 = HALF */
00217 #define MR0_COLTST              0x0080  /* R/W Collision Test */
00218 
00219 /*
00220  * PHY MR1 (Status) access regiser bits.
00221  */
00222 #define MR1_T4ABLE              0x8000  /* R 100Base-T4 Ability. This bit will always be a 0 */
00223 #define MR1_TXFULDUP    0x4000  /* R 100Base-TX Full-Duplex Ability. This bit will always be a 1 */
00224 #define MR1_TXHAFDUP    0x2000  /* R 100Base-TX Half-Duplex Ability. This bit will always be a 1 */
00225 #define MR1_ENFULDUP    0x1000  /* R 10Base-T Full-Duplex Ability. This bit will always be a 1 */
00226 #define MR1_ENHAFDUP    0x0800  /* R 10Base-T Half-Duplex Ability. This bit will always be a 1 */
00227 #define MR1_NO_PA_OK    0x0040  /* R Suppress preamble */
00228 #define MR1_NWAYDONE    0x0020  /* R Autonegotiation complete */
00229 #define MR1_REM_FLT             0x0010  /* R Remote fault */
00230 #define MR1_NWAYABLE    0x0008  /* R Autonegotiation ability */
00231 #define MR1_LSTAT_OK    0x0004  /* R Link status */
00232 #define MR1_JABBER              0x0002  /* R Jabber detect */
00233 #define MR1_EXT_ABLE    0x0001  /* R Extended capability */
00234 
00235 
00236 /*
00237  * PHY MR31 (Quick Status) access regiser bits.
00238  */
00239 #define MR31_LSTAT_OK   0x0800  /* R Link status */
00240 #define MR31_SPEED100   0x0200  /* R Link Speed, 0=10Mbits/s, 1=100Mbits/s */
00241 #define MR31_FULL_DUP   0x0100  /* R Duplex Mode, 0=Half, 1=Full */
00242 
00243 
00244 /*
00245 0x8000  15
00246 0x4000  14
00247 0x2000  13
00248 0x1000  12
00249 0x0800  11
00250 0x0400  10
00251 0x0200  9
00252 0x0100  8
00253 0x0080  7
00254 0x0040  6
00255 0x0020  5
00256 0x0010  4
00257 0x0008  3
00258 0x0004  2
00259 0x0002  1
00260 0x0001  0
00261 
00262 */
00263 
00266 #endif
00267