/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates

This software file (the "File") is owned and distributed by Marvell
International Ltd. and/or its affiliates ("Marvell") under the following
alternative licensing terms.  Once you have made an election to distribute the
File under one of the following license alternatives, please (i) delete this
introductory statement regarding license alternatives, (ii) delete the two
license alternatives that you have not elected to use and (iii) preserve the
Marvell copyright notice above.

********************************************************************************
Marvell Commercial License Option

If you received this File from Marvell and you have entered into a commercial
license agreement (a "Commercial License") with Marvell, the File is licensed
to you under the terms of the applicable Commercial License.

********************************************************************************
Marvell GPL License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File in accordance with the terms and conditions of the General
Public License Version 2, June 1991 (the "GPL License"), a copy of which is
available along with the File in the license.txt file or by writing to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
on the worldwide web at http://www.gnu.org/licenses/gpl.txt.

THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED.  The GPL License provides additional details about this warranty
disclaimer.
********************************************************************************
Marvell BSD License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File under the following licensing terms.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * 	Redistributions of source code must retain the above copyright notice,
	this list of conditions and the following disclaimer.

    *	Redistributions in binary form must reproduce the above copyright
	notice, this list of conditions and the following disclaimer in the
	documentation and/or other materials provided with the distribution.

    *	Neither the name of Marvell nor the names of its contributors may be
	used to endorse or promote products derived from this software without
	specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*******************************************************************************/

#ifndef __INCmvCtrlEthCompLibh
#define __INCmvCtrlEthCompLibh

#include "ctrlEnv/mvCtrlEnvSpec.h"
#include "mvSysEthConfig.h"

/*******************************************************************************
 * Ports Group Control and Status */
#define MV_ETHCOMP_GOP_CTRL_STAT_REG			MV_ETH_COMPLEX_BASE

#define     ETHCGCS_PORT_DP_CLK_SRC_OFFSET(port)	((port == 0) ? 13 : 14)
#define     ETHCGCS_PORT_DP_CLK_SRC_MASK(port)		(0x1 << ETHCGCS_PORT_DP_CLK_SRC_OFFSET(port))

#define     ETHCGCS_GOP_ENABLE_DEV_OFFSET		19
#define     ETHCGCS_GOP_ENABLE_DEV_MASK			(0x1 << ETHCGCS_GOP_ENABLE_DEV_OFFSET)

/*******************************************************************************
* Ports Group Control and Status */
#define MV_ETHCOMP_GBE_PHY_CLOCK_CTRL_REG		(MV_ETH_COMPLEX_BASE + 0x1C)

#define     ETHCC_GBE_PHY_P4_SW_TO_MPP_EDGE_OFFSET	23
#define     ETHCC_GBE_PHY_P4_SW_TO_MPP_EDGE_MASK        (0x1 << ETHCC_GBE_PHY_P4_SW_TO_MPP_EDGE_OFFSET)

#define     ETHCC_GBE_PHY_GBE_P0_TO_MPP_EDGE_OFFSET	28
#define     ETHCC_GBE_PHY_GBE_P0_TO_MPP_EDGE_MASK	(0x1 << ETHCC_GBE_PHY_GBE_P0_TO_MPP_EDGE_OFFSET)

/*******************************************************************************
 * Ethernet Complex Control 0 */
#define MV_ETHCOMP_CTRL_REG				(MV_ETH_COMPLEX_BASE + 0x10)

#define     ETHCC_SW_PORT_SRC_OFFSET(port)		(port == 0 ? 4 : (port == 3 ? 5 : \
							(port == 4 ? 6 : (port == 6 ? 7 : 4))))
#define     ETHCC_SW_PORT_SRC_MASK(port)		(0x1 << ETHCC_SW_PORT_SRC_OFFSET(port))

enum mvSwPortSrc {
	ETHC_SW_PORT_SRC_NC,
	ETHC_SW_PORT_SRC_GBE_MAC,
	ETHC_SW_PORT_SRC_MPP,
	ETHC_SW_PORT_SRC_GBE_PHY,
};

#define     ETHCC_GBE_MAC_SRC_OFFSET(port)		(port == 0 ? 10 : (port == 1 ? 12 : 10))
#define     ETHCC_GBE_MAC_SRC_MASK(port)		(0x3 << ETHCC_GBE_MAC_SRC_OFFSET(port))

#define     ETHCC_GBE_PHY_PORT_SMI_SRC_OFFSET(port)	(port == 0 ? 20 : (port == 1 ? 15 : \
							(port == 2 ? 16 : (port == 3 ? 21 : 4))))
#define     ETHCC_GBE_PHY_PORT_SMI_SRC_MASK(port)	(0x1 << ETHCC_GBE_PHY_PORT_SMI_SRC_OFFSET(port))

#define     ETHCC_GBE_PHY_PORT_SRC_OFFSET(phy)		((phy >= 0 && phy <= 3) ? 14 + phy : 14)
#define     ETHCC_GBE_PHY_PORT_SRC_MASK(phy)		(0x1 << ETHCC_GBE_PHY_PORT_SRC_OFFSET(phy))

#define     ETHCC_GE_MAC0_SW_PORT_6_SPEED_OFFSET	18
#define     ETHCC_GE_MAC0_SW_PORT_6_SPEED_MASK		(0x1 << ETHCC_GE_MAC0_SW_PORT_6_SPEED_OFFSET)

