175eba5b6SRobert Mustacchi /******************************************************************************
275eba5b6SRobert Mustacchi 
3*49b78600SRobert Mustacchi   Copyright (c) 2001-2015, Intel Corporation
475eba5b6SRobert Mustacchi   All rights reserved.
575eba5b6SRobert Mustacchi 
675eba5b6SRobert Mustacchi   Redistribution and use in source and binary forms, with or without
775eba5b6SRobert Mustacchi   modification, are permitted provided that the following conditions are met:
875eba5b6SRobert Mustacchi 
975eba5b6SRobert Mustacchi    1. Redistributions of source code must retain the above copyright notice,
1075eba5b6SRobert Mustacchi       this list of conditions and the following disclaimer.
1175eba5b6SRobert Mustacchi 
1275eba5b6SRobert Mustacchi    2. Redistributions in binary form must reproduce the above copyright
1375eba5b6SRobert Mustacchi       notice, this list of conditions and the following disclaimer in the
1475eba5b6SRobert Mustacchi       documentation and/or other materials provided with the distribution.
1575eba5b6SRobert Mustacchi 
1675eba5b6SRobert Mustacchi    3. Neither the name of the Intel Corporation nor the names of its
1775eba5b6SRobert Mustacchi       contributors may be used to endorse or promote products derived from
1875eba5b6SRobert Mustacchi       this software without specific prior written permission.
1975eba5b6SRobert Mustacchi 
2075eba5b6SRobert Mustacchi   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
2175eba5b6SRobert Mustacchi   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2275eba5b6SRobert Mustacchi   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2375eba5b6SRobert Mustacchi   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
2475eba5b6SRobert Mustacchi   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2575eba5b6SRobert Mustacchi   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2675eba5b6SRobert Mustacchi   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2775eba5b6SRobert Mustacchi   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2875eba5b6SRobert Mustacchi   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2975eba5b6SRobert Mustacchi   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
3075eba5b6SRobert Mustacchi   POSSIBILITY OF SUCH DAMAGE.
3175eba5b6SRobert Mustacchi 
3275eba5b6SRobert Mustacchi ******************************************************************************/
3375eba5b6SRobert Mustacchi /*$FreeBSD$*/
3475eba5b6SRobert Mustacchi 
3575eba5b6SRobert Mustacchi #ifndef _E1000_80003ES2LAN_H_
3675eba5b6SRobert Mustacchi #define _E1000_80003ES2LAN_H_
3775eba5b6SRobert Mustacchi 
3875eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_OFFSET_FIFO_CTRL	0x00
3975eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_OFFSET_INB_CTRL	0x02
4075eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_OFFSET_HD_CTRL	0x10
4175eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE	0x1F
4275eba5b6SRobert Mustacchi 
4375eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_FIFO_CTRL_RX_BYPASS	0x0008
4475eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_FIFO_CTRL_TX_BYPASS	0x0800
4575eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_INB_CTRL_DIS_PADDING	0x0010
4675eba5b6SRobert Mustacchi 
4775eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_HD_CTRL_10_100_DEFAULT 0x0004
4875eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_HD_CTRL_1000_DEFAULT	0x0000
4975eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_OPMODE_E_IDLE		0x2000
5075eba5b6SRobert Mustacchi 
5175eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_OPMODE_MASK		0x000C
5275eba5b6SRobert Mustacchi #define E1000_KMRNCTRLSTA_OPMODE_INBAND_MDIO	0x0004
5375eba5b6SRobert Mustacchi 
54c124a83eSRobert Mustacchi #define E1000_TCTL_EXT_GCEX_MASK 0x000FFC00 /* Gig Carry Extend Padding */
5575eba5b6SRobert Mustacchi #define DEFAULT_TCTL_EXT_GCEX_80003ES2LAN	0x00010000
5675eba5b6SRobert Mustacchi 
5775eba5b6SRobert Mustacchi #define DEFAULT_TIPG_IPGT_1000_80003ES2LAN	0x8
5875eba5b6SRobert Mustacchi #define DEFAULT_TIPG_IPGT_10_100_80003ES2LAN	0x9
5975eba5b6SRobert Mustacchi 
6075eba5b6SRobert Mustacchi /* GG82563 PHY Specific Status Register (Page 0, Register 16 */
61c124a83eSRobert Mustacchi #define GG82563_PSCR_POLARITY_REVERSAL_DISABLE	0x0002 /* 1=Reversal Dis */
6275eba5b6SRobert Mustacchi #define GG82563_PSCR_CROSSOVER_MODE_MASK	0x0060
6375eba5b6SRobert Mustacchi #define GG82563_PSCR_CROSSOVER_MODE_MDI		0x0000 /* 00=Manual MDI */
6475eba5b6SRobert Mustacchi #define GG82563_PSCR_CROSSOVER_MODE_MDIX	0x0020 /* 01=Manual MDIX */
6575eba5b6SRobert Mustacchi #define GG82563_PSCR_CROSSOVER_MODE_AUTO	0x0060 /* 11=Auto crossover */
6675eba5b6SRobert Mustacchi 
6775eba5b6SRobert Mustacchi /* PHY Specific Control Register 2 (Page 0, Register 26) */
68c124a83eSRobert Mustacchi #define GG82563_PSCR2_REVERSE_AUTO_NEG		0x2000 /* 1=Reverse Auto-Neg */
6975eba5b6SRobert Mustacchi 
7075eba5b6SRobert Mustacchi /* MAC Specific Control Register (Page 2, Register 21) */
7175eba5b6SRobert Mustacchi /* Tx clock speed for Link Down and 1000BASE-T for the following speeds */
7275eba5b6SRobert Mustacchi #define GG82563_MSCR_TX_CLK_MASK		0x0007
7375eba5b6SRobert Mustacchi #define GG82563_MSCR_TX_CLK_10MBPS_2_5		0x0004
7475eba5b6SRobert Mustacchi #define GG82563_MSCR_TX_CLK_100MBPS_25		0x0005
7575eba5b6SRobert Mustacchi #define GG82563_MSCR_TX_CLK_1000MBPS_25		0x0007
7675eba5b6SRobert Mustacchi 
7775eba5b6SRobert Mustacchi #define GG82563_MSCR_ASSERT_CRS_ON_TX		0x0010 /* 1=Assert */
7875eba5b6SRobert Mustacchi 
79c124a83eSRobert Mustacchi /* DSP Distance Register (Page 5, Register 26)
8075eba5b6SRobert Mustacchi  * 0 = <50M
8175eba5b6SRobert Mustacchi  * 1 = 50-80M
8275eba5b6SRobert Mustacchi  * 2 = 80-100M
8375eba5b6SRobert Mustacchi  * 3 = 110-140M
8475eba5b6SRobert Mustacchi  * 4 = >140M
8575eba5b6SRobert Mustacchi  */
8675eba5b6SRobert Mustacchi #define GG82563_DSPD_CABLE_LENGTH		0x0007
8775eba5b6SRobert Mustacchi 
8875eba5b6SRobert Mustacchi /* Kumeran Mode Control Register (Page 193, Register 16) */
8975eba5b6SRobert Mustacchi #define GG82563_KMCR_PASS_FALSE_CARRIER		0x0800
9075eba5b6SRobert Mustacchi 
9175eba5b6SRobert Mustacchi /* Max number of times Kumeran read/write should be validated */
9275eba5b6SRobert Mustacchi #define GG82563_MAX_KMRN_RETRY			0x5
9375eba5b6SRobert Mustacchi 
9475eba5b6SRobert Mustacchi /* Power Management Control Register (Page 193, Register 20) */
9575eba5b6SRobert Mustacchi /* 1=Enable SERDES Electrical Idle */
9675eba5b6SRobert Mustacchi #define GG82563_PMCR_ENABLE_ELECTRICAL_IDLE	0x0001
9775eba5b6SRobert Mustacchi 
9875eba5b6SRobert Mustacchi /* In-Band Control Register (Page 194, Register 18) */
9975eba5b6SRobert Mustacchi #define GG82563_ICR_DIS_PADDING			0x0010 /* Disable Padding */
10075eba5b6SRobert Mustacchi 
10175eba5b6SRobert Mustacchi #endif
102