drivers: cpuidle: CPU idle ARM64 driver
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 28 Feb 2014 13:03:44 +0000 (13:03 +0000)
committerMark Brown <broonie@linaro.org>
Thu, 29 May 2014 20:44:15 +0000 (21:44 +0100)
commit08461b57c19fb68dde8907b87ff38f38f2585f64
tree802fe1ebc5b5a92d7b3aa00a057cb42edcec99d6
parent75ce30ddaa79134bd0225a5834016acd7cbb62ac
drivers: cpuidle: CPU idle ARM64 driver

This patch implements a generic CPU idle driver for ARM64 machines.

It relies on the DT idle states infrastructure to initialize idle
states count and respective parameters. Current code assumes the driver
is managing idle states on all possible CPUs but can be easily
generalized to support heterogenous systems and build cpumasks at
runtime using MIDRs or DT cpu nodes compatible properties.

Suspend back-ends (eg PSCI) must register a suspend initializer with
the CPU idle driver so that the suspend backend call can be detected,
and the driver code can call the back-end infrastructure to complete the
suspend backend initialization.

Idle state index 0 is always initialized as a simple wfi state, ie always
considered present and functional on all ARM64 platforms.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Conflicts:
drivers/cpuidle/Kconfig
drivers/cpuidle/Makefile
drivers/cpuidle/Kconfig
drivers/cpuidle/Kconfig.arm64 [new file with mode: 0644]
drivers/cpuidle/Makefile
drivers/cpuidle/cpuidle-arm64.c [new file with mode: 0644]