ravb_emac_init(ndev);
 
        /* Initialise PTP Clock driver */
-       ravb_ptp_init(ndev, priv->pdev);
+       if (priv->chip_id == RCAR_GEN2)
+               ravb_ptp_init(ndev, priv->pdev);
 
        netif_tx_start_all_queues(ndev);
 
 
 out_ptp_stop:
        /* Stop PTP Clock driver */
-       ravb_ptp_stop(ndev);
+       if (priv->chip_id == RCAR_GEN2)
+               ravb_ptp_stop(ndev);
 out_free_irq:
        free_irq(ndev->irq, ndev);
        free_irq(priv->emac_irq, ndev);
        ravb_write(ndev, 0, TIC);
 
        /* Stop PTP Clock driver */
-       ravb_ptp_stop(ndev);
+       if (priv->chip_id == RCAR_GEN2)
+               ravb_ptp_stop(ndev);
 
        /* Set the config mode to stop the AVB-DMAC's processes */
        if (ravb_stop_dma(ndev) < 0)
        ndev->ethtool_ops = &ravb_ethtool_ops;
 
        /* Set AVB config mode */
-       ravb_write(ndev, (ravb_read(ndev, CCC) & ~CCC_OPC) | CCC_OPC_CONFIG,
-                  CCC);
+       if (chip_id == RCAR_GEN2) {
+               ravb_write(ndev, (ravb_read(ndev, CCC) & ~CCC_OPC) |
+                          CCC_OPC_CONFIG, CCC);
+               /* Set CSEL value */
+               ravb_write(ndev, (ravb_read(ndev, CCC) & ~CCC_CSEL) |
+                          CCC_CSEL_HPB, CCC);
+       } else {
+               ravb_write(ndev, (ravb_read(ndev, CCC) & ~CCC_OPC) |
+                          CCC_OPC_CONFIG | CCC_GAC | CCC_CSEL_HPB, CCC);
+       }
 
        /* Set CSEL value */
        ravb_write(ndev, (ravb_read(ndev, CCC) & ~CCC_CSEL) | CCC_CSEL_HPB,
        /* Initialise HW timestamp list */
        INIT_LIST_HEAD(&priv->ts_skb_list);
 
+       /* Initialise PTP Clock driver */
+       if (chip_id != RCAR_GEN2)
+               ravb_ptp_init(ndev, pdev);
+
        /* Debug message level */
        priv->msg_enable = RAVB_DEF_MSG_ENABLE;
 
 out_dma_free:
        dma_free_coherent(ndev->dev.parent, priv->desc_bat_size, priv->desc_bat,
                          priv->desc_bat_dma);
+
+       /* Stop PTP Clock driver */
+       if (chip_id != RCAR_GEN2)
+               ravb_ptp_stop(ndev);
 out_release:
        if (ndev)
                free_netdev(ndev);
        struct net_device *ndev = platform_get_drvdata(pdev);
        struct ravb_private *priv = netdev_priv(ndev);
 
+       /* Stop PTP Clock driver */
+       if (priv->chip_id != RCAR_GEN2)
+               ravb_ptp_stop(ndev);
+
        dma_free_coherent(ndev->dev.parent, priv->desc_bat_size, priv->desc_bat,
                          priv->desc_bat_dma);
        /* Set reset mode */