⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ag7100_phy.h

📁 linux下atheros的ag7100驱动
💻 H
字号:
#ifndef _AG7100_PHY_H#define _AG7100_PHY_H#define phy_reg_read        ag7100_mii_read#define phy_reg_write       ag7100_mii_write#ifndef CONFIG_ATHRS26_PHY#define ag7100_phy_ioctl(unit, args)#endif#include "ag7100.h"#ifdef __BDI/* Empty */#else#ifdef __ECOS/* ecos will set the value of CYGNUM_USE_ENET_PHY to one of the following strings * based on the cdl. These are defined here in no particuilar way so the * #if statements that follow will have something to compare to. */#define AR7100_VSC_ENET_PHY             1#define AR7100_VSC8601_ENET_PHY         2#define AR7100_VSC8601_VSC8601_ENET_PHY 3#define AR7100_VSC8601_VSC73XX_ENET_PHY 4#define AR7100_ICPLUS_ENET_PHY          5#define AR7100_REALTEK_ENET_PHY         6#define AR7100_ADMTEK_ENET_PHY          7  #define AR7100_ATHRF1_ENET_PHY          8#define AR7100_ATHRS26_ENET_PHY         9#if (CYGNUM_USE_ENET_PHY == AR7100_VSC_ENET_PHY) #   define CONFIG_VITESSE_PHY#elif (CYGNUM_USE_ENET_PHY == AR7100_VSC8601_ENET_PHY) #   define CONFIG_VITESSE_8601_PHY#elif (CYGNUM_USE_ENET_PHY == AR7100_VSC8601_VSC73XX_ENET_PHY)#   define CONFIG_VITESSE_8601_7395_PHY#elif (CYGNUM_USE_ENET_PHY == AR7100_ICPLUS_ENET_PHY)#   define CONFIG_ICPLUS_PHY #elif (CYGNUM_USE_ENET_PHY == AR7100_REALTEK_ENET_PHY)#   define CONFIG_REALTEK_PHY#elif (CYGNUM_USE_ENET_PHY == AR7100_ADMTEK_ENET_PHY)#   define CONFIG_ADM6996FC_PHY#elif (CYGNUM_USE_ENET_PHY == AR7100_ATHRF1_ENET_PHY)#   define CONFIG_ATHRF1_PHY#elif (CYGNUM_USE_ENET_PHY == AR7100_ATHRS26_ENET_PHY)#   define CONFIG_ATHRS26_PHY#else#error unknown PHY type CYGNUM_USE_ENET_PHY#endif#include "vsc8601_phy.h"#include "vsc73xx.h"#include "ipPhy.h"#include "rtPhy.h"#include "adm_phy.h"#include "athr_phy.h"#include "athrs26_phy.h"#define in_interrupt(x)    0#define schedule_work(x)#define INIT_WORK(x,y)#else /* Must be Linux, CONFIGs are defined in .config *//* Empty */#endif#endif#if defined(CONFIG_VITESSE_PHY) || defined(CONFIG_VITESSE_8601_PHY)#include "vsc8601_phy.h"static inline int ag7100_phy_setup(int unit){  return vsc8601_phy_setup(unit);}static inline unsigned int ag7100_get_link_status(int unit, int *link, int *fdx, ag7100_phy_speed_t *speed){  return vsc8601_phy_get_link_status(unit, link, fdx, speed, 0);}static inline int ag7100_print_link_status(int unit){  if (0==unit)    return vsc8601_phy_print_link_status(unit);  return -1;  }#elif defined(CONFIG_VITESSE_8601_7395_PHY)#include "vsc8601_phy.h"#include "vsc73xx.h"static inline int ag7100_phy_setup(int unit){  if (0==unit) {    return vsc8601_phy_setup(unit);  } else {     if (1 == unit) {      return vsc73xx_setup(unit);    }  }  return -1;}static inline unsigned int ag7100_get_link_status(int unit, int *link, int *fdx, ag7100_phy_speed_t *speed) {  if (0==unit)    return vsc8601_phy_get_link_status(unit, link, fdx, speed, 0);  else     if (0 == in_interrupt())      return vsc73xx_get_link_status(unit, link, fdx, speed, 0);    return -1;}static inline int ag7100_print_link_status(int unit){  if (0==unit)    return vsc8601_phy_print_link_status(unit);  else    if (0 == in_interrupt())      return vsc73xx_phy_print_link_status(unit);  return -1;  }#elif defined(CONFIG_ICPLUS_PHY)#include "ipPhy.h"#define ag7100_phy_setup(unit)          ip_phySetup(unit)#define ag7100_phy_is_up(unit)          ip_phyIsUp(unit)#define ag7100_phy_speed(unit)          ip_phySpeed(unit)#define ag7100_phy_is_fdx(unit)         ip_phyIsFullDuplex(unit)static inline unsigned int ag7100_get_link_status(int unit, int *link, int *fdx, ag7100_phy_speed_t *speed){  *link=ag7100_phy_is_up(unit);  *fdx=ag7100_phy_is_fdx(unit);  *speed=ag7100_phy_speed(unit);  return 0;}static inline intag7100_print_link_status(int unit){  return -1;}#elif defined(CONFIG_REALTEK_PHY)#include "rtPhy.h"#define ag7100_phy_setup(unit)          rt_phySetup(unit, 0)#define ag7100_phy_is_up(unit)          rt_phyIsUp(unit)#define ag7100_phy_speed(unit)          rt_phySpeed(unit)#define ag7100_phy_is_fdx(unit)         rt_phyIsFullDuplex(unit)static inline unsigned int ag7100_get_link_status(int unit, int *link, int *fdx, ag7100_phy_speed_t *speed){  *link=ag7100_phy_is_up(unit);  *fdx=ag7100_phy_is_fdx(unit);  *speed=ag7100_phy_speed(unit);  return 0;}static inline int ag7100_print_link_status(int unit){  return -1;}#elif defined(CONFIG_ADM6996FC_PHY)#include "adm_phy.h"#define ag7100_phy_setup(unit)          adm_phySetup(unit)#define ag7100_phy_is_up(unit)          adm_phyIsUp(unit)#define ag7100_phy_speed(unit)          adm_phySpeed(unit)#define ag7100_phy_is_fdx(unit)         adm_phyIsFullDuplex(unit)#define ag7100_phy_is_lan_pkt           adm_is_lan_pkt#define ag7100_phy_set_pkt_port         adm_set_pkt_port#define ag7100_phy_tag_len              ADM_VLAN_TAG_SIZE#define ag7100_phy_get_counters         adm_get_countersstatic inline unsigned int ag7100_get_link_status(int unit, int *link, int *fdx, ag7100_phy_speed_t *speed){  *link=ag7100_phy_is_up(unit);  *fdx=ag7100_phy_is_fdx(unit);  *speed=ag7100_phy_speed(unit);  return 0;}static inline int ag7100_print_link_status(int unit){  return -1;}#elif defined(CONFIG_ATHRS26_PHY)#include "athrs26_phy.h"#define ag7100_phy_ioctl(unit, args)    athr_ioctl(unit,args)#define ag7100_phy_setup(unit)          athrs26_phy_setup (unit)#define ag7100_phy_is_up(unit)          athrs26_phy_is_up (unit)#define ag7100_phy_speed(unit)          athrs26_phy_speed (unit)#define ag7100_phy_is_fdx(unit)         athrs26_phy_is_fdx (unit)#define ag7100_phy_is_lan_pkt           athr_is_lan_pkt#define ag7100_phy_set_pkt_port         athr_set_pkt_port#define ag7100_phy_tag_len              ATHR_VLAN_TAG_SIZE#define ag7100_phy_get_counters         athrs26_get_countersstatic inline unsigned int ag7100_get_link_status(int unit, int *link, int *fdx, ag7100_phy_speed_t *speed){  *link=ag7100_phy_is_up(unit);  *fdx=ag7100_phy_is_fdx(unit);  *speed=ag7100_phy_speed(unit);  return 0;}static inline intag7100_print_link_status(int unit){  return -1;}#elif defined(CONFIG_ATHRF1_PHY)#include "athr_phy.h"#define ag7100_phy_setup(unit)          athr_phy_setup(unit)#define ag7100_phy_is_up(unit)          athr_phy_is_up(unit)#define ag7100_phy_speed(unit)          athr_phy_speed(unit)#define ag7100_phy_is_fdx(unit)         athr_phy_is_fdx(unit)#define ag7100_phy_is_lan_pkt           athr_is_lan_pkt#define ag7100_phy_set_pkt_port         athr_set_pkt_port#define ag7100_phy_tag_len              ATHR_VLAN_TAG_SIZE#define ag7100_phy_get_counters         athr_get_countersstatic inline unsigned int ag7100_get_link_status(int unit, int *link, int *fdx, ag7100_phy_speed_t *speed){  *link=ag7100_phy_is_up(unit);  *fdx=ag7100_phy_is_fdx(unit);  *speed=ag7100_phy_speed(unit);  return 0;}static inline intag7100_print_link_status(int unit){  return -1;}#else#error unknown PHY type PHY not configured in config.h#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -