forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.2 KiB
86 lines
3.2 KiB
# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) |
|
%YAML 1.2 |
|
--- |
|
$id: http://devicetree.org/schemas/power/reset/gpio-restart.yaml# |
|
$schema: http://devicetree.org/meta-schemas/core.yaml# |
|
|
|
title: GPIO controlled reset |
|
|
|
maintainers: |
|
- Sebastian Reichel <[email protected]> |
|
|
|
description: > |
|
Drive a GPIO line that can be used to restart the system from a restart handler. |
|
|
|
This binding supports level and edge triggered reset. At driver load time, the driver will |
|
request the given gpio line and install a restart handler. If the optional properties |
|
'open-source' is not found, the GPIO line will be driven in the inactive state. Otherwise its |
|
not driven until the restart is initiated. |
|
|
|
When the system is restarted, the restart handler will be invoked in priority order. The GPIO |
|
is configured as an output, and driven active, triggering a level triggered reset condition. |
|
This will also cause an inactive->active edge condition, triggering positive edge triggered |
|
reset. After a delay specified by active-delay, the GPIO is set to inactive, thus causing an |
|
active->inactive edge, triggering negative edge triggered reset. After a delay specified by |
|
inactive-delay, the GPIO is driven active again. After a delay specified by wait-delay, the |
|
restart handler completes allowing other restart handlers to be attempted. |
|
|
|
properties: |
|
compatible: |
|
const: gpio-restart |
|
|
|
gpios: |
|
description: The GPIO to set high/low, see "gpios property" in |
|
Documentation/devicetree/bindings/gpio/gpio.txt. If the pin should be low to reset the board |
|
set it to "Active Low", otherwise set GPIO to "Active High". |
|
|
|
open-source: |
|
$ref: /schemas/types.yaml#/definitions/flag |
|
description: Treat the GPIO as being open source and defer driving it to when the restart is |
|
initiated. If this optional property is not specified, the GPIO is initialized as an output |
|
in its inactive state. |
|
|
|
priority: |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
description: | |
|
A priority ranging from 0 to 255 (default 129) according to the following guidelines: |
|
|
|
0: Restart handler of last resort, with limited restart capabilities. |
|
128: Default restart handler; use if no other restart handler is expected to be available, |
|
and/or if restart functionality is sufficient to restart the entire system. |
|
255: Highest priority restart handler, will preempt all other restart handlers. |
|
minimum: 0 |
|
maximum: 255 |
|
default: 129 |
|
|
|
active-delay: |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
description: Delay (default 100) to wait after driving gpio active [ms] |
|
default: 100 |
|
|
|
inactive-delay: |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
description: Delay (default 100) to wait after driving gpio inactive [ms] |
|
default: 100 |
|
|
|
wait-delay: |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
description: Delay (default 3000) to wait after completing restart sequence [ms] |
|
default: 100 |
|
|
|
additionalProperties: false |
|
|
|
required: |
|
- compatible |
|
- gpios |
|
|
|
examples: |
|
- | |
|
gpio-restart { |
|
compatible = "gpio-restart"; |
|
gpios = <&gpio 4 0>; |
|
priority = <128>; |
|
active-delay = <100>; |
|
inactive-delay = <100>; |
|
wait-delay = <3000>; |
|
};
|
|
|