summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra/include/mach/lowlevel.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/include/mach/lowlevel.h')
-rw-r--r--arch/arm/mach-tegra/include/mach/lowlevel.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/include/mach/lowlevel.h b/arch/arm/mach-tegra/include/mach/lowlevel.h
index cc346a023d..d7b6f1e994 100644
--- a/arch/arm/mach-tegra/include/mach/lowlevel.h
+++ b/arch/arm/mach-tegra/include/mach/lowlevel.h
@@ -39,6 +39,7 @@
#define T20_ODMDATA_RAMSIZE_SHIFT 28
#define T20_ODMDATA_RAMSIZE_MASK (3 << T20_ODMDATA_RAMSIZE_SHIFT)
+#define T30_ODMDATA_RAMSIZE_MASK (0xf << T20_ODMDATA_RAMSIZE_SHIFT)
#define T20_ODMDATA_UARTTYPE_SHIFT 18
#define T20_ODMDATA_UARTTYPE_MASK (3 << T20_ODMDATA_UARTTYPE_SHIFT)
#define T20_ODMDATA_UARTID_SHIFT 15
@@ -124,6 +125,26 @@ uint32_t tegra20_get_ramsize(void)
}
}
+static __always_inline
+uint32_t tegra30_get_ramsize(void)
+{
+ switch ((tegra_get_odmdata() & T30_ODMDATA_RAMSIZE_MASK) >>
+ T20_ODMDATA_RAMSIZE_SHIFT) {
+ case 0:
+ case 1:
+ default:
+ return SZ_256M;
+ case 2:
+ return SZ_512M;
+ case 3:
+ return SZ_512M + SZ_256M;
+ case 4:
+ return SZ_1G;
+ case 8:
+ return SZ_2G - SZ_1M;
+ }
+}
+
static long uart_id_to_base[] = {
TEGRA_UARTA_BASE,
TEGRA_UARTB_BASE,