/*******************************************************************************
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 __INCmvBoardEnvSpech
#define __INCmvBoardEnvSpech

#include "mvSysHwConfig.h"


/* Board specific ID configuration */
/* ============================ */
/* Bobcat2 Customer Boards */
#define BC2_CUSTOMER_BOARD_ID_BASE	0x0
#define BC2_CUSTOMER_BOARD_ID0		(BC2_CUSTOMER_BOARD_ID_BASE + 0)
#define BC2_CUSTOMER_BOARD_ID1		(BC2_CUSTOMER_BOARD_ID_BASE + 1)
#define BC2_CUSTOMER_MAX_BOARD_ID	(BC2_CUSTOMER_BOARD_ID_BASE + 2)
#define BC2_CUSTOMER_BOARD_NUM		(BC2_CUSTOMER_MAX_BOARD_ID - BC2_CUSTOMER_BOARD_ID_BASE)

/* Bobcat2 Marvell boards */
#define BC2_MARVELL_BOARD_ID_BASE	0x10
#define DB_DX_BC2_ID			(BC2_MARVELL_BOARD_ID_BASE + 0)
#define RD_DX_BC2_ID			(BC2_MARVELL_BOARD_ID_BASE + 1)
#define RD_MTL_BC2			(BC2_MARVELL_BOARD_ID_BASE + 2)
#define BC2_MARVELL_MAX_BOARD_ID	(BC2_MARVELL_BOARD_ID_BASE + 3)
#define BC2_MARVELL_BOARD_NUM		(BC2_MARVELL_MAX_BOARD_ID - BC2_MARVELL_BOARD_ID_BASE)


/* AlleyCat3 Customer Boards */
#define AC3_CUSTOMER_BOARD_ID_BASE	0x20
#define AC3_CUSTOMER_BOARD_ID0		(AC3_CUSTOMER_BOARD_ID_BASE + 0)
#define AC3_CUSTOMER_BOARD_ID1		(AC3_CUSTOMER_BOARD_ID_BASE + 1)
#define AC3_CUSTOMER_MAX_BOARD_ID	(AC3_CUSTOMER_BOARD_ID_BASE + 2)
#define AC3_CUSTOMER_BOARD_NUM		(AC3_CUSTOMER_MAX_BOARD_ID - AC3_CUSTOMER_BOARD_ID_BASE)

/* AlleyCat3 Marvell boards */
#define AC3_MARVELL_BOARD_ID_BASE	0x30
#define DB_AC3_ID			(AC3_MARVELL_BOARD_ID_BASE + 0)
#define RD_MTL_4XG_AC3_ID		(AC3_MARVELL_BOARD_ID_BASE + 1)
#define RD_MTL_2XXG_2XG_AC3_ID		(AC3_MARVELL_BOARD_ID_BASE + 2)
#define DB_MISL_24G4G_AC3_ID		(AC3_MARVELL_BOARD_ID_BASE + 3)
#define RD_MTL_24G_AC3_ID		(AC3_MARVELL_BOARD_ID_BASE + 4)
#define AC3_MARVELL_MAX_BOARD_ID	(AC3_MARVELL_BOARD_ID_BASE + 5)
#define AC3_MARVELL_BOARD_NUM		(AC3_MARVELL_MAX_BOARD_ID - AC3_MARVELL_BOARD_ID_BASE)

/* BobK Customer Boards */
#define BOBK_CUSTOMER_BOARD_ID_BASE	0x40
#define BOBK_CETUS_CUSTOMER_BOARD_ID0		(BOBK_CUSTOMER_BOARD_ID_BASE + 0)
#define BOBK_CAELUM_CUSTOMER_BOARD_ID1		(BOBK_CUSTOMER_BOARD_ID_BASE + 1)
#define BOBK_CUSTOMER_MAX_BOARD_ID	(BOBK_CUSTOMER_BOARD_ID_BASE + 2)
#define BOBK_CUSTOMER_BOARD_NUM		(BOBK_CUSTOMER_MAX_BOARD_ID - BOBK_CUSTOMER_BOARD_ID_BASE)

/* BobK Marvell Boards */
#define BOBK_MARVELL_BOARD_ID_BASE	0x50
#define BOBK_CETUS_DB_ID			(BOBK_MARVELL_BOARD_ID_BASE + 0)
#define BOBK_CAELUM_DB_ID			(BOBK_MARVELL_BOARD_ID_BASE + 1)
#define BOBK_MARVELL_MAX_BOARD_ID	(BOBK_MARVELL_BOARD_ID_BASE + 2)
#define BOBK_MARVELL_BOARD_NUM		(BOBK_MARVELL_MAX_BOARD_ID - BOBK_MARVELL_BOARD_ID_BASE)

