mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-27 13:05:03 +08:00
b31a1d8b41
Does the same for the accompanying MDIO driver, and then modifies the TBI configuration method. The old way used fields in einfo, which no longer exists. The new way is to create an MDIO device-tree node for each instance of gianfar, and create a tbi-handle property to associate ethernet controllers with the TBI PHYs they are connected to. Signed-off-by: Andy Fleming <afleming@freescale.com> Signed-off-by: David S. Miller <davem@davemloft.net>
55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
/*
|
|
* 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);
|
|
|
|
void gfar_mdio_bus_name(char *name, struct device_node *np);
|
|
#endif /* GIANFAR_PHY_H */
|