xref: /openbmc/linux/Documentation/devicetree/bindings/power/reset/gpio-poweroff.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2f8ae9bb5SDavid Heidelberg%YAML 1.2
3f8ae9bb5SDavid Heidelberg---
4f8ae9bb5SDavid Heidelberg$id: http://devicetree.org/schemas/power/reset/gpio-poweroff.yaml#
5f8ae9bb5SDavid Heidelberg$schema: http://devicetree.org/meta-schemas/core.yaml#
6f8ae9bb5SDavid Heidelberg
7f8ae9bb5SDavid Heidelbergtitle: GPIO controlled power off
8f8ae9bb5SDavid Heidelberg
9f8ae9bb5SDavid Heidelbergmaintainers:
10f8ae9bb5SDavid Heidelberg  - Sebastian Reichel <sre@kernel.org>
11f8ae9bb5SDavid Heidelberg
12f8ae9bb5SDavid Heidelbergdescription: >
13f8ae9bb5SDavid Heidelberg  System power off support via a GPIO line. When a shutdown is
14f8ae9bb5SDavid Heidelberg  executed the operating system is expected to switch the GPIO
15f8ae9bb5SDavid Heidelberg  from inactive to active. After a delay (active-delay-ms) it
16f8ae9bb5SDavid Heidelberg  is expected to be switched back to inactive. After another
17f8ae9bb5SDavid Heidelberg  delay (inactive-delay-ms) it is configured as active again.
18f8ae9bb5SDavid Heidelberg  Finally the operating system assumes the power off failed if
19f8ae9bb5SDavid Heidelberg  the system is still running after waiting some time (timeout-ms).
20f8ae9bb5SDavid Heidelberg
21f8ae9bb5SDavid Heidelbergproperties:
22f8ae9bb5SDavid Heidelberg  compatible:
23f8ae9bb5SDavid Heidelberg    const: gpio-poweroff
24f8ae9bb5SDavid Heidelberg
25f8ae9bb5SDavid Heidelberg  gpios:
26f8ae9bb5SDavid Heidelberg    maxItems: 1
27f8ae9bb5SDavid Heidelberg
28f8ae9bb5SDavid Heidelberg  input:
29f8ae9bb5SDavid Heidelberg    type: boolean
30f8ae9bb5SDavid Heidelberg    description: >
31f8ae9bb5SDavid Heidelberg      Initially configure the GPIO line as an input. Only reconfigure
32f8ae9bb5SDavid Heidelberg      it to an output when the power-off sequence is initiated. If this optional
33f8ae9bb5SDavid Heidelberg      property is not specified, the GPIO is initialized as an output in its inactive state.
34f8ae9bb5SDavid Heidelberg
35f8ae9bb5SDavid Heidelberg  active-delay-ms:
36f8ae9bb5SDavid Heidelberg    default: 100
37f8ae9bb5SDavid Heidelberg    description: Delay to wait after driving gpio active
38f8ae9bb5SDavid Heidelberg
39f8ae9bb5SDavid Heidelberg  inactive-delay-ms:
40f8ae9bb5SDavid Heidelberg    default: 100
41f8ae9bb5SDavid Heidelberg    description: Delay to wait after driving gpio inactive
42f8ae9bb5SDavid Heidelberg
43f8ae9bb5SDavid Heidelberg  timeout-ms:
44f8ae9bb5SDavid Heidelberg    default: 3000
45f8ae9bb5SDavid Heidelberg    description: Time to wait before assuming the power off sequence failed.
46f8ae9bb5SDavid Heidelberg
47f8ae9bb5SDavid Heidelbergrequired:
48f8ae9bb5SDavid Heidelberg  - compatible
49f8ae9bb5SDavid Heidelberg  - gpios
50f8ae9bb5SDavid Heidelberg
51f8ae9bb5SDavid HeidelbergadditionalProperties: false
52f8ae9bb5SDavid Heidelberg
53f8ae9bb5SDavid Heidelbergexamples:
54f8ae9bb5SDavid Heidelberg  - |
55f8ae9bb5SDavid Heidelberg    gpio-poweroff {
56f8ae9bb5SDavid Heidelberg        compatible = "gpio-poweroff";
57f8ae9bb5SDavid Heidelberg        gpios = <&gpio 4 0>;
58f8ae9bb5SDavid Heidelberg        timeout-ms = <3000>;
59f8ae9bb5SDavid Heidelberg    };
60