/* AXP-AMC board: for Linux 2.6/3.4 usage only (AXP family is shared with MSYS in LSP) */
#define DB_78X60_AMC_ID			0x6

#define INVALID_BOARD_ID		0xFFFF
#define BOARD_ID_INDEX_MASK		0x10	/* Mask used to return board index via board Id */
#define RD_MTL_BC2_PCB_ID		0x70

#if defined CONFIG_ALLEYCAT3
	#define MARVELL_BOARD_ID_BASE		AC3_MARVELL_BOARD_ID_BASE
	#define MV_MAX_MARVELL_BOARD_ID		AC3_MARVELL_MAX_BOARD_ID
	#define MV_MARVELL_BOARD_NUM		AC3_MARVELL_BOARD_NUM
	#define MV_DEFAULT_BOARD_ID		DB_AC3_ID
#elif defined CONFIG_BOBCAT2
	#define MARVELL_BOARD_ID_BASE		BC2_MARVELL_BOARD_ID_BASE
	#define MV_MAX_MARVELL_BOARD_ID		BC2_MARVELL_MAX_BOARD_ID
	#define MV_MARVELL_BOARD_NUM		BC2_MARVELL_BOARD_NUM
	#define MV_DEFAULT_BOARD_ID		DB_DX_BC2_ID
#else
	#define MARVELL_BOARD_ID_BASE		BOBK_MARVELL_BOARD_ID_BASE
	#define MV_MAX_MARVELL_BOARD_ID		BOBK_MARVELL_MAX_BOARD_ID
	#define MV_MARVELL_BOARD_NUM		BOBK_MARVELL_BOARD_NUM
	#define MV_DEFAULT_BOARD_ID		BOBK_CETUS_DB_ID
#endif

/********************************************
*		Bobcat2 Boards
*********************************************/
/*******************************************************************************
* Bobcat2 Customer board - Based on DB_DX_BC2
*******************************************************************************/

#define BOBCAT2_CUSTOMER_0_MPP0_7		0x22242222
#define BOBCAT2_CUSTOMER_0_MPP8_15		0x11122222
#define BOBCAT2_CUSTOMER_0_MPP16_23		0x44444044
#define BOBCAT2_CUSTOMER_0_MPP24_31		0x14444444
#define BOBCAT2_CUSTOMER_0_MPP32_39		0x00000001

#define BOBCAT2_CUSTOMER_0_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
						 | BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define BOBCAT2_CUSTOMER_0_GPP_OUT_ENA_MID	(~(0))

#define BOBCAT2_CUSTOMER_0_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
						| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define BOBCAT2_CUSTOMER_0_GPP_OUT_VAL_MID	0x0

#define BOBCAT2_CUSTOMER_0_GPP_POL_LOW		0x0
#define BOBCAT2_CUSTOMER_0_GPP_POL_MID		0x0

/******************/
/*   RD_DX_BC2    */
/******************/
#define DB_DX_BC2_MPP0_7	0x22242222
#define DB_DX_BC2_MPP8_15	0x11122222
#define DB_DX_BC2_MPP16_23	0x44444044
#define DB_DX_BC2_MPP24_31	0x14444444
#define DB_DX_BC2_MPP32_39	0x00000001

#define DB_DX_BC2_NOR_MPP0_7	0x44444444
#define DB_DX_BC2_NOR_MPP8_15	0x11122244

/* GPPs
MPP#	NAME			IN/OUT
----------------------------------------------
0	SPI_MOSI		(out)
1	SPI_MISO		(in)
2	SPI_SCK			(out)
3	SPI_CS0n		(out)
4	DEV_CSn[0]		(out) NF CS (Boot)
5	SD_CMD			(in/out)
6	SD_CLK			(out)
7	SD_D[0]			(in/out)
8	SD_D[1]			(in/out)
9	SD_D[2]			(in/out)
10	SD_D[3]			(in/out)
11	UART1_RXD		(in)
12	UART1_TXD		(out)
13	INTERRUPT_OUTn		(out)
14	I2C_SCL			(in/out)
15	I2C_SDA			(in/out)

16	DEV_Oen_NF_Ren		(out)
17	DEV_CLK_OUT		(out) Test point
18	GPIO[18]		(in/out) INT_in / SD_WP / VC2_GPP
19	NF_RBn			(in)
20	DEV_WEn[0]		(out)
21	DEV_AD[0]		(in/out)
22	DEV_AD[1]		(in/out)
23	DEV_AD[2]		(in/out)
24	DEV_AD[3]		(in/out)
25	DEV_AD[4]		(in/out)
26	DEV_AD[5]		(in/out)
27	DEV_AD[6]		(in/out)
28	DEV_AD[7]		(in/out)
29	NF_CLE_DEV_A[0]		(out)
30	NF_ALE_DEV_A[1]		(out)
31	SLV_SMI_MDC		(in)
32	SLV_SMI_MDIO		(in/out)

*/
#define DB_DX_BC2_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define DB_DX_BC2_GPP_OUT_ENA_MID	(~(0))

