Commit e562b865 authored by Joseph Lo's avatar Joseph Lo Committed by Stephen Warren

ARM: tegra: bring up secondary CPU for Tegra114

The secondary CPU can be brought up by toggling the power in PMC. Then
the flow controller will release CPU to go by clearing the reset and
clamp signal automatically.

Based on the work by:
Bo Yan <byan@nvidia.com>
Signed-off-by: default avatarJoseph Lo <josephl@nvidia.com>
Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
parent 7e564744
...@@ -146,6 +146,12 @@ static int tegra30_boot_secondary(unsigned int cpu, struct task_struct *idle) ...@@ -146,6 +146,12 @@ static int tegra30_boot_secondary(unsigned int cpu, struct task_struct *idle)
return 0; return 0;
} }
static int tegra114_boot_secondary(unsigned int cpu, struct task_struct *idle)
{
cpu = cpu_logical_map(cpu);
return tegra_pmc_cpu_power_on(cpu);
}
static int __cpuinit tegra_boot_secondary(unsigned int cpu, static int __cpuinit tegra_boot_secondary(unsigned int cpu,
struct task_struct *idle) struct task_struct *idle)
{ {
...@@ -153,6 +159,8 @@ static int __cpuinit tegra_boot_secondary(unsigned int cpu, ...@@ -153,6 +159,8 @@ static int __cpuinit tegra_boot_secondary(unsigned int cpu,
return tegra20_boot_secondary(cpu, idle); return tegra20_boot_secondary(cpu, idle);
if (IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) && tegra_chip_id == TEGRA30) if (IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) && tegra_chip_id == TEGRA30)
return tegra30_boot_secondary(cpu, idle); return tegra30_boot_secondary(cpu, idle);
if (IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) && tegra_chip_id == TEGRA114)
return tegra114_boot_secondary(cpu, idle);
return -EINVAL; return -EINVAL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment