spring: update board revision info for DVT2

Including DVT2 in board revision IDs.

The board revision read from the GPIOs is encoded in ternary
(Z=0, LO=1, HI=2), so use the same encoding in the software and
re-order the id map to follow that ternary order.

BRANCH=spring
BUG=chrome-os-partner:19926
TEST=on Spring EVT, run "mosys platform version" and
"mosys memory spd print id"

Original-Change-Id: Ie65362af85f0ef0623c7916cb5853276a25366d4
Reviewed-on: https://gerrit.chromium.org/gerrit/57943
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
(cherry picked from commit 15ca0620dcbff067b2f3f3405e51221b8702fab3)

Change-Id: I85dc2f0f37f68e7307f794c4e3a4d907c1018bc9
Reviewed-on: https://gerrit.chromium.org/gerrit/57985
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
diff --git a/include/drivers/gpio.h b/include/drivers/gpio.h
index a98dfe7..3a413d7 100644
--- a/include/drivers/gpio.h
+++ b/include/drivers/gpio.h
@@ -55,9 +55,9 @@
  *      1  |  1  | 1
  */
 enum mvl3 {
+	LOGIC_Z,		/* high impedance / tri-stated / floating */
 	LOGIC_0,
 	LOGIC_1,
-	LOGIC_Z,		/* high impedence / tri-stated / floating */
 };
 
 struct gpio_map {
diff --git a/platform/experimental/spring/memory.c b/platform/experimental/spring/memory.c
index 5b7fc8f..80bf2b1 100644
--- a/platform/experimental/spring/memory.c
+++ b/platform/experimental/spring/memory.c
@@ -229,16 +229,16 @@
 		rc = len;
 		break;
 	case SPRING_CONFIG_EVT_MICRON:
-	case SPRING_CONFIG_DVT_MICRON:
+	case SPRING_CONFIG_DVT1_MICRON:
+	case SPRING_CONFIG_DVT2_MICRON:
 	case SPRING_CONFIG_PVT_MICRON:
-	case SPRING_CONFIG_MP_MICRON:
 		memcpy(buf, &micron_ddr3_1600_spd[reg], len);
 		rc = len;
 		break;
 	case SPRING_CONFIG_EVT_NANYA:
-	case SPRING_CONFIG_DVT_NANYA:
+	case SPRING_CONFIG_DVT1_NANYA:
+	case SPRING_CONFIG_DVT2_NANYA:
 	case SPRING_CONFIG_PVT_NANYA:
-	case SPRING_CONFIG_MP_NANYA:
 		memcpy(buf, &nanya_ddr3_1600_spd[reg], len);
 		rc = len;
 		break;
diff --git a/platform/experimental/spring/spring.c b/platform/experimental/spring/spring.c
index 52b675a..bc3a370 100644
--- a/platform/experimental/spring/spring.c
+++ b/platform/experimental/spring/spring.c
@@ -138,39 +138,38 @@
 	return status;
 }
 
