prism: added evt2 pin mux'ing and gpio config.
Also made the EVT2 pin mux and GPIO config the default for unknown board
versions.
Change-Id: Ie2944c7b9489adf070d9432b01d990106886d294
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 2f9b6dc..fde344a 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.c
@@ -1335,6 +1335,17 @@
}
};
+MV_BOARD_MPP_INFO gflt200Evt2InfoBoardMppConfigValue[] = {
+ {{
+ GFLT200_EVT2_MPP0_7,
+ GFLT200_EVT2_MPP8_15,
+ GFLT200_EVT2_MPP16_23,
+ GFLT200_EVT2_MPP24_31,
+ GFLT200_EVT2_MPP32_37
+ }
+ }
+};
+
/*
MV_BOARD_SPEC_INIT gflt200BoardSpecInit[] = {
{
@@ -1351,14 +1362,16 @@
#define GFLT200_GPP_BOARD_VER_MASK ((1 << 18) | (1 << 15) | (1 << 13))
#define GFLT200_EVT1_BOARD_VER (0)
+#define GFLT200_EVT2_BOARD_VER (1 << 13)
static MV_VOID gflt200BoardInit(MV_BOARD_INFO *pBoardInfo)
{
+ MV_U32 board_ver;
+
mvGppTypeSet(0, GFLT200_GPP_BOARD_VER_MASK, GFLT200_GPP_BOARD_VER_MASK);
- switch (mvGppValueGet(0, GFLT200_GPP_BOARD_VER_MASK)) {
+ switch ((board_ver = mvGppValueGet(0, GFLT200_GPP_BOARD_VER_MASK))) {
case GFLT200_EVT1_BOARD_VER:
- default: /* latest */
pBoardInfo->numBoardMppConfigValue
= MV_ARRAY_SIZE(gflt200Evt1InfoBoardMppConfigValue);
pBoardInfo->pBoardMppConfigValue
@@ -1370,6 +1383,22 @@
pBoardInfo->gppPolarityValLow = GFLT200_EVT1_GPP_POL_LOW;
pBoardInfo->gppPolarityValMid = GFLT200_EVT1_GPP_POL_MID;
break;
+
+ default:
+ pr_err("GFLT200: unknown board version '%x'\n", board_ver);
+ /* fallthrough */
+ case GFLT200_EVT2_BOARD_VER:
+ pBoardInfo->numBoardMppConfigValue
+ = MV_ARRAY_SIZE(gflt200Evt2InfoBoardMppConfigValue);
+ pBoardInfo->pBoardMppConfigValue
+ = gflt200Evt2InfoBoardMppConfigValue;
+ pBoardInfo->gppOutEnValLow = GFLT200_EVT2_GPP_OUT_ENA_LOW;
+ pBoardInfo->gppOutEnValMid = GFLT200_EVT2_GPP_OUT_ENA_MID;
+ pBoardInfo->gppOutValLow = GFLT200_EVT2_GPP_OUT_VAL_LOW;
+ pBoardInfo->gppOutValMid = GFLT200_EVT2_GPP_OUT_VAL_MID;
+ pBoardInfo->gppPolarityValLow = GFLT200_EVT2_GPP_POL_LOW;
+ pBoardInfo->gppPolarityValMid = GFLT200_EVT2_GPP_POL_MID;
+ break;
}
}
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 a8051d7..856cc31 100755
--- a/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
+++ b/arch/arm/mach-feroceon-kw2/kw2_family/boardEnv/mvBoardEnvSpec.h
@@ -477,34 +477,47 @@
#define GFLT200_EVT1_MPP24_31 0x40200000
#define GFLT200_EVT1_MPP32_37 0x00000004
+#define GFLT200_EVT2_MPP0_7 0x22222220
+#define GFLT200_EVT2_MPP8_15 0x00000002
+#define GFLT200_EVT2_MPP16_23 0x00000000
+#define GFLT200_EVT2_MPP24_31 0x40200004
+#define GFLT200_EVT2_MPP32_37 0x00000004
+
/* GPPs
- 1 SPI_MOSI (out)
- 2 SPI_SCK (out)
- 3 SPI_CS_L (out)
- 4 SPI_MISO (in)
- 5 I2C_SDA (inout)
- 6 I2C_SCLK (inout)
- 7 UART0_TX (out)
- 8 UART0_RX (in)
- 9 VDD_MARGIN_EN (out)
-10 VDD_MARGIN_CTRL (out)
-11 PON_LINK_LED (out)
-12 PON_ERROR_LED (out)
-13 BOARD_VER[0] (in)
-15 BOARD_VER[1] (in)
-17 SW_RESET (out)
-18 BOARD_VER[2] (in)
-21 PON_TX_DIS (out)
-23 GE_DATA_LED (out)
-24 GE_LINK_LED (out)
-26 PON_C2_DATA (out)
-27 PON_C2_CLK (out)
-28 SPI_WP_L (out)
-29 PON_RX_LOS (in)
-31 UART1_RX (out)
-32 UART2_TX (in)
-36 PON_RX_PMON (in)
-37 PON_PWR_EN_L (out)
+ ... ditto
+ --- unused
+
+ EVT1 EVT2
+ 1 SPI_MOSI (out) ...
+ 2 SPI_SCK (out) ...
+ 3 SPI_CS_L (out) ...
+ 4 SPI_MISO (in) ...
+ 5 I2C_SDA (inout) ...
+ 6 I2C_SCLK (out) ...
+ 7 UART0_TX (out) ...
+ 8 UART0_RX (in) ...
+ 9 VDD_MARGIN_EN (out) ---
+10 VDD_MARGIN_CTRL (out) ---
+11 PON_LINK_LED (out) PON_LED_RED (out)
+12 PON_ERROR_LED (out) PON_LED_BLUE (out)
+13 BOARD_VER[0] (in) ...
+14 --- GE_LINK_LED (out)
+15 BOARD_VER[1] (in) ...
+17 SW_RESET (out) ...
+18 BOARD_VER[2] (in) ...
+21 PON_TX_DIS (out) ...
+22 --- DOLOS_DETECT (in)
+23 GE_DATA_LED (out) ---
+24 GE_LINK_LED (out) PTP_TRIG_GEN (out)
+25 --- PTP_EVENT_REQ (in)
+26 PON_C2_DATA (out) GE_DATA_LED (out)
+27 PON_C2_CLK (out) PTP_CLK (in)
+28 SPI_WP_L (out) ...
+29 PON_RX_LOS (in) ...
+31 UART1_RX (out) ...
+32 UART2_TX (in) ...
+36 PON_RX_PMON (in) ...
+37 PON_PWR_EN_L (out) ...
*/
#define GFLT200_EVT1_GPP_OUT_ENA_LOW (BIT13 | BIT15 | BIT18 | BIT29)
@@ -516,6 +529,15 @@
#define GFLT200_EVT1_GPP_POL_LOW 0x0
#define GFLT200_EVT1_GPP_POL_MID 0x0
+#define GFLT200_EVT2_GPP_OUT_ENA_LOW (BIT13 | BIT15 | BIT18 | BIT22 | BIT29)
+#define GFLT200_EVT2_GPP_OUT_ENA_MID (BIT4)
+
+#define GFLT200_EVT2_GPP_OUT_VAL_LOW (BIT21 | BIT28)
+#define GFLT200_EVT2_GPP_OUT_VAL_MID 0x0
+
+#define GFLT200_EVT2_GPP_POL_LOW 0x0
+#define GFLT200_EVT2_GPP_POL_MID 0x0
+
/***************************************************************************
** GFLT110
****************************************************************************/