]> Git Repo - u-boot.git/blob - dts/upstream/Bindings/power/wakeup-source.txt
Merge branch 'next'
[u-boot.git] / dts / upstream / Bindings / power / wakeup-source.txt
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/ads7846.txt
29 4. "linux,keypad-wakeup"        Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
30 5. "linux,input-wakeup"         Documentation/devicetree/bindings/input/samsung-keypad.txt
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         };
This page took 0.030555 seconds and 4 git commands to generate.