0038-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. From 60efe35257b063ce584968f9f80b437030ce6ba6 Mon Sep 17 00:00:00 2001
  2. From: David Bauer <[email protected]>
  3. Date: Mon, 18 Mar 2019 00:54:06 +0100
  4. Subject: [PATCH] MIPS: ath79: add missing QCA955x GMAC registers
  5. This adds missing GMAC register definitions for the Qualcomm Atheros
  6. QCA955X series MIPS SoCs.
  7. They originate from the platforms U-Boot code and the AVM FRITZ!WLAN
  8. Repeater 450E's GPL tarball.
  9. Signed-off-by: David Bauer <[email protected]>
  10. ---
  11. .../mips/include/asm/mach-ath79/ar71xx_regs.h | 54 +++++++++++++++++++
  12. 1 file changed, 54 insertions(+)
  13. --- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
  14. +++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
  15. @@ -1246,7 +1246,12 @@
  16. */
  17. #define QCA955X_GMAC_REG_ETH_CFG 0x00
  18. +#define QCA955X_GMAC_REG_SGMII_RESET 0x14
  19. #define QCA955X_GMAC_REG_SGMII_SERDES 0x18
  20. +#define QCA955X_GMAC_REG_MR_AN_CONTROL 0x1c
  21. +#define QCA955X_GMAC_REG_MR_AN_STATUS 0x20
  22. +#define QCA955X_GMAC_REG_SGMII_CONFIG 0x34
  23. +#define QCA955X_GMAC_REG_SGMII_DEBUG 0x58
  24. #define QCA955X_ETH_CFG_RGMII_EN BIT(0)
  25. #define QCA955X_ETH_CFG_MII_GE0 BIT(1)
  26. @@ -1268,9 +1273,58 @@
  27. #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3
  28. #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20
  29. +#define QCA955X_SGMII_RESET_RX_CLK_N_RESET 0
  30. +#define QCA955X_SGMII_RESET_RX_CLK_N BIT(0)
  31. +#define QCA955X_SGMII_RESET_TX_CLK_N BIT(1)
  32. +#define QCA955X_SGMII_RESET_RX_125M_N BIT(2)
  33. +#define QCA955X_SGMII_RESET_TX_125M_N BIT(3)
  34. +#define QCA955X_SGMII_RESET_HW_RX_125M_N BIT(4)
  35. +
  36. #define QCA955X_SGMII_SERDES_LOCK_DETECT_STATUS BIT(15)
  37. #define QCA955X_SGMII_SERDES_RES_CALIBRATION_SHIFT 23
  38. #define QCA955X_SGMII_SERDES_RES_CALIBRATION_MASK 0xf
  39. +
  40. +#define QCA955X_MR_AN_CONTROL_SPEED_SEL1 BIT(6)
  41. +#define QCA955X_MR_AN_CONTROL_DUPLEX_MODE BIT(8)
  42. +#define QCA955X_MR_AN_CONTROL_RESTART_AN BIT(9)
  43. +#define QCA955X_MR_AN_CONTROL_POWER_DOWN BIT(11)
  44. +#define QCA955X_MR_AN_CONTROL_AN_ENABLE BIT(12)
  45. +#define QCA955X_MR_AN_CONTROL_SPEED_SEL0 BIT(13)
  46. +#define QCA955X_MR_AN_CONTROL_LOOPBACK BIT(14)
  47. +#define QCA955X_MR_AN_CONTROL_PHY_RESET BIT(15)
  48. +
  49. +#define QCA955X_MR_AN_STATUS_EXT_CAP BIT(0)
  50. +#define QCA955X_MR_AN_STATUS_LINK_UP BIT(2)
  51. +#define QCA955X_MR_AN_STATUS_AN_ABILITY BIT(3)
  52. +#define QCA955X_MR_AN_STATUS_REMOTE_FAULT BIT(4)
  53. +#define QCA955X_MR_AN_STATUS_AN_COMPLETE BIT(5)
  54. +#define QCA955X_MR_AN_STATUS_NO_PREAMBLE BIT(6)
  55. +#define QCA955X_MR_AN_STATUS_BASE_PAGE BIT(7)
  56. +
  57. +#define QCA955X_SGMII_CONFIG_MODE_CTRL_SHIFT 0
  58. +#define QCA955X_SGMII_CONFIG_MODE_CTRL_MASK 0x7
  59. +#define QCA955X_SGMII_CONFIG_ENABLE_SGMII_TX_PAUSE BIT(3)
  60. +#define QCA955X_SGMII_CONFIG_MR_REG4_CHANGED BIT(4)
  61. +#define QCA955X_SGMII_CONFIG_FORCE_SPEED BIT(5)
  62. +#define QCA955X_SGMII_CONFIG_SPEED_SHIFT 6
  63. +#define QCA955X_SGMII_CONFIG_SPEED_MASK 0xc0
  64. +#define QCA955X_SGMII_CONFIG_REMOTE_PHY_LOOPBACK BIT(8)
  65. +#define QCA955X_SGMII_CONFIG_NEXT_PAGE_LOADED BIT(9)
  66. +#define QCA955X_SGMII_CONFIG_MDIO_ENABLE BIT(10)
  67. +#define QCA955X_SGMII_CONFIG_MDIO_PULSE BIT(11)
  68. +#define QCA955X_SGMII_CONFIG_MDIO_COMPLETE BIT(12)
  69. +#define QCA955X_SGMII_CONFIG_PRBS_ENABLE BIT(13)
  70. +#define QCA955X_SGMII_CONFIG_BERT_ENABLE BIT(14)
  71. +
  72. +#define QCA955X_SGMII_DEBUG_TX_STATE_MASK 0xff
  73. +#define QCA955X_SGMII_DEBUG_TX_STATE_SHIFT 0
  74. +#define QCA955X_SGMII_DEBUG_RX_STATE_MASK 0xff00
  75. +#define QCA955X_SGMII_DEBUG_RX_STATE_SHIFT 8
  76. +#define QCA955X_SGMII_DEBUG_RX_SYNC_STATE_MASK 0xff0000
  77. +#define QCA955X_SGMII_DEBUG_RX_SYNC_STATE_SHIFT 16
  78. +#define QCA955X_SGMII_DEBUG_ARB_STATE_MASK 0xf000000
  79. +#define QCA955X_SGMII_DEBUG_ARB_STATE_SHIFT 24
  80. +
  81. /*
  82. * QCA956X GMAC Interface
  83. */