1/* @TAG(CUSTOM) *//** 2 * \file hw_mdio.h 3 * 4 * \brief MDIO register definitions 5 */ 6 7/* 8* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ 9*/ 10/* 11* Redistribution and use in source and binary forms, with or without 12* modification, are permitted provided that the following conditions 13* are met: 14* 15* Redistributions of source code must retain the above copyright 16* notice, this list of conditions and the following disclaimer. 17* 18* Redistributions in binary form must reproduce the above copyright 19* notice, this list of conditions and the following disclaimer in the 20* documentation and/or other materials provided with the 21* distribution. 22* 23* Neither the name of Texas Instruments Incorporated nor the names of 24* its contributors may be used to endorse or promote products derived 25* from this software without specific prior written permission. 26* 27* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38* 39*/ 40 41#pragma once 42 43#ifdef __cplusplus 44extern "C" { 45#endif 46 47#define MDIO_REVID (0x0) 48#define MDIO_CONTROL (0x4) 49#define MDIO_ALIVE (0x8) 50#define MDIO_LINK (0xC) 51#define MDIO_LINKINTRAW (0x10) 52#define MDIO_LINKINTMASKED (0x14) 53#define MDIO_USERINTRAW (0x20) 54#define MDIO_USERINTMASKED (0x24) 55#define MDIO_USERINTMASKSET (0x28) 56#define MDIO_USERINTMASKCLEAR (0x2C) 57#define MDIO_USERACCESS0 (0x80) 58#define MDIO_USERPHYSEL0 (0x84) 59#define MDIO_USERACCESS1 (0x88) 60#define MDIO_USERPHYSEL1 (0x8C) 61 62 /**************************************************************************\ 63 * Field Definition Macros 64 \**************************************************************************/ 65 66 /* REVID */ 67 68#define MDIO_REVID_REV (0xFFFFFFFFu) 69#define MDIO_REVID_REV_SHIFT (0x00000000u) 70 71 /* CONTROL */ 72 73#define MDIO_CONTROL_IDLE (0x80000000u) 74#define MDIO_CONTROL_IDLE_SHIFT (0x0000001Fu) 75 /*----IDLE Tokens----*/ 76#define MDIO_CONTROL_IDLE_NO (0x00000000u) 77#define MDIO_CONTROL_IDLE_YES (0x00000001u) 78 79#define MDIO_CONTROL_ENABLE (0x40000000u) 80#define MDIO_CONTROL_ENABLE_SHIFT (0x0000001Eu) 81 82#define MDIO_CONTROL_HIGHEST_USER_CHANNEL (0x1F000000u) 83#define MDIO_CONTROL_HIGHEST_USER_CHANNEL_SHIFT (0x00000018u) 84 85#define MDIO_CONTROL_PREAMBLE (0x00100000u) 86#define MDIO_CONTROL_PREAMBLE_SHIFT (0x00000014u) 87 /*----PREAMBLE Tokens----*/ 88 89#define MDIO_CONTROL_FAULT (0x00080000u) 90#define MDIO_CONTROL_FAULT_SHIFT (0x00000013u) 91 92#define MDIO_CONTROL_FAULTENB (0x00040000u) 93#define MDIO_CONTROL_FAULTENB_SHIFT (0x00000012u) 94 /*----FAULTENB Tokens----*/ 95 96#define MDIO_CONTROL_CLKDIV (0x0000FFFFu) 97#define MDIO_CONTROL_CLKDIV_SHIFT (0x00000000u) 98 /*----CLKDIV Tokens----*/ 99 100 /* ALIVE */ 101 102#define MDIO_ALIVE_REGVAL (0xFFFFFFFFu) 103#define MDIO_ALIVE_REGVAL_SHIFT (0x00000000u) 104 105 /* LINK */ 106 107#define MDIO_LINK_REGVAL (0xFFFFFFFFu) 108#define MDIO_LINK_REGVAL_SHIFT (0x00000000u) 109 110 /* LINKINTRAW */ 111 112#define MDIO_LINKINTRAW_USERPHY1 (0x00000002u) 113#define MDIO_LINKINTRAW_USERPHY1_SHIFT (0x00000001u) 114 115#define MDIO_LINKINTRAW_USERPHY0 (0x00000001u) 116#define MDIO_LINKINTRAW_USERPHY0_SHIFT (0x00000000u) 117 118 /* LINKINTMASKED */ 119 120#define MDIO_LINKINTMASKED_USERPHY1 (0x00000002u) 121#define MDIO_LINKINTMASKED_USERPHY1_SHIFT (0x00000001u) 122 123#define MDIO_LINKINTMASKED_USERPHY0 (0x00000001u) 124#define MDIO_LINKINTMASKED_USERPHY0_SHIFT (0x00000000u) 125 126 /* USERINTRAW */ 127 128#define MDIO_USERINTRAW_USERACCESS1 (0x00000002u) 129#define MDIO_USERINTRAW_USERACCESS1_SHIFT (0x00000001u) 130 131#define MDIO_USERINTRAW_USERACCESS0 (0x00000001u) 132#define MDIO_USERINTRAW_USERACCESS0_SHIFT (0x00000000u) 133 134 /* USERINTMASKED */ 135 136#define MDIO_USERINTMASKED_USERACCESS1 (0x00000002u) 137#define MDIO_USERINTMASKED_USERACCESS1_SHIFT (0x00000001u) 138 139#define MDIO_USERINTMASKED_USERACCESS0 (0x00000001u) 140#define MDIO_USERINTMASKED_USERACCESS0_SHIFT (0x00000000u) 141 142 /* USERINTMASKSET */ 143 144#define MDIO_USERINTMASKSET_USERACCESS1 (0x00000002u) 145#define MDIO_USERINTMASKSET_USERACCESS1_SHIFT (0x00000001u) 146 147#define MDIO_USERINTMASKSET_USERACCESS0 (0x00000001u) 148#define MDIO_USERINTMASKSET_USERACCESS0_SHIFT (0x00000000u) 149 150 /* USERINTMASKCLEAR */ 151 152#define MDIO_USERINTMASKCLEAR_USERACCESS1 (0x00000002u) 153#define MDIO_USERINTMASKCLEAR_USERACCESS1_SHIFT (0x00000001u) 154 155#define MDIO_USERINTMASKCLEAR_USERACCESS0 (0x00000001u) 156#define MDIO_USERINTMASKCLEAR_USERACCESS0_SHIFT (0x00000000u) 157 158 /* USERACCESS0 */ 159 160#define MDIO_USERACCESS0_GO (0x80000000u) 161#define MDIO_USERACCESS0_GO_SHIFT (0x0000001Fu) 162 163#define MDIO_USERACCESS0_WRITE (0x40000000u) 164#define MDIO_USERACCESS0_READ (0x00000000u) 165#define MDIO_USERACCESS0_WRITE_SHIFT (0x0000001Eu) 166 167#define MDIO_USERACCESS0_ACK (0x20000000u) 168#define MDIO_USERACCESS0_ACK_SHIFT (0x0000001Du) 169 170#define MDIO_USERACCESS0_REGADR (0x03E00000u) 171#define MDIO_USERACCESS0_REGADR_SHIFT (0x00000015u) 172 173#define MDIO_USERACCESS0_PHYADR (0x001F0000u) 174#define MDIO_USERACCESS0_PHYADR_SHIFT (0x00000010u) 175 176#define MDIO_USERACCESS0_DATA (0x0000FFFFu) 177#define MDIO_USERACCESS0_DATA_SHIFT (0x00000000u) 178 179 /* USERPHYSEL0 */ 180 181#define MDIO_USERPHYSEL0_LINKSEL (0x00000080u) 182#define MDIO_USERPHYSEL0_LINKSEL_SHIFT (0x00000007u) 183 184#define MDIO_USERPHYSEL0_LINKINTENB (0x00000040u) 185#define MDIO_USERPHYSEL0_LINKINTENB_SHIFT (0x00000006u) 186 187#define MDIO_USERPHYSEL0_PHYADRMON (0x0000001Fu) 188#define MDIO_USERPHYSEL0_PHYADRMON_SHIFT (0x00000000u) 189 190 /* USERACCESS1 */ 191 192#define MDIO_USERACCESS1_GO (0x80000000u) 193#define MDIO_USERACCESS1_GO_SHIFT (0x0000001Fu) 194 195#define MDIO_USERACCESS1_WRITE (0x40000000u) 196#define MDIO_USERACCESS1_WRITE_SHIFT (0x0000001Eu) 197 198#define MDIO_USERACCESS1_ACK (0x20000000u) 199#define MDIO_USERACCESS1_ACK_SHIFT (0x0000001Du) 200 201#define MDIO_USERACCESS1_REGADR (0x03E00000u) 202#define MDIO_USERACCESS1_REGADR_SHIFT (0x00000015u) 203 204#define MDIO_USERACCESS1_PHYADR (0x001F0000u) 205#define MDIO_USERACCESS1_PHYADR_SHIFT (0x00000010u) 206 207#define MDIO_USERACCESS1_DATA (0x0000FFFFu) 208#define MDIO_USERACCESS1_DATA_SHIFT (0x00000000u) 209 210 /* USERPHYSEL1 */ 211 212#define MDIO_USERPHYSEL1_LINKSEL (0x00000080u) 213#define MDIO_USERPHYSEL1_LINKSEL_SHIFT (0x00000007u) 214 215#define MDIO_USERPHYSEL1_LINKINTENB (0x00000040u) 216#define MDIO_USERPHYSEL1_LINKINTENB_SHIFT (0x00000006u) 217 218#define MDIO_USERPHYSEL1_PHYADRMON (0x0000001Fu) 219#define MDIO_USERPHYSEL1_PHYADRMON_SHIFT (0x00000000u) 220 221#ifdef __cplusplus 222} 223#endif 224 225