summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r--arch/arm/mach-tegra/Kconfig2
-rw-r--r--arch/arm/mach-tegra/common.h22
-rw-r--r--arch/arm/mach-tegra/cpuidle-tegra114.c1
-rw-r--r--arch/arm/mach-tegra/cpuidle-tegra20.c1
-rw-r--r--arch/arm/mach-tegra/cpuidle-tegra30.c1
-rw-r--r--arch/arm/mach-tegra/cpuidle.h2
-rw-r--r--arch/arm/mach-tegra/hotplug.c1
-rw-r--r--arch/arm/mach-tegra/irq.c1
-rw-r--r--arch/arm/mach-tegra/pm.h2
-rw-r--r--arch/arm/mach-tegra/tegra.c24
10 files changed, 34 insertions, 23 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 0fa8b84ed657..329f01c5b6f8 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -1,11 +1,11 @@
1menuconfig ARCH_TEGRA 1menuconfig ARCH_TEGRA
2 bool "NVIDIA Tegra" 2 bool "NVIDIA Tegra"
3 depends on ARCH_MULTI_V7 3 depends on ARCH_MULTI_V7
4 select ARCH_REQUIRE_GPIOLIB
5 select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS 4 select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS
6 select ARM_AMBA 5 select ARM_AMBA
7 select ARM_GIC 6 select ARM_GIC
8 select CLKSRC_MMIO 7 select CLKSRC_MMIO
8 select GPIOLIB
9 select HAVE_ARM_SCU if SMP 9 select HAVE_ARM_SCU if SMP
10 select HAVE_ARM_TWD if SMP 10 select HAVE_ARM_TWD if SMP
11 select PINCTRL 11 select PINCTRL
diff --git a/arch/arm/mach-tegra/common.h b/arch/arm/mach-tegra/common.h
index 1f6fb808e236..4cc00e993b00 100644
--- a/arch/arm/mach-tegra/common.h
+++ b/arch/arm/mach-tegra/common.h
@@ -1,4 +1,26 @@
1/*
2 * Copyright (c) 2011, ARM Ltd.
3 * Copyright (c) 2013, NVIDIA Corporation. All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef __MACH_TEGRA_COMMON_H
19#define __MACH_TEGRA_COMMON_H
20
1extern const struct smp_operations tegra_smp_ops; 21extern const struct smp_operations tegra_smp_ops;
2 22
3extern int tegra_cpu_kill(unsigned int cpu); 23extern int tegra_cpu_kill(unsigned int cpu);
4extern void tegra_cpu_die(unsigned int cpu); 24extern void tegra_cpu_die(unsigned int cpu);
25
26#endif
diff --git a/arch/arm/mach-tegra/cpuidle-tegra114.c b/arch/arm/mach-tegra/cpuidle-tegra114.c
index 9157546fe68c..d3aa9be16621 100644
--- a/arch/arm/mach-tegra/cpuidle-tegra114.c
+++ b/arch/arm/mach-tegra/cpuidle-tegra114.c
@@ -26,6 +26,7 @@
26#include <asm/suspend.h> 26#include <asm/suspend.h>
27#include <asm/psci.h> 27#include <asm/psci.h>
28 28
29#include "cpuidle.h"
29#include "pm.h" 30#include "pm.h"
30#include "sleep.h" 31#include "sleep.h"
31 32
diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
index 7469347b1749..afcee04f2616 100644
--- a/arch/arm/mach-tegra/cpuidle-tegra20.c
+++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
@@ -30,6 +30,7 @@
30#include <asm/smp_plat.h> 30#include <asm/smp_plat.h>
31#include <asm/suspend.h> 31#include <asm/suspend.h>
32 32
33#include "cpuidle.h"
33#include "flowctrl.h" 34#include "flowctrl.h"
34#include "iomap.h" 35#include "iomap.h"
35#include "irq.h" 36#include "irq.h"
diff --git a/arch/arm/mach-tegra/cpuidle-tegra30.c b/arch/arm/mach-tegra/cpuidle-tegra30.c
index 4dbe1dae937c..c1417361e10e 100644
--- a/arch/arm/mach-tegra/cpuidle-tegra30.c
+++ b/arch/arm/mach-tegra/cpuidle-tegra30.c
@@ -30,6 +30,7 @@
30#include <asm/smp_plat.h> 30#include <asm/smp_plat.h>
31#include <asm/suspend.h> 31#include <asm/suspend.h>
32 32
33#include "cpuidle.h"
33#include "pm.h" 34#include "pm.h"
34#include "sleep.h" 35#include "sleep.h"
35 36
diff --git a/arch/arm/mach-tegra/cpuidle.h b/arch/arm/mach-tegra/cpuidle.h
index c017dab60ffa..dd1624d4b294 100644
--- a/arch/arm/mach-tegra/cpuidle.h
+++ b/arch/arm/mach-tegra/cpuidle.h
@@ -23,8 +23,10 @@ void tegra20_cpuidle_pcie_irqs_in_use(void);
23int tegra30_cpuidle_init(void); 23int tegra30_cpuidle_init(void);
24int tegra114_cpuidle_init(void); 24int tegra114_cpuidle_init(void);
25void tegra_cpuidle_init(void); 25void tegra_cpuidle_init(void);
26void tegra_cpuidle_pcie_irqs_in_use(void);
26#else 27#else
27static inline void tegra_cpuidle_init(void) {} 28static inline void tegra_cpuidle_init(void) {}
29static inline void tegra_cpuidle_pcie_irqs_in_use(void) {}
28#endif 30#endif
29 31
30#endif 32#endif
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c
index 1b129899a277..8ec707826072 100644
--- a/arch/arm/mach-tegra/hotplug.c
+++ b/arch/arm/mach-tegra/hotplug.c
@@ -17,6 +17,7 @@
17 17
18#include <asm/smp_plat.h> 18#include <asm/smp_plat.h>
19 19
20#include "common.h"
20#include "sleep.h" 21#include "sleep.h"
21 22
22static void (*tegra_hotplug_shutdown)(void); 23static void (*tegra_hotplug_shutdown)(void);
diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c
index 3b9098d27ea5..a69b22d37eed 100644
--- a/arch/arm/mach-tegra/irq.c
+++ b/arch/arm/mach-tegra/irq.c
@@ -29,6 +29,7 @@
29 29
30#include "board.h" 30#include "board.h"
31#include "iomap.h" 31#include "iomap.h"
32#include "irq.h"
32 33
33#define SGI_MASK 0xFFFF 34#define SGI_MASK 0xFFFF
34 35
diff --git a/arch/arm/mach-tegra/pm.h b/arch/arm/mach-tegra/pm.h
index 83bc87583446..717b48f22912 100644
--- a/arch/arm/mach-tegra/pm.h
+++ b/arch/arm/mach-tegra/pm.h
@@ -36,7 +36,7 @@ void tegra30_sleep_core_init(void);
36 36
37void tegra_clear_cpu_in_lp2(void); 37void tegra_clear_cpu_in_lp2(void);
38bool tegra_set_cpu_in_lp2(void); 38bool tegra_set_cpu_in_lp2(void);
39 39int tegra_cpu_do_idle(void);
40void tegra_idle_lp2_last(void); 40void tegra_idle_lp2_last(void);
41extern void (*tegra_tear_down_cpu)(void); 41extern void (*tegra_tear_down_cpu)(void);
42 42
diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c
index 6745a657d261..e01cbca196b5 100644
--- a/arch/arm/mach-tegra/tegra.c
+++ b/arch/arm/mach-tegra/tegra.c
@@ -118,32 +118,14 @@ out:
118 of_platform_default_populate(NULL, NULL, parent); 118 of_platform_default_populate(NULL, NULL, parent);
119} 119}
120 120
121static void __init paz00_init(void)
122{
123 if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC))
124 tegra_paz00_wifikill_init();
125}
126
127static struct {
128 char *machine;
129 void (*init)(void);
130} board_init_funcs[] = {
131 { "compal,paz00", paz00_init },
132};
133
134static void __init tegra_dt_init_late(void) 121static void __init tegra_dt_init_late(void)
135{ 122{
136 int i;
137
138 tegra_init_suspend(); 123 tegra_init_suspend();
139 tegra_cpuidle_init(); 124 tegra_cpuidle_init();
140 125
141 for (i = 0; i < ARRAY_SIZE(board_init_funcs); i++) { 126 if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) &&
142 if (of_machine_is_compatible(board_init_funcs[i].machine)) { 127 of_machine_is_compatible("compal,paz00"))
143 board_init_funcs[i].init(); 128 tegra_paz00_wifikill_init();
144 break;
145 }
146 }
147} 129}
148 130
149static const char * const tegra_dt_board_compat[] = { 131static const char * const tegra_dt_board_compat[] = {