From cd3de4326b8a7d7f905c2ced4081ea2e7d243e0c Mon Sep 17 00:00:00 2001
From: Varun Wadekar <vwadekar@nvidia.com>
Date: Thu, 13 Apr 2017 14:12:49 -0700
Subject: [PATCH] Tegra: platform: support Tegra186 chip id

This patch adds support to read the chip id and identify if
the current platform is Tegra186.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
---
 plat/nvidia/tegra/common/tegra_platform.c  | 8 ++++++++
 plat/nvidia/tegra/include/tegra_platform.h | 6 ++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/plat/nvidia/tegra/common/tegra_platform.c b/plat/nvidia/tegra/common/tegra_platform.c
index 0724b18ee..18cc555cf 100644
--- a/plat/nvidia/tegra/common/tegra_platform.c
+++ b/plat/nvidia/tegra/common/tegra_platform.c
@@ -69,6 +69,7 @@ typedef enum tegra_platform {
 typedef enum tegra_chipid {
 	TEGRA_CHIPID_TEGRA13 = 0x13,
 	TEGRA_CHIPID_TEGRA21 = 0x21,
+	TEGRA_CHIPID_TEGRA18 = 0x18,
 } tegra_chipid_t;
 
 /*
@@ -109,6 +110,13 @@ uint8_t tegra_chipid_is_t210(void)
 	return (chip_id == TEGRA_CHIPID_TEGRA21);
 }
 
+uint8_t tegra_chipid_is_t186(void)
+{
+	uint32_t chip_id = (tegra_get_chipid() >> CHIP_ID_SHIFT) & CHIP_ID_MASK;
+
+	return (chip_id == TEGRA_CHIPID_TEGRA18);
+}
+
 /*
  * Read the chip ID value and derive the platform
  */
diff --git a/plat/nvidia/tegra/include/tegra_platform.h b/plat/nvidia/tegra/include/tegra_platform.h
index a2813a832..c06ce70ef 100644
--- a/plat/nvidia/tegra/include/tegra_platform.h
+++ b/plat/nvidia/tegra/include/tegra_platform.h
@@ -42,8 +42,10 @@ uint32_t tegra_get_chipid_minor(void);
 /*
  * Tegra chip identifiers
  */
-uint8_t tegra_is_t132(void);
-uint8_t tegra_is_t210(void);
+uint8_t tegra_chipid_is_t132(void);
+uint8_t tegra_chipid_is_t210(void);
+uint8_t tegra_chipid_is_t186(void);
+
 
 /*
  * Tegra platform identifiers
-- 
GitLab