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

📄 88e1111phy.h

📁 freescale mottsec 千兆单元驱动源码
💻 H
字号:
#ifndef _88E1111_PHY_H
#define _88E1111_PHY_H

#include "virPhy.h"

#define _88E1111_PHY_PRE_INITED 0x1
#define _88E1111_PHY_INITED     0x2

#define _88E1111_PHY_REG_CNTRL 0
#define _88E1111_PHY_REG_LKPAB 5
#define _88E1111_PHY_REG_KSTAT 10
#define _88E1111_PHY_REG_SPSTA 17
#define _88E1111_PHY_REG_INTEN 18
#define _88E1111_PHY_REG_INTST 19
#define _88E1111_PHY_REG_EXADD 22
#define _88E1111_PHY_REG_LEDCT 24
#define _88E1111_PHY_REG_EXSCT 26
#define _88E1111_PHY_REG_EXSST 27

/* _88E1111_PHY_REG_CNTRL */
#define _88E1111_PHY_CNTRL_RESET            0x8000
#define _88E1111_PHY_CNTRL_LOOPBACK         0x4000
#define _88E1111_PHY_CNTRL_AUTO_NEG_ENA     0x1000
#define _88E1111_PHY_CNTRL_POWERDOWN        0x0800
#define _88E1111_PHY_CNTRL_DUPLEX_FULL      0x0100

#define _88E1111_PHY_CNTRL_SPEED_MASK     0x2040
#define _88E1111_PHY_CNTRL_SPEED_10M      0x0000
#define _88E1111_PHY_CNTRL_SPEED_100M     0x2000
#define _88E1111_PHY_CNTRL_SPEED_1000M    0x0040


/* _88E1111_PHY_REG_LKPAB */
#define _88E1111_PHY_LKPAB_10_M_FD  0x0040
#define _88E1111_PHY_LKPAB_100_M_FD 0x0100

/* _88E1111_PHY_REG_KSTAT */
#define _88E1111_PHY_KSTAT_RM_OK 0x1000
#define _88E1111_PHY_KSTAT_LP_FD 0x0800

/* _88E1111_PHY_REG_SPSTA */
#define _88E1111_PHY_SPSTA_SPEED_MASK   0xC000
#define _88E1111_PHY_SPSTA_SPEED_1000M  0x8000
#define _88E1111_PHY_SPSTA_SPEED_100M   0x4000
#define _88E1111_PHY_SPSTA_SPEED_10M    0x0000

#define _88E1111_PHY_SPSTA_DUPLEX_FULL  0x2000
#define _88E1111_PHY_SPSTA_DS_RESOLVED  0x0800
#define _88E1111_PHY_SPSTA_LINK_UP      0x0400

/* _88E1111_PHY_REG_INTEN */
#define _88E1111_PHY_INTEN_LINK_STAT 0x0400
#define _88E1111_PHY_INTEN_SPEED_STAT 0x4000

/* _88E1111_PHY_REG_INTST */
#define _88E1111_PHY_INTST_LINK_STAT 0x0400

/* _88E1111_PHY_REG_EXADD */
#define _88E1111_PHY_EXADD_COPPER 0x0
#define _88E1111_PHY_EXADD_FIBER  0x1

/* _88E1111_PHY_REG_LEDCT */
#define _88E1111_PHY_LEDCT_DIS               0x8000
#define _88E1111_PHY_LEDCT_PUL_DUA_NO        (0 << 12)
#define _88E1111_PHY_LEDCT_PUL_DUA_21_42     (1 << 12)
#define _88E1111_PHY_LEDCT_PUL_DUA_42_84     (2 << 12)
#define _88E1111_PHY_LEDCT_PUL_DUA_84_170    (3 << 12)
#define _88E1111_PHY_LEDCT_PUL_DUA_170_340   (4 << 12)
#define _88E1111_PHY_LEDCT_PUL_DUA_340_670   (5 << 12)
#define _88E1111_PHY_LEDCT_PUL_DUA_670_1300  (6 << 12)
#define _88E1111_PHY_LEDCT_PUL_DUA_1300_2700 (7 << 12)

#define _88E1111_PHY_LEDCT_BLK_RATE_42       (0 << 8)
#define _88E1111_PHY_LEDCT_BLK_RATE_84       (1 << 8)
#define _88E1111_PHY_LEDCT_BLK_RATE_170      (2 << 8)
#define _88E1111_PHY_LEDCT_BLK_RATE_340      (3 << 8)
#define _88E1111_PHY_LEDCT_BLK_RATE_670      (4 << 8)

/* _88E1111_PHY_REG_EXSCT */
#define _88E1111_PHY_EXSCT_PRE_FIBER         (0x1 << 10)
#define _88E1111_PHY_EXSCT_PRE_COPPER        (0x2 << 10)
#define _88E1111_PHY_EXSCT_PRE_NONE          (0x0 << 10)
#define _88E1111_PHY_EXSCT_PRE_MASK          (0x3 << 10)

#define _88E1111_PHY_EXSCT_EXT_FIBER_DET     0x0080
/* _88E1111_PHY_REG_EXSST */
#define _88E1111_PHY_EXSST_FCAUTO_SEL        0x8000
#define _88E1111_PHY_EXSST_FC_RESOLVE        0x2000
#define _88E1111_PHY_EXSST_FCAUTO_MED_SEL    0x0200
#define _88E1111_PHY_EXSST_HWCFG_MODE_GMII_COPPER   0x000f     
#define _88E1111_PHY_EXSST_HWCFG_MODE_GMII_FIBER    0x0007     
#define _88E1111_PHY_EXSST_HWCFG_MODE_MASK          0x000f     

typedef struct _88e1111_phy
{
    DRV_VIR_PHY virPhy;
    UINT32      state;
}_88E1111_PHY;

DRV_VIR_PHY*  _88E1111PhyLoad();
void          _88E1111PhyUnLoad(DRV_VIR_PHY* phyInfo);

#endif

⌨️ 快捷键说明

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