aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra
diff options
context:
space:
mode:
authorHiroshi Doyu <hdoyu@nvidia.com>2013-01-23 20:10:26 -0500
committerStephen Warren <swarren@nvidia.com>2013-01-28 13:23:15 -0500
commit5c541b884c09559723f426af2391ab07a4ca10e0 (patch)
tree18dbaeb7b8d35cadf695ea4ed952ef3b0b4d19d3 /arch/arm/mach-tegra
parent9f19cbef99a29669a1224e3ba6ba505152247517 (diff)
ARM: tegra: Add initial support for Tegra114 SoC.
Add new Tegra 114 SoC support. Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r--arch/arm/mach-tegra/Kconfig10
-rw-r--r--arch/arm/mach-tegra/Makefile1
-rw-r--r--arch/arm/mach-tegra/board-dt-tegra114.c48
-rw-r--r--arch/arm/mach-tegra/common.c1
4 files changed, 60 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index abc688fd4807..eada60f388af 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -45,6 +45,16 @@ config ARCH_TEGRA_3x_SOC
45 Support for NVIDIA Tegra T30 processor family, based on the 45 Support for NVIDIA Tegra T30 processor family, based on the
46 ARM CortexA9MP CPU and the ARM PL310 L2 cache controller 46 ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
47 47
48config ARCH_TEGRA_114_SOC
49 bool "Enable support for Tegra114 family"
50 select ARM_GIC
51 select CPU_V7
52 select ARM_L1_CACHE_SHIFT_6
53 select ARM_ARCH_TIMER
54 help
55 Support for NVIDIA Tegra T114 processor family, based on the
56 ARM CortexA15MP CPU
57
48config TEGRA_PCI 58config TEGRA_PCI
49 bool "PCI Express support" 59 bool "PCI Express support"
50 depends on ARCH_TEGRA_2x_SOC 60 depends on ARCH_TEGRA_2x_SOC
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile
index 6018a05e808c..8165b0a477da 100644
--- a/arch/arm/mach-tegra/Makefile
+++ b/arch/arm/mach-tegra/Makefile
@@ -29,6 +29,7 @@ obj-$(CONFIG_TEGRA_PCI) += pcie.o
29 29
30obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += board-dt-tegra20.o 30obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += board-dt-tegra20.o
31obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += board-dt-tegra30.o 31obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += board-dt-tegra30.o
32obj-$(CONFIG_ARCH_TEGRA_114_SOC) += board-dt-tegra114.o
32 33
33obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += board-harmony-pcie.o 34obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += board-harmony-pcie.o
34 35
diff --git a/arch/arm/mach-tegra/board-dt-tegra114.c b/arch/arm/mach-tegra/board-dt-tegra114.c
new file mode 100644
index 000000000000..3ed17ce884df
--- /dev/null
+++ b/arch/arm/mach-tegra/board-dt-tegra114.c
@@ -0,0 +1,48 @@
1/*
2 * NVIDIA Tegra114 device tree board support
3 *
4 * Copyright (C) 2013 NVIDIA Corporation
5 *
6 * This software is licensed under the terms of the GNU General Public
7 * License version 2, as published by the Free Software Foundation, and
8 * may be copied, distributed, and modified under those terms.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 */
16
17#include <linux/of.h>
18#include <linux/of_platform.h>
19#include <linux/clocksource.h>
20
21#include <asm/mach/arch.h>
22#include <asm/hardware/gic.h>
23
24#include "board.h"
25#include "common.h"
26
27static void __init tegra114_dt_init(void)
28{
29 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
30}
31
32static const char * const tegra114_dt_board_compat[] = {
33 "nvidia,tegra114",
34 NULL,
35};
36
37DT_MACHINE_START(TEGRA114_DT, "NVIDIA Tegra114 (Flattened Device Tree)")
38 .smp = smp_ops(tegra_smp_ops),
39 .map_io = tegra_map_common_io,
40 .init_early = tegra30_init_early,
41 .init_irq = tegra_dt_init_irq,
42 .handle_irq = gic_handle_irq,
43 .init_time = clocksource_of_init,
44 .init_machine = tegra114_dt_init,
45 .init_late = tegra_init_late,
46 .restart = tegra_assert_system_reset,
47 .dt_compat = tegra114_dt_board_compat,
48MACHINE_END
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 87dd69ccdf8e..2f1351359a35 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -59,6 +59,7 @@ u32 tegra_uart_config[4] = {
59 59
60#ifdef CONFIG_OF 60#ifdef CONFIG_OF
61static const struct of_device_id tegra_dt_irq_match[] __initconst = { 61static const struct of_device_id tegra_dt_irq_match[] __initconst = {
62 { .compatible = "arm,cortex-a15-gic", .data = gic_of_init },
62 { .compatible = "arm,cortex-a9-gic", .data = gic_of_init }, 63 { .compatible = "arm,cortex-a9-gic", .data = gic_of_init },
63 { } 64 { }
64}; 65};