📄 csl_mdiohal.h
字号:
/*****************************************************************************\* Copyright (C) 1999-2003 Texas Instruments Incorporated.* All Rights Reserved*------------------------------------------------------------------------------* FILENAME...... csl_mdiohal.h* DATE CREATED.. 02/08/2002* LAST MODIFIED. 03/05/2003*------------------------------------------------------------------------------* REGISTERS/PARAMETERS** VERSION - Module Version Register* CONTROL - Module Control Register* ALIVE - PHY "Alive" Indication Register* LINK - PHY Link Status Register* LINKINTRAW - Link Status Change Interrupt Register* LINKINTMASKED - Link Status Change Interrupt Register (Masked)* USERINTRAW - User Command Complete Interrupt* USERINTMASKED - User Command Complete Interrupt (Masked)* USERINTMASKSET - Enable User Command Complete Interrupt Mask* USERINTMASKCLEAR - Disable User Command Complete Interrupt Mask* USERACCESS0 - User Access Register 0* USERPHYSEL0 - User PHY Select Register 0* USERACCESS1 - User Access Register 1* USERPHYSEL1 - User PHY Select Register 1**\******************************************************************************/#ifndef _CSL_MDIOHAL_H#define _CSL_MDIOHAL_H_#include <csl_stdinc.h>#include <csl_chip.h>#if (MDIO_SUPPORT)/******************************************************************************\* MDIO Register section\******************************************************************************/#define _MDIO_BASE_ADDR 0x01c83800u/******************************************************************************\* module level register/field access macros\******************************************************************************//* ----------------- *//* FIELD MAKE MACROS *//* ----------------- */// User Supplied Value#define MDIO_FMK(REG,FIELD,x)\ ((x<<_MDIO_##REG##_##FIELD##_SHIFT)&_MDIO_##REG##_##FIELD##_MASK)// Symbolic Value Name#define MDIO_FMKS(REG,FIELD,SYM)\ ((MDIO_##REG##_##FIELD##_##SYM<<_MDIO_##REG##_##FIELD##_SHIFT)\ &_MDIO_##REG##_##FIELD##_MASK)// MAC Index Flag Flag#define MDIO_FMKMIF(MACINDEX) (1u<<(MACINDEX))/* -------------------------------- *//* RAW REGISTER/FIELD ACCESS MACROS *//* -------------------------------- */#define MDIO_ADDR(REG)\ _MDIO_##REG##_ADDR#define MDIO_REG(REG)\ *(volatile Uint32*)(_MDIO_##REG##_ADDR)// Standard Registers#define MDIO_RGET(REG)\ (*(volatile Uint32*)(_MDIO_##REG##_ADDR))#define MDIO_RSET(REG,x)\ (*(volatile Uint32*)(_MDIO_##REG##_ADDR)=(x))#define MDIO_FGET(REG,FIELD)\ ((MDIO_RGET(REG)&_MDIO_##REG##_##FIELD##_MASK)\ >>_MDIO_##REG##_##FIELD##_SHIFT)#define MDIO_FSET(REG,FIELD,x)\ MDIO_RSET(REG,(MDIO_RGET(REG)&~_MDIO_##REG##_##FIELD##_MASK)|\ MDIO_FMK(REG,FIELD,x))#define MDIO_FSETS(REG,FIELD,SYM)\ MDIO_RSET(REG,(MDIO_RGET(REG)&~_MDIO_##REG##_##FIELD##_MASK)|\ MDIO_FMKS(REG,FIELD,SYM))/******************************************************************************\* _____________________* | |* | VERSION |* |___________________|** TXIDVER - TX Identification and Version Register** FIELDS (msb -> lsb)* (r) MODID - Module Id* (r) REVMAJ - Major Revision* (r) REVMIN - Minor Revision** MACROS SUPPORTED* MDIO_FMK y* MDIO_FMKS .* MDIO_FMKMIF .* MDIO_ADDR y* MDIO_REG y* MDIO_RGET y* MDIO_RSET y* MDIO_FGET y* MDIO_FSET y* MDIO_FSETS .*\******************************************************************************/#define _MDIO_VERSION_ADDR (_MDIO_BASE_ADDR+0x0000u)#define MDIO_VERSION MDIO_REG(VERSION)#define _MDIO_VERSION_MODID_MASK 0xFFFF0000u#define _MDIO_VERSION_MODID_SHIFT 16u#define MDIO_VERSION_MODID_DEFAULT 0x00000007u #define _MDIO_VERSION_REVMAJ_MASK 0x0000FF00u#define _MDIO_VERSION_REVMAJ_SHIFT 8u#define MDIO_VERSION_REVMAJ_DEFAULT 0x00000000u #define _MDIO_VERSION_REVMIN_MASK 0x000000FFu#define _MDIO_VERSION_REVMIN_SHIFT 0u#define MDIO_VERSION_REVMIN_DEFAULT 0x00000000u /******************************************************************************\* _____________________* | |* | CONTROL |* |___________________|** CONTROL - MDIO Control Register** FIELDS (msb -> lsb)* (r) IDLE - MDIO State Machine Idle* (rw) ENABLE - Enable Control* (rw) PREAMBLE - Preamble Disable* (rwc) FAULT - Fault Indicator* (rw) FAULTENB - Fault Detect Enable* (rw) INTTESTENB - Link Test Enable* (rw) CLKDIV - Clock Divider*** MACROS SUPPORTED* MDIO_FMK y* MDIO_FMKS y* MDIO_FMKMIF .* MDIO_ADDR y* MDIO_REG y* MDIO_RGET y* MDIO_RSET y* MDIO_FGET y* MDIO_FSET y* MDIO_FSETS y*\******************************************************************************/#define _MDIO_CONTROL_ADDR (_MDIO_BASE_ADDR+0x0004u)#define MDIO_CONTROL MDIO_REG(TXCONTROL)#define _MDIO_CONTROL_IDLE_MASK 0x80000000u#define _MDIO_CONTROL_IDLE_SHIFT 31u#define MDIO_CONTROL_IDLE_DEFAULT 0x00000001u #define MDIO_CONTROL_IDLE_YES 1u#define MDIO_CONTROL_IDLE_NO 0u#define _MDIO_CONTROL_ENABLE_MASK 0x40000000u#define _MDIO_CONTROL_ENABLE_SHIFT 30u#define MDIO_CONTROL_ENABLE_DEFAULT 0x00000000u #define MDIO_CONTROL_ENABLE_YES 1u#define MDIO_CONTROL_ENABLE_NO 0u#define _MDIO_CONTROL_PREAMBLE_MASK 0x00100000u#define _MDIO_CONTROL_PREAMBLE_SHIFT 20u#define MDIO_CONTROL_PREAMBLE_DEFAULT 0x00000000u #define MDIO_CONTROL_PREAMBLE_DISABLED 1u#define MDIO_CONTROL_PREAMBLE_ENABLED 0u#define _MDIO_CONTROL_FAULT_MASK 0x00080000u#define _MDIO_CONTROL_FAULT_SHIFT 19u#define MDIO_CONTROL_FAULT_DEFAULT 0x00000000u #define MDIO_CONTROL_FAULT_YES 1u#define MDIO_CONTROL_FAULT_NO 0u#define _MDIO_CONTROL_FAULTENB_MASK 0x00040000u#define _MDIO_CONTROL_FAULTENB_SHIFT 18u#define MDIO_CONTROL_FAULTENB_DEFAULT 0x00000000u #define MDIO_CONTROL_FAULTENB_YES 1u#define MDIO_CONTROL_FAULTENB_NO 0u#define _MDIO_CONTROL_INTTESTENB_MASK 0x00020000u#define _MDIO_CONTROL_INTTESTENB_SHIFT 17u#define MDIO_CONTROL_INTTESTENB_DEFAULT 0x00000000u #define MDIO_CONTROL_INTTESTENB_YES 1u#define MDIO_CONTROL_INTTESTENB_NO 0u#define _MDIO_CONTROL_CLKDIV_MASK 0x000000FFu#define _MDIO_CONTROL_CLKDIV_SHIFT 0u#define MDIO_CONTROL_CLKDIV_DEFAULT 0x000000FFu /******************************************************************************\* _____________________* | |* | ALIVE |* | LINK |* |___________________|** ALIVE - PHY "Alive" Indication Register* LINK - PHY Link Status Register** FIELDS (msb -> lsb)* PHY Index Flags (0-31) (use MDIO_FMKMIF)** MACROS SUPPORTED* MDIO_FMK .* MDIO_FMKS .* MDIO_FMKMIF y* MDIO_ADDR y* MDIO_REG y* MDIO_RGET y* MDIO_RSET y* MDIO_FGET .* MDIO_FSET .* MDIO_FSETS .*\******************************************************************************/#define _MDIO_ALIVE_ADDR (_MDIO_BASE_ADDR+0x0008u)#define _MDIO_LINK_ADDR (_MDIO_BASE_ADDR+0x000Cu)#define MDIO_ALIVE MDIO_REG(ALIVE)#define MDIO_LINK MDIO_REG(LINK)/******************************************************************************\* _____________________* | |* | LINKINTRAW |* | LINKINTMASKED |* | USERINTRAW |* | USERINTMASKED |* | USERINTMASKSET |* | USERINTMASKCLEAR |* |___________________|** LINKINTRAW - Link Status Change Interrupt Register* LINKINTMASKED - Link Status Change Interrupt Register (Masked)* USERINTRAW - User Command Complete Interrupt* USERINTMASKED - User Command Complete Interrupt (Masked)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -