mfd: Versatile Express config infrastructure
commit3ecbf05be159a95e1d23ba9b3b21c5bc2941ba6b
authorPawel Moll <pawel.moll@arm.com>
Mon, 24 Sep 2012 13:55:40 +0000 (24 14:55 +0100)
committerPawel Moll <pawel.moll@arm.com>
Mon, 5 Nov 2012 17:09:49 +0000 (5 17:09 +0000)
treeed954cbeedfc693751a76630310b36374572338d
parentbcd6f569e87471d7f104bd9497f0b516a3b12e32
mfd: Versatile Express config infrastructure

Versatile Express platform has an elaborated configuration system,
consisting of microcontrollers residing on the mother- and
daughterboards known as Motherboard/Daughterboard Configuration
Controller (MCC and DCC). The controllers are responsible for
the platform initialization (reset generation, flash programming,
FPGA bitfiles loading etc.) but also control clock generators,
voltage regulators, gather environmental data like temperature,
power consumption etc. Even the video output switch (FPGA) is
controlled that way.

Those devices are _not_ visible in the main address space and
the usual communication channel uses some kind of a bridge in
the peripheral block sending commands (requests) to the
controllers and receiving responses. It can take up to
500 microseconds for a transaction to be completed, therefore
it is important to provide a non-blocking interface to it.

This patch adds an abstraction of this infrastructure. Bridge
drivers can register themselves with the framework. Then,
a driver of a device can request an abstract "function" - the
request will be redirected to a bridge referred by thedd
"arm,vexpress,config-bridge" property of the device tree node.

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Documentation/devicetree/bindings/arm/vexpress.txt
drivers/mfd/Kconfig
drivers/mfd/Makefile
drivers/mfd/vexpress-config.c [new file with mode: 0644]
include/linux/vexpress.h [new file with mode: 0644]