blob: fe41bc0ccd2d1dddc3013fd81a3d6535ef71a014 [file] [log] [blame]
/*
* 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