emac_defs.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
  4. *
  5. * Based on:
  6. *
  7. * ----------------------------------------------------------------------------
  8. *
  9. * dm644x_emac.h
  10. *
  11. * TI DaVinci (DM644X) EMAC peripheral driver header for DV-EVM
  12. *
  13. * Copyright (C) 2005 Texas Instruments.
  14. *
  15. * ----------------------------------------------------------------------------
  16. *
  17. * Modifications:
  18. * ver. 1.0: Sep 2005, TI PSP Team - Created EMAC version for uBoot.
  19. */
  20. #ifndef _DM644X_EMAC_H_
  21. #define _DM644X_EMAC_H_
  22. #include <asm/arch/hardware.h>
  23. #ifdef CONFIG_SOC_DM365
  24. #define EMAC_BASE_ADDR (0x01d07000)
  25. #define EMAC_WRAPPER_BASE_ADDR (0x01d0a000)
  26. #define EMAC_WRAPPER_RAM_ADDR (0x01d08000)
  27. #define EMAC_MDIO_BASE_ADDR (0x01d0b000)
  28. #define DAVINCI_EMAC_VERSION2
  29. #elif defined(CONFIG_SOC_DA8XX)
  30. #define EMAC_BASE_ADDR DAVINCI_EMAC_CNTRL_REGS_BASE
  31. #define EMAC_WRAPPER_BASE_ADDR DAVINCI_EMAC_WRAPPER_CNTRL_REGS_BASE
  32. #define EMAC_WRAPPER_RAM_ADDR DAVINCI_EMAC_WRAPPER_RAM_BASE
  33. #define EMAC_MDIO_BASE_ADDR DAVINCI_MDIO_CNTRL_REGS_BASE
  34. #define DAVINCI_EMAC_VERSION2
  35. #else
  36. #define EMAC_BASE_ADDR (0x01c80000)
  37. #define EMAC_WRAPPER_BASE_ADDR (0x01c81000)
  38. #define EMAC_WRAPPER_RAM_ADDR (0x01c82000)
  39. #define EMAC_MDIO_BASE_ADDR (0x01c84000)
  40. #endif
  41. #ifdef CONFIG_SOC_DM646X
  42. #define DAVINCI_EMAC_VERSION2
  43. #define DAVINCI_EMAC_GIG_ENABLE
  44. #endif
  45. #ifdef CONFIG_SOC_DM646X
  46. /* MDIO module input frequency */
  47. #define EMAC_MDIO_BUS_FREQ 76500000
  48. /* MDIO clock output frequency */
  49. #define EMAC_MDIO_CLOCK_FREQ 2500000 /* 2.5 MHz */
  50. #elif defined(CONFIG_SOC_DM365)
  51. /* MDIO module input frequency */
  52. #define EMAC_MDIO_BUS_FREQ 121500000
  53. /* MDIO clock output frequency */
  54. #define EMAC_MDIO_CLOCK_FREQ 2200000 /* 2.2 MHz */
  55. #elif defined(CONFIG_SOC_DA8XX)
  56. /* MDIO module input frequency */
  57. #define EMAC_MDIO_BUS_FREQ clk_get(DAVINCI_MDIO_CLKID)
  58. /* MDIO clock output frequency */
  59. #define EMAC_MDIO_CLOCK_FREQ 2000000 /* 2.0 MHz */
  60. #else
  61. /* MDIO module input frequency */
  62. #define EMAC_MDIO_BUS_FREQ 99000000 /* PLL/6 - 99 MHz */
  63. /* MDIO clock output frequency */
  64. #define EMAC_MDIO_CLOCK_FREQ 2000000 /* 2.0 MHz */
  65. #endif
  66. #define PHY_KSZ8873 (0x00221450)
  67. int ksz8873_is_phy_connected(int phy_addr);
  68. int ksz8873_get_link_speed(int phy_addr);
  69. int ksz8873_init_phy(int phy_addr);
  70. int ksz8873_auto_negotiate(int phy_addr);
  71. #define PHY_LXT972 (0x001378e2)
  72. int lxt972_is_phy_connected(int phy_addr);
  73. int lxt972_get_link_speed(int phy_addr);
  74. int lxt972_init_phy(int phy_addr);
  75. int lxt972_auto_negotiate(int phy_addr);
  76. #define PHY_DP83848 (0x20005c90)
  77. int dp83848_is_phy_connected(int phy_addr);
  78. int dp83848_get_link_speed(int phy_addr);
  79. int dp83848_init_phy(int phy_addr);
  80. int dp83848_auto_negotiate(int phy_addr);
  81. #define PHY_ET1011C (0x282f013)
  82. int et1011c_get_link_speed(int phy_addr);
  83. #endif /* _DM644X_EMAC_H_ */