struct ethtool_ringparam *ring)
 {
        struct ravb_private *priv = netdev_priv(ndev);
+       const struct ravb_hw_info *info = priv->info;
        int error;
 
        if (ring->tx_pending > BE_TX_RING_MAX ||
        if (netif_running(ndev)) {
                netif_device_detach(ndev);
                /* Stop PTP Clock driver */
-               if (priv->chip_id == RCAR_GEN2)
+               if (info->no_ptp_cfg_active)
                        ravb_ptp_stop(ndev);
                /* Wait for DMA stopping */
                error = ravb_stop_dma(ndev);
                ravb_emac_init(ndev);
 
                /* Initialise PTP Clock driver */
-               if (priv->chip_id == RCAR_GEN2)
+               if (info->no_ptp_cfg_active)
                        ravb_ptp_init(ndev, priv->pdev);
 
                netif_device_attach(ndev);
        ravb_emac_init(ndev);
 
        /* Initialise PTP Clock driver */
-       if (priv->chip_id == RCAR_GEN2)
+       if (info->no_ptp_cfg_active)
                ravb_ptp_init(ndev, priv->pdev);
 
        netif_tx_start_all_queues(ndev);
 
 out_ptp_stop:
        /* Stop PTP Clock driver */
-       if (priv->chip_id == RCAR_GEN2)
+       if (info->no_ptp_cfg_active)
                ravb_ptp_stop(ndev);
 out_free_irq_nc_tx:
        if (!info->multi_irqs)
 {
        struct ravb_private *priv = container_of(work, struct ravb_private,
                                                 work);
+       const struct ravb_hw_info *info = priv->info;
        struct net_device *ndev = priv->ndev;
        int error;
 
        netif_tx_stop_all_queues(ndev);
 
        /* Stop PTP Clock driver */
-       if (priv->chip_id == RCAR_GEN2)
+       if (info->no_ptp_cfg_active)
                ravb_ptp_stop(ndev);
 
        /* Wait for DMA stopping */
 
 out:
        /* Initialise PTP Clock driver */
-       if (priv->chip_id == RCAR_GEN2)
+       if (info->no_ptp_cfg_active)
                ravb_ptp_init(ndev, priv->pdev);
 
        netif_tx_start_all_queues(ndev);
        ravb_write(ndev, 0, TIC);
 
        /* Stop PTP Clock driver */
-       if (priv->chip_id == RCAR_GEN2)
+       if (info->no_ptp_cfg_active)
                ravb_ptp_stop(ndev);
 
        /* Set the config mode to stop the AVB-DMAC's processes */
        .stats_len = ARRAY_SIZE(ravb_gstrings_stats),
        .max_rx_len = RX_BUF_SZ + RAVB_ALIGN - 1,
        .aligned_tx = 1,
+       .no_ptp_cfg_active = 1,
 };
 
 static const struct of_device_id ravb_match_table[] = {
 static void ravb_set_config_mode(struct net_device *ndev)
 {
        struct ravb_private *priv = netdev_priv(ndev);
+       const struct ravb_hw_info *info = priv->info;
 
-       if (priv->chip_id == RCAR_GEN2) {
+       if (info->no_ptp_cfg_active) {
                ravb_modify(ndev, CCC, CCC_OPC, CCC_OPC_CONFIG);
                /* Set CSEL value */
                ravb_modify(ndev, CCC, CCC_CSEL, CCC_CSEL_HPB);