gianfar_mii.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * drivers/net/gianfar_mii.h
  3. *
  4. * Gianfar Ethernet Driver -- MII Management Bus Implementation
  5. * Driver for the MDIO bus controller in the Gianfar register space
  6. *
  7. * Author: Andy Fleming
  8. * Maintainer: Kumar Gala
  9. *
  10. * Copyright (c) 2002-2004 Freescale Semiconductor, Inc.
  11. *
  12. * This program is free software; you can redistribute it and/or modify it
  13. * under the terms of the GNU General Public License as published by the
  14. * Free Software Foundation; either version 2 of the License, or (at your
  15. * option) any later version.
  16. *
  17. */
  18. #ifndef __GIANFAR_MII_H
  19. #define __GIANFAR_MII_H
  20. struct gfar_private; /* forward ref */
  21. #define MIIMIND_BUSY 0x00000001
  22. #define MIIMIND_NOTVALID 0x00000004
  23. #define MII_READ_COMMAND 0x00000001
  24. #define GFAR_SUPPORTED (SUPPORTED_10baseT_Half \
  25. | SUPPORTED_10baseT_Full \
  26. | SUPPORTED_100baseT_Half \
  27. | SUPPORTED_100baseT_Full \
  28. | SUPPORTED_Autoneg \
  29. | SUPPORTED_MII)
  30. struct gfar_mii {
  31. u32 miimcfg; /* 0x.520 - MII Management Config Register */
  32. u32 miimcom; /* 0x.524 - MII Management Command Register */
  33. u32 miimadd; /* 0x.528 - MII Management Address Register */
  34. u32 miimcon; /* 0x.52c - MII Management Control Register */
  35. u32 miimstat; /* 0x.530 - MII Management Status Register */
  36. u32 miimind; /* 0x.534 - MII Management Indicator Register */
  37. };
  38. int gfar_mdio_read(struct mii_bus *bus, int mii_id, int regnum);
  39. int gfar_mdio_write(struct mii_bus *bus, int mii_id, int regnum, u16 value);
  40. int gfar_local_mdio_write(struct gfar_mii __iomem *regs, int mii_id,
  41. int regnum, u16 value);
  42. int gfar_local_mdio_read(struct gfar_mii __iomem *regs, int mii_id, int regnum);
  43. struct mii_bus *gfar_get_miibus(const struct gfar_private *priv);
  44. int __init gfar_mdio_init(void);
  45. void gfar_mdio_exit(void);
  46. void gfar_mdio_bus_name(char *name, struct device_node *np);
  47. #endif /* GIANFAR_PHY_H */