vsc9953_port_vlan_egr_untag_set(i, mode);
 }
 
+static int vsc9953_autoage_time_set(int age_period)
+{
+       u32 autoage;
+       struct vsc9953_analyzer *l2ana_reg;
+
+       l2ana_reg = (struct vsc9953_analyzer *)(VSC9953_OFFSET +
+                                               VSC9953_ANA_OFFSET);
+
+       if (age_period < 0 || age_period > VSC9953_AUTOAGE_PERIOD_MASK)
+               return -EINVAL;
+
+       autoage = bitfield_replace_by_mask(in_le32(&l2ana_reg->ana.auto_age),
+                                          VSC9953_AUTOAGE_PERIOD_MASK,
+                                          age_period);
+       out_le32(&l2ana_reg->ana.auto_age, autoage);
+
+       return 0;
+}
+
 #ifdef CONFIG_CMD_ETHSW
 
 /* Enable/disable status of a VSC9953 port */
 {
        int i;
 
+       if (vsc9953_autoage_time_set(VSC9953_DEFAULT_AGE_TIME))
+               debug("VSC9953: failed to set AGE time to %d\n",
+                     VSC9953_DEFAULT_AGE_TIME);
+
        for (i = 0; i < VSC9953_MAX_VLAN; i++)
                vsc9953_vlan_table_membership_all_set(i, 0);
        vsc9953_port_all_vlan_aware_set(1);
 
 /* Macros for vsc9953_ana_ana.adv_learn register */
 #define VSC9953_VLAN_CHK               0x00000400
 
+/* Macros for vsc9953_ana_ana.auto_age register */
+#define VSC9953_AUTOAGE_PERIOD_MASK    0x001ffffe
+
 /* Macros for vsc9953_rew_port.port_tag_cfg register */
 #define VSC9953_TAG_CFG_MASK           0x00000180
 #define VSC9953_TAG_CFG_NONE           0x00000000
 #define VSC9953_MAX_VLAN               4096
 #define VSC9953_VLAN_CHECK(vid)        \
        (((vid) < 0 || (vid) >= VSC9953_MAX_VLAN) ? 0 : 1)
+#define VSC9953_DEFAULT_AGE_TIME       300
 
 #define DEFAULT_VSC9953_MDIO_NAME      "VSC9953_MDIO0"