#define DB_DX_BC2_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define DB_DX_BC2_GPP_OUT_VAL_MID	0x0

#define DB_DX_BC2_GPP_POL_LOW		0x0
#define DB_DX_BC2_GPP_POL_MID		0x0

/*******************/
/* RD_DX_BC2 */
/*******************/
#define RD_DX_BC2_MPP0_7		0x22242222
#define RD_DX_BC2_MPP8_15		0x11022222
#define RD_DX_BC2_MPP16_23		0x44444044
#define RD_DX_BC2_MPP24_31		0x34444444
#define RD_DX_BC2_MPP32_39		0x00000003

/* GPPs
MPP#	NAME		IN/OUT
----------------------------------------------
0	SPI_MOSI	(out)
1	SPI_MISO	(in)
2	SPI_SCK		(out)
3	SPI_CS0n	(out)
4	DEV_CSn[0]	(out)
5	SD_CMD		(in/out)
6	SD_CLK		(out)
7	SD_D[0]		(in/out)
8	SD_D[1]		(in/out)
9	SD_D[2]		(in/out)
10	SD_D[3]		(in/out)
11	UART1_RXD	(in)
12	UART1_TXD	(out)
13	GPIO[13]	(in/out)
14	I2C_SCL		(in/out)
15	I2C_SDA		(in/out)

16	DEV_Oen_NF_Ren	(out)
17	GPIO[17]	(in/out)
18	GPIO[18]	(in/out)
19	GPIO[19]	(in/out)
20	DEV_WEn[0]	(out)
21	DEV_AD[0]	(in/out)
22	DEV_AD[1]	(in/out)
23	DEV_AD[2]	(in/out)
24	DEV_AD[3]	(in/out)
25	DEV_AD[4]	(in/out)
26	DEV_AD[5]	(in/out)
27	DEV_AD[6]	(in/out)
28	DEV_AD[7]	(in/out)
29	NF_CLE_DEV_A[0] (out)
30	NF_ALE_DEV_A[1] (out)
31	MST_SMI_MDC	(out)
32	MST_SMI_MDIO	(in/out)
*/

#define RD_DX_BC2_GPP_OUT_ENA_LOW	(~(BIT1 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT16 | BIT20 | BIT29 | BIT30 | BIT31))
#define RD_DX_BC2_GPP_OUT_ENA_MID	(~(0))

#define RD_DX_BC2_GPP_OUT_VAL_LOW	(BIT1 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT16 | BIT20 | BIT29 | BIT30 | BIT31)
#define RD_DX_BC2_GPP_OUT_VAL_MID	(0)

#define RD_DX_BC2_GPP_POL_LOW		0x0
#define RD_DX_BC2_GPP_POL_MID		0x0

/*******************/
/* RD_MTL_BC2 */
/*******************/
#define RD_MTL_BC2_MPP0_7		0x22242222
#define RD_MTL_BC2_MPP8_15		0x11022222
#define RD_MTL_BC2_MPP16_23		0x44444044
#define RD_MTL_BC2_MPP24_31		0x34444444
#define RD_MTL_BC2_MPP32_39		0x00000003

#define RD_MTL_BC2_GPP_OUT_ENA_LOW	(~(BIT1 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT16 | BIT20 | BIT29 | BIT30 | BIT31))
#define RD_MTL_BC2_GPP_OUT_ENA_MID		(~(0))

#define RD_MTL_BC2_GPP_OUT_VAL_LOW	(BIT1 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT16 | BIT20 | BIT29 | BIT30 | BIT31)
#define RD_MTL_BC2_GPP_OUT_VAL_MID	(0)

#define RD_MTL_BC2_GPP_POL_LOW		0x0
#define RD_MTL_BC2_GPP_POL_MID		0x0

/********************************************
*		Bobk Boards
*********************************************/
/*******************************************************************************
* BobK Cetus Customer board - Based on BOBK-CETUS-DB-98DX4235-12XG
*******************************************************************************/

