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