et1011c.c 934 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * LSI ET1011C PHY Driver for TI DaVinci(TMS320DM6467) board.
  3. *
  4. * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
  5. *
  6. * SPDX-License-Identifier: GPL-2.0+
  7. */
  8. #include <common.h>
  9. #include <net.h>
  10. #include <miiphy.h>
  11. #include <asm/arch/emac_defs.h>
  12. #include "../../../drivers/net/davinci_emac.h"
  13. #ifdef CONFIG_DRIVER_TI_EMAC
  14. #ifdef CONFIG_CMD_NET
  15. /* LSI PHYSICAL LAYER TRANSCEIVER ET1011C */
  16. #define MII_PHY_CONFIG_REG 22
  17. /* PHY Config bits */
  18. #define PHY_SYS_CLK_EN (1 << 4)
  19. int et1011c_get_link_speed(int phy_addr)
  20. {
  21. u_int16_t data;
  22. if (davinci_eth_phy_read(phy_addr, MII_STATUS_REG, &data) && (data & 0x04)) {
  23. davinci_eth_phy_read(phy_addr, MII_PHY_CONFIG_REG, &data);
  24. /* Enable 125MHz clock sourced from PHY */
  25. davinci_eth_phy_write(phy_addr, MII_PHY_CONFIG_REG,
  26. data | PHY_SYS_CLK_EN);
  27. return (1);
  28. }
  29. return (0);
  30. }
  31. #endif /* CONFIG_CMD_NET */
  32. #endif /* CONFIG_DRIVER_ETHER */