net/mlx5: remove redundant flag in device config
[dpdk.git] / drivers / common / cnxk / roc_bphy_cgx_priv.h
index cb59cac..6a6b5a7 100644 (file)
@@ -5,11 +5,70 @@
 #ifndef _ROC_BPHY_CGX_PRIV_H_
 #define _ROC_BPHY_CGX_PRIV_H_
 
+/* LINK speed types */
+enum eth_link_speed {
+       ETH_LINK_NONE,
+       ETH_LINK_10M,
+       ETH_LINK_100M,
+       ETH_LINK_1G,
+       ETH_LINK_2HG, /* 2.5 Gbps */
+       ETH_LINK_5G,
+       ETH_LINK_10G,
+       ETH_LINK_20G,
+       ETH_LINK_25G,
+       ETH_LINK_40G,
+       ETH_LINK_50G,
+       ETH_LINK_80G,
+       ETH_LINK_100G,
+       ETH_LINK_MAX,
+};
+
+/* Supported LINK MODE enums
+ * Each link mode is a bit mask of these
+ * enums which are represented as bits
+ */
+enum eth_mode {
+       ETH_MODE_SGMII_BIT = 0,
+       ETH_MODE_1000_BASEX_BIT,
+       ETH_MODE_QSGMII_BIT,
+       ETH_MODE_10G_C2C_BIT,
+       ETH_MODE_10G_C2M_BIT,
+       ETH_MODE_10G_KR_BIT, /* = 5 */
+       ETH_MODE_20G_C2C_BIT,
+       ETH_MODE_25G_C2C_BIT,
+       ETH_MODE_25G_C2M_BIT,
+       ETH_MODE_25G_2_C2C_BIT,
+       ETH_MODE_25G_CR_BIT, /* = 10 */
+       ETH_MODE_25G_KR_BIT,
+       ETH_MODE_40G_C2C_BIT,
+       ETH_MODE_40G_C2M_BIT,
+       ETH_MODE_40G_CR4_BIT,
+       ETH_MODE_40G_KR4_BIT, /* = 15 */
+       ETH_MODE_40GAUI_C2C_BIT,
+       ETH_MODE_50G_C2C_BIT,
+       ETH_MODE_50G_C2M_BIT,
+       ETH_MODE_50G_4_C2C_BIT,
+       ETH_MODE_50G_CR_BIT, /* = 20 */
+       ETH_MODE_50G_KR_BIT,
+       ETH_MODE_80GAUI_C2C_BIT,
+       ETH_MODE_100G_C2C_BIT,
+       ETH_MODE_100G_C2M_BIT,
+       ETH_MODE_100G_CR4_BIT, /* = 25 */
+       ETH_MODE_100G_KR4_BIT,
+       ETH_MODE_MAX_BIT /* = 27 */
+};
+
 /* REQUEST ID types. Input to firmware */
 enum eth_cmd_id {
        ETH_CMD_GET_LINK_STS = 4,
+       ETH_CMD_LINK_BRING_UP = 5,
+       ETH_CMD_LINK_BRING_DOWN = 6,
        ETH_CMD_INTERNAL_LBK = 7,
+       ETH_CMD_MODE_CHANGE = 11, /* hot plug support */
        ETH_CMD_INTF_SHUTDOWN = 12,
+       ETH_CMD_GET_SUPPORTED_FEC = 18,
+       ETH_CMD_SET_FEC = 19,
+       ETH_CMD_SET_PTP_MODE = 34,
 };
 
 /* event types - cause of interrupt */
@@ -42,7 +101,6 @@ enum eth_cmd_own {
 #define SCR0_ETH_EVT_STS_S_ID      GENMASK_ULL(8, 3)
 
 /* struct eth_lnk_sts_s */
-#define SCR0_ETH_LNK_STS_S_ERR_TYPE    GENMASK_ULL(24, 15)
 #define SCR0_ETH_LNK_STS_S_LINK_UP     BIT_ULL(9)
 #define SCR0_ETH_LNK_STS_S_FULL_DUPLEX BIT_ULL(10)
 #define SCR0_ETH_LNK_STS_S_SPEED       GENMASK_ULL(14, 11)
@@ -52,6 +110,9 @@ enum eth_cmd_own {
 #define SCR0_ETH_LNK_STS_S_LMAC_TYPE   GENMASK_ULL(35, 28)
 #define SCR0_ETH_LNK_STS_S_MODE               GENMASK_ULL(43, 36)
 
+/* struct eth_fec_types_s */
+#define SCR0_ETH_FEC_TYPES_S_FEC GENMASK_ULL(10, 9)
+
 /* scratchx(1) CSR used for non-secure SW->ATF communication
  * This CSR acts as a command register
  */
@@ -62,6 +123,16 @@ enum eth_cmd_own {
 /* struct eth_ctl_args */
 #define SCR1_ETH_CTL_ARGS_ENABLE BIT_ULL(8)
 
+/* struct eth_mode_change_args */
+#define SCR1_ETH_MODE_CHANGE_ARGS_SPEED         GENMASK_ULL(11, 8)
+#define SCR1_ETH_MODE_CHANGE_ARGS_DUPLEX BIT_ULL(12)
+#define SCR1_ETH_MODE_CHANGE_ARGS_AN    BIT_ULL(13)
+#define SCR1_ETH_MODE_CHANGE_ARGS_PORT  GENMASK_ULL(21, 14)
+#define SCR1_ETH_MODE_CHANGE_ARGS_MODE  GENMASK_ULL(63, 22)
+
+/* struct eth_set_fec_args */
+#define SCR1_ETH_SET_FEC_ARGS GENMASK_ULL(9, 8)
+
 #define SCR1_OWN_STATUS GENMASK_ULL(1, 0)
 
 #endif /* _ROC_BPHY_CGX_PRIV_H_ */