diff options
author | Benjamin Collins <ben.c@servergy.com> | 2012-12-16 23:19:28 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-01-28 19:35:05 -0500 |
commit | 5611fe48c545a22e62273428ed74c9bfae4a9406 (patch) | |
tree | 79514228d518fe3adb823290879190157d299c1c /arch/powerpc/platforms/85xx/Kconfig | |
parent | 34f364fef475f5d960b74bf074d65392ece50235 (diff) |
powerpc: Add support for CTS-1000 GPIO controlled system poweroff
CTS-1000 is based on P4080. GPIO 27 is used to signal the FPGA to
switch off power, and also associates IRQ 8 with front-panel button
press (which we use to call orderly_poweroff()).
The relevant device-tree looks like this:
gpio0: gpio@130000 {
compatible = "fsl,qoriq-gpio";
reg = <0x130000 0x1000>;
interrupts = <55 2 0 0>;
#gpio-cells = <2>;
gpio-controller;
/* Allows powering off the system via GPIO signal. */
gpio-halt@27 {
compatible = "sgy,gpio-halt";
gpios = <&gpio0 27 0>;
interrupts = <8 1 0 0>;
};
};
Because the driver cannot match on sgy,gpio-halt (because the node is never
processed through of_platform), it matches on fsl,qoriq-gpio and then
checks child nodes for the matching sgy,gpio-halt. This also ensures that
the GPIO controller is detected prior to sgy_cts1000's probe callback,
since that node wont match via of_platform until the controller is
registered.
Also, because the GPIO handler for triggering system poweroff might sleep,
the IRQ uses a workqueue to call orderly_poweroff().
As a final note, this driver may be expanded for other features specific to
the CTS-1000.
Signed-off-by: Ben Collins <ben.c@servergy.com>
Cc: Jack Smith <jack.s@servergy.com>
Cc: Vihar Rai <vihar.r@servergy.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/85xx/Kconfig')
-rw-r--r-- | arch/powerpc/platforms/85xx/Kconfig | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index 02d02a09942d..651788cbc6e6 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig | |||
@@ -245,6 +245,14 @@ config P4080_DS | |||
245 | help | 245 | help |
246 | This option enables support for the P4080 DS board | 246 | This option enables support for the P4080 DS board |
247 | 247 | ||
248 | config SGY_CTS1000 | ||
249 | tristate "Servergy CTS-1000 support" | ||
250 | select GPIOLIB | ||
251 | select OF_GPIO | ||
252 | depends on P4080_DS | ||
253 | help | ||
254 | Enable this to support functionality in Servergy's CTS-1000 systems. | ||
255 | |||
248 | endif # PPC32 | 256 | endif # PPC32 |
249 | 257 | ||
250 | config P5020_DS | 258 | config P5020_DS |