prism: added board init callback.
Use the board init calllback to select pin mux'ing and GPIO configuration based
on the board version pins. Default selection is the latest board version.
Change-Id: I6e979c887d79c855c26c7da42583c7649c4ca38f
diff --git a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
index b3dd7da..2f9b6dc 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
+++ b/arch/arm/mach-feroceon-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"
/***************************************************************************
@@ -1323,13 +1324,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
}
}
};
@@ -1347,12 +1348,36 @@
}
};
*/
+
+#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->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,
@@ -1369,14 +1394,8 @@
.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/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
index e969324..a8051d7 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
@@ -471,11 +471,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)
@@ -507,14 +507,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
/***************************************************************************
** GFLT110