#define BOBK_CETUS_CUSTOMER_0_MPP0_7		0x22242222
#define BOBK_CETUS_CUSTOMER_0_MPP8_15		0x11122222
#define BOBK_CETUS_CUSTOMER_0_MPP16_23		0x44444044
#define BOBK_CETUS_CUSTOMER_0_MPP24_31		0x14444444
#define BOBK_CETUS_CUSTOMER_0_MPP32_39		0x00000001

#define BOBK_CETUS_CUSTOMER_0_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
							 | BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define BOBK_CETUS_CUSTOMER_0_GPP_OUT_ENA_MID	(~(0))

#define BOBK_CETUS_CUSTOMER_0_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
							| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define BOBK_CETUS_CUSTOMER_0_GPP_OUT_VAL_MID	0x0

#define BOBK_CETUS_CUSTOMER_0_GPP_POL_LOW		0x0
#define BOBK_CETUS_CUSTOMER_0_GPP_POL_MID		0x0

/*******************************************************************************
* BobK Caelum Customer board - Based on BOBK-CAELUM-DB-98DX4203-48G12XG
*******************************************************************************/

#define BOBK_CAELUM_CUSTOMER_1_MPP0_7		0x22242222
#define BOBK_CAELUM_CUSTOMER_1_MPP8_15		0x11122222
#define BOBK_CAELUM_CUSTOMER_1_MPP16_23		0x44444044
#define BOBK_CAELUM_CUSTOMER_1_MPP24_31		0x14444444
#define BOBK_CAELUM_CUSTOMER_1_MPP32_39		0x00000001

#define BOBK_CAELUM_CUSTOMER_1_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
							 | BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define BOBK_CAELUM_CUSTOMER_1_GPP_OUT_ENA_MID	(~(0))

#define BOBK_CAELUM_CUSTOMER_1_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
							| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define BOBK_CAELUM_CUSTOMER_1_GPP_OUT_VAL_MID	0x0

#define BOBK_CAELUM_CUSTOMER_1_GPP_POL_LOW		0x0
#define BOBK_CAELUM_CUSTOMER_1_GPP_POL_MID		0x0


/************************************/
/*   BOBK-CETUS-DB-98DX4235-12XG    */
/************************************/
#define DB_DX_BOBK_CETUS_MPP0_7	0x22242222
#define DB_DX_BOBK_CETUS_MPP8_15	0x11122222
#define DB_DX_BOBK_CETUS_MPP16_23	0x44444044
#define DB_DX_BOBK_CETUS_MPP24_31	0x14444444
#define DB_DX_BOBK_CETUS_MPP32_39	0x00000001

#define DB_DX_BOBK_CETUS_NOR_MPP0_7	0x44444444
#define DB_DX_BOBK_CETUS_NOR_MPP8_15	0x11122244

/* GPPs
MPP#	NAME			IN/OUT
----------------------------------------------
0	SPI_MOSI		(out)
1	SPI_MISO		(in)
2	SPI_SCK			(out)
3	SPI_CS0n		(out)
4	DEV_CSn[0]		(out) NF CS (Boot)
5	SD_CMD			(in/out)
6	SD_CLK			(out)
7	SD_D[0]			(in/out)
8	SD_D[1]			(in/out)
9	SD_D[2]			(in/out)
10	SD_D[3]			(in/out)
11	UART1_RXD		(in)
12	UART1_TXD		(out)
13	INTERRUPT_OUTn		(out)
14	I2C_SCL			(in/out)
15	I2C_SDA			(in/out)

16	DEV_Oen_NF_Ren		(out)
17	DEV_CLK_OUT		(out) Test point
18	GPIO[18]		(in/out) INT_in / SD_WP / VC2_GPP
19	NF_RBn			(in)
20	DEV_WEn[0]		(out)
21	DEV_AD[0]		(in/out)
22	DEV_AD[1]		(in/out)
23	DEV_AD[2]		(in/out)
24	DEV_AD[3]		(in/out)
25	DEV_AD[4]		(in/out)
26	DEV_AD[5]		(in/out)
27	DEV_AD[6]		(in/out)
28	DEV_AD[7]		(in/out)
29	NF_CLE_DEV_A[0]		(out)
30	NF_ALE_DEV_A[1]		(out)
31	SLV_SMI_MDC		(in)
32	SLV_SMI_MDIO		(in/out)

*/
#define DB_DX_BOBK_CETUS_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define DB_DX_BOBK_CETUS_GPP_OUT_ENA_MID	(~(0))

#define DB_DX_BOBK_CETUS_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define DB_DX_BOBK_CETUS_GPP_OUT_VAL_MID	0x0

#define DB_DX_BOBK_CETUS_GPP_POL_LOW		0x0
#define DB_DX_BOBK_CETUS_GPP_POL_MID		0x0

