#include <exports.h>
 #include <fdt_support.h>
 #include <asm/arch/ddr3.h>
+#include <asm/arch/psc_defs.h>
 #include <asm/ti-common/ti-aemif.h>
 #include <asm/ti-common/keystone_net.h>
 
        int port_num;
        char link_type_name[32];
 
+       /* By default, select PA PLL clock as PA clock source */
+       if (psc_enable_module(KS2_LPSC_PA))
+               return -1;
+       if (psc_enable_module(KS2_LPSC_CPGMAC))
+               return -1;
+       if (psc_enable_module(KS2_LPSC_CRYPTO))
+               return -1;
+
        port_num = get_num_eth_ports();
 
        for (j = 0; j < port_num; j++) {
 
 #include <net.h>
 #include <miiphy.h>
 #include <malloc.h>
-#include <asm/arch/psc_defs.h>
 #include <asm/ti-common/keystone_nav.h>
 #include <asm/ti-common/keystone_net.h>
 
-unsigned int emac_dbg;
-
 unsigned int emac_open;
 static unsigned int sys_has_mdio = 1;
 
        sys_has_mdio =
                (eth_priv->sgmii_link_type == SGMII_LINK_MAC_PHY) ? 1 : 0;
 
-       psc_enable_module(KS2_LPSC_PA);
-       psc_enable_module(KS2_LPSC_CPGMAC);
-
        sgmii_serdes_setup_156p25mhz();
 
        if (sys_has_mdio)
        debug("- emac_close\n");
 }
 
-static int tx_send_loop;
-
 /*
  * This function sends a single packet on the network and returns
  * positive number (number of bytes transmitted) or negative for error
        int ret_status = -1;
        struct eth_priv_t *eth_priv = (struct eth_priv_t *)dev->priv;
 
-       tx_send_loop = 0;
-
        if (keystone_get_link_status(dev) == 0)
                return -1;
 
-       emac_gigabit_enable(dev);
-
        if (cpmac_drv_send((u32 *)packet, length, eth_priv->slave_port) != 0)
                return ret_status;
 
-       if (keystone_get_link_status(dev) == 0)
-               return -1;
-
-       emac_gigabit_enable(dev);
-
        return length;
 }