?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{FILE START}

library

?curdirlinks? - Rev 32

?prevdifflink? - Blame - ?getfile?

/*********************************************************************
 *
 *                  National 83640 definitions
 *
 *********************************************************************
 * FileName:        ETHPIC32ExtPhyDP83640.h
 * Dependencies:
 * Processor:       PIC32
 *
 * Complier:        MPLAB C32
 *                  MPLAB IDE
 * Company:         Microchip Technology, Inc.
 *
 * Software License Agreement
 * Microchip Audio Library – PIC32 Software.
 * Copyright © 2008 Microchip Technology Inc.  All rights reserved.
 * 
 * Microchip licenses the Software for your use with Microchip microcontrollers
 * and Microchip digital signal controllers pursuant to the terms of the
 * Non-Exclusive Software License Agreement accompanying this Software.
 *
 * SOFTWARE AND DOCUMENTATION ARE PROVIDED “AS IS” WITHOUT WARRANTY
 * OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION,
 * ANY WARRANTY OF MERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS
 * FOR A PARTICULAR PURPOSE.
 * MICROCHIP AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR THE ACCURACY,
 * RELIABILITY OR APPLICATION OF THE SOFTWARE AND DOCUMENTATION.
 * IN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED
 * UNDER CONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH
 * OF WARRANTY, OR OTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT
 * DAMAGES OR EXPENSES INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL,
 * SPECIAL, INDIRECT, PUNITIVE OR CONSEQUENTIAL DAMAGES, LOST PROFITS
 * OR LOST DATA, COST OF PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY,
 * SERVICES, OR ANY CLAIMS BY THIRD PARTIES (INCLUDING BUT NOT LIMITED
 * TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
 *
 *$Id: $
 ********************************************************************/
#ifndef _NAT_DP83640_H_

#define _NAT_DP83640_H_

typedef enum
{
        /*
        // basic registers, accross all registers: 0-1
        PHY_REG_BMCON           = 0,
        PHY_REG_BMSTAT          = 1,
        // extended registers: 2-15
        PHY_REG_PHYID1          = 2,
        PHY_REG_PHYID2          = 3,
        PHY_REG_ANAD            = 4,
        PHY_REG_ANLPAD          = 5,
        PHY_REG_ANLPADNP        = 5,
        PHY_REG_ANEXP           = 6,
        PHY_REG_ANNPTR          = 7,
        // PHY_REG_ANLPRNP              = 8, not on 83640
        */

        // specific vendor registers: 16-31
        PHY_REG_STS                     = 0x10,
        PHY_REG_MII_INT_CTRL    = 0x11,
        PHY_REG_MII_INT_STAT    = 0x12,
        PHY_REG_PAGESEL         = 0x13,     // extended register accessed by page selection register
        
        // extended registers - page 0
        PHY_REG_FALSE_CS_COUNT  = 0x14,
        PHY_REG_RXERR_COUNT     = 0x15,
        PHY_REG_PCS_CONFIG      = 0x16,
        PHY_REG_RMII_BYPASS     = 0x17,
        PHY_REG_LED_CTRL        = 0x18,
        PHY_REG_PHY_CTRL        = 0x19,
        PHY_REG_10BT_CTRL       = 0x1a,
        PHY_REG_TEST_CTRL       = 0x1b,
        PHY_REG_ENERGY_CTRL     = 0x1d,
        PHY_REG_PCFCR       = 0x1F,
        
        // test registers - page 1
        PHY_REG_TEST_SD_CNFG    = 0x1E,
        
        // link diagnostics registers - page 2
        PHY_REG_LEN100_DET  = 0x14,
        PHY_REG_FREQ100     = 0x15,
        PHY_REG_TDR_CTRL    = 0x16,
        PHY_REG_TDR_WIN     = 0x17,
        PHY_REG_TDR_PEAK    = 0x18,
        PHY_REG_TDR_THR     = 0x19,
        PHY_REG_VAR_CTRL    = 0x1A,
        PHY_REG_VAR_DAT     = 0x1B,
        PHY_REG_LQMR        = 0x1D,
        PHY_REG_LQDR        = 0x1E,
        PHY_REG_LQMR2       = 0x1F,
        
        // PTP 1588 base registers - page 4
        PHY_REG_PTP_DTL     = 0x14,
        PHY_REG_PTP_TDR     = 0x15,
        PHY_REG_PTP_STS     = 0x16,
        PHY_REG_PTP_TSTS    = 0x17,
        PHY_REG_PTP_RATEL   = 0x18,
        PHY_REG_PTP_RATEH   = 0x19,
        PHY_REG_PTP_RDCKSUM = 0x1A,
        PHY_REG_PTP_WRCKSUM = 0x1B,
        PHY_REG_PTP_TXTS    = 0x1C,
        PHY_REG_PTP_RXTS    = 0x1D,
        PHY_REG_PTP_ESTS    = 0x1E,
        PHY_REG_PTP_EDATA   = 0x1F,
        
        // PTP 1588 Configuration registers - Page 5
        PHY_REG_PTP_TRIG    = 0x14,
        PHY_REG_PTP_EVNT    = 0x15,
        PHY_REG_PTP_TXCFG0  = 0x16,
        PHY_REG_PTP_TXCFG1  = 0x17,
        PHY_REG_PSF_CFG0    = 0x18,
        PHY_REG_PTP_RXCFG0  = 0x19,
        PHY_REG_PTP_RXCFG1  = 0x1A,
        PHY_REG_PTP_RXCFG2  = 0x1B,
        PHY_REG_PTP_RXCFG3  = 0x1C,
        PHY_REG_PTP_RXCFG4  = 0x1D,
        PHY_REG_PTP_TRDL    = 0x1E,
        PHY_REG_PTP_TRDH    = 0x1F,
        
        // PTP 1588 Configuration Registers - Page 6
        PHY_REG_PTP_COC     = 0x14,
        PHY_REG_PSF_CFG1    = 0x15,
        PHY_REG_PSF_CFG2    = 0x16,
        PHY_REG_PSF_CFG3    = 0x17,
        PHY_REG_PSF_CFG4    = 0x18,
        PHY_REG_PTP_SFDCFG  = 0x19,
        PHY_REG_PTP_INTCTL  = 0x1A,
        PHY_REG_PTP_CLKSRC  = 0x1B,
        PHY_REG_PTP_ETR     = 0x1C,
        PHY_REG_PTP_OFF     = 0x1D,
        PHY_REG_PTP_GPIOMON = 0x1E,
        PHY_REG_PTP_RXHASH  = 0x1F,
        
        //
        //PHY_REGISTERS         = 32    // total number of registers
}ePHY_VENDOR_REG;
// updated version of ePHY_REG


