root/drivers/net/dsa/mxl862xx/mxl862xx-cmd.h
/* SPDX-License-Identifier: GPL-2.0-or-later */

#ifndef __MXL862XX_CMD_H
#define __MXL862XX_CMD_H

#define MXL862XX_MMD_DEV                30
#define MXL862XX_MMD_REG_CTRL           0
#define MXL862XX_MMD_REG_LEN_RET        1
#define MXL862XX_MMD_REG_DATA_FIRST     2
#define MXL862XX_MMD_REG_DATA_LAST      95
#define MXL862XX_MMD_REG_DATA_MAX_SIZE \
        (MXL862XX_MMD_REG_DATA_LAST - MXL862XX_MMD_REG_DATA_FIRST + 1)

#define MXL862XX_COMMON_MAGIC           0x100
#define MXL862XX_BRDG_MAGIC             0x300
#define MXL862XX_BRDGPORT_MAGIC         0x400
#define MXL862XX_CTP_MAGIC              0x500
#define MXL862XX_QOS_MAGIC              0x600
#define MXL862XX_RMON_MAGIC             0x700
#define MXL862XX_SWMAC_MAGIC            0xa00
#define MXL862XX_EXTVLAN_MAGIC          0xb00
#define MXL862XX_VLANFILTER_MAGIC       0xc00
#define MXL862XX_STP_MAGIC              0xf00
#define MXL862XX_SS_MAGIC               0x1600
#define GPY_GPY2XX_MAGIC                0x1800
#define SYS_MISC_MAGIC                  0x1900
#define MXL862XX_XPCS_MAGIC             0x1a00

#define MXL862XX_COMMON_CFGGET          (MXL862XX_COMMON_MAGIC + 0x9)
#define MXL862XX_COMMON_CFGSET          (MXL862XX_COMMON_MAGIC + 0xa)
#define MXL862XX_COMMON_REGISTERMOD     (MXL862XX_COMMON_MAGIC + 0x11)

#define MXL862XX_BRIDGE_ALLOC           (MXL862XX_BRDG_MAGIC + 0x1)
#define MXL862XX_BRIDGE_CONFIGSET       (MXL862XX_BRDG_MAGIC + 0x2)
#define MXL862XX_BRIDGE_CONFIGGET       (MXL862XX_BRDG_MAGIC + 0x3)
#define MXL862XX_BRIDGE_FREE            (MXL862XX_BRDG_MAGIC + 0x4)

#define MXL862XX_BRIDGEPORT_ALLOC       (MXL862XX_BRDGPORT_MAGIC + 0x1)
#define MXL862XX_BRIDGEPORT_CONFIGSET   (MXL862XX_BRDGPORT_MAGIC + 0x2)
#define MXL862XX_BRIDGEPORT_CONFIGGET   (MXL862XX_BRDGPORT_MAGIC + 0x3)
#define MXL862XX_BRIDGEPORT_FREE        (MXL862XX_BRDGPORT_MAGIC + 0x4)

#define MXL862XX_CTP_PORTASSIGNMENTSET  (MXL862XX_CTP_MAGIC + 0x3)

#define MXL862XX_QOS_METERCFGSET        (MXL862XX_QOS_MAGIC + 0x2)
#define MXL862XX_QOS_METERALLOC         (MXL862XX_QOS_MAGIC + 0x2a)

#define MXL862XX_RMON_PORT_GET          (MXL862XX_RMON_MAGIC + 0x1)

#define MXL862XX_MAC_TABLEENTRYADD      (MXL862XX_SWMAC_MAGIC + 0x2)
#define MXL862XX_MAC_TABLEENTRYREAD     (MXL862XX_SWMAC_MAGIC + 0x3)
#define MXL862XX_MAC_TABLEENTRYQUERY    (MXL862XX_SWMAC_MAGIC + 0x4)
#define MXL862XX_MAC_TABLEENTRYREMOVE   (MXL862XX_SWMAC_MAGIC + 0x5)
#define MXL862XX_MAC_TABLECLEARCOND     (MXL862XX_SWMAC_MAGIC + 0x8)

#define MXL862XX_EXTENDEDVLAN_ALLOC     (MXL862XX_EXTVLAN_MAGIC + 0x1)
#define MXL862XX_EXTENDEDVLAN_SET       (MXL862XX_EXTVLAN_MAGIC + 0x2)
#define MXL862XX_EXTENDEDVLAN_GET       (MXL862XX_EXTVLAN_MAGIC + 0x3)
#define MXL862XX_EXTENDEDVLAN_FREE      (MXL862XX_EXTVLAN_MAGIC + 0x4)

#define MXL862XX_VLANFILTER_ALLOC       (MXL862XX_VLANFILTER_MAGIC + 0x1)
#define MXL862XX_VLANFILTER_SET         (MXL862XX_VLANFILTER_MAGIC + 0x2)
#define MXL862XX_VLANFILTER_GET         (MXL862XX_VLANFILTER_MAGIC + 0x3)
#define MXL862XX_VLANFILTER_FREE        (MXL862XX_VLANFILTER_MAGIC + 0x4)

#define MXL862XX_SS_SPTAG_SET           (MXL862XX_SS_MAGIC + 0x2)

#define MXL862XX_STP_PORTCFGSET         (MXL862XX_STP_MAGIC + 0x2)

#define INT_GPHY_READ                   (GPY_GPY2XX_MAGIC + 0x1)
#define INT_GPHY_WRITE                  (GPY_GPY2XX_MAGIC + 0x2)

#define SYS_MISC_FW_VERSION             (SYS_MISC_MAGIC + 0x2)

#define MXL862XX_XPCS_PCS_CONFIG        (MXL862XX_XPCS_MAGIC + 0x1)
#define MXL862XX_XPCS_PCS_GET_STATE     (MXL862XX_XPCS_MAGIC + 0x2)
#define MXL862XX_XPCS_PCS_DISABLE       (MXL862XX_XPCS_MAGIC + 0x4)
#define MXL862XX_XPCS_AN_RESTART        (MXL862XX_XPCS_MAGIC + 0x5)
#define MXL862XX_XPCS_PCS_LINK_UP       (MXL862XX_XPCS_MAGIC + 0x7)
#define MXL862XX_XPCS_LOOPBACK          (MXL862XX_XPCS_MAGIC + 0x8)
#define MXL862XX_XPCS_RESET             (MXL862XX_XPCS_MAGIC + 0x9)

#define MMD_API_MAXIMUM_ID              0x7fff

#endif /* __MXL862XX_CMD_H */