mv_feroceon: added polarity to gpp info.

Added field 'activeLow' which, if not set, will match the current assumptions
about GPP output polarity.

Change-Id: Ibdeffb67e8fd7bbfcd0817d0c17d7ba29fd022a3
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 7fdff75..3efd045 100644
--- a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.c
+++ b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.c
@@ -1441,6 +1441,33 @@
 	return MV_ERROR;
 }
 
+MV_STATUS mvBoardGppInfoGet(MV_BOARD_GPP_CLASS gppClass, MV_U32 index, MV_U8 *pinNum, MV_U8 *polarity)
+{
+	MV_U32 boardId, i;
+	MV_U32 indexFound = 0;
+
+	boardId = mvBoardIdGet();
+
+	if (!((boardId >= BOARD_ID_BASE) && (boardId < MV_MAX_BOARD_ID))) {
+		mvOsPrintf("%s: unknown board ID '%u'\n", __func__, boardId);
+		return MV_ERROR;
+	}
+
+	for (i = 0; i < BOARD_INFO(boardId)->numBoardGppInfo; i++) {
+		if (BOARD_INFO(boardId)->pBoardGppInfo[i].devClass == gppClass) {
+			if (indexFound == index) {
+				if (pinNum)
+					*pinNum = BOARD_INFO(boardId)->pBoardGppInfo[i].gppPinNum;
+				if (polarity)
+					*polarity = !BOARD_INFO(boardId)->pBoardGppInfo[i].activeLow;
+				return MV_OK;
+			}
+			indexFound++;
+		}
+	}
+	return MV_ERROR;
+}
+
 /*******************************************************************************
 * mvBoardReset - mvBoardReset
 *
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 17b6b3b..ebb4bfb 100644
--- a/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.h
+++ b/board/mv_feroceon/mv_kw2/kw2_family/boardEnv/mvBoardEnvLib.h
@@ -343,6 +343,7 @@
 typedef struct _boardGppInfo {
 	MV_BOARD_GPP_CLASS devClass;
 	MV_U8 gppPinNum;
+	MV_U8 activeLow;
 } MV_BOARD_GPP_INFO;
 
 typedef struct _boardTwsiInfo {
@@ -505,6 +506,7 @@
 MV_U32 mvBoardDebugLedNumGet(MV_U32 boardId);
 MV_VOID mvBoardDebugLed(MV_U32 hexNum);
 MV_32 mvBoarGpioPinNumGet(MV_BOARD_GPP_CLASS class, MV_U32 index);
+MV_STATUS mvBoardGppInfoGet(MV_BOARD_GPP_CLASS class, MV_U32 index, MV_U8 *pinNum, MV_U8 *polarity);
 MV_VOID mvBoardReset(MV_VOID);
 MV_32 mvBoardResetGpioPinGet(MV_VOID);
 MV_32 mvBoardSDIOGpioPinGet(MV_BOARD_GPP_CLASS type);