X-Git-Url: http://bbs.cooldavid.org/git/?p=jme.git;a=blobdiff_plain;f=jme.h;h=944cf631438db978ff95c4e7e79d6ac28c392366;hp=953b1dca0ed2fe790e1c842232bec35361c2fc52;hb=8d27293f4a6c7c2bfde177c16714956ba3764c96;hpb=cdcdc9eb2783c559a7d88c2fd14f433b8a843c59 diff --git a/jme.h b/jme.h index 953b1dc..944cf63 100644 --- a/jme.h +++ b/jme.h @@ -24,9 +24,12 @@ #include #define DRV_NAME "jme" -#define DRV_VERSION "0.9b" +#define DRV_VERSION "0.9d" #define PFX DRV_NAME ": " +#define JME_GE_DEVICE 0x250 +#define JME_FE_DEVICE 0x260 + #ifdef DEBUG #define dprintk(devname, fmt, args...) \ printk(KERN_DEBUG "%s: " fmt, devname, ## args) @@ -447,6 +450,7 @@ enum jme_flags_bits { }; #define WAIT_TASKLET_TIMEOUT 500 /* 500 ms */ #define TX_TIMEOUT (5*HZ) +#define JME_REG_LEN 0x500 #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) __always_inline static struct jme_adapter* @@ -514,6 +518,7 @@ enum jme_iomap_regs { JME_PHY_CS = JME_PHY | 0x28, /* PHY Ctrl and Status Register */ JME_PHY_LINK = JME_PHY | 0x30, /* PHY Link Status Register */ JME_SMBCSR = JME_PHY | 0x40, /* SMB Control and Status */ + JME_SMBINTF = JME_PHY | 0x44, /* SMB Interface */ JME_TMCSR = JME_MISC| 0x00, /* Timer Control/Status Register */ @@ -772,7 +777,8 @@ __always_inline __u32 smi_phy_addr(int x) { return (((x) << SMI_PHY_ADDR_SHIFT) & SMI_PHY_ADDR_MASK); } -#define JME_PHY_TIMEOUT 1000 /* 1000 msec */ +#define JME_PHY_TIMEOUT 100 /* 100 msec */ +#define JME_PHY_REG_NR 32 /* * Global Host Control @@ -842,8 +848,33 @@ enum jme_smbcsr_bit_mask { SMBCSR_CNACK = 0x00020000, SMBCSR_RELOAD = 0x00010000, SMBCSR_EEPROMD = 0x00000020, + SMBCSR_INITDONE = 0x00000010, + SMBCSR_BUSY = 0x0000000F, +}; +enum jme_smbintf_bit_mask { + SMBINTF_HWDATR = 0xFF000000, + SMBINTF_HWDATW = 0x00FF0000, + SMBINTF_HWADDR = 0x0000FF00, + SMBINTF_HWRWN = 0x00000020, + SMBINTF_HWCMD = 0x00000010, + SMBINTF_FASTM = 0x00000008, + SMBINTF_GPIOSCL = 0x00000004, + SMBINTF_GPIOSDA = 0x00000002, + SMBINTF_GPIOEN = 0x00000001, +}; +enum jme_smbintf_vals { + SMBINTF_HWRWN_READ = 0x00000020, + SMBINTF_HWRWN_WRITE = 0x00000000, +}; +enum jme_smbintf_shifts { + SMBINTF_HWDATR_SHIFT = 24, + SMBINTF_HWDATW_SHIFT = 16, + SMBINTF_HWADDR_SHIFT = 8, }; -#define JME_SMB_TIMEOUT 10 /* 10 msec */ +#define JME_EEPROM_RELOAD_TIMEOUT 2000 /* 2000 msec */ +#define JME_SMB_BUSY_TIMEOUT 20 /* 20 msec */ +#define JME_SMB_LEN 256 +#define JME_EEPROM_MAGIC 0x250 /* * Timer Control/Status Register @@ -1028,7 +1059,7 @@ enum jme_phy_reg17_vals { PREG17_SPEED_100M = 0x4000, PREG17_SPEED_1000M = 0x8000, }; -#define BMCR_ANCOMP 0x0020 +#define BMSR_ANCOMP 0x0020 /* * Function prototypes for ethtool