-/* TODO: implement board ID map when assignments are finalized */
 struct {
 	enum mvl3 v0, v1, v2;
 	enum spring_board_config config;
 } spring_id_map[] = {
-	/*  REV0     REV1     REV2       config */
-	{ LOGIC_0, LOGIC_0, LOGIC_0, SPRING_CONFIG_RSVD },
-	{ LOGIC_0, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_0, LOGIC_0, LOGIC_Z, SPRING_CONFIG_PROTO },
-	{ LOGIC_0, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
-	{ LOGIC_0, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_0, LOGIC_1, LOGIC_Z, SPRING_CONFIG_DVT_NANYA },
-	{ LOGIC_0, LOGIC_Z, LOGIC_0, SPRING_CONFIG_PVT_MICRON },
-	{ LOGIC_0, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_0, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
-	{ LOGIC_1, LOGIC_0, LOGIC_0, SPRING_CONFIG_RSVD },
-	{ LOGIC_1, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_1, LOGIC_0, LOGIC_Z, SPRING_CONFIG_EVT_NANYA },
-	{ LOGIC_1, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
-	{ LOGIC_1, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_1, LOGIC_1, LOGIC_Z, SPRING_CONFIG_DVT_MICRON },
-	{ LOGIC_1, LOGIC_Z, LOGIC_0, SPRING_CONFIG_MP_NANYA },
-	{ LOGIC_1, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_1, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
-	{ LOGIC_Z, LOGIC_0, LOGIC_0, SPRING_CONFIG_MP_MICRON },
-	{ LOGIC_Z, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_Z, LOGIC_0, LOGIC_Z, SPRING_CONFIG_RSVD },
-	{ LOGIC_Z, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
-	{ LOGIC_Z, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_Z, LOGIC_1, LOGIC_Z, SPRING_CONFIG_EVT_MICRON },
-	{ LOGIC_Z, LOGIC_Z, LOGIC_0, SPRING_CONFIG_PVT_NANYA },
-	{ LOGIC_Z, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
-	{ LOGIC_Z, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
+		/*  REV0     REV1     REV2       config */
+		{ LOGIC_Z, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
+		{ LOGIC_0, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
+		{ LOGIC_1, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
+		{ LOGIC_Z, LOGIC_0, LOGIC_Z, SPRING_CONFIG_RSVD },
+/* rev  4 */	{ LOGIC_0, LOGIC_0, LOGIC_Z, SPRING_CONFIG_PROTO },
+/* rev  5 */	{ LOGIC_1, LOGIC_0, LOGIC_Z, SPRING_CONFIG_EVT_NANYA },
+/* rev  6 */	{ LOGIC_Z, LOGIC_1, LOGIC_Z, SPRING_CONFIG_EVT_MICRON },
+/* rev  7 */	{ LOGIC_0, LOGIC_1, LOGIC_Z, SPRING_CONFIG_DVT1_NANYA },
+/* rev  8 */	{ LOGIC_1, LOGIC_1, LOGIC_Z, SPRING_CONFIG_DVT1_MICRON },
+/* rev  9 */	{ LOGIC_Z, LOGIC_Z, LOGIC_0, SPRING_CONFIG_DVT2_NANYA },
+/* rev 10 */	{ LOGIC_0, LOGIC_Z, LOGIC_0, SPRING_CONFIG_DVT2_MICRON },
+/* rev 11 */	{ LOGIC_1, LOGIC_Z, LOGIC_0, SPRING_CONFIG_PVT_NANYA },
+/* rev 12 */	{ LOGIC_Z, LOGIC_0, LOGIC_0, SPRING_CONFIG_PVT_MICRON },
+		{ LOGIC_0, LOGIC_0, LOGIC_0, SPRING_CONFIG_RSVD },
+		{ LOGIC_1, LOGIC_0, LOGIC_0, SPRING_CONFIG_RSVD },
+		{ LOGIC_Z, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
+		{ LOGIC_0, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
+		{ LOGIC_1, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
+		{ LOGIC_Z, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
+		{ LOGIC_0, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
+		{ LOGIC_1, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
+		{ LOGIC_Z, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
+		{ LOGIC_0, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
+		{ LOGIC_1, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
+		{ LOGIC_Z, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
+		{ LOGIC_0, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
+		{ LOGIC_1, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
 };
 
 static int spring_get_board_config(struct platform_intf *intf)
@@ -192,8 +191,8 @@
 	v0 = exynos5_read_gpio_mvl(intf, rev0);
 	v1 = exynos5_read_gpio_mvl(intf, rev1);
 	v2 = exynos5_read_gpio_mvl(intf, rev2);
-	lprintf(LOG_DEBUG, "%s: v0: %u, v1: %u, v2: %u\n",
-			__func__, v0, v1, v2);
+	lprintf(LOG_DEBUG, "%s: v0: %u, v1: %u, v2: %u => rev %u\n",
+			__func__, v0, v1, v2, v0 + v1 * 3 + v2 * 9);
 
 	for (i = 0; i < ARRAY_SIZE(spring_id_map); i++)
 		if ((v0 == spring_id_map[i].v0) &&
diff --git a/platform/experimental/spring/spring.h b/platform/experimental/spring/spring.h
index 95e6d84..20c97ba 100644
--- a/platform/experimental/spring/spring.h
+++ b/platform/experimental/spring/spring.h
@@ -45,12 +45,12 @@
 	SPRING_CONFIG_PROTO,
 	SPRING_CONFIG_EVT_MICRON,
 	SPRING_CONFIG_EVT_NANYA,
-	SPRING_CONFIG_DVT_MICRON,
-	SPRING_CONFIG_DVT_NANYA,
+	SPRING_CONFIG_DVT1_MICRON,
+	SPRING_CONFIG_DVT1_NANYA,
+	SPRING_CONFIG_DVT2_MICRON,
+	SPRING_CONFIG_DVT2_NANYA,
 	SPRING_CONFIG_PVT_MICRON,
 	SPRING_CONFIG_PVT_NANYA,
-	SPRING_CONFIG_MP_MICRON,
-	SPRING_CONFIG_MP_NANYA,
 	SPRING_CONFIG_RSVD,
 };
 
diff --git a/platform/experimental/spring/sys.c b/platform/experimental/spring/sys.c
index 92049d4..e499b37 100644
--- a/platform/experimental/spring/sys.c
+++ b/platform/experimental/spring/sys.c
@@ -69,18 +69,18 @@
 	case SPRING_CONFIG_EVT_MICRON:
 		ret = mosys_strdup("EVT");
 		break;
-	case SPRING_CONFIG_DVT_NANYA:
-	case SPRING_CONFIG_DVT_MICRON:
-		ret = mosys_strdup("DVT");
+	case SPRING_CONFIG_DVT1_NANYA:
+	case SPRING_CONFIG_DVT1_MICRON:
+		ret = mosys_strdup("DVT1");
+		break;
+	case SPRING_CONFIG_DVT2_NANYA:
+	case SPRING_CONFIG_DVT2_MICRON:
+		ret = mosys_strdup("DVT2");
 		break;
 	case SPRING_CONFIG_PVT_NANYA:
 	case SPRING_CONFIG_PVT_MICRON:
 		ret = mosys_strdup("PVT");
 		break;
-	case SPRING_CONFIG_MP_NANYA:
-	case SPRING_CONFIG_MP_MICRON:
-		ret = mosys_strdup("MP");
-		break;
 	case SPRING_CONFIG_RSVD:
 		ret = mosys_strdup("RSVD");
 		break;