mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 16:38:31 +00:00 
			
		
		
		
	 b31a1d8b41
			
		
	
	
		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 */
 |