// vendor registers
//
typedef union {
  struct {    
    unsigned ELAST_BUF:2;
    unsigned RX_UNF_STS:1;
    unsigned RX_OVF_STS:1;
    unsigned RMII_REV1_0:1;
    unsigned RMII_MODE:1;
    unsigned SCMII_TX : 1;
    unsigned SCMII_RX : 1;
    unsigned PMD_LOOP : 1;
    unsigned : 4;
    unsigned DIS_TX_OPT : 1;
    unsigned RMII_MASTER : 1;
    unsigned :1;
  };
  struct {
    unsigned short w:16;
  };
} __RMIIBYPASSbits_t;   // reg 0x17: PHY_REG_RMII_BYPASS 
#define _RMIIBYPASS_RMII_MODE_MASK              0x0020
#define _RMIIBYPASS_RMII_REV1_0_MASK            0x0010
#define _RMIIBYPASS_RX_OVF_STS_MASK             0x0008
#define _RMIIBYPASS_RX_UNF_STS_MASK             0x0004
#define _RMIIBYPASS_ELAST_BUF_MASK              0x0003




typedef union {
  struct {    
    unsigned PHYADDR:5;
    unsigned LED_CFG:2;
    unsigned BP_STRETCH:1;
    unsigned BIST_START:1;
    unsigned BIST_STATUS:1;
    unsigned PSR_15:1;
    unsigned BIST_FE:1;
    unsigned PAUSE_TX:1;
    unsigned PAUSE_RX:1;
    unsigned FORCE_MDIX:1;
    unsigned MDIX_EN:1;
  };
  struct {
    unsigned short w:16;
  };
} __PHYCTRLbits_t;      // reg 0x19: PHY_REG_PHY_CTRL
#define _PHYCTRL_PHYADDR_MASK           0x001f
#define _PHYCTRL_LED_CFG_MASK           0x0060
#define _PHYCTRL_BP_STRETCH_MASK        0x0080
#define _PHYCTRL_BIST_START_MASK        0x0100
#define _PHYCTRL_BIST_STATUS_MASK       0x0200
#define _PHYCTRL_PSR_15_MASK            0x0400
#define _PHYCTRL_BIST_FE_MASK           0x0800
#define _PHYCTRL_PAUSE_TX_MASK          0x1000
#define _PHYCTRL_PAUSE_RX_MASK          0x2000
#define _PHYCTRL_FORCE_MDIX_MASK        0x4000
#define _PHYCTRL_MDIX_EN_MASK           0x8000






#endif  // _NAT_DP83640C_H_

{FILE END}
{FOOTER START}

Powered by WebSVN v2.8.3