1/* 2 * Ethernet: An implementation of the Ethernet Device Driver suite for the 3 * uClinux 2.0.38 operating system. This Driver has been developed 4 * for AT75C220 board. 5 * 6 * NOTE: The driver is implemented for one MAC 7 * 8 * Version: @(#)at91rm9200_net.h 1.0.0 01/10/2001 9 * 10 * Authors: Lineo Inc <www.lineo.com> 11 * 12 * 13 * This program is free software; you can redistribute it and/or 14 * modify it under the terms of the GNU General Public License 15 * as published by the Free Software Foundation; either version 16 * 2 of the License, or (at your option) any later version. 17 */ 18 19#ifndef AT91RM9200_ETHERNET 20#define AT91RM9200_ETHERNET 21 22#include <common.h> 23#include <asm/io.h> 24#include <asm/arch/hardware.h> 25 26#define FALSE 0 27#define TRUE 1 28 29 30#define ETHERNET_ADDRESS_SIZE 6 31 32typedef unsigned char UCHAR; 33 34/* Interface to drive the physical layer */ 35typedef struct _AT91S_PhyOps 36{ 37 unsigned char (*Init)(AT91S_EMAC *pmac); 38 unsigned int (*IsPhyConnected)(AT91S_EMAC *pmac); 39 unsigned char (*GetLinkSpeed)(AT91S_EMAC *pmac); 40 unsigned char (*AutoNegotiate)(AT91S_EMAC *pmac, int *); 41 42} AT91S_PhyOps,*AT91PS_PhyOps; 43 44 45#define EMAC_DESC_DONE 0x00000001 /* ownership bit */ 46#define EMAC_DESC_WRAP 0x00000002 /* bit for wrap */ 47 48/****************** function prototypes **********************/ 49 50/* MII functions */ 51void at91rm9200_EmacEnableMDIO(AT91PS_EMAC p_mac); 52void at91rm9200_EmacDisableMDIO(AT91PS_EMAC p_mac); 53UCHAR at91rm9200_EmacReadPhy(AT91PS_EMAC p_mac, unsigned char RegisterAddress, unsigned short *pInput); 54UCHAR at91rm9200_EmacWritePhy(AT91PS_EMAC p_mac, unsigned char RegisterAddress, unsigned short *pOutput); 55void at91rm9200_GetPhyInterface(AT91PS_PhyOps p_phyops); 56 57#endif /* AT91RM9200_ETHERNET */ 58