1Driver a GPIO line that can be used to turn the power off. 2 3The driver supports both level triggered and edge triggered power off. 4At driver load time, the driver will request the given gpio line and 5install a pm_power_off handler. If the optional properties 'input' is 6not found, the GPIO line will be driven in the inactive 7state. Otherwise its configured as an input. 8 9When the pm_power_off is called, the gpio is configured as an output, 10and drive active, so triggering a level triggered power off 11condition. This will also cause an inactive->active edge condition, so 12triggering positive edge triggered power off. After a delay of 100ms, 13the GPIO is set to inactive, thus causing an active->inactive edge, 14triggering negative edge triggered power off. After another 100ms 15delay the GPIO is driver active again. If the power is still on and 16the CPU still running after a 3000ms delay, a WARN_ON(1) is emitted. 17 18Required properties: 19- compatible : should be "gpio-poweroff". 20- gpios : The GPIO to set high/low, see "gpios property" in 21 Documentation/devicetree/bindings/gpio/gpio.txt. If the pin should be 22 low to power down the board set it to "Active Low", otherwise set 23 gpio to "Active High". 24 25Optional properties: 26- input : Initially configure the GPIO line as an input. Only reconfigure 27 it to an output when the pm_power_off function is called. If this optional 28 property is not specified, the GPIO is initialized as an output in its 29 inactive state. 30 31Examples: 32 33gpio-poweroff { 34 compatible = "gpio-poweroff"; 35 gpios = <&gpio 4 0>; 36}; 37