ks8721.h 2.2 KB

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