return err;
        }
 
-       /* Rate Control: disable ingress rate limiting. */
-       if (mv88e6xxx_6352_family(chip) || mv88e6xxx_6351_family(chip) ||
-           mv88e6xxx_6165_family(chip) || mv88e6xxx_6097_family(chip) ||
-           mv88e6xxx_6320_family(chip)) {
-               err = mv88e6xxx_port_write(chip, port, PORT_RATE_CONTROL,
-                                          0x0001);
-               if (err)
-                       return err;
-
-       } else if (mv88e6xxx_6185_family(chip) || mv88e6xxx_6095_family(chip)) {
-               err = mv88e6xxx_port_write(chip, port, PORT_RATE_CONTROL,
-                                          0x0000);
+       if (chip->info->ops->port_egress_rate_limiting) {
+               err = chip->info->ops->port_egress_rate_limiting(chip, port);
                if (err)
                        return err;
        }
        .port_set_frame_mode = mv88e6351_port_set_frame_mode,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6xxx_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6095_port_egress_rate_limiting,
        .stats_snapshot = mv88e6xxx_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6xxx_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6xxx_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_speed = mv88e6185_port_set_speed,
        .port_set_frame_mode = mv88e6085_port_set_frame_mode,
        .port_set_egress_unknowns = mv88e6085_port_set_egress_unknowns,
+       .port_egress_rate_limiting = mv88e6095_port_egress_rate_limiting,
        .stats_snapshot = mv88e6xxx_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6320_stats_get_sset_count,
        .stats_get_strings = mv88e6320_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6320_stats_get_sset_count,
        .stats_get_strings = mv88e6320_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6320_g1_stats_snapshot,
        .stats_get_sset_count = mv88e6095_stats_get_sset_count,
        .stats_get_strings = mv88e6095_stats_get_strings,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6390_g1_stats_snapshot,
        .stats_set_histogram = mv88e6390_g1_stats_set_histogram,
        .stats_get_sset_count = mv88e6320_stats_get_sset_count,
        .port_set_egress_unknowns = mv88e6351_port_set_egress_unknowns,
        .port_set_ether_type = mv88e6351_port_set_ether_type,
        .port_jumbo_config = mv88e6165_port_jumbo_config,
+       .port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
        .stats_snapshot = mv88e6390_g1_stats_snapshot,
        .stats_set_histogram = mv88e6390_g1_stats_set_histogram,
        .stats_get_sset_count = mv88e6320_stats_get_sset_count,