/*************************************/
/*   BOBK-CAELUM-DB-98DX4203-48G12XG    */
/*************************************/
#define DB_DX_BOBK_CAELUM_MPP0_7	0x22242222
#define DB_DX_BOBK_CAELUM_MPP8_15	0x11122222
#define DB_DX_BOBK_CAELUM_MPP16_23	0x44444044
#define DB_DX_BOBK_CAELUM_MPP24_31	0x14444444
#define DB_DX_BOBK_CAELUM_MPP32_39	0x00000001

#define DB_DX_BOBK_CAELUM_NOR_MPP0_7	0x44444444
#define DB_DX_BOBK_CAELUM_NOR_MPP8_15	0x11122244

/* GPPs
MPP#	NAME			IN/OUT
----------------------------------------------
0	SPI_MOSI		(out)
1	SPI_MISO		(in)
2	SPI_SCK			(out)
3	SPI_CS0n		(out)
4	DEV_CSn[0]		(out) NF CS (Boot)
5	SD_CMD			(in/out)
6	SD_CLK			(out)
7	SD_D[0]			(in/out)
8	SD_D[1]			(in/out)
9	SD_D[2]			(in/out)
10	SD_D[3]			(in/out)
11	UART1_RXD		(in)
12	UART1_TXD		(out)
13	INTERRUPT_OUTn		(out)
14	I2C_SCL			(in/out)
15	I2C_SDA			(in/out)

16	DEV_Oen_NF_Ren		(out)
17	DEV_CLK_OUT		(out) Test point
18	GPIO[18]		(in/out) INT_in / SD_WP / VC2_GPP
19	NF_RBn			(in)
20	DEV_WEn[0]		(out)
21	DEV_AD[0]		(in/out)
22	DEV_AD[1]		(in/out)
23	DEV_AD[2]		(in/out)
24	DEV_AD[3]		(in/out)
25	DEV_AD[4]		(in/out)
26	DEV_AD[5]		(in/out)
27	DEV_AD[6]		(in/out)
28	DEV_AD[7]		(in/out)
29	NF_CLE_DEV_A[0]		(out)
30	NF_ALE_DEV_A[1]		(out)
31	SLV_SMI_MDC		(in)
32	SLV_SMI_MDIO		(in/out)

*/
#define DB_DX_BOBK_CAELUM_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define DB_DX_BOBK_CAELUM_GPP_OUT_ENA_MID	(~(0))

#define DB_DX_BOBK_CAELUM_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
					| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define DB_DX_BOBK_CAELUM_GPP_OUT_VAL_MID	0x0

#define DB_DX_BOBK_CAELUM_GPP_POL_LOW		0x0
#define DB_DX_BOBK_CAELUM_GPP_POL_MID		0x0

/********************************************
*		AlleyCat3 Boards
*********************************************/
/*******************************************************************************
* Alleycat3 Customer board - Based on DB_DX_AC3
*******************************************************************************/

#define ALLEYCAT3_CUSTOMER_0_MPP0_7		0x22242222
#define ALLEYCAT3_CUSTOMER_0_MPP8_15		0x11122222
#define ALLEYCAT3_CUSTOMER_0_MPP16_23		0x44444044
#define ALLEYCAT3_CUSTOMER_0_MPP24_31		0x14444444
#define ALLEYCAT3_CUSTOMER_0_MPP32_39		0x00000001

#define ALLEYCAT3_CUSTOMER_0_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
						 | BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define ALLEYCAT3_CUSTOMER_0_GPP_OUT_ENA_MID	(~(0))

#define ALLEYCAT3_CUSTOMER_0_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12\
						| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define ALLEYCAT3_CUSTOMER_0_GPP_OUT_VAL_MID	0x0

#define ALLEYCAT3_CUSTOMER_0_GPP_POL_LOW	0x0
#define ALLEYCAT3_CUSTOMER_0_GPP_POL_MID	0x0

/******************/
/*   DB_DX_AC3    */
/******************/
#define DB_DX_AC3_MPP0_7		0x00142222 /* 0-3:SPI, 4:NF_CEn, 5:PEX_RSTOUT, 6-7:GPIO */
#define DB_DX_AC3_MPP8_15		0x11122000 /* 8-10:GPIO, 11-12:UART1, 13:INTERRUPT_OUT, 14-15:I2C*/
#define DB_DX_AC3_MPP16_23		0x44444004 /* 16:NF_REn, 17-18:GPIO, 19-23:NF_[RBn,EWn,IO[0,2,3]]*/
#define DB_DX_AC3_MPP24_31		0x14444444 /* 24-30: NF_[IO{4,5,6,7],CLE,ALE], 31: SLV_MDC(SMI) */
#define DB_DX_AC3_MPP32_39		0x00000001 /* 31: SLV_MDIO(SMI) */

