| 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. |
| |
| Required properties: |
| - compatible : should be "gpio-restart". |
| - gpios : 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". |
| |
| Optional properties: |
| - open-source : 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 : A priority ranging from 0 to 255 (default 128) 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 |
| - active-delay: Delay (default 100) to wait after driving gpio active [ms] |
| - inactive-delay: Delay (default 100) to wait after driving gpio inactive [ms] |
| - wait-delay: Delay (default 3000) to wait after completing restart |
| sequence [ms] |
| |
| Examples: |
| |
| gpio-restart { |
| compatible = "gpio-restart"; |
| gpios = <&gpio 4 0>; |
| priority = <128>; |
| active-delay = <100>; |
| inactive-delay = <100>; |
| wait-delay = <3000>; |
| }; |