1*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* 2*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * Copyright (C) 2005-2006 Atmel Corporation 3*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * 4*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * See file CREDITS for list of people who contributed to this 5*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * project. 6*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * 7*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * This program is free software; you can redistribute it and/or 8*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * modify it under the terms of the GNU General Public License as 9*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * published by the Free Software Foundation; either version 2 of 10*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * the License, or (at your option) any later version. 11*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * 12*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * This program is distributed in the hope that it will be useful, 13*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * but WITHOUT ANY WARRANTY; without even the implied warranty of 14*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * GNU General Public License for more details. 16*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * 17*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * You should have received a copy of the GNU General Public License 18*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * along with this program; if not, write to the Free Software 19*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 20*2439e4bfSJean-Christophe PLAGNIOL-VILLARD * MA 02111-1307 USA 21*2439e4bfSJean-Christophe PLAGNIOL-VILLARD */ 22*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #ifndef __DRIVERS_MACB_H__ 23*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define __DRIVERS_MACB_H__ 24*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 25*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* MACB register offsets */ 26*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NCR 0x0000 27*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NCFGR 0x0004 28*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NSR 0x0008 29*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TSR 0x0014 30*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RBQP 0x0018 31*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TBQP 0x001c 32*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RSR 0x0020 33*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR 0x0024 34*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IER 0x0028 35*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IDR 0x002c 36*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IMR 0x0030 37*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MAN 0x0034 38*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PTR 0x0038 39*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PFR 0x003c 40*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_FTO 0x0040 41*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SCF 0x0044 42*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MCF 0x0048 43*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_FRO 0x004c 44*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_FCSE 0x0050 45*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ALE 0x0054 46*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_DTF 0x0058 47*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_LCOL 0x005c 48*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_EXCOL 0x0060 49*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TUND 0x0064 50*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CSE 0x0068 51*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RRE 0x006c 52*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ROVR 0x0070 53*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RSE 0x0074 54*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ELE 0x0078 55*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RJA 0x007c 56*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_USF 0x0080 57*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_STE 0x0084 58*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RLE 0x0088 59*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TPF 0x008c 60*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_HRB 0x0090 61*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_HRT 0x0094 62*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA1B 0x0098 63*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA1T 0x009c 64*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA2B 0x00a0 65*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA2T 0x00a4 66*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA3B 0x00a8 67*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA3T 0x00ac 68*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA4B 0x00b0 69*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA4T 0x00b4 70*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TID 0x00b8 71*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TPQ 0x00bc 72*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_USRIO 0x00c0 73*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_WOL 0x00c4 74*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 75*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in NCR */ 76*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_LB_OFFSET 0 77*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_LB_SIZE 1 78*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_LLB_OFFSET 1 79*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_LLB_SIZE 1 80*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RE_OFFSET 2 81*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RE_SIZE 1 82*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TE_OFFSET 3 83*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TE_SIZE 1 84*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MPE_OFFSET 4 85*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MPE_SIZE 1 86*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CLRSTAT_OFFSET 5 87*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CLRSTAT_SIZE 1 88*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_INCSTAT_OFFSET 6 89*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_INCSTAT_SIZE 1 90*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_WESTAT_OFFSET 7 91*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_WESTAT_SIZE 1 92*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BP_OFFSET 8 93*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BP_SIZE 1 94*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TSTART_OFFSET 9 95*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TSTART_SIZE 1 96*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_THALT_OFFSET 10 97*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_THALT_SIZE 1 98*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NCR_TPF_OFFSET 11 99*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NCR_TPF_SIZE 1 100*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TZQ_OFFSET 12 101*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TZQ_SIZE 1 102*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 103*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in NCFGR */ 104*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SPD_OFFSET 0 105*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SPD_SIZE 1 106*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_FD_OFFSET 1 107*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_FD_SIZE 1 108*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BIT_RATE_OFFSET 2 109*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BIT_RATE_SIZE 1 110*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_JFRAME_OFFSET 3 111*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_JFRAME_SIZE 1 112*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CAF_OFFSET 4 113*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CAF_SIZE 1 114*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NBC_OFFSET 5 115*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NBC_SIZE 1 116*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NCFGR_MTI_OFFSET 6 117*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NCFGR_MTI_SIZE 1 118*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_UNI_OFFSET 7 119*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_UNI_SIZE 1 120*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BIG_OFFSET 8 121*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BIG_SIZE 1 122*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_EAE_OFFSET 9 123*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_EAE_SIZE 1 124*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CLK_OFFSET 10 125*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CLK_SIZE 2 126*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RTY_OFFSET 12 127*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RTY_SIZE 1 128*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PAE_OFFSET 13 129*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PAE_SIZE 1 130*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RBOF_OFFSET 14 131*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RBOF_SIZE 2 132*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RLCE_OFFSET 16 133*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RLCE_SIZE 1 134*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_DRFCS_OFFSET 17 135*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_DRFCS_SIZE 1 136*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_EFRHD_OFFSET 18 137*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_EFRHD_SIZE 1 138*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IRXFCS_OFFSET 19 139*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IRXFCS_SIZE 1 140*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 141*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in NSR */ 142*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NSR_LINK_OFFSET 0 143*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_NSR_LINK_SIZE 1 144*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MDIO_OFFSET 1 145*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MDIO_SIZE 1 146*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IDLE_OFFSET 2 147*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IDLE_SIZE 1 148*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 149*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in TSR */ 150*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_UBR_OFFSET 0 151*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_UBR_SIZE 1 152*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_COL_OFFSET 1 153*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_COL_SIZE 1 154*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TSR_RLE_OFFSET 2 155*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TSR_RLE_SIZE 1 156*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TGO_OFFSET 3 157*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TGO_SIZE 1 158*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BEX_OFFSET 4 159*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BEX_SIZE 1 160*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_COMP_OFFSET 5 161*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_COMP_SIZE 1 162*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_UND_OFFSET 6 163*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_UND_SIZE 1 164*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 165*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in RSR */ 166*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BNA_OFFSET 0 167*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BNA_SIZE 1 168*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_REC_OFFSET 1 169*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_REC_SIZE 1 170*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_OVR_OFFSET 2 171*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_OVR_SIZE 1 172*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 173*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in ISR/IER/IDR/IMR */ 174*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MFD_OFFSET 0 175*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MFD_SIZE 1 176*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RCOMP_OFFSET 1 177*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RCOMP_SIZE 1 178*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RXUBR_OFFSET 2 179*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RXUBR_SIZE 1 180*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TXUBR_OFFSET 3 181*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TXUBR_SIZE 1 182*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR_TUND_OFFSET 4 183*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR_TUND_SIZE 1 184*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR_RLE_OFFSET 5 185*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR_RLE_SIZE 1 186*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TXERR_OFFSET 6 187*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TXERR_SIZE 1 188*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TCOMP_OFFSET 7 189*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TCOMP_SIZE 1 190*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR_LINK_OFFSET 9 191*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR_LINK_SIZE 1 192*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR_ROVR_OFFSET 10 193*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ISR_ROVR_SIZE 1 194*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_HRESP_OFFSET 11 195*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_HRESP_SIZE 1 196*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PFR_OFFSET 12 197*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PFR_SIZE 1 198*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PTZ_OFFSET 13 199*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PTZ_SIZE 1 200*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 201*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in MAN */ 202*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_DATA_OFFSET 0 203*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_DATA_SIZE 16 204*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CODE_OFFSET 16 205*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CODE_SIZE 2 206*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_REGA_OFFSET 18 207*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_REGA_SIZE 5 208*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PHYA_OFFSET 23 209*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_PHYA_SIZE 5 210*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RW_OFFSET 28 211*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_RW_SIZE 2 212*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SOF_OFFSET 30 213*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SOF_SIZE 2 214*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 215*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in USRIO */ 216*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MII_OFFSET 0 217*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MII_SIZE 1 218*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_EAM_OFFSET 1 219*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_EAM_SIZE 1 220*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TX_PAUSE_OFFSET 2 221*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TX_PAUSE_SIZE 1 222*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TX_PAUSE_ZERO_OFFSET 3 223*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_TX_PAUSE_ZERO_SIZE 1 224*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 225*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bitfields in WOL */ 226*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IP_OFFSET 0 227*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_IP_SIZE 16 228*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MAG_OFFSET 16 229*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MAG_SIZE 1 230*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ARP_OFFSET 17 231*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_ARP_SIZE 1 232*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA1_OFFSET 18 233*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_SA1_SIZE 1 234*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_WOL_MTI_OFFSET 19 235*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_WOL_MTI_SIZE 1 236*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 237*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Constants for CLK */ 238*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CLK_DIV8 0 239*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CLK_DIV16 1 240*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CLK_DIV32 2 241*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_CLK_DIV64 3 242*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 243*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Constants for MAN register */ 244*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MAN_SOF 1 245*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MAN_WRITE 1 246*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MAN_READ 2 247*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_MAN_CODE 2 248*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 249*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Bit manipulation macros */ 250*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BIT(name) \ 251*2439e4bfSJean-Christophe PLAGNIOL-VILLARD (1 << MACB_##name##_OFFSET) 252*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BF(name,value) \ 253*2439e4bfSJean-Christophe PLAGNIOL-VILLARD (((value) & ((1 << MACB_##name##_SIZE) - 1)) \ 254*2439e4bfSJean-Christophe PLAGNIOL-VILLARD << MACB_##name##_OFFSET) 255*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BFEXT(name,value)\ 256*2439e4bfSJean-Christophe PLAGNIOL-VILLARD (((value) >> MACB_##name##_OFFSET) \ 257*2439e4bfSJean-Christophe PLAGNIOL-VILLARD & ((1 << MACB_##name##_SIZE) - 1)) 258*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define MACB_BFINS(name,value,old) \ 259*2439e4bfSJean-Christophe PLAGNIOL-VILLARD (((old) & ~(((1 << MACB_##name##_SIZE) - 1) \ 260*2439e4bfSJean-Christophe PLAGNIOL-VILLARD << MACB_##name##_OFFSET)) \ 261*2439e4bfSJean-Christophe PLAGNIOL-VILLARD | MACB_BF(name,value)) 262*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 263*2439e4bfSJean-Christophe PLAGNIOL-VILLARD /* Register access macros */ 264*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define macb_readl(port,reg) \ 265*2439e4bfSJean-Christophe PLAGNIOL-VILLARD readl((port)->regs + MACB_##reg) 266*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #define macb_writel(port,reg,value) \ 267*2439e4bfSJean-Christophe PLAGNIOL-VILLARD writel((value), (port)->regs + MACB_##reg) 268*2439e4bfSJean-Christophe PLAGNIOL-VILLARD 269*2439e4bfSJean-Christophe PLAGNIOL-VILLARD #endif /* __DRIVERS_MACB_H__ */ 270