Merge "Update GFLT110 config to work on Rev2 boards." into prism_dev
diff --git a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.c b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.c
index 9bbf3ba..a1be610 100644
--- a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.c
+++ b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.c
@@ -129,11 +129,17 @@
MV_U32 boardId = mvBoardIdGet();
MV_U32 nandDev;
MV_32 width;
+ MV_BOARD_INFO *pBoardInfo;
if (!((boardId >= BOARD_ID_BASE) && (boardId < MV_MAX_BOARD_ID))) {
mvOsPrintf("mvBoardEnvInit:Board unknown.\n");
return;
}
+
+ pBoardInfo = mvBoardInfoGet();
+ if (pBoardInfo->pBoardInit)
+ pBoardInfo->pBoardInit(pBoardInfo);
+
nandDev = boardGetDevCSNum(0, BOARD_DEV_NAND_FLASH);
if (nandDev != 0xFFFFFFFF) {
/* Set NAND interface access parameters */
diff --git a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.h b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.h
index de661d8..0207a74 100644
--- a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.h
+++ b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.h
@@ -401,6 +401,7 @@
typedef struct _boardInfo {
char boardName[MV_BOARD_NAME_LEN];
+ MV_VOID (*pBoardInit)(struct _boardInfo *);
MV_U8 numBoardMppTypeValue;
MV_BOARD_MPP_TYPE_INFO *pBoardMppTypeValue;
MV_U8 numBoardMppConfigValue;
diff --git a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvSpec.c b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
index 879b202..655b861 100644
--- a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
+++ b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
@@ -64,6 +64,7 @@
#include "mvCommon.h"
#include "mvBoardEnvLib.h"
#include "mvBoardEnvSpec.h"
+#include "gpp/mvGpp.h"
#include "twsi/mvTwsi.h"
/***************************************************************************
@@ -1179,7 +1180,7 @@
}
};
-MV_BOARD_GPP_INFO gflt200InfoBoardGppInfo[] = {
+MV_BOARD_GPP_INFO gflt200Evt1InfoBoardGppInfo[] = {
/* {{MV_BOARD_GPP_CLASS devClass, MV_U8 gppPinNum}} */
{BOARD_GPP_PON_XVR_TX, 17},
{BOARD_GPP_LED, 11, .name = "pon-red"},
@@ -1198,13 +1199,13 @@
#endif
};
-MV_BOARD_MPP_INFO gflt200InfoBoardMppConfigValue[] = {
+MV_BOARD_MPP_INFO gflt200Evt1InfoBoardMppConfigValue[] = {
{{
- GFLT200_MPP0_7,
- GFLT200_MPP8_15,
- GFLT200_MPP16_23,
- GFLT200_MPP24_31,
- GFLT200_MPP32_37
+ GFLT200_EVT1_MPP0_7,
+ GFLT200_EVT1_MPP8_15,
+ GFLT200_EVT1_MPP16_23,
+ GFLT200_EVT1_MPP24_31,
+ GFLT200_EVT1_MPP32_37
}
}
};
@@ -1222,12 +1223,39 @@
}
};
*/
+
+#define GFLT200_GPP_BOARD_VER_MASK ((1 << 18) | (1 << 15) | (1 << 13))
+#define GFLT200_EVT1_BOARD_VER (0)
+
+static MV_VOID gflt200BoardInit(MV_BOARD_INFO *pBoardInfo)
+{
+ mvGppTypeSet(0, GFLT200_GPP_BOARD_VER_MASK, GFLT200_GPP_BOARD_VER_MASK);
+
+ switch (mvGppValueGet(0, GFLT200_GPP_BOARD_VER_MASK)) {
+ case GFLT200_EVT1_BOARD_VER:
+ default: /* latest */
+ pBoardInfo->numBoardMppConfigValue
+ = MV_ARRAY_SIZE(gflt200Evt1InfoBoardMppConfigValue);
+ pBoardInfo->pBoardMppConfigValue
+ = gflt200Evt1InfoBoardMppConfigValue;
+ pBoardInfo->numBoardGppInfo
+ = MV_ARRAY_SIZE(gflt200Evt1InfoBoardGppInfo);
+ pBoardInfo->pBoardGppInfo = gflt200Evt1InfoBoardGppInfo;
+ pBoardInfo->gppOutEnValLow = GFLT200_EVT1_GPP_OUT_ENA_LOW;
+ pBoardInfo->gppOutEnValMid = GFLT200_EVT1_GPP_OUT_ENA_MID;
+ pBoardInfo->gppOutValLow = GFLT200_EVT1_GPP_OUT_VAL_LOW;
+ pBoardInfo->gppOutValMid = GFLT200_EVT1_GPP_OUT_VAL_MID;
+ pBoardInfo->gppPolarityValLow = GFLT200_EVT1_GPP_POL_LOW;
+ pBoardInfo->gppPolarityValMid = GFLT200_EVT1_GPP_POL_MID;
+ break;
+ }
+}
+
MV_BOARD_INFO gflt200Info = {
.boardName = "GFLT200",
+ .pBoardInit = gflt200BoardInit,
.numBoardMppTypeValue = MV_ARRAY_SIZE(gflt200InfoBoardMppTypeInfo),
.pBoardMppTypeValue = gflt200InfoBoardMppTypeInfo,
- .numBoardMppConfigValue = MV_ARRAY_SIZE(gflt200InfoBoardMppConfigValue),
- .pBoardMppConfigValue = gflt200InfoBoardMppConfigValue,
.intsGppMaskLow = 0,
.intsGppMaskMid = 0,
.intsGppMaskHigh = 0,
@@ -1237,21 +1265,13 @@
.pBoardTwsiDev = gflt200InfoBoardTwsiDev,
.numBoardMacInfo = MV_ARRAY_SIZE(gflt200InfoBoardMacInfo),
.pBoardMacInfo = gflt200InfoBoardMacInfo,
- .numBoardGppInfo = MV_ARRAY_SIZE(gflt200InfoBoardGppInfo),
- .pBoardGppInfo = gflt200InfoBoardGppInfo,
.activeLedsNumber = 0,
.pLedGppPin = NULL,
.ledsPolarity = 0,
/* GPP values */
- .gppOutEnValLow = GFLT200_GPP_OUT_ENA_LOW,
- .gppOutEnValMid = GFLT200_GPP_OUT_ENA_MID,
.gppOutEnValHigh = 0,
- .gppOutValLow = GFLT200_GPP_OUT_VAL_LOW,
- .gppOutValMid = GFLT200_GPP_OUT_VAL_MID,
.gppOutValHigh = 0,
- .gppPolarityValLow = GFLT200_GPP_POL_LOW,
- .gppPolarityValMid = GFLT200_GPP_POL_MID,
.gppPolarityValHigh = 0,
/* External Switch Configuration */
diff --git a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvSpec.h b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
index c229cf3..50ffbd1 100644
--- a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
+++ b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
@@ -466,11 +466,11 @@
/***************************************************************************
** GFLT200
****************************************************************************/
-#define GFLT200_MPP0_7 0x22222220
-#define GFLT200_MPP8_15 0x00000002
-#define GFLT200_MPP16_23 0x00000000
-#define GFLT200_MPP24_31 0x40200000
-#define GFLT200_MPP32_37 0x00000004
+#define GFLT200_EVT1_MPP0_7 0x22222220
+#define GFLT200_EVT1_MPP8_15 0x00000002
+#define GFLT200_EVT1_MPP16_23 0x00000000
+#define GFLT200_EVT1_MPP24_31 0x40200000
+#define GFLT200_EVT1_MPP32_37 0x00000004
/* GPPs
1 SPI_MOSI (out)
@@ -502,14 +502,14 @@
37 PON_PWR_EN_L (out)
*/
-#define GFLT200_GPP_OUT_ENA_LOW (BIT13 | BIT15 | BIT18 | BIT29)
-#define GFLT200_GPP_OUT_ENA_MID (BIT4)
+#define GFLT200_EVT1_GPP_OUT_ENA_LOW (BIT13 | BIT15 | BIT18 | BIT29)
+#define GFLT200_EVT1_GPP_OUT_ENA_MID (BIT4)
-#define GFLT200_GPP_OUT_VAL_LOW (BIT9 | BIT10 | BIT21 | BIT26 | BIT27 | BIT28)
-#define GFLT200_GPP_OUT_VAL_MID 0x0
+#define GFLT200_EVT1_GPP_OUT_VAL_LOW (BIT9 | BIT10 | BIT21 | BIT26 | BIT27 | BIT28)
+#define GFLT200_EVT1_GPP_OUT_VAL_MID 0x0
-#define GFLT200_GPP_POL_LOW 0x0
-#define GFLT200_GPP_POL_MID 0x0
+#define GFLT200_EVT1_GPP_POL_LOW 0x0
+#define GFLT200_EVT1_GPP_POL_MID 0x0
/***************************************************************************