drivers/net/vsc9953: Add commands to manipulate the FDB for VSC9953

The new command:
ethsw [port <port_no>] [vlan <vid>] fdb
        { [help] | show | flush | { add | del } <mac> }

Can be used to add and delete FDB entries. Also, the command can be used
to show entries from the FDB tables. When used with [port <port_no>]
and [vlan <vid>], only the matching the FDB entries can be seen or
flushed. The command has also been added to the generic ethsw parser
from cmd_ethsw.c.

Signed-off-by: Johnson Leung <johnson.leung@freescale.com>
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@freescale.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: York Sun <yorksun@freescale.com>
diff --git a/include/vsc9953.h b/include/vsc9953.h
index 49215e6..df1c709 100644
--- a/include/vsc9953.h
+++ b/include/vsc9953.h
@@ -86,6 +86,25 @@
 #define VSC9953_VCAP_MV_CFG		0x0000ffff
 #define VSC9953_VCAP_UPDATE_CTRL	0x01000004
 
+/* Macros for register vsc9953_ana_ana_tables.mac_access register */
+#define VSC9953_MAC_CMD_IDLE		0x00000000
+#define VSC9953_MAC_CMD_LEARN		0x00000001
+#define VSC9953_MAC_CMD_FORGET		0x00000002
+#define VSC9953_MAC_CMD_AGE		0x00000003
+#define VSC9953_MAC_CMD_NEXT		0x00000004
+#define VSC9953_MAC_CMD_READ		0x00000006
+#define VSC9953_MAC_CMD_WRITE		0x00000007
+#define VSC9953_MAC_CMD_MASK		0x00000007
+#define VSC9953_MAC_CMD_VALID		0x00000800
+#define VSC9953_MAC_ENTRYTYPE_NORMAL	0x00000000
+#define VSC9953_MAC_ENTRYTYPE_LOCKED	0x00000200
+#define VSC9953_MAC_ENTRYTYPE_IPV4MCAST	0x00000400
+#define VSC9953_MAC_ENTRYTYPE_IPV6MCAST	0x00000600
+#define VSC9953_MAC_ENTRYTYPE_MASK	0x00000600
+#define VSC9953_MAC_DESTIDX_MASK	0x000001f8
+#define VSC9953_MAC_VID_MASK		0x1fff0000
+#define VSC9953_MAC_MACH_MASK		0x0000ffff
+
 /* Macros for vsc9953_ana_port.vlan_cfg register */
 #define VSC9953_VLAN_CFG_AWARE_ENA	0x00100000
 #define VSC9953_VLAN_CFG_POP_CNT_MASK	0x000c0000
@@ -124,6 +143,15 @@
 #define VSC9953_TAG_CFG_ALL_BUT_ZERO		0x00000100
 #define VSC9953_TAG_CFG_ALL		0x00000180
 
+/* Macros for vsc9953_ana_ana.anag_efil register */
+#define VSC9953_AGE_PORT_EN		0x00080000
+#define VSC9953_AGE_PORT_MASK		0x0007c000
+#define VSC9953_AGE_VID_EN		0x00002000
+#define VSC9953_AGE_VID_MASK		0x00001fff
+
+/* Macros for vsc9953_ana_ana_tables.mach_data register */
+#define VSC9953_MACHDATA_VID_MASK	0x1fff0000
+
 #define VSC9953_MAX_PORTS		10
 #define VSC9953_PORT_CHECK(port)	\
 	(((port) < 0 || (port) >= VSC9953_MAX_PORTS) ? 0 : 1)