micrel_phy.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * include/linux/micrel_phy.h
  4. *
  5. * Micrel PHY IDs
  6. */
  7. #ifndef _MICREL_PHY_H
  8. #define _MICREL_PHY_H
  9. #define MICREL_PHY_ID_MASK 0x00fffff0
  10. #define PHY_ID_KSZ8873MLL 0x000e7237
  11. #define PHY_ID_KSZ9021 0x00221610
  12. #define PHY_ID_KSZ9021RLRN 0x00221611
  13. #define PHY_ID_KS8737 0x00221720
  14. #define PHY_ID_KSZ8021 0x00221555
  15. #define PHY_ID_KSZ8031 0x00221556
  16. #define PHY_ID_KSZ8041 0x00221510
  17. /* undocumented */
  18. #define PHY_ID_KSZ8041RNLI 0x00221537
  19. #define PHY_ID_KSZ8051 0x00221550
  20. /* same id: ks8001 Rev. A/B, and ks8721 Rev 3. */
  21. #define PHY_ID_KSZ8001 0x0022161A
  22. /* same id: KS8081, KS8091 */
  23. #define PHY_ID_KSZ8081 0x00221560
  24. #define PHY_ID_KSZ8061 0x00221570
  25. #define PHY_ID_KSZ9031 0x00221620
  26. #define PHY_ID_KSZ9131 0x00221640
  27. #define PHY_ID_LAN8814 0x00221660
  28. #define PHY_ID_LAN8804 0x00221670
  29. #define PHY_ID_KSZ886X 0x00221430
  30. #define PHY_ID_KSZ8863 0x00221435
  31. #define PHY_ID_KSZ87XX 0x00221550
  32. #define PHY_ID_KSZ9477 0x00221631
  33. /* struct phy_device dev_flags definitions */
  34. #define MICREL_PHY_50MHZ_CLK BIT(0)
  35. #define MICREL_PHY_FXEN BIT(1)
  36. #define MICREL_KSZ8_P1_ERRATA BIT(2)
  37. #define MICREL_KSZ9021_EXTREG_CTRL 0xB
  38. #define MICREL_KSZ9021_EXTREG_DATA_WRITE 0xC
  39. #define MICREL_KSZ9021_RGMII_CLK_CTRL_PAD_SCEW 0x104
  40. #define MICREL_KSZ9021_RGMII_RX_DATA_PAD_SCEW 0x105
  41. /* Device specific MII_BMCR (Reg 0) bits */
  42. /* 1 = HP Auto MDI/MDI-X mode, 0 = Microchip Auto MDI/MDI-X mode */
  43. #define KSZ886X_BMCR_HP_MDIX BIT(5)
  44. /* 1 = Force MDI (transmit on RXP/RXM pins), 0 = Normal operation
  45. * (transmit on TXP/TXM pins)
  46. */
  47. #define KSZ886X_BMCR_FORCE_MDI BIT(4)
  48. /* 1 = Disable auto MDI-X */
  49. #define KSZ886X_BMCR_DISABLE_AUTO_MDIX BIT(3)
  50. #define KSZ886X_BMCR_DISABLE_FAR_END_FAULT BIT(2)
  51. #define KSZ886X_BMCR_DISABLE_TRANSMIT BIT(1)
  52. #define KSZ886X_BMCR_DISABLE_LED BIT(0)
  53. #define KSZ886X_CTRL_MDIX_STAT BIT(4)
  54. #endif /* _MICREL_PHY_H */