1214ec6bbSwdenk /*----------------------------------------------------------------------------+ 2214ec6bbSwdenk | 3214ec6bbSwdenk | This source code has been made available to you by IBM on an AS-IS 4214ec6bbSwdenk | basis. Anyone receiving this source is licensed under IBM 5214ec6bbSwdenk | copyrights to use it in any way he or she deems fit, including 6214ec6bbSwdenk | copying it, modifying it, compiling it, and redistributing it either 7214ec6bbSwdenk | with or without modifications. No license under IBM patents or 8214ec6bbSwdenk | patent applications is to be implied by the copyright license. 9214ec6bbSwdenk | 10214ec6bbSwdenk | Any user of this software should understand that IBM cannot provide 11214ec6bbSwdenk | technical support for this software and will not be responsible for 12214ec6bbSwdenk | any consequences resulting from the use of this software. 13214ec6bbSwdenk | 14214ec6bbSwdenk | Any person who transfers this source code or any derivative work 15214ec6bbSwdenk | must include the IBM copyright notice, this paragraph, and the 16214ec6bbSwdenk | preceding two paragraphs in the transferred software. 17214ec6bbSwdenk | 18214ec6bbSwdenk | COPYRIGHT I B M CORPORATION 1999 19214ec6bbSwdenk | LICENSED MATERIAL - PROGRAM PROPERTY OF I B M 20214ec6bbSwdenk +----------------------------------------------------------------------------*/ 21214ec6bbSwdenk /*----------------------------------------------------------------------------+ 22214ec6bbSwdenk | 23214ec6bbSwdenk | File Name: miiphy.h 24214ec6bbSwdenk | 25214ec6bbSwdenk | Function: Include file defining PHY registers. 26214ec6bbSwdenk | 27214ec6bbSwdenk | Author: Mark Wisner 28214ec6bbSwdenk | 29214ec6bbSwdenk | Change Activity- 30214ec6bbSwdenk | 31214ec6bbSwdenk | Date Description of Change BY 32214ec6bbSwdenk | --------- --------------------- --- 33214ec6bbSwdenk | 04-May-99 Created MKW 34214ec6bbSwdenk | 07-Jul-99 Added full duplex support MKW 35214ec6bbSwdenk | 08-Sep-01 Tweaks gvb 36214ec6bbSwdenk | 37214ec6bbSwdenk +----------------------------------------------------------------------------*/ 38214ec6bbSwdenk #ifndef _miiphy_h_ 39214ec6bbSwdenk #define _miiphy_h_ 40214ec6bbSwdenk 41214ec6bbSwdenk 42214ec6bbSwdenk int miiphy_read(unsigned char addr, unsigned char reg, unsigned short * value); 43214ec6bbSwdenk int miiphy_write(unsigned char addr, unsigned char reg, unsigned short value); 44214ec6bbSwdenk int miiphy_info(unsigned char addr, unsigned int *oui, unsigned char *model, 45214ec6bbSwdenk unsigned char *rev); 46214ec6bbSwdenk int miiphy_reset(unsigned char addr); 47214ec6bbSwdenk int miiphy_speed(unsigned char addr); 48214ec6bbSwdenk int miiphy_duplex(unsigned char addr); 49fc3e2165Swdenk #ifdef CFG_FAULT_ECHO_LINK_DOWN 50fc3e2165Swdenk int miiphy_link(unsigned char addr); 51fc3e2165Swdenk #endif 52214ec6bbSwdenk 53214ec6bbSwdenk 54214ec6bbSwdenk /* phy seed setup */ 55214ec6bbSwdenk #define AUTO 99 56*855a496fSwdenk #define _1000BASET 1000 57214ec6bbSwdenk #define _100BASET 100 58214ec6bbSwdenk #define _10BASET 10 59214ec6bbSwdenk #define HALF 22 60214ec6bbSwdenk #define FULL 44 61214ec6bbSwdenk 62214ec6bbSwdenk /* phy register offsets */ 63214ec6bbSwdenk #define PHY_BMCR 0x00 64214ec6bbSwdenk #define PHY_BMSR 0x01 65214ec6bbSwdenk #define PHY_PHYIDR1 0x02 66214ec6bbSwdenk #define PHY_PHYIDR2 0x03 67214ec6bbSwdenk #define PHY_ANAR 0x04 68214ec6bbSwdenk #define PHY_ANLPAR 0x05 69214ec6bbSwdenk #define PHY_ANER 0x06 70214ec6bbSwdenk #define PHY_ANNPTR 0x07 71*855a496fSwdenk #define PHY_ANLPNP 0x08 72*855a496fSwdenk #define PHY_1000BTCR 0x09 73*855a496fSwdenk #define PHY_1000BTSR 0x0A 74214ec6bbSwdenk #define PHY_PHYSTS 0x10 75214ec6bbSwdenk #define PHY_MIPSCR 0x11 76214ec6bbSwdenk #define PHY_MIPGSR 0x12 77214ec6bbSwdenk #define PHY_DCR 0x13 78214ec6bbSwdenk #define PHY_FCSCR 0x14 79214ec6bbSwdenk #define PHY_RECR 0x15 80214ec6bbSwdenk #define PHY_PCSR 0x16 81214ec6bbSwdenk #define PHY_LBR 0x17 82214ec6bbSwdenk #define PHY_10BTSCR 0x18 83214ec6bbSwdenk #define PHY_PHYCTRL 0x19 84214ec6bbSwdenk 85214ec6bbSwdenk /* PHY BMCR */ 86214ec6bbSwdenk #define PHY_BMCR_RESET 0x8000 87214ec6bbSwdenk #define PHY_BMCR_LOOP 0x4000 88214ec6bbSwdenk #define PHY_BMCR_100MB 0x2000 89214ec6bbSwdenk #define PHY_BMCR_AUTON 0x1000 90214ec6bbSwdenk #define PHY_BMCR_POWD 0x0800 91214ec6bbSwdenk #define PHY_BMCR_ISO 0x0400 92214ec6bbSwdenk #define PHY_BMCR_RST_NEG 0x0200 93214ec6bbSwdenk #define PHY_BMCR_DPLX 0x0100 94214ec6bbSwdenk #define PHY_BMCR_COL_TST 0x0080 95214ec6bbSwdenk 96214ec6bbSwdenk /* phy BMSR */ 97214ec6bbSwdenk #define PHY_BMSR_100T4 0x8000 98214ec6bbSwdenk #define PHY_BMSR_100TXF 0x4000 99214ec6bbSwdenk #define PHY_BMSR_100TXH 0x2000 100214ec6bbSwdenk #define PHY_BMSR_10TF 0x1000 101214ec6bbSwdenk #define PHY_BMSR_10TH 0x0800 102214ec6bbSwdenk #define PHY_BMSR_PRE_SUP 0x0040 103214ec6bbSwdenk #define PHY_BMSR_AUTN_COMP 0x0020 104214ec6bbSwdenk #define PHY_BMSR_RF 0x0010 105214ec6bbSwdenk #define PHY_BMSR_AUTN_ABLE 0x0008 106214ec6bbSwdenk #define PHY_BMSR_LS 0x0004 107214ec6bbSwdenk #define PHY_BMSR_JD 0x0002 108214ec6bbSwdenk #define PHY_BMSR_EXT 0x0001 109214ec6bbSwdenk 110214ec6bbSwdenk /*phy ANLPAR */ 111214ec6bbSwdenk #define PHY_ANLPAR_NP 0x8000 112214ec6bbSwdenk #define PHY_ANLPAR_ACK 0x4000 113214ec6bbSwdenk #define PHY_ANLPAR_RF 0x2000 114214ec6bbSwdenk #define PHY_ANLPAR_T4 0x0200 115214ec6bbSwdenk #define PHY_ANLPAR_TXFD 0x0100 116214ec6bbSwdenk #define PHY_ANLPAR_TX 0x0080 117214ec6bbSwdenk #define PHY_ANLPAR_10FD 0x0040 118214ec6bbSwdenk #define PHY_ANLPAR_10 0x0020 119214ec6bbSwdenk #define PHY_ANLPAR_100 0x0380 /* we can run at 100 */ 120*855a496fSwdenk 121*855a496fSwdenk /* PHY_1000BTSR */ 122*855a496fSwdenk #define PHY_1000BTSR_MSCF 0x8000 123*855a496fSwdenk #define PHY_1000BTSR_MSCR 0x4000 124*855a496fSwdenk #define PHY_1000BTSR_LRS 0x2000 125*855a496fSwdenk #define PHY_1000BTSR_RRS 0x1000 126*855a496fSwdenk #define PHY_1000BTSR_1000FD 0x0800 127*855a496fSwdenk #define PHY_1000BTSR_1000HD 0x0400 128*855a496fSwdenk 129214ec6bbSwdenk #endif 130