xref: /openbmc/linux/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
23a8e53e2SThierry Reding%YAML 1.2
33a8e53e2SThierry Reding---
43a8e53e2SThierry Reding$id: http://devicetree.org/schemas/power/reset/gpio-restart.yaml#
53a8e53e2SThierry Reding$schema: http://devicetree.org/meta-schemas/core.yaml#
63a8e53e2SThierry Reding
73a8e53e2SThierry Redingtitle: GPIO controlled reset
83a8e53e2SThierry Reding
93a8e53e2SThierry Redingmaintainers:
103a8e53e2SThierry Reding  - Sebastian Reichel <sre@kernel.org>
113a8e53e2SThierry Reding
123a8e53e2SThierry Redingdescription: >
133a8e53e2SThierry Reding  Drive a GPIO line that can be used to restart the system from a restart handler.
143a8e53e2SThierry Reding
153a8e53e2SThierry Reding  This binding supports level and edge triggered reset.  At driver load time, the driver will
163a8e53e2SThierry Reding  request the given gpio line and install a restart handler. If the optional properties
173a8e53e2SThierry Reding  'open-source' is not found, the GPIO line will be driven in the inactive state.  Otherwise its
183a8e53e2SThierry Reding  not driven until the restart is initiated.
193a8e53e2SThierry Reding
203a8e53e2SThierry Reding  When the system is restarted, the restart handler will be invoked in priority order.  The GPIO
213a8e53e2SThierry Reding  is configured as an output, and driven active, triggering a level triggered reset condition.
223a8e53e2SThierry Reding  This will also cause an inactive->active edge condition, triggering positive edge triggered
233a8e53e2SThierry Reding  reset. After a delay specified by active-delay, the GPIO is set to inactive, thus causing an
243a8e53e2SThierry Reding  active->inactive edge, triggering negative edge triggered reset. After a delay specified by
253a8e53e2SThierry Reding  inactive-delay, the GPIO is driven active again.  After a delay specified by wait-delay, the
263a8e53e2SThierry Reding  restart handler completes allowing other restart handlers to be attempted.
273a8e53e2SThierry Reding
283f5b93f4SKrzysztof KozlowskiallOf:
293f5b93f4SKrzysztof Kozlowski  - $ref: restart-handler.yaml#
303f5b93f4SKrzysztof Kozlowski
313a8e53e2SThierry Redingproperties:
323a8e53e2SThierry Reding  compatible:
333a8e53e2SThierry Reding    const: gpio-restart
343a8e53e2SThierry Reding
353a8e53e2SThierry Reding  gpios:
363a8e53e2SThierry Reding    description: The GPIO to set high/low, see "gpios property" in
373a8e53e2SThierry Reding      Documentation/devicetree/bindings/gpio/gpio.txt. If the pin should be low to reset the board
383a8e53e2SThierry Reding      set it to "Active Low", otherwise set GPIO to "Active High".
393a8e53e2SThierry Reding
403a8e53e2SThierry Reding  open-source:
413a8e53e2SThierry Reding    $ref: /schemas/types.yaml#/definitions/flag
423a8e53e2SThierry Reding    description: Treat the GPIO as being open source and defer driving it to when the restart is
433a8e53e2SThierry Reding      initiated.  If this optional property is not specified, the GPIO is initialized as an output
443a8e53e2SThierry Reding      in its inactive state.
453a8e53e2SThierry Reding
463a8e53e2SThierry Reding  priority:
472ba144e6SSander Vanheule    default: 129
483a8e53e2SThierry Reding
493a8e53e2SThierry Reding  active-delay:
503a8e53e2SThierry Reding    $ref: /schemas/types.yaml#/definitions/uint32
513a8e53e2SThierry Reding    description: Delay (default 100) to wait after driving gpio active [ms]
523a8e53e2SThierry Reding    default: 100
533a8e53e2SThierry Reding
543a8e53e2SThierry Reding  inactive-delay:
553a8e53e2SThierry Reding    $ref: /schemas/types.yaml#/definitions/uint32
563a8e53e2SThierry Reding    description: Delay (default 100) to wait after driving gpio inactive [ms]
573a8e53e2SThierry Reding    default: 100
583a8e53e2SThierry Reding
593a8e53e2SThierry Reding  wait-delay:
603a8e53e2SThierry Reding    $ref: /schemas/types.yaml#/definitions/uint32
613a8e53e2SThierry Reding    description: Delay (default 3000) to wait after completing restart sequence [ms]
623a8e53e2SThierry Reding    default: 100
633a8e53e2SThierry Reding
643a8e53e2SThierry RedingadditionalProperties: false
653a8e53e2SThierry Reding
663a8e53e2SThierry Redingrequired:
673a8e53e2SThierry Reding  - compatible
683a8e53e2SThierry Reding  - gpios
693a8e53e2SThierry Reding
703a8e53e2SThierry Redingexamples:
713a8e53e2SThierry Reding  - |
723a8e53e2SThierry Reding    gpio-restart {
733a8e53e2SThierry Reding      compatible = "gpio-restart";
743a8e53e2SThierry Reding      gpios = <&gpio 4 0>;
753a8e53e2SThierry Reding      priority = <128>;
763a8e53e2SThierry Reding      active-delay = <100>;
773a8e53e2SThierry Reding      inactive-delay = <100>;
783a8e53e2SThierry Reding      wait-delay = <3000>;
793a8e53e2SThierry Reding    };
80