162306a36Sopenharmony_ciSpecifying wakeup capability for devices
262306a36Sopenharmony_ci============================================
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciAny device nodes
562306a36Sopenharmony_ci----------------
662306a36Sopenharmony_ciNodes that describe devices which has wakeup capability must contain an
762306a36Sopenharmony_ci"wakeup-source" boolean property.
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciAlso, if device is marked as a wakeup source, then all the primary
1062306a36Sopenharmony_ciinterrupt(s) can be used as wakeup interrupt(s).
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciHowever if the devices have dedicated interrupt as the wakeup source
1362306a36Sopenharmony_cithen they need to specify/identify the same using device specific
1462306a36Sopenharmony_ciinterrupt name. In such cases only that interrupt can be used as wakeup
1562306a36Sopenharmony_ciinterrupt.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciList of legacy properties and respective binding document
1862306a36Sopenharmony_ci---------------------------------------------------------
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci1. "gpio-key,wakeup"		Documentation/devicetree/bindings/input/gpio-keys{,-polled}.txt
2162306a36Sopenharmony_ci2. "has-tpo"			Documentation/devicetree/bindings/rtc/rtc-opal.txt
2262306a36Sopenharmony_ci3. "linux,wakeup"		Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
2362306a36Sopenharmony_ci				Documentation/devicetree/bindings/mfd/tc3589x.txt
2462306a36Sopenharmony_ci				Documentation/devicetree/bindings/input/touchscreen/ads7846.txt
2562306a36Sopenharmony_ci4. "linux,keypad-wakeup"	Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
2662306a36Sopenharmony_ci5. "linux,input-wakeup"		Documentation/devicetree/bindings/input/samsung-keypad.txt
2762306a36Sopenharmony_ci6. "nvidia,wakeup-source"	Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciExamples
3062306a36Sopenharmony_ci--------
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci1. With "wakeup" interrupt name
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	device@10000 {
3562306a36Sopenharmony_ci		compatible	= "vendor,device-id";
3662306a36Sopenharmony_ci		reg		= <0x10000 0x1000>;
3762306a36Sopenharmony_ci		interrupts	= <0 19 4>, <0 21 4>, <0 22 4>;
3862306a36Sopenharmony_ci		interrupt-names	= "ack", "err", "wakeup";
3962306a36Sopenharmony_ci		wakeup-source;
4062306a36Sopenharmony_ci	};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci2. Without "wakeup" interrupt name
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci	embedded-controller {
4562306a36Sopenharmony_ci		compatible = "google,cros-ec-i2c";
4662306a36Sopenharmony_ci		reg = <0x1e>;
4762306a36Sopenharmony_ci		interrupts = <6 0>;
4862306a36Sopenharmony_ci		interrupt-parent = <&gpx1>;
4962306a36Sopenharmony_ci		pinctrl-names = "default";
5062306a36Sopenharmony_ci		pinctrl-0 = <&ec_irq>;
5162306a36Sopenharmony_ci		wakeup-source;
5262306a36Sopenharmony_ci	};
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci3. Without interrupts
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci	gpio_keys {
5762306a36Sopenharmony_ci		compatible = "gpio-keys";
5862306a36Sopenharmony_ci		#address-cells = <1>;
5962306a36Sopenharmony_ci		#size-cells = <0>;
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci		button@1 {
6262306a36Sopenharmony_ci			debounce-interval = <50>;
6362306a36Sopenharmony_ci			wakeup-source;
6462306a36Sopenharmony_ci			linux,code = <116>;
6562306a36Sopenharmony_ci			label = "POWER";
6662306a36Sopenharmony_ci			gpios = <&iofpga_gpio0 0 0x4>;
6762306a36Sopenharmony_ci		};
6862306a36Sopenharmony_ci		[....]
6962306a36Sopenharmony_ci	};
70