12cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning /*************************************************************************** 22cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * 32cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * Copyright (C) 2007,2008 SMSC 42cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * 52cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * This program is free software; you can redistribute it and/or 62cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * modify it under the terms of the GNU General Public License 72cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * as published by the Free Software Foundation; either version 2 82cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * of the License, or (at your option) any later version. 92cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * 102cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * This program is distributed in the hope that it will be useful, 112cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * but WITHOUT ANY WARRANTY; without even the implied warranty of 122cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 132cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * GNU General Public License for more details. 142cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * 152cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * You should have received a copy of the GNU General Public License 160ab75ae81da249988bf3c7a38e0a48d4b9be1e0cJeff Kirsher * along with this program; if not, see <http://www.gnu.org/licenses/>. 172cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning * 182cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning *************************************************************************** 192cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning */ 202cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 212cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#ifndef _SMSC9420_H 222cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define _SMSC9420_H 232cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 242cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TX_RING_SIZE (32) 252cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RX_RING_SIZE (128) 262cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 272cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/* interrupt deassertion in multiples of 10us */ 282cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_DEAS_TIME (50) 292cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 302cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define NAPI_WEIGHT (64) 312cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define SMSC_BAR (3) 322cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 332cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#ifdef __BIG_ENDIAN 342cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/* Register set is duplicated for BE at an offset of 0x200 */ 352cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define LAN9420_CPSR_ENDIAN_OFFSET (0x200) 362cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#else 372cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define LAN9420_CPSR_ENDIAN_OFFSET (0) 382cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#endif 392cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 402cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define PCI_VENDOR_ID_9420 (0x1055) 412cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define PCI_DEVICE_ID_9420 (0xE420) 422cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 432cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define LAN_REGISTER_EXTENT (0x400) 442cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 45012b215ceb55aa38826f091cecfd373cc9bbb05bSteve Glendinning#define SMSC9420_EEPROM_SIZE ((u32)11) 46196b7e1b9cca9e187bb61fa7d60f04f4ab2c0592Steve Glendinning#define SMSC9420_EEPROM_MAGIC (0x9420) 47012b215ceb55aa38826f091cecfd373cc9bbb05bSteve Glendinning 482cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define PKT_BUF_SZ (VLAN_ETH_FRAME_LEN + NET_IP_ALIGN + 4) 492cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 502cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/***********************************************/ 512cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/* DMA Controller Control and Status Registers */ 522cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/***********************************************/ 532cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE (0x00) 542cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE_SWR_ (BIT(0)) 552cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE_DMA_BURST_LENGTH_1 (BIT(8)) 562cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE_DMA_BURST_LENGTH_2 (BIT(9)) 572cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE_DMA_BURST_LENGTH_4 (BIT(10)) 582cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE_DMA_BURST_LENGTH_8 (BIT(11)) 592cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE_DMA_BURST_LENGTH_16 (BIT(12)) 602cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE_DMA_BURST_LENGTH_32 (BIT(13)) 612cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_MODE_DBO_ (BIT(20)) 622cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 632cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TX_POLL_DEMAND (0x04) 642cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 652cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RX_POLL_DEMAND (0x08) 662cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 672cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RX_BASE_ADDR (0x0C) 682cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 692cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TX_BASE_ADDR (0x10) 702cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 712cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STATUS (0x14) 722cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_TS_ (7 << 20) 732cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_RS_ (7 << 17) 742cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_NIS_ (BIT(16)) 752cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_AIS_ (BIT(15)) 762cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_RWT_ (BIT(9)) 772cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_RXPS_ (BIT(8)) 782cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_RXBU_ (BIT(7)) 792cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_RX_ (BIT(6)) 802cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_TXUNF_ (BIT(5)) 812cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_TXBU_ (BIT(2)) 822cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_TXPS_ (BIT(1)) 832cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_STS_TX_ (BIT(0)) 842cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 852cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_CONTROL (0x18) 862cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_CONTROL_TTM_ (BIT(22)) 872cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_CONTROL_SF_ (BIT(21)) 882cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_CONTROL_ST_ (BIT(13)) 892cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_CONTROL_OSF_ (BIT(2)) 902cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_CONTROL_SR_ (BIT(1)) 912cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 922cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA (0x1C) 932cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_NIS_ (BIT(16)) 942cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_AIS_ (BIT(15)) 952cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_RWT_ (BIT(9)) 962cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_RXPS_ (BIT(8)) 972cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_RXBU_ (BIT(7)) 982cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_RX_ (BIT(6)) 992cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_TXBU_ (BIT(2)) 1002cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_TXPS_ (BIT(1)) 1012cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define DMAC_INTR_ENA_TX_ (BIT(0)) 1022cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1032cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MISS_FRAME_CNTR (0x20) 1042cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1052cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TX_BUFF_ADDR (0x50) 1062cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1072cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RX_BUFF_ADDR (0x54) 1082cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1092cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/* Transmit Descriptor Bit Defs */ 1102cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_OWN_ (0x80000000) 1112cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_ERROR_SUMMARY_ (0x00008000) 1122cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_LOSS_OF_CARRIER_ (0x00000800) 1132cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_NO_CARRIER_ (0x00000400) 1142cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_LATE_COLLISION_ (0x00000200) 1152cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_EXCESSIVE_COLLISIONS_ (0x00000100) 1162cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_HEARTBEAT_FAIL_ (0x00000080) 1172cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_COLLISION_COUNT_MASK_ (0x00000078) 1182cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_COLLISION_COUNT_SHFT_ (3) 1192cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_EXCESSIVE_DEFERRAL_ (0x00000004) 1202cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES0_DEFERRED_ (0x00000001) 1212cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1222cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES1_IC_ 0x80000000 1232cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES1_LS_ 0x40000000 1242cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES1_FS_ 0x20000000 1252cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES1_TXCSEN_ 0x08000000 1262cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES1_TER_ (BIT(25)) 1272cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TDES1_TCH_ 0x01000000 1282cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1292cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/* Receive Descriptor 0 Bit Defs */ 1302cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_OWN_ (0x80000000) 1312cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_FRAME_LENGTH_MASK_ (0x07FF0000) 1322cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_FRAME_LENGTH_SHFT_ (16) 1332cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_ERROR_SUMMARY_ (0x00008000) 1342cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_DESCRIPTOR_ERROR_ (0x00004000) 1352cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_LENGTH_ERROR_ (0x00001000) 1362cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_RUNT_FRAME_ (0x00000800) 1372cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_MULTICAST_FRAME_ (0x00000400) 1382cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_FIRST_DESCRIPTOR_ (0x00000200) 1392cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_LAST_DESCRIPTOR_ (0x00000100) 1402cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_FRAME_TOO_LONG_ (0x00000080) 1412cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_COLLISION_SEEN_ (0x00000040) 1422cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_FRAME_TYPE_ (0x00000020) 1432cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_WATCHDOG_TIMEOUT_ (0x00000010) 1442cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_MII_ERROR_ (0x00000008) 1452cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_DRIBBLING_BIT_ (0x00000004) 1462cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES0_CRC_ERROR_ (0x00000002) 1472cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1482cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/* Receive Descriptor 1 Bit Defs */ 1492cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RDES1_RER_ (0x02000000) 1502cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1512cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/***********************************************/ 1522cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/* MAC Control and Status Registers */ 1532cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/***********************************************/ 1542cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR (0x80) 1552cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_RXALL_ (0x80000000) 1562cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_DIS_RXOWN_ (0x00800000) 1572cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_LOOPBK_ (0x00200000) 1582cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_FDPX_ (0x00100000) 1592cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_MCPAS_ (0x00080000) 1602cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_PRMS_ (0x00040000) 1612cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_INVFILT_ (0x00020000) 1622cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_PASSBAD_ (0x00010000) 1632cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_HFILT_ (0x00008000) 1642cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_HPFILT_ (0x00002000) 1652cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_LCOLL_ (0x00001000) 1662cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_DIS_BCAST_ (0x00000800) 1672cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_DIS_RTRY_ (0x00000400) 1682cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_PADSTR_ (0x00000100) 1692cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_BOLMT_MSK (0x000000C0) 1702cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_MFCHK_ (0x00000020) 1712cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_TXEN_ (0x00000008) 1722cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MAC_CR_RXEN_ (0x00000004) 1732cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1742cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define ADDRH (0x84) 1752cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1762cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define ADDRL (0x88) 1772cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1782cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define HASHH (0x8C) 1792cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1802cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define HASHL (0x90) 1812cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1822cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_ACCESS (0x94) 1832cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_ACCESS_MII_BUSY_ (0x00000001) 1842cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_ACCESS_MII_WRITE_ (0x00000002) 1852cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_ACCESS_MII_READ_ (0x00000000) 1862cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_ACCESS_INDX_MSK_ (0x000007C0) 1872cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_ACCESS_PHYADDR_MSK_ (0x0000F8C0) 1882cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_ACCESS_INDX_SHFT_CNT (6) 1892cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_ACCESS_PHYADDR_SHFT_CNT (11) 1902cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1912cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define MII_DATA (0x98) 1922cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1932cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define FLOW (0x9C) 1942cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1952cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define VLAN1 (0xA0) 1962cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1972cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define VLAN2 (0xA4) 1982cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 1992cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define WUFF (0xA8) 2002cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2012cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define WUCSR (0xAC) 2022cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2032cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define COE_CR (0xB0) 2042cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define TX_COE_EN (0x00010000) 2052cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RX_COE_MODE (0x00000002) 2062cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define RX_COE_EN (0x00000001) 2072cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2082cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/***********************************************/ 2092cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/* System Control and Status Registers */ 2102cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning/***********************************************/ 2112cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define ID_REV (0xC0) 2122cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2132cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CTL (0xC4) 2142cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CTL_SW_INT_EN_ (0x00008000) 2152cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CTL_SBERR_INT_EN_ (1 << 12) 2162cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CTL_MBERR_INT_EN_ (1 << 13) 2172cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CTL_GPT_INT_EN_ (0x00000008) 2182cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CTL_PHY_INT_EN_ (0x00000004) 2192cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CTL_WAKE_INT_EN_ (0x00000002) 2202cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2212cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_STAT (0xC8) 2222cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_STAT_SW_INT_ (1 << 15) 2232cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_STAT_MBERR_INT_ (1 << 13) 2242cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_STAT_SBERR_INT_ (1 << 12) 2252cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_STAT_GPT_INT_ (1 << 3) 2262cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_STAT_PHY_INT_ (0x00000004) 2272cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_STAT_WAKE_INT_ (0x00000002) 2282cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_STAT_DMAC_INT_ (0x00000001) 2292cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2302cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CFG (0xCC) 2312cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CFG_IRQ_INT_ (0x00080000) 2322cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CFG_IRQ_EN_ (0x00040000) 2332cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CFG_INT_DEAS_CLR_ (0x00000200) 2342cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define INT_CFG_INT_DEAS_MASK (0x000000FF) 2352cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2362cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define GPIO_CFG (0xD0) 2372cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define GPIO_CFG_LED_3_ (0x40000000) 2382cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define GPIO_CFG_LED_2_ (0x20000000) 2392cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define GPIO_CFG_LED_1_ (0x10000000) 240012b215ceb55aa38826f091cecfd373cc9bbb05bSteve Glendinning#define GPIO_CFG_EEPR_EN_ (0x00700000) 2412cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2422cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define GPT_CFG (0xD4) 2432cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define GPT_CFG_TIMER_EN_ (0x20000000) 2442cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2452cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define GPT_CNT (0xD8) 2462cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2472cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_CFG (0xDC) 2482cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_CFG_RXTXWEIGHT_1_1 (0 << 25) 2492cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_CFG_RXTXWEIGHT_2_1 (1 << 25) 2502cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_CFG_RXTXWEIGHT_3_1 (2 << 25) 2512cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define BUS_CFG_RXTXWEIGHT_4_1 (3 << 25) 2522cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2532cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define PMT_CTRL (0xE0) 2542cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2552cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define FREE_RUN (0xF4) 2562cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2572cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD (0xF8) 2582cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_BUSY_ (0x80000000) 2592cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_ (0x70000000) 2602cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_READ_ (0x00000000) 2612cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_EWDS_ (0x10000000) 2622cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_EWEN_ (0x20000000) 2632cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_WRITE_ (0x30000000) 2642cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_WRAL_ (0x40000000) 2652cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_ERASE_ (0x50000000) 2662cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_ERAL_ (0x60000000) 2672cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_CMD_RELOAD_ (0x70000000) 2682cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_TIMEOUT_ (0x00000200) 2692cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_MAC_ADDR_LOADED_ (0x00000100) 2702cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_CMD_EPC_ADDR_ (0x000000FF) 2712cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2722cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_DATA (0xFC) 2732cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#define E2P_DATA_EEPROM_DATA_ (0x000000FF) 2742cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning 2752cb377283f3469d66f0ea7358015abfe8366e5d0Steve Glendinning#endif /* _SMSC9420_H */ 276