#define     ETHCC_LOOPBACK_PORT_SPEED_OFFSET		19
#define     ETHCC_LOOPBACK_PORT_SPEED_MASK		(0x1 << ETHCC_LOOPBACK_PORT_SPEED_OFFSET)

#define     ETHCC_SW_OUT_CLOCK_IN_SRC_OFFSET		26
#define     ETHCC_SW_OUT_CLOCK_IN_SRC_MASK		(0x1 << ETHCC_SW_OUT_CLOCK_IN_SRC_OFFSET)

/*******************************************************************************
 * Switch Configuration and Reset Control
 */
#define MV_ETHCOMP_SW_CONFIG_RESET_CTRL			(MV_ETH_COMPLEX_BASE + 0x30)

#define     ETHSCRC_SWITCH_RESET_OFFSET			0
#define     ETHSCRC_SWITCH_RESET_MASK			(0x1 << ETHSCRC_SWITCH_RESET_OFFSET)

#define     ETHSCRC_PORT_2G_SELECT_OFFSET		14
#define     ETHSCRC_PORT_2G_SELECT_MASK			(0x1 << ETHSCRC_PORT_2G_SELECT_OFFSET)

/*******************************************************************************
 * GbE PHY <<%n>> Control 0.
 * 0x000189A0 + n*4: where n (0-3) represents GPHY_Num.
 */
#define MV_ETHCOMP_GBE_PHY_CTRL0_REG(phy)		(MV_ETH_COMPLEX_BASE + 0xA0 + (phy * 0x4))

#define     ETHCGPC0_PCS_PHY_ADDR_OFFSET		13
#define     ETHCGPC0_PCS_PHY_ADDR_MASK			(0x1F << ETHCGPC0_PCS_PHY_ADDR_OFFSET)

/*******************************************************************************
 * GbE PHY <<%n>> Control 1.
 * 0x000189B0 + n*4: where n (0-3) represents GPHY_Num.
 */
#define MV_ETHCOMP_GBE_PHY_CTRL1_REG(phy)		(MV_ETH_COMPLEX_BASE + 0xB0 + (phy * 0x4))

#define     ETHCGPC1_PHY_POWER_DOWN_OFFSET		10
#define     ETHCGPC1_PHY_POWER_DOWN_MASK		(0x3 << ETHCGPC1_PHY_POWER_DOWN_OFFSET)

#define     ETHCGPC1_PS_ENA_XCS_OFFSET			12
#define     ETHCGPC1_PS_ENA_XCS_MASK			(0x3 << ETHCGPC1_PS_ENA_XCS_OFFSET)

#define     ETHCGPC1_PD_CFG_EDED_A_OFFSET		14
#define     ETHCGPC1_PD_CFG_EDED_A_MASK			(0x7 << ETHCGPC1_PD_CFG_EDED_A_OFFSET)

/*******************************************************************************
 * Quad GbE PHY Common Control and Status
 */
#define MV_ETHCOMP_QUAD_GBE_PHY_CTRL_STAT_REG		(MV_ETH_COMPLEX_BASE + 0xD0)

#define     ETHQPCS_RESET_OFFSET			0
#define     ETHQPCS_RESET_MASK				(0x1 << ETHQPCS_DPLL_RESET_OFFSET)

#define     ETHQPCS_DPLL_RESET_OFFSET			4
#define     ETHQPCS_DPLL_RESET_MASK			(0x1 << ETHQPCS_DPLL_RESET_OFFSET)

/*******************************************************************************
 * GPON PHY Contol 1
 */
#define MV_GPON_PHY_CTRL1_REG				(MV_IP_CONFIG_REGS_OFFSET + 0xF8)

#define GPON_PHY_CTRL1_OFFSET				0
#define GPON_PHY_CTRL1_MASK				(0x1 << GPON_PHY_CTRL1_OFFSET)

/*******************************************************************************
* Port Auto-Negotiation Configuration
*/
#define MV_ETH_IN_BAND_AN_EN_OFFSET		2
#define MV_ETH_IN_BAND_AN_EN_MASK		(1 << MV_ETH_IN_BAND_AN_EN_OFFSET)

#define MV_ETH_SPEED_AUTO_NEG_OFFSET		7
#define MV_ETH_SPEED_AUTO_NEG_MASK		(1 << MV_ETH_SPEED_AUTO_NEG_OFFSET)

#define MV_ETH_FLOW_CTRL_AUTO_NEG_OFFSET	11
#define MV_ETH_FLOW_CTRL_AUTO_NEG_MASK		(1 << MV_ETH_FLOW_CTRL_AUTO_NEG_OFFSET)

#define MV_ETH_DUPLEX_AUTO_NEG_OFFSET		13
#define MV_ETH_DUPLEX_AUTO_NEG_MASK		(1 << MV_ETH_DUPLEX_AUTO_NEG_OFFSET)

#ifdef CONFIG_MV_ETH_PP2
MV_STATUS mvEthComplexInit(MV_U32 ethCompConfig);
void mvEthComplexGphyPortSmiSrcSet(MV_U32 phy, MV_U32 src);
#else
MV_STATUS mvEthComplexInit(MV_U32 ethCompConfig) { /* empty */ }
#endif

#endif /* __INCmvCtrlEthCompLibh */
