ARM: mvebu: implement suspend/resume support

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
ARM: mvebu: muxing for suspend/resume pins

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
ARM: mvebu: make sure MMU is disabled in armada_370_xp_cpu_resume

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
ARM: mvebu: synchronize secondary CPU clocks on resume

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
irqchip: suspend/resume support

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
clocksource: add suspend/resume support

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
mvebu-mbus: suspend/resume support

This commit extends the mvebu-mbus driver to provide suspend/resume
support. Since mvebu-mbus is not a platform_driver, the syscore_ops
mechanism is used to get ->suspend() and ->resume() hooks called into
the driver.

In those hooks, we save and restore the MBus windows state, to make
sure after resume all Mbus windows are properly restored. Note that
while the state of some windows could be gathered by looking again at
the Device Tree (for statically described windows), it is not the case
of dynamically described windows such as the PCIe memory and I/O
windows. Therefore, we take the simple approach of saving and
restoring the registers for all MBus windows.

In addition, the commit extends the Device Tree binding of the MBus
controller, to control the MBus bridge registers (which define which
parts of the physical address space is routed to MBus windows
vs. normal RAM memory). Those registers must be saved and restored
during suspend/resume. The Device Tree binding extension is made is a
backward compatible fashion, but of course, suspend/resume will not
work without the Device Tree update.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
ARM: mvebu: adjust mbus controller description on Armada 370/XP

In order to support suspend/resume on Armada XP, an additional set of
registers need to be described at the MBus controller level. This
commit therefore adjusts the Device Tree of the Armada 370/XP SoC to
include those registers in the MBus controller description;

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
debug: add UART print in various locations

To help identifying places where the suspend/resume process halts,
this commit adds a bunch of UART prints in various assembly files.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
debug: tweak command line

This tweaks the command line to help debugging suspend/resume:

 - Add no_console_suspend so the console is not suspended and we have
   debugging messages during the suspend/resume process.

 - loglevel=8 to get all debugging messages.

 - mem=2G to use only the first chip-select of memory. Handling the
   second chip-select requires reserving some memory that gets
   overwritten by the DDR3 training code, which isn't implemented yet.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
debug: disable cpuidle

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
debug: disable many devices

To ease with the debuging of suspend/resume, we for the moment disable
as many devices as possible.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
debug: disable coherency fabric usage

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>