linux/arch/arm/mach-mvebu
Thomas Petazzoni 3f20fb1153 ARM: mvebu: introduce CPU reset code
The Armada 370 and Armada XP have registers that allow to reset the
CPUs, which is particularly useful to take the secondary CPUs out of
reset in the context of the SMP support.

Unfortunately, an implementation mistake was originally made and the
support for these registers was integrated into the PMSU driver, which
is in fact completely unrelated. And it turns out that the Armada 375
has the same CPU reset registers, but does not have the PMSU
registers.

Therefore, this commit creates a small CPU reset driver. All it does
is provide a simple mvebu_cpu_reset_deassert() function that the SMP
support code can call to take secondary CPUs out of reset. As of this
commit, the driver isn't being used, it will be used through changes
in the following commits.

Note that we initially planned to use the 'reset controller'
framework, but it requires the addition of "resets" properties in the
Device Tree, which are causing too many problems if we want to keep
the Device Tree backward compatibility. Moreover, the 'reset
controller' framework is mainly useful when a device driver needs to
request a reset of its device from a separate reset controller. In our
case, the CPU reset handling and the SMP core code are both located in
arch/arm/mach-mvebu/ and are tightly linked together, so there's no
real benefit in going through a separate framework.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1397483433-25836-2-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-04-24 05:24:02 +00:00
..
include/mach ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
armada-370-xp.h ARM: mvebu: move Armada 370/XP specific definitions to armada-370-xp.h 2013-12-27 18:08:19 +00:00
board-t5325.c ARM: kirkwood: Add HP T5325 thin client 2014-02-25 20:32:16 +00:00
board-v7.c ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
board.h ARM: kirkwood: Add HP T5325 thin client 2014-02-25 20:32:16 +00:00
coherency_ll.S ARM: mvebu: support running big-endian 2013-10-19 20:46:34 +01:00
coherency.c ARM: mvebu: fix some sparse warnings 2013-11-24 03:27:54 +00:00
coherency.h ARM: mvebu: fix some sparse warnings 2013-11-24 03:27:54 +00:00
common.h ARM: mvebu: introduce CPU reset code 2014-04-24 05:24:02 +00:00
cpu-reset.c ARM: mvebu: introduce CPU reset code 2014-04-24 05:24:02 +00:00
dove.c ARM: mvebu: move DT Dove to MVEBU 2014-03-04 04:13:48 +00:00
headsmp.S ARM: mvebu: support running big-endian 2013-10-19 20:46:34 +01:00
hotplug.c ARM: mvebu: fix some sparse warnings 2013-11-24 03:27:54 +00:00
Kconfig ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
kirkwood-pm.c ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
kirkwood-pm.h ARM: mvebu: Move kirkwood DT boards into mach-mvebu 2014-02-22 21:19:55 +00:00
kirkwood.c ARM: kirkwood: Add HP T5325 thin client 2014-02-25 20:32:16 +00:00
kirkwood.h ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
Makefile ARM: mvebu: introduce CPU reset code 2014-04-24 05:24:02 +00:00
mvebu-soc-id.c ARM: mvebu: Enable mvebu-soc-id on Kirkwood 2014-02-22 21:19:58 +00:00
mvebu-soc-id.h ARM: mvebu: Add support to get the ID and the revision of a SoC 2014-01-14 01:59:16 +00:00
platsmp.c ARM: mvebu: fix some sparse warnings 2013-11-24 03:27:54 +00:00
pmsu.c ARM: mvebu: fix some sparse warnings 2013-11-24 03:27:54 +00:00
pmsu.h arm: mvebu: Add initial support for power managmement service unit 2012-11-21 16:49:36 +01:00
system-controller.c ARM: mvebu: add Armada 375 support to the system-controller driver 2014-02-22 00:41:09 +00:00