| /* |
| * drivers/net/gianfar_mii.h |
| * |
| * Gianfar Ethernet Driver -- MII Management Bus Implementation |
| * Driver for the MDIO bus controller in the Gianfar register space |
| * |
| * Author: Andy Fleming |
| * Maintainer: Kumar Gala |
| * |
| * Copyright (c) 2002-2004 Freescale Semiconductor, Inc. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License as published by the |
| * Free Software Foundation; either version 2 of the License, or (at your |
| * option) any later version. |
| * |
| */ |
| #ifndef __GIANFAR_MII_H |
| #define __GIANFAR_MII_H |
| |
| struct gfar_private; /* forward ref */ |
| |
| #define MIIMIND_BUSY 0x00000001 |
| #define MIIMIND_NOTVALID 0x00000004 |
| |
| #define MII_READ_COMMAND 0x00000001 |
| |
| #define GFAR_SUPPORTED (SUPPORTED_10baseT_Half \ |
| | SUPPORTED_10baseT_Full \ |
| | SUPPORTED_100baseT_Half \ |
| | SUPPORTED_100baseT_Full \ |
| | SUPPORTED_Autoneg \ |
| | SUPPORTED_MII) |
| |
| struct gfar_mii { |
| u32 miimcfg; /* 0x.520 - MII Management Config Register */ |
| u32 miimcom; /* 0x.524 - MII Management Command Register */ |
| u32 miimadd; /* 0x.528 - MII Management Address Register */ |
| u32 miimcon; /* 0x.52c - MII Management Control Register */ |
| u32 miimstat; /* 0x.530 - MII Management Status Register */ |
| u32 miimind; /* 0x.534 - MII Management Indicator Register */ |
| }; |
| |
| int gfar_mdio_read(struct mii_bus *bus, int mii_id, int regnum); |
| int gfar_mdio_write(struct mii_bus *bus, int mii_id, int regnum, u16 value); |
| int gfar_local_mdio_write(struct gfar_mii __iomem *regs, int mii_id, |
| int regnum, u16 value); |
| int gfar_local_mdio_read(struct gfar_mii __iomem *regs, int mii_id, int regnum); |
| struct mii_bus *gfar_get_miibus(const struct gfar_private *priv); |
| int __init gfar_mdio_init(void); |
| void gfar_mdio_exit(void); |
| #endif /* GIANFAR_PHY_H */ |