51 lines
2.1 KiB
C
51 lines
2.1 KiB
C
/*
|
|
* ar80xx.h: ar80xx PHY driver
|
|
*
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef __AR80XX_H__
|
|
#define __AR80XX_H__
|
|
|
|
#define AR80XX_PHY_ID_MASK 0xffffffff
|
|
#define AR80XX_PHY_ID_AR8033 0x004dd074
|
|
#define ETH_SGMII_ADDRESS_OFFSET 0x48
|
|
|
|
#define AR80XX_REG_CHIP_CONFIG 0x1f
|
|
#define AR80XX_BT_BX_REG_SEL 0x8000 /* bit 15, select copper page register */
|
|
#define AR80XX_AUTO_NEGO 0x1000 /* bit 12, enable auto negotiation */
|
|
|
|
#define ETH_SGMII_GIGE_MSB 24
|
|
#define ETH_SGMII_GIGE_LSB 24
|
|
#define ETH_SGMII_GIGE_MASK 0x01000000
|
|
#define ETH_SGMII_GIGE_GET(x) (((x) & ETH_SGMII_GIGE_MASK) >> ETH_SGMII_GIGE_LSB)
|
|
#define ETH_SGMII_GIGE_SET(x) (((x) << ETH_SGMII_GIGE_LSB) & ETH_SGMII_GIGE_MASK)
|
|
|
|
#define ETH_SGMII_CLK_SEL_MSB 25
|
|
#define ETH_SGMII_CLK_SEL_LSB 25
|
|
#define ETH_SGMII_CLK_SEL_MASK 0x02000000
|
|
#define ETH_SGMII_CLK_SEL_GET(x) (((x) & ETH_SGMII_CLK_SEL_MASK) >> ETH_SGMII_CLK_SEL_LSB)
|
|
#define ETH_SGMII_CLK_SEL_SET(x) (((x) << ETH_SGMII_CLK_SEL_LSB) & ETH_SGMII_CLK_SEL_MASK)
|
|
|
|
#define ETH_SGMII_PHASE0_COUNT_MSB 7
|
|
#define ETH_SGMII_PHASE0_COUNT_LSB 0
|
|
#define ETH_SGMII_PHASE0_COUNT_MASK 0x000000ff
|
|
#define ETH_SGMII_PHASE0_COUNT_GET(x) (((x) & ETH_SGMII_PHASE0_COUNT_MASK) >> ETH_SGMII_PHASE0_COUNT_LSB)
|
|
#define ETH_SGMII_PHASE0_COUNT_SET(x) (((x) << ETH_SGMII_PHASE0_COUNT_LSB) & ETH_SGMII_PHASE0_COUNT_MASK)
|
|
|
|
#define ETH_SGMII_PHASE1_COUNT_MSB 15
|
|
#define ETH_SGMII_PHASE1_COUNT_LSB 8
|
|
#define ETH_SGMII_PHASE1_COUNT_MASK 0x0000ff00
|
|
#define ETH_SGMII_PHASE1_COUNT_GET(x) (((x) & ETH_SGMII_PHASE1_COUNT_MASK) >> ETH_SGMII_PHASE1_COUNT_LSB)
|
|
#define ETH_SGMII_PHASE1_COUNT_SET(x) (((x) << ETH_SGMII_PHASE1_COUNT_LSB) & ETH_SGMII_PHASE1_COUNT_MASK)
|
|
#endif
|