diff options
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r-- | arch/arm/mach-tegra/Makefile.boot | 12 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-dt-tegra20.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-dt-tegra30.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-paz00.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/common.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/common.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/hotplug.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/gpio.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/sdhci.h | 30 | ||||
-rw-r--r-- | arch/arm/mach-tegra/platsmp.c | 21 |
10 files changed, 29 insertions, 55 deletions
diff --git a/arch/arm/mach-tegra/Makefile.boot b/arch/arm/mach-tegra/Makefile.boot index 54c16aade475..29433816233c 100644 --- a/arch/arm/mach-tegra/Makefile.boot +++ b/arch/arm/mach-tegra/Makefile.boot | |||
@@ -1,15 +1,3 @@ | |||
1 | zreladdr-$(CONFIG_ARCH_TEGRA_2x_SOC) += 0x00008000 | 1 | zreladdr-$(CONFIG_ARCH_TEGRA_2x_SOC) += 0x00008000 |
2 | params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00000100 | 2 | params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00000100 |
3 | initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00800000 | 3 | initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00800000 |
4 | |||
5 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-harmony.dtb | ||
6 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-medcom-wide.dtb | ||
7 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-paz00.dtb | ||
8 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-plutux.dtb | ||
9 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-seaboard.dtb | ||
10 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-tec.dtb | ||
11 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-trimslice.dtb | ||
12 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-ventana.dtb | ||
13 | dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-whistler.dtb | ||
14 | dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30-cardhu-a02.dtb | ||
15 | dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30-cardhu-a04.dtb | ||
diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c index c3394443675e..57e235f4ac74 100644 --- a/arch/arm/mach-tegra/board-dt-tegra20.c +++ b/arch/arm/mach-tegra/board-dt-tegra20.c | |||
@@ -45,6 +45,7 @@ | |||
45 | 45 | ||
46 | #include "board.h" | 46 | #include "board.h" |
47 | #include "clock.h" | 47 | #include "clock.h" |
48 | #include "common.h" | ||
48 | 49 | ||
49 | struct tegra_ehci_platform_data tegra_ehci1_pdata = { | 50 | struct tegra_ehci_platform_data tegra_ehci1_pdata = { |
50 | .operating_mode = TEGRA_USB_OTG, | 51 | .operating_mode = TEGRA_USB_OTG, |
@@ -177,6 +178,7 @@ static const char *tegra20_dt_board_compat[] = { | |||
177 | 178 | ||
178 | DT_MACHINE_START(TEGRA_DT, "nVidia Tegra20 (Flattened Device Tree)") | 179 | DT_MACHINE_START(TEGRA_DT, "nVidia Tegra20 (Flattened Device Tree)") |
179 | .map_io = tegra_map_common_io, | 180 | .map_io = tegra_map_common_io, |
181 | .smp = smp_ops(tegra_smp_ops), | ||
180 | .init_early = tegra20_init_early, | 182 | .init_early = tegra20_init_early, |
181 | .init_irq = tegra_dt_init_irq, | 183 | .init_irq = tegra_dt_init_irq, |
182 | .handle_irq = gic_handle_irq, | 184 | .handle_irq = gic_handle_irq, |
diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c b/arch/arm/mach-tegra/board-dt-tegra30.c index 53bf60f11580..e4a676d4ddf7 100644 --- a/arch/arm/mach-tegra/board-dt-tegra30.c +++ b/arch/arm/mach-tegra/board-dt-tegra30.c | |||
@@ -37,6 +37,7 @@ | |||
37 | 37 | ||
38 | #include "board.h" | 38 | #include "board.h" |
39 | #include "clock.h" | 39 | #include "clock.h" |
40 | #include "common.h" | ||
40 | 41 | ||
41 | struct of_dev_auxdata tegra30_auxdata_lookup[] __initdata = { | 42 | struct of_dev_auxdata tegra30_auxdata_lookup[] __initdata = { |
42 | OF_DEV_AUXDATA("nvidia,tegra20-sdhci", 0x78000000, "sdhci-tegra.0", NULL), | 43 | OF_DEV_AUXDATA("nvidia,tegra20-sdhci", 0x78000000, "sdhci-tegra.0", NULL), |
@@ -83,6 +84,7 @@ static const char *tegra30_dt_board_compat[] = { | |||
83 | }; | 84 | }; |
84 | 85 | ||
85 | DT_MACHINE_START(TEGRA30_DT, "NVIDIA Tegra30 (Flattened Device Tree)") | 86 | DT_MACHINE_START(TEGRA30_DT, "NVIDIA Tegra30 (Flattened Device Tree)") |
87 | .smp = smp_ops(tegra_smp_ops), | ||
86 | .map_io = tegra_map_common_io, | 88 | .map_io = tegra_map_common_io, |
87 | .init_early = tegra30_init_early, | 89 | .init_early = tegra30_init_early, |
88 | .init_irq = tegra_dt_init_irq, | 90 | .init_irq = tegra_dt_init_irq, |
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c index 59305516fadb..740e16f64728 100644 --- a/arch/arm/mach-tegra/board-paz00.c +++ b/arch/arm/mach-tegra/board-paz00.c | |||
@@ -19,7 +19,7 @@ | |||
19 | 19 | ||
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/rfkill-gpio.h> | 21 | #include <linux/rfkill-gpio.h> |
22 | 22 | #include "board.h" | |
23 | #include "board-paz00.h" | 23 | #include "board-paz00.h" |
24 | 24 | ||
25 | static struct rfkill_gpio_platform_data wifi_rfkill_platform_data = { | 25 | static struct rfkill_gpio_platform_data wifi_rfkill_platform_data = { |
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index 0560538bf598..0b0a5f556d34 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c | |||
@@ -31,6 +31,7 @@ | |||
31 | 31 | ||
32 | #include "board.h" | 32 | #include "board.h" |
33 | #include "clock.h" | 33 | #include "clock.h" |
34 | #include "common.h" | ||
34 | #include "fuse.h" | 35 | #include "fuse.h" |
35 | #include "pmc.h" | 36 | #include "pmc.h" |
36 | #include "apbio.h" | 37 | #include "apbio.h" |
diff --git a/arch/arm/mach-tegra/common.h b/arch/arm/mach-tegra/common.h new file mode 100644 index 000000000000..02f71b4f1e51 --- /dev/null +++ b/arch/arm/mach-tegra/common.h | |||
@@ -0,0 +1,4 @@ | |||
1 | extern struct smp_operations tegra_smp_ops; | ||
2 | |||
3 | extern void tegra_cpu_die(unsigned int cpu); | ||
4 | extern int tegra_cpu_disable(unsigned int cpu); | ||
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c index d02a35476135..dca5141a2c31 100644 --- a/arch/arm/mach-tegra/hotplug.c +++ b/arch/arm/mach-tegra/hotplug.c | |||
@@ -19,17 +19,12 @@ | |||
19 | 19 | ||
20 | static void (*tegra_hotplug_shutdown)(void); | 20 | static void (*tegra_hotplug_shutdown)(void); |
21 | 21 | ||
22 | int platform_cpu_kill(unsigned int cpu) | ||
23 | { | ||
24 | return 1; | ||
25 | } | ||
26 | |||
27 | /* | 22 | /* |
28 | * platform-specific code to shutdown a CPU | 23 | * platform-specific code to shutdown a CPU |
29 | * | 24 | * |
30 | * Called with IRQs disabled | 25 | * Called with IRQs disabled |
31 | */ | 26 | */ |
32 | void platform_cpu_die(unsigned int cpu) | 27 | void __ref tegra_cpu_die(unsigned int cpu) |
33 | { | 28 | { |
34 | cpu = cpu_logical_map(cpu); | 29 | cpu = cpu_logical_map(cpu); |
35 | 30 | ||
@@ -47,7 +42,7 @@ void platform_cpu_die(unsigned int cpu) | |||
47 | BUG(); | 42 | BUG(); |
48 | } | 43 | } |
49 | 44 | ||
50 | int platform_cpu_disable(unsigned int cpu) | 45 | int tegra_cpu_disable(unsigned int cpu) |
51 | { | 46 | { |
52 | /* | 47 | /* |
53 | * we don't allow CPU 0 to be shutdown (it is still too special | 48 | * we don't allow CPU 0 to be shutdown (it is still too special |
diff --git a/arch/arm/mach-tegra/include/mach/gpio.h b/arch/arm/mach-tegra/include/mach/gpio.h deleted file mode 100644 index 40a8c178f10d..000000000000 --- a/arch/arm/mach-tegra/include/mach/gpio.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | /* empty */ | ||
diff --git a/arch/arm/mach-tegra/include/mach/sdhci.h b/arch/arm/mach-tegra/include/mach/sdhci.h deleted file mode 100644 index 4231bc7b8652..000000000000 --- a/arch/arm/mach-tegra/include/mach/sdhci.h +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-arm/arch-tegra/include/mach/sdhci.h | ||
3 | * | ||
4 | * Copyright (C) 2009 Palm, Inc. | ||
5 | * Author: Yvonne Yip <y@palm.com> | ||
6 | * | ||
7 | * This software is licensed under the terms of the GNU General Public | ||
8 | * License version 2, as published by the Free Software Foundation, and | ||
9 | * may be copied, distributed, and modified under those terms. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | */ | ||
17 | #ifndef __ASM_ARM_ARCH_TEGRA_SDHCI_H | ||
18 | #define __ASM_ARM_ARCH_TEGRA_SDHCI_H | ||
19 | |||
20 | #include <linux/mmc/host.h> | ||
21 | |||
22 | struct tegra_sdhci_platform_data { | ||
23 | int cd_gpio; | ||
24 | int wp_gpio; | ||
25 | int power_gpio; | ||
26 | int is_8bit; | ||
27 | int pm_flags; | ||
28 | }; | ||
29 | |||
30 | #endif | ||
diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c index 96ed1718eef0..81cb26591acf 100644 --- a/arch/arm/mach-tegra/platsmp.c +++ b/arch/arm/mach-tegra/platsmp.c | |||
@@ -33,6 +33,8 @@ | |||
33 | #include "reset.h" | 33 | #include "reset.h" |
34 | #include "tegra_cpu_car.h" | 34 | #include "tegra_cpu_car.h" |
35 | 35 | ||
36 | #include "common.h" | ||
37 | |||
36 | extern void tegra_secondary_startup(void); | 38 | extern void tegra_secondary_startup(void); |
37 | 39 | ||
38 | static void __iomem *scu_base = IO_ADDRESS(TEGRA_ARM_PERIF_BASE); | 40 | static void __iomem *scu_base = IO_ADDRESS(TEGRA_ARM_PERIF_BASE); |
@@ -40,7 +42,7 @@ static void __iomem *scu_base = IO_ADDRESS(TEGRA_ARM_PERIF_BASE); | |||
40 | #define EVP_CPU_RESET_VECTOR \ | 42 | #define EVP_CPU_RESET_VECTOR \ |
41 | (IO_ADDRESS(TEGRA_EXCEPTION_VECTORS_BASE) + 0x100) | 43 | (IO_ADDRESS(TEGRA_EXCEPTION_VECTORS_BASE) + 0x100) |
42 | 44 | ||
43 | void __cpuinit platform_secondary_init(unsigned int cpu) | 45 | static void __cpuinit tegra_secondary_init(unsigned int cpu) |
44 | { | 46 | { |
45 | /* | 47 | /* |
46 | * if any interrupts are already enabled for the primary | 48 | * if any interrupts are already enabled for the primary |
@@ -100,7 +102,7 @@ static int tegra30_power_up_cpu(unsigned int cpu) | |||
100 | return 0; | 102 | return 0; |
101 | } | 103 | } |
102 | 104 | ||
103 | int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | 105 | static int __cpuinit tegra_boot_secondary(unsigned int cpu, struct task_struct *idle) |
104 | { | 106 | { |
105 | int status; | 107 | int status; |
106 | 108 | ||
@@ -146,7 +148,7 @@ done: | |||
146 | * Initialise the CPU possible map early - this describes the CPUs | 148 | * Initialise the CPU possible map early - this describes the CPUs |
147 | * which may be present or become present in the system. | 149 | * which may be present or become present in the system. |
148 | */ | 150 | */ |
149 | void __init smp_init_cpus(void) | 151 | static void __init tegra_smp_init_cpus(void) |
150 | { | 152 | { |
151 | unsigned int i, ncores = scu_get_core_count(scu_base); | 153 | unsigned int i, ncores = scu_get_core_count(scu_base); |
152 | 154 | ||
@@ -162,8 +164,19 @@ void __init smp_init_cpus(void) | |||
162 | set_smp_cross_call(gic_raise_softirq); | 164 | set_smp_cross_call(gic_raise_softirq); |
163 | } | 165 | } |
164 | 166 | ||
165 | void __init platform_smp_prepare_cpus(unsigned int max_cpus) | 167 | static void __init tegra_smp_prepare_cpus(unsigned int max_cpus) |
166 | { | 168 | { |
167 | tegra_cpu_reset_handler_init(); | 169 | tegra_cpu_reset_handler_init(); |
168 | scu_enable(scu_base); | 170 | scu_enable(scu_base); |
169 | } | 171 | } |
172 | |||
173 | struct smp_operations tegra_smp_ops __initdata = { | ||
174 | .smp_init_cpus = tegra_smp_init_cpus, | ||
175 | .smp_prepare_cpus = tegra_smp_prepare_cpus, | ||
176 | .smp_secondary_init = tegra_secondary_init, | ||
177 | .smp_boot_secondary = tegra_boot_secondary, | ||
178 | #ifdef CONFIG_HOTPLUG_CPU | ||
179 | .cpu_die = tegra_cpu_die, | ||
180 | .cpu_disable = tegra_cpu_disable, | ||
181 | #endif | ||
182 | }; | ||