1 Specifying wakeup capability for devices 2 ============================================ 3 4 Any device nodes 5 ---------------- 6 Nodes that describe devices which have wakeup capability may contain a 7 "wakeup-source" boolean property. 8 9 If the device is marked as a wakeup-source, interrupt wake capability depends 10 on the device specific "interrupt-names" property. If no interrupts are labeled 11 as wake capable, then it is up to the device to determine which interrupts can 12 wake the system. 13 14 However if a device has a dedicated interrupt as the wakeup source, then it 15 needs to specify/identify it using a device specific interrupt name. In such 16 cases only that interrupt can be used as a wakeup interrupt. 17 18 While various legacy interrupt names exist, new devices should use "wakeup" as 19 the canonical interrupt name. 20 21 List of legacy properties and respective binding document 22 --------------------------------------------------------- 23 24 1. "gpio-key,wakeup" Documentation/devicetree/bindings/input/gpio-keys{,-polled}.txt 25 2. "has-tpo" Documentation/devicetree/bindings/rtc/rtc-opal.txt 26 3. "linux,wakeup" Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt 27 Documentation/devicetree/bindings/mfd/tc3589x.txt 28 Documentation/devicetree/bindings/input/touchscreen/ti,ads7843.yaml 29 4. "linux,keypad-wakeup" Documentation/devicetree/bindings/input/qcom,pm8921-keypad.yaml 30 5. "linux,input-wakeup" Documentation/devicetree/bindings/input/samsung,s3c6410-keypad.yaml 31 6. "nvidia,wakeup-source" Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt 32 33 Examples 34 -------- 35 36 1. With "wakeup" interrupt name 37 38 device@10000 { 39 compatible = "vendor,device-id"; 40 reg = <0x10000 0x1000>; 41 interrupts = <0 19 4>, <0 21 4>, <0 22 4>; 42 interrupt-names = "ack", "err", "wakeup"; 43 wakeup-source; 44 }; 45 46 2. Without "wakeup" interrupt name 47 48 embedded-controller { 49 compatible = "google,cros-ec-i2c"; 50 reg = <0x1e>; 51 interrupts = <6 0>; 52 interrupt-parent = <&gpx1>; 53 pinctrl-names = "default"; 54 pinctrl-0 = <&ec_irq>; 55 wakeup-source; 56 }; 57 58 3. Without interrupts 59 60 gpio_keys { 61 compatible = "gpio-keys"; 62 #address-cells = <1>; 63 #size-cells = <0>; 64 65 button@1 { 66 debounce-interval = <50>; 67 wakeup-source; 68 linux,code = <116>; 69 label = "POWER"; 70 gpios = <&iofpga_gpio0 0 0x4>; 71 }; 72 [....] 73 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.