fec_ioctl.h
来自「ARM Linux Tool 各种代码包括MTD」· C头文件 代码 · 共 119 行
H
119 行
/* * linux/fec_ioctl.h: definitions for 5272 ColdFire Ethernet IOCTL calls * * Mostly a copy of linux/mii.h: definitions for MII-compatible transceivers * Originally drivers/net/sunhme.h. * * Copyright (C) 1996, 1999, 2001 David S. Miller (davem@redhat.com) * * Copyright (C) 2002 Arcturus Networks Inc. * by MaTed (Ted Ma - mated@ArcturusNetworks.comm) */#ifndef __LINUX_MII_H__#define __LINUX_MII_H__#include <linux/types.h>#include <linux/autoconf.h>#ifdef CONFIG_FEC /********* * This structure is used in all SIOCxMIIxxx ioctl calls and * is provided only as a reference commentstruct mii_ioctl_data { u16 phy_id; u16 reg_num; u16 val_in; u16 val_out;};**********//************************ * Defines for LXT972a * Status Register 2 ************************/#define LXT972_STAT2 17 /* Reserved 0x8000 */#define PHY_STATUS_REG_TWO_MODE_100 0x4000#define PHY_STATUS_REG_TWO_TX_STATUS 0x2000#define PHY_STATUS_REG_TWO_RX_STATUS 0x1000#define PHY_STATUS_REG_TWO_COLLISION_STATUS 0x0800#define PHY_STATUS_REG_TWO_LINK 0x0400#define PHY_STATUS_REG_TWO_DUPLEX_MODE 0x0200#define PHY_STATUS_REG_TWO_AUTO_NEGOTIATION 0x0100#define PHY_STATUS_REG_TWO_AUTO_NEGO_COMPELETE 0x0080 /* Reserved 0x0040 */#define PHY_STATUS_REG_TWO_POLARITY 0x0020#define PHY_STATUS_REG_TWO_PAUSE 0x0010#define PHY_STATUS_REG_TWO_ERROR 0x0008 /* Reserved 0x0004 */ /* Reserved 0x0002 */ /* Reserved 0x0001 */// Defines for value_in for subcommands#define SIOC_MIIREG_GET 0 // get register / data#define SIOC_MIIREG_QUERY 1 // query previous "get" register /data// Error return codes (in link_speed and duplex#define SIOC_FEC_RC_RELINK -6 // link staus changed#define SIOC_FEC_RC_INVALID_SUBCMND -5 // invalid subcommand#define SIOC_FEC_RC_WRONG_REG -4 // wrong register#define SIOC_FEC_RC_NO_REQUEST -3 // no outstanding request or exists already#define SIOC_FEC_RC_NOT_COMP -2 // queued command not completed#define SIOC_FEC_RC_NO_LINK -1 // Link is down/* This structure is used for special FEC only ioctl calls */struct fec_ioctl_data{ unsigned short phy_id; /* For SIOMGMIIPHY - returns phy addr / number associated with device For SIOCSMIIREG and SIOCGMIIREG - should be set to 1 for future uC5272 compatibility */ unsigned short reg; /* Which register to be read / set - must be set to 17 for link status inquiry */ unsigned short value_in; /* for SIOCSMIIREG - value to be written to the PHY register for SIOCGMIIREG - set to 0 for GET - set to 1 for QUERY (gets results of previous GET, if completed) */ unsigned short value_out; /* returns the value of the previously requested register. the value of Status register 2 (register 17 of Intel lxt972a PHY (see lxt972a datasheet for explanation)) if register == 17, sets the returnvalues for link_speed and duplex */ unsigned short link_speed; /* returns current link speed -5 => invalid subcommand -4 => wrong register -3 => no outstanding command request -2 => command not yet completed -1 => undetermined (ie no link established) 0 => 1 Mbps 1 => 10 Mbps 2 => 100 Mbps 3 => 1 Gbps 4 => 10 Gpbs */ unsigned short duplex; /* returns established duplex of the link -5 => invalid subcommand -4 => wrong register -3 => no outstanding command request -2 => command not yet completed -1 => undetermined (ie no link established) 0 => half duplex 1 => full duplex */};#endif // CONFIG_FEC#endif // __LINUX_MII_H__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?