#define DB_DX_AC3_NOR_MPP0_7		0x44442222 /* 0-3:SPI, 4-7:DEV_xx (NOR)	 */
#define DB_DX_AC3_NOR_MPP8_15		0x11122044 /* 8-9:DEV_xx(NOR),10:GPIO, 11-12:UART1, 13:INT_OUT, 14-15:I2C */
#define DB_DX_AC3_NOR_MPP16_23		0x44443344 /* 16-17:DEV_xx (NOR),18:GPIO, 20-23:DEV_xx (NOR) */
#define DB_DX_AC3_NOR_MPP24_31		0x14444444 /* 24-30:DEV_xx (NOR),31: SLV_MDC(SMI) */

/* GPPs
MPP#	NAME			IN/OUT
----------------------------------------------
0	SPI_MOSI		(out)
1	SPI_MISO		(in)
2	SPI_SCK			(out)
3	SPI_CS0n		(out)
4	NF_CEn			(out) DEV_CSn[0]
5	PEX_RSTOUTn		(out) DEV_BOOTCSn
6	GPIO[6]			(in/out)
7	GPIO[7]			(in/out)
8	GPIO[8]			(in/out)
9	GPIO[9]			(in/out)
10	GPIO[10]		(in/out)
11	UART1_RXD		(in)
12	UART1_TXD		(out)
13	INTERRUPT_OUTn	(out)
14	I2C_SCL			(in/out)
15	I2C_SDA			(in/out)

16	DEV_Oen_NF_Ren	(out)
17	GPIO[17]		(out) DEV_CLK_OUT
18	GPIO[18]		(in/out) INT_in / SD_WP / VC2_GPP
19	NF_RBn			(in)
20	NF_WEn			(out)    DEV_WEn[0]
21	NF_IO[0]		(in/out) DEV_AD[0]
22	NF_IO[1]		(in/out) DEV_AD[1]
23	NF_IO[2]		(in/out) DEV_AD[2]
24	NF_IO[3]		(in/out) DEV_AD[3]
25	NF_IO[4]		(in/out) DEV_AD[4]
26	NF_IO[5]		(in/out) DEV_AD[5]
27	NF_IO[6]		(in/out) DEV_AD[6]
28	NF_IO[7]		(in/out) DEV_AD[7]
29	NF_CLE			(out) DEV_A[0]
30	NF_ALE			(out) DEV_A[1]
31	SLV_SMI_MDC		(in)
32	SLV_SMI_MDIO	(in/out)

*/
#define DB_DX_AC3_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12 \
				| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define DB_DX_AC3_GPP_OUT_ENA_MID	(~(0))

#define DB_DX_AC3_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12 \
				| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define DB_DX_AC3_GPP_OUT_VAL_MID	0x0

#define DB_DX_AC3_GPP_POL_LOW		0x0
#define DB_DX_AC3_GPP_POL_MID		0x0

/*****************************/
/*   RD_DX_4XG_AC3 (MTL1)    */
/*****************************/
#define RD_MTL_4XG_AC3_MPP0_7		0x00042222 /* 0-3:SPI, 4:NF_CEn, 5:CPU Awake, 6-7:GPIO */
#define RD_MTL_4XG_AC3_MPP8_15		0x11122000 /* 8-12:GPIO, TODO: set to 0 bits 11-12 13:INTERRUPT_OUT, 14-15:I2C*/
#define RD_MTL_4XG_AC3_MPP16_23		0x44444004 /* 16:NF_REn, 17-18:GPIO, 19-23:NF_[RBn,EWn,IO[0,2,3]]*/
#define RD_MTL_4XG_AC3_MPP24_31		0x14444444 /* 24-30: NF_[IO{4,5,6,7],CLE,ALE], 31: SLV_MDC(SMI) */
#define RD_MTL_4XG_AC3_MPP32_39		0x00000001 /* 31: SLV_MDIO(SMI) */

