blob: aff30f00afff927d3d958c5121e7d3541603abe4 [file] [log] [blame]
Wolfgang Denk4646d2a2006-05-30 15:56:48 +02001/**
2 * @file IxEthAccMii_p.h
3 *
4 * @author Intel Corporation
5 * @date
6 *
7 * @brief MII Header file
8 *
9 * Design Notes:
10 *
11 *
12 * @par
13 * IXP400 SW Release version 2.0
14 *
15 * -- Copyright Notice --
16 *
17 * @par
18 * Copyright 2001-2005, Intel Corporation.
19 * All rights reserved.
20 *
21 * @par
Wolfgang Denkc57eadc2013-07-28 22:12:47 +020022 * SPDX-License-Identifier: BSD-3-Clause
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020023 * @par
24 * -- End of Copyright Notice --
25 */
26
27#ifndef IxEthAccMii_p_H
28#define IxEthAccMii_p_H
29
30/* MII definitions - these have been verified against the LXT971 and LXT972 PHYs*/
31
32#define IXP425_ETH_ACC_MII_MAX_REG 32 /* max register per phy */
33
34#define IX_ETH_ACC_MII_REG_SHL 16
35#define IX_ETH_ACC_MII_ADDR_SHL 21
36
37/* Definitions for MII access routines*/
38
39#define IX_ETH_ACC_MII_GO BIT(31)
40#define IX_ETH_ACC_MII_WRITE BIT(26)
41#define IX_ETH_ACC_MII_TIMEOUT_10TH_SECS 5
42#define IX_ETH_ACC_MII_10TH_SEC_IN_MILLIS 100
43#define IX_ETH_ACC_MII_READ_FAIL BIT(31)
44
45#define IX_ETH_ACC_MII_PHY_DEF_DELAY 300 /* max delay before link up, etc. */
46#define IX_ETH_ACC_MII_PHY_NO_DELAY 0x0 /* do not delay */
47#define IX_ETH_ACC_MII_PHY_NULL 0xff /* PHY is not present */
48#define IX_ETH_ACC_MII_PHY_DEF_ADDR 0x0 /* default PHY's logical address */
49
50#ifndef IX_ETH_ACC_MII_MONITOR_DELAY
51# define IX_ETH_ACC_MII_MONITOR_DELAY 0x5 /* in seconds */
52#endif
53
54/* Register definition */
55
56#define IX_ETH_ACC_MII_CTRL_REG 0x0 /* Control Register */
57#define IX_ETH_ACC_MII_STAT_REG 0x1 /* Status Register */
58#define IX_ETH_ACC_MII_PHY_ID1_REG 0x2 /* PHY identifier 1 Register */
59#define IX_ETH_ACC_MII_PHY_ID2_REG 0x3 /* PHY identifier 2 Register */
Wolfgang Denka1be4762008-05-20 16:00:29 +020060#define IX_ETH_ACC_MII_AN_ADS_REG 0x4 /* Auto-Negotiation */
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020061 /* Advertisement Register */
Wolfgang Denka1be4762008-05-20 16:00:29 +020062#define IX_ETH_ACC_MII_AN_PRTN_REG 0x5 /* Auto-Negotiation */
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020063 /* partner ability Register */
64#define IX_ETH_ACC_MII_AN_EXP_REG 0x6 /* Auto-Negotiation */
65 /* Expansion Register */
Wolfgang Denka1be4762008-05-20 16:00:29 +020066#define IX_ETH_ACC_MII_AN_NEXT_REG 0x7 /* Auto-Negotiation */
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020067 /* next-page transmit Register */
68
69IxEthAccStatus ixEthAccMdioShow (void);
70IxEthAccStatus ixEthAccMiiInit(void);
71void ixEthAccMiiUnload(void);
72
73#endif /*IxEthAccMii_p_H*/