struct fixed_phy_status;
 struct phylink_link_state;
 
+#define DSA_TAG_PROTO_NONE_VALUE               0
+#define DSA_TAG_PROTO_BRCM_VALUE               1
+#define DSA_TAG_PROTO_BRCM_PREPEND_VALUE       2
+#define DSA_TAG_PROTO_DSA_VALUE                        3
+#define DSA_TAG_PROTO_EDSA_VALUE               4
+#define DSA_TAG_PROTO_GSWIP_VALUE              5
+#define DSA_TAG_PROTO_KSZ9477_VALUE            6
+#define DSA_TAG_PROTO_KSZ9893_VALUE            7
+#define DSA_TAG_PROTO_LAN9303_VALUE            8
+#define DSA_TAG_PROTO_MTK_VALUE                        9
+#define DSA_TAG_PROTO_QCA_VALUE                        10
+#define DSA_TAG_PROTO_TRAILER_VALUE            11
+
 enum dsa_tag_protocol {
-       DSA_TAG_PROTO_NONE = 0,
-       DSA_TAG_PROTO_BRCM,
-       DSA_TAG_PROTO_BRCM_PREPEND,
-       DSA_TAG_PROTO_DSA,
-       DSA_TAG_PROTO_EDSA,
-       DSA_TAG_PROTO_GSWIP,
-       DSA_TAG_PROTO_KSZ9477,
-       DSA_TAG_PROTO_KSZ9893,
-       DSA_TAG_PROTO_LAN9303,
-       DSA_TAG_PROTO_MTK,
-       DSA_TAG_PROTO_QCA,
-       DSA_TAG_PROTO_TRAILER,
-       DSA_TAG_LAST,           /* MUST BE LAST */
+       DSA_TAG_PROTO_NONE              = DSA_TAG_PROTO_NONE_VALUE,
+       DSA_TAG_PROTO_BRCM              = DSA_TAG_PROTO_BRCM_VALUE,
+       DSA_TAG_PROTO_BRCM_PREPEND      = DSA_TAG_PROTO_BRCM_PREPEND_VALUE,
+       DSA_TAG_PROTO_DSA               = DSA_TAG_PROTO_DSA_VALUE,
+       DSA_TAG_PROTO_EDSA              = DSA_TAG_PROTO_EDSA_VALUE,
+       DSA_TAG_PROTO_GSWIP             = DSA_TAG_PROTO_GSWIP_VALUE,
+       DSA_TAG_PROTO_KSZ9477           = DSA_TAG_PROTO_KSZ9477_VALUE,
+       DSA_TAG_PROTO_KSZ9893           = DSA_TAG_PROTO_KSZ9893_VALUE,
+       DSA_TAG_PROTO_LAN9303           = DSA_TAG_PROTO_LAN9303_VALUE,
+       DSA_TAG_PROTO_MTK               = DSA_TAG_PROTO_MTK_VALUE,
+       DSA_TAG_PROTO_QCA               = DSA_TAG_PROTO_QCA_VALUE,
+       DSA_TAG_PROTO_TRAILER           = DSA_TAG_PROTO_TRAILER_VALUE,
+       DSA_TAG_LAST,                   /* MUST BE LAST */
 };
 
 struct packet_type;
        const char *name;
 };
 
+#define DSA_TAG_DRIVER_ALIAS "dsa_tag-"
+#define MODULE_ALIAS_DSA_TAG_DRIVER(__proto)                           \
+       MODULE_ALIAS(DSA_TAG_DRIVER_ALIAS __stringify(__proto##_VALUE))
+
 struct dsa_switch_tree {
        struct list_head        list;