ks8721.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * NOTE: MICREL ethernet Physical layer
  3. *
  4. * Version: KS8721.h
  5. *
  6. * Authors: Eric Benard (based on dm9161.h)
  7. *
  8. * This program is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU General Public License
  10. * as published by the Free Software Foundation; either version
  11. * 2 of the License, or (at your option) any later version.
  12. */
  13. /* MICREL PHYSICAL LAYER TRANSCEIVER KS8721 */
  14. #define KS8721_BMCR 0
  15. #define KS8721_BMSR 1
  16. #define KS8721_PHYID1 2
  17. #define KS8721_PHYID2 3
  18. #define KS8721_ANAR 4
  19. #define KS8721_ANLPAR 5
  20. #define KS8721_ANER 6
  21. #define KS8721_RECR 15
  22. #define KS8721_MDINTR 27
  23. #define KS8721_100BT 31
  24. /* --Bit definitions: KS8721_BMCR */
  25. #define KS8721_RESET (1 << 15)
  26. #define KS8721_LOOPBACK (1 << 14)
  27. #define KS8721_SPEED_SELECT (1 << 13)
  28. #define KS8721_AUTONEG (1 << 12)
  29. #define KS8721_POWER_DOWN (1 << 11)
  30. #define KS8721_ISOLATE (1 << 10)
  31. #define KS8721_RESTART_AUTONEG (1 << 9)
  32. #define KS8721_DUPLEX_MODE (1 << 8)
  33. #define KS8721_COLLISION_TEST (1 << 7)
  34. #define KS8721_DISABLE (1 << 0)
  35. /*--Bit definitions: KS8721_BMSR */
  36. #define KS8721_100BASE_T4 (1 << 15)
  37. #define KS8721_100BASE_TX_FD (1 << 14)
  38. #define KS8721_100BASE_T4_HD (1 << 13)
  39. #define KS8721_10BASE_T_FD (1 << 12)
  40. #define KS8721_10BASE_T_HD (1 << 11)
  41. #define KS8721_MF_PREAMB_SUPPR (1 << 6)
  42. #define KS8721_AUTONEG_COMP (1 << 5)
  43. #define KS8721_REMOTE_FAULT (1 << 4)
  44. #define KS8721_AUTONEG_ABILITY (1 << 3)
  45. #define KS8721_LINK_STATUS (1 << 2)
  46. #define KS8721_JABBER_DETECT (1 << 1)
  47. #define KS8721_EXTEND_CAPAB (1 << 0)
  48. /*--Bit definitions: KS8721_PHYID */
  49. #define KS8721_PHYID_OUI 0x0885
  50. #define KS8721_LSB_MASK 0x3F
  51. #define KS8721BL_MODEL 0x21
  52. #define KS8721_MODELMASK 0x3F0
  53. #define KS8721BL_REV 0x9
  54. #define KS8721_REVMASK 0xF
  55. /*--Bit definitions: KS8721_ANAR, KS8721_ANLPAR */
  56. #define KS8721_NP (1 << 15)
  57. #define KS8721_ACK (1 << 14)
  58. #define KS8721_RF (1 << 13)
  59. #define KS8721_PAUSE (1 << 10)
  60. #define KS8721_T4 (1 << 9)
  61. #define KS8721_TX_FDX (1 << 8)
  62. #define KS8721_TX_HDX (1 << 7)
  63. #define KS8721_10_FDX (1 << 6)
  64. #define KS8721_10_HDX (1 << 5)
  65. #define KS8721_AN_IEEE_802_3 0x0001
  66. /****************** function prototypes **********************/
  67. unsigned int ks8721_isphyconnected(AT91PS_EMAC p_mac);
  68. unsigned char ks8721_getlinkspeed(AT91PS_EMAC p_mac);
  69. unsigned char ks8721_autonegotiate(AT91PS_EMAC p_mac, int *status);
  70. unsigned char ks8721_initphy(AT91PS_EMAC p_mac);