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);