/* GPPs
MPP#	NAME			IN/OUT
----------------------------------------------
0	SPI_MOSI		(out)
1	SPI_MISO		(in)
2	SPI_SCK			(out)
3	SPI_CS0n		(out)
4	NF_CEn			(out) DEV_CSn[0]
5	PEX_RSTOUTn		(out) DEV_BOOTCSn
6	GPIO[6]			(in/out)
7	GPIO[7]			(in/out)
8	GPIO[8]			(in/out)
9	GPIO[9]			(in/out)
10	GPIO[10]		(in/out)
11	UART1_RXD		(in)
12	UART1_TXD		(out)
13	INTERRUPT_OUTn	(out)
14	I2C_SCL			(in/out)
15	I2C_SDA			(in/out)

16	DEV_Oen_NF_Ren	(out)
17	GPIO[17]		(out) DEV_CLK_OUT
18	GPIO[18]		(in/out) INT_in / SD_WP / VC2_GPP
19	NF_RBn			(in)
20	NF_WEn			(out)    DEV_WEn[0]
21	NF_IO[0]		(in/out) DEV_AD[0]
22	NF_IO[1]		(in/out) DEV_AD[1]
23	NF_IO[2]		(in/out) DEV_AD[2]
24	NF_IO[3]		(in/out) DEV_AD[3]
25	NF_IO[4]		(in/out) DEV_AD[4]
26	NF_IO[5]		(in/out) DEV_AD[5]
27	NF_IO[6]		(in/out) DEV_AD[6]
28	NF_IO[7]		(in/out) DEV_AD[7]
29	NF_CLE			(out) DEV_A[0]
30	NF_ALE			(out) DEV_A[1]
31	SLV_SMI_MDC		(in)
32	SLV_SMI_MDIO	(in/out)

*/
#define RD_MTL_4XG_AC3_GPP_OUT_ENA_LOW	(~(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12 \
		| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30))
#define RD_MTL_4XG_AC3_GPP_OUT_ENA_MID	(~(0))

#define RD_MTL_4XG_AC3_GPP_OUT_VAL_LOW	(BIT0 | BIT2 | BIT3 | BIT4 | BIT6 | BIT12 \
		| BIT13 | BIT16 | BIT17 | BIT20 | BIT29  | BIT30)
#define RD_MTL_4XG_AC3_GPP_OUT_VAL_MID	0x0

#define RD_MTL_4XG_AC3_GPP_POL_LOW		0x0
#define RD_MTL_4XG_AC3_GPP_POL_MID		0x0


/*********************************/
/*   RD_DX_2XXG_2XG_AC3 (MTL2)   */
/*********************************/
#define RD_MTL_2XXG_2XG_AC3_MPP0_7			RD_MTL_4XG_AC3_MPP0_7
#define RD_MTL_2XXG_2XG_AC3_MPP8_15			RD_MTL_4XG_AC3_MPP8_15
#define RD_MTL_2XXG_2XG_AC3_MPP16_23			RD_MTL_4XG_AC3_MPP16_23
#define RD_MTL_2XXG_2XG_AC3_MPP24_31			RD_MTL_4XG_AC3_MPP24_31
#define RD_MTL_2XXG_2XG_AC3_MPP32_39			RD_MTL_4XG_AC3_MPP32_39

#define RD_MTL_2XXG_2XG_AC3_GPP_OUT_ENA_LOW		RD_MTL_4XG_AC3_GPP_OUT_ENA_LOW
#define RD_MTL_2XXG_2XG_AC3_GPP_OUT_ENA_MID		RD_MTL_4XG_AC3_GPP_OUT_ENA_MID
#define RD_MTL_2XXG_2XG_AC3_GPP_OUT_VAL_LOW		RD_MTL_4XG_AC3_GPP_OUT_VAL_LOW
#define RD_MTL_2XXG_2XG_AC3_GPP_OUT_VAL_MID		RD_MTL_4XG_AC3_GPP_OUT_VAL_MID
#define RD_MTL_2XXG_2XG_AC3_GPP_POL_LOW		RD_MTL_4XG_AC3_GPP_POL_LOW
#define RD_MTL_2XXG_2XG_AC3_GPP_POL_MID		RD_MTL_4XG_AC3_GPP_POL_MID

/**************************************/
/*   DB-XC3-24G4G_2XG_AC3  (RD_MISL)  */
/**************************************/
#define DB_MISL_24G46_AC3_MPP0_7			RD_MTL_4XG_AC3_MPP0_7
#define DB_MISL_24G46_AC3_MPP8_15			RD_MTL_4XG_AC3_MPP8_15
#define DB_MISL_24G46_AC3_MPP16_23			RD_MTL_4XG_AC3_MPP16_23
#define DB_MISL_24G46_AC3_MPP24_31			RD_MTL_4XG_AC3_MPP24_31
#define DB_MISL_24G46_AC3_MPP32_39			RD_MTL_4XG_AC3_MPP32_39

