android_kernel_motorola_sm6225/arch/arm/mach-vexpress
Lorenzo Pieralisi 63819cb103 ARM: vexpress/TC2: add Serial Power Controller (SPC) support
The TC2 versatile express core tile integrates a logic block that provides
the interface between the dual cluster test-chip and the M3 microcontroller
that carries out power management. The logic block, called Serial Power
Controller (SPC), contains several memory mapped registers to control among
other things low-power states, wake-up irqs and per-CPU jump addresses
registers.

This patch provides a driver that enables run-time control of features
implemented by the SPC power management control logic with an API to
be used by different subsystem drivers on top.

The SPC control logic is required to be programmed very early in the boot
process to reset secondary CPUs on the TC2 testchip, set-up jump addresses
and wake-up IRQs for power management. Hence, waiting for core changes to
be made in the device core code to enable early registration of platform
devices, the driver puts in place an early init scheme that allows kernel
drivers to initialize the SPC driver directly from the components requiring
it, if their initialization routine is called before this driver init
function during the boot process.

Device tree bindings documentation for the SPC component is also provided.

Cc: Olof Johansson <olof@lixom.net>
Cc: Amit Kucheria <amit.kucheria@linaro.org>
Cc: Jon Medhurst <tixy@linaro.org>
Signed-off-by: Achin Gupta <achin.gupta@arm.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Sudeep KarkadaNagesha <Sudeep.KarkadaNagesha@arm.com>
Acked-by: Pawel Moll <pawel.moll@arm.com>
[ np: moved from drivers/mfd/ to drivers/platform/vexpress/ ]
Signed-off-by: Nicolas Pitre <nico@linaro.org>
[ PM: moved again to arch/arm/mach-vexpress, requested by Olof ]
[ PM: removed useless printk, from Olof ]
[ PM: made the driver SPC-only ]
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
2013-08-07 14:55:24 +01:00
..
include/mach ARM: vexpress: Start using new Versatile Express infrastructure 2012-11-05 17:09:51 +00:00
core.h ARM: vexpress: Select multi-cluster SMP operation if required 2013-05-29 15:50:35 -04:00
ct-ca9x4.c irqchip: Move ARM gic.h to include/linux/irqchip/arm-gic.h 2013-01-12 10:47:32 -06:00
dcscb.c ARM: vexpress/dcscb: fix cache disabling sequences 2013-07-22 12:26:09 -04:00
dcscb_setup.S ARM: vexpress/dcscb: handle platform coherency exit/setup and CCI 2013-05-29 15:50:35 -04:00
hotplug.c ARM: cpu hotplug: remove majority of cache flushing from platforms 2013-04-18 20:08:04 +01:00
Kconfig ARM: vexpress/dcscb: handle platform coherency exit/setup and CCI 2013-05-29 15:50:35 -04:00
Makefile ARM: vexpress/dcscb: handle platform coherency exit/setup and CCI 2013-05-29 15:50:35 -04:00
platsmp.c ARM: vexpress: Select multi-cluster SMP operation if required 2013-05-29 15:50:35 -04:00
spc.c ARM: vexpress/TC2: add Serial Power Controller (SPC) support 2013-08-07 14:55:24 +01:00
spc.h ARM: vexpress/TC2: add Serial Power Controller (SPC) support 2013-08-07 14:55:24 +01:00
v2m.c ARM SoC specific changes 2013-07-02 13:43:38 -07:00