| 
     1 Specifying wakeup capability for devices
    2 ============================================
    3 
    4 Any device nodes
    5 ----------------
    6 Nodes that describe devices which has wakeup capability must contain an
    7 "wakeup-source" boolean property.
    8 
    9 Also, if device is marked as a wakeup source, then all the primary
   10 interrupt(s) can be used as wakeup interrupt(s).
   11 
   12 However if the devices have dedicated interrupt as the wakeup source
   13 then they need to specify/identify the same using device specific
   14 interrupt name. In such cases only that interrupt can be used as wakeup
   15 interrupt.
   16 
   17 List of legacy properties and respective binding document
   18 ---------------------------------------------------------
   19 
   20 1. "enable-sdio-wakeup"         Documentation/devicetree/bindings/mmc/mmc.txt
   21 2. "gpio-key,wakeup"            Documentation/devicetree/bindings/input/gpio-keys{,-polled}.txt
   22 3. "has-tpo"                    Documentation/devicetree/bindings/rtc/rtc-opal.txt
   23 4. "linux,wakeup"               Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
   24                                 Documentation/devicetree/bindings/mfd/tc3589x.txt
   25                                 Documentation/devicetree/bindings/input/touchscreen/ads7846.txt
   26 5. "linux,keypad-wakeup"        Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
   27 6. "linux,input-wakeup"         Documentation/devicetree/bindings/input/samsung-keypad.txt
   28 7. "nvidia,wakeup-source"       Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
   29 
   30 Examples
   31 --------
   32 
   33 1. With "wakeup" interrupt name
   34 
   35         device@10000 {
   36                 compatible      = "vendor,device-id";
   37                 reg             = <0x10000 0x1000>;
   38                 interrupts      = <0 19 4>, <0 21 4>, <0 22 4>;
   39                 interrupt-names = "ack", "err", "wakeup";
   40                 wakeup-source;
   41         };
   42 
   43 2. Without "wakeup" interrupt name
   44 
   45         embedded-controller {
   46                 compatible = "google,cros-ec-i2c";
   47                 reg = <0x1e>;
   48                 interrupts = <6 0>;
   49                 interrupt-parent = <&gpx1>;
   50                 pinctrl-names = "default";
   51                 pinctrl-0 = <&ec_irq>;
   52                 wakeup-source;
   53         };
   54 
   55 3. Without interrupts
   56 
   57         gpio_keys {
   58                 compatible = "gpio-keys";
   59                 #address-cells = <1>;
   60                 #size-cells = <0>;
   61 
   62                 button@1 {
   63                         debounce-interval = <50>;
   64                         wakeup-source;
   65                         linux,code = <116>;
   66                         label = "POWER";
   67                         gpios = <&iofpga_gpio0 0 0x4>;
   68                 };
   69                 [....]
   70         };
Cache object: 67735add394a70027d76bac0bf2547dc 
 
 |