#define DB_MISL_24G46_AC3_GPP_OUT_ENA_LOW	RD_MTL_4XG_AC3_GPP_OUT_ENA_LOW
#define DB_MISL_24G46_AC3_GPP_OUT_ENA_MID	RD_MTL_4XG_AC3_GPP_OUT_ENA_MID
#define DB_MISL_24G46_AC3_GPP_OUT_VAL_LOW	RD_MTL_4XG_AC3_GPP_OUT_VAL_LOW
#define DB_MISL_24G46_AC3_GPP_OUT_VAL_MID	RD_MTL_4XG_AC3_GPP_OUT_VAL_MID
#define DB_MISL_24G46_AC3_GPP_POL_LOW		RD_MTL_4XG_AC3_GPP_POL_LOW
#define DB_MISL_24G46_AC3_GPP_POL_MID		RD_MTL_4XG_AC3_GPP_POL_MID

/**************************************/
/*   RD-XC3-24G_AC3  (RD_MTL)        */
/**************************************/
#define RD_MTL_24G_AC3_MPP0_7				RD_MTL_4XG_AC3_MPP0_7
#define RD_MTL_24G_AC3_MPP8_15				RD_MTL_4XG_AC3_MPP8_15
#define RD_MTL_24G_AC3_MPP16_23				RD_MTL_4XG_AC3_MPP16_23
#define RD_MTL_24G_AC3_MPP24_31				RD_MTL_4XG_AC3_MPP24_31
#define RD_MTL_24G_AC3_MPP32_39				RD_MTL_4XG_AC3_MPP32_39

#define RD_MTL_24G_AC3_GPP_OUT_ENA_LOW		RD_MTL_4XG_AC3_GPP_OUT_ENA_LOW
#define RD_MTL_24G_AC3_GPP_OUT_ENA_MID		RD_MTL_4XG_AC3_GPP_OUT_ENA_MID
#define RD_MTL_24G_AC3_GPP_OUT_VAL_LOW		RD_MTL_4XG_AC3_GPP_OUT_VAL_LOW
#define RD_MTL_24G_AC3_GPP_OUT_VAL_MID		RD_MTL_4XG_AC3_GPP_OUT_VAL_MID
#define RD_MTL_24G_AC3_GPP_POL_LOW			RD_MTL_4XG_AC3_GPP_POL_LOW
#define RD_MTL_24G_AC3_GPP_POL_MID			RD_MTL_4XG_AC3_GPP_POL_MID

/**********************************************************************************/
/* ArmadaXP Boards : only for Linux usage (AXP family is shared with MSYS in LSP) */
/**********************************************************************************/
/********************/
/* DB-78460-AMC     */
/********************/

#define DB_78X60_AMC_MPP0_7			0x11111111
#define DB_78X60_AMC_MPP8_15			0x00001111
#define DB_78X60_AMC_MPP16_23			0x00000000
#define DB_78X60_AMC_MPP24_31			0x00000000
#define DB_78X60_AMC_MPP32_39			0x11110000
#define DB_78X60_AMC_MPP40_47			0x00004000
#define DB_78X60_AMC_MPP48_55			0x00001113
#define DB_78X60_AMC_MPP56_63			0x11111110
#define DB_78X60_AMC_MPP64_67			0x00000111

/* GPPs
MPP#	NAME		IN/OUT
----------------------------------------------
16	MB_INT#		IN
17	Phy1_INT#	IN
18	Phy2_INT#	IN
19	Brd_Led_0	IN (for next board)
21	Brd_Led_1	OUT
23	Brd_Led_2	OUT
29	Brd_Led_3	OUT
30	Brd_Led_4	OUT
34	Dbg_JP0		IN
35	Dbg_JP1		IN
40	Dbg_JP2		IN
41	Dbg_JP3		IN
42	Dbg_JP4		IN
53	7 Segment 0	OUT
54	7 Segment 1	OUT
55	7 Segment 2	OUT
56	7 Segment 3	OUT
*/

#define DB_78X60_AMC_GPP_OUT_ENA_LOW		(~(BIT19 | BIT21 | BIT22 | BIT23 | BIT29 | BIT30))
#define DB_78X60_AMC_GPP_OUT_ENA_MID		(~(BIT21 | BIT22 | BIT23 | BIT24))
#define DB_78X60_AMC_GPP_OUT_ENA_HIGH		(~(0x0))

#define DB_78X60_AMC_GPP_OUT_VAL_LOW		0x0
#define DB_78X60_AMC_GPP_OUT_VAL_MID		0x0
#define DB_78X60_AMC_GPP_OUT_VAL_HIGH		0x0

#define DB_78X60_AMC_GPP_POL_LOW		0x0
#define DB_78X60_AMC_GPP_POL_MID		0x0
#define DB_78X60_AMC_GPP_POL_HIGH		0x0

#endif /* __INCmvBoardEnvSpech */

