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); 49*fc3e2165Swdenk #ifdef CFG_FAULT_ECHO_LINK_DOWN 50*fc3e2165Swdenk int miiphy_link(unsigned char addr); 51*fc3e2165Swdenk #endif 52214ec6bbSwdenk 53214ec6bbSwdenk 54214ec6bbSwdenk /* phy seed setup */ 55214ec6bbSwdenk #define AUTO 99 56214ec6bbSwdenk #define _100BASET 100 57214ec6bbSwdenk #define _10BASET 10 58214ec6bbSwdenk #define HALF 22 59214ec6bbSwdenk #define FULL 44 60214ec6bbSwdenk 61214ec6bbSwdenk /* phy register offsets */ 62214ec6bbSwdenk #define PHY_BMCR 0x00 63214ec6bbSwdenk #define PHY_BMSR 0x01 64214ec6bbSwdenk #define PHY_PHYIDR1 0x02 65214ec6bbSwdenk #define PHY_PHYIDR2 0x03 66214ec6bbSwdenk #define PHY_ANAR 0x04 67214ec6bbSwdenk #define PHY_ANLPAR 0x05 68214ec6bbSwdenk #define PHY_ANER 0x06 69214ec6bbSwdenk #define PHY_ANNPTR 0x07 70214ec6bbSwdenk #define PHY_PHYSTS 0x10 71214ec6bbSwdenk #define PHY_MIPSCR 0x11 72214ec6bbSwdenk #define PHY_MIPGSR 0x12 73214ec6bbSwdenk #define PHY_DCR 0x13 74214ec6bbSwdenk #define PHY_FCSCR 0x14 75214ec6bbSwdenk #define PHY_RECR 0x15 76214ec6bbSwdenk #define PHY_PCSR 0x16 77214ec6bbSwdenk #define PHY_LBR 0x17 78214ec6bbSwdenk #define PHY_10BTSCR 0x18 79214ec6bbSwdenk #define PHY_PHYCTRL 0x19 80214ec6bbSwdenk 81214ec6bbSwdenk /* PHY BMCR */ 82214ec6bbSwdenk #define PHY_BMCR_RESET 0x8000 83214ec6bbSwdenk #define PHY_BMCR_LOOP 0x4000 84214ec6bbSwdenk #define PHY_BMCR_100MB 0x2000 85214ec6bbSwdenk #define PHY_BMCR_AUTON 0x1000 86214ec6bbSwdenk #define PHY_BMCR_POWD 0x0800 87214ec6bbSwdenk #define PHY_BMCR_ISO 0x0400 88214ec6bbSwdenk #define PHY_BMCR_RST_NEG 0x0200 89214ec6bbSwdenk #define PHY_BMCR_DPLX 0x0100 90214ec6bbSwdenk #define PHY_BMCR_COL_TST 0x0080 91214ec6bbSwdenk 92214ec6bbSwdenk /* phy BMSR */ 93214ec6bbSwdenk #define PHY_BMSR_100T4 0x8000 94214ec6bbSwdenk #define PHY_BMSR_100TXF 0x4000 95214ec6bbSwdenk #define PHY_BMSR_100TXH 0x2000 96214ec6bbSwdenk #define PHY_BMSR_10TF 0x1000 97214ec6bbSwdenk #define PHY_BMSR_10TH 0x0800 98214ec6bbSwdenk #define PHY_BMSR_PRE_SUP 0x0040 99214ec6bbSwdenk #define PHY_BMSR_AUTN_COMP 0x0020 100214ec6bbSwdenk #define PHY_BMSR_RF 0x0010 101214ec6bbSwdenk #define PHY_BMSR_AUTN_ABLE 0x0008 102214ec6bbSwdenk #define PHY_BMSR_LS 0x0004 103214ec6bbSwdenk #define PHY_BMSR_JD 0x0002 104214ec6bbSwdenk #define PHY_BMSR_EXT 0x0001 105214ec6bbSwdenk 106214ec6bbSwdenk /*phy ANLPAR */ 107214ec6bbSwdenk #define PHY_ANLPAR_NP 0x8000 108214ec6bbSwdenk #define PHY_ANLPAR_ACK 0x4000 109214ec6bbSwdenk #define PHY_ANLPAR_RF 0x2000 110214ec6bbSwdenk #define PHY_ANLPAR_T4 0x0200 111214ec6bbSwdenk #define PHY_ANLPAR_TXFD 0x0100 112214ec6bbSwdenk #define PHY_ANLPAR_TX 0x0080 113214ec6bbSwdenk #define PHY_ANLPAR_10FD 0x0040 114214ec6bbSwdenk #define PHY_ANLPAR_10 0x0020 115214ec6bbSwdenk #define PHY_ANLPAR_100 0x0380 /* we can run at 100 */ 116214ec6bbSwdenk #endif 117