[BACK]Return to titan_mdio.h CVS log [TXT][DIR] Up to [Development] / linux-2.4-xfs / drivers / net

File: [Development] / linux-2.4-xfs / drivers / net / titan_mdio.h (download)

Revision 1.1, Thu Jan 20 13:59:19 2005 UTC (12 years, 8 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
CVS Tags: HEAD

Merge up to 2.4.29.
Merge of 2.4.x-xfs-melb:linux:21231a by kenmcd.

/*
 * MDIO used to interact with the PHY when using GMII/MII
 */
#ifndef _TITAN_MDIO_H
#define _TITAN_MDIO_H

#include <linux/netdevice.h>
#include <linux/tqueue.h>
#include <linux/delay.h>
#include "titan_ge.h"


#define	TITAN_GE_MDIO_ERROR	(-9000)
#define	TITAN_GE_MDIO_GOOD	0

#define	TITAN_GE_MDIO_BASE		TITAN_GE_BASE

#define	TITAN_GE_MDIO_READ(offset)	*(volatile u32 *)(TITAN_GE_MDIO_BASE + offset)

#define	TITAN_GE_MDIO_WRITE(offset, data)	\
					*(volatile u32 *)(TITAN_GE_MDIO_BASE + offset) = data


/* GMII specific registers */
#define	TITAN_GE_MARVEL_PHY_ID		0x00
#define	TITAN_PHY_AUTONEG_ADV		0x04
#define	TITAN_PHY_LP_ABILITY		0x05
#define	TITAN_GE_MDIO_MII_CTRL		0x09
#define	TITAN_GE_MDIO_MII_EXTENDED	0x0f
#define	TITAN_GE_MDIO_PHY_CTRL		0x10
#define	TITAN_GE_MDIO_PHY_STATUS	0x11
#define	TITAN_GE_MDIO_PHY_IE		0x12
#define	TITAN_GE_MDIO_PHY_IS		0x13
#define	TITAN_GE_MDIO_PHY_LED		0x18
#define	TITAN_GE_MDIO_PHY_LED_OVER	0x19
#define	PHY_ANEG_TIME_WAIT		45	/* 45 seconds wait time */

/*
 * MDIO Config Structure 
 */
typedef struct 
{
	unsigned int		clka;
	int			mdio_spre;
	int			mdio_mode;
} titan_ge_mdio_config;

/*
 * Function Prototypes 
 */
int titan_ge_mdio_setup(titan_ge_mdio_config *);
int titan_ge_mdio_inaddrs(int, int);
int titan_ge_mdio_read(int, int, unsigned int *);
int titan_ge_mdio_write(int, int, unsigned int);

#endif /* _TITAN_MDIO_H */