All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] sunxi LRADC/volume key wakeup support
@ 2021-04-30  4:20 Samuel Holland
  2021-04-30  4:20 ` [PATCH v3 1/2] dt-bindings: sun4i-a10-lradc-keys: Accept wakeup-source property Samuel Holland
  2021-04-30  4:20 ` [PATCH v3 2/2] input: sun4i-lradc-keys - Add wakup support Samuel Holland
  0 siblings, 2 replies; 3+ messages in thread
From: Samuel Holland @ 2021-04-30  4:20 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Hans de Goede, Rob Herring, Maxime Ripard, Chen-Yu Tsai,
	Jernej Skrabec, devicetree, linux-input, linux-kernel,
	linux-sunxi, Samuel Holland

This series allows the volume keys on the PinePhone (and other devices
with LRADC buttons) to wake up the device.

Currently `make dtbs_check` complains because the DT update was merged
without the binding.

Changes since v2:
  - Dropped unnecessary pr_err in platform_get_irq() error path
  - Dropped patch 3 (DT update) as it was merged
  - Added Acked-by/Reviewed-by tags

Changes since v1:
  - Add requisite DT binding change
  - Only add wakeup capability if "wakeup-source" is present
  - Warn but do not error out if setting the wake IRQ fails
  - Add "wakeup-source" property to PinePhone device tree

Ondrej Jirman (1):
  input: sun4i-lradc-keys -  Add wakup support

Samuel Holland (1):
  dt-bindings: sun4i-a10-lradc-keys: Accept wakeup-source property

 .../input/allwinner,sun4i-a10-lradc-keys.yaml |  2 ++
 drivers/input/keyboard/sun4i-lradc-keys.c     | 20 +++++++++++++++----
 2 files changed, 18 insertions(+), 4 deletions(-)

-- 
2.26.3


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v3 1/2] dt-bindings: sun4i-a10-lradc-keys: Accept wakeup-source property
  2021-04-30  4:20 [PATCH v3 0/2] sunxi LRADC/volume key wakeup support Samuel Holland
@ 2021-04-30  4:20 ` Samuel Holland
  2021-04-30  4:20 ` [PATCH v3 2/2] input: sun4i-lradc-keys - Add wakup support Samuel Holland
  1 sibling, 0 replies; 3+ messages in thread
From: Samuel Holland @ 2021-04-30  4:20 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Hans de Goede, Rob Herring, Maxime Ripard, Chen-Yu Tsai,
	Jernej Skrabec, devicetree, linux-input, linux-kernel,
	linux-sunxi, Samuel Holland, Rob Herring

The LRADC provides an interrupt that can be used to wake the system.
Signify this by accepting a "wakeup-source" property in the binding.

Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Samuel Holland <samuel@sholland.org>
---
 .../bindings/input/allwinner,sun4i-a10-lradc-keys.yaml          | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml b/Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
index cffd02028d02..d74f2002409e 100644
--- a/Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
+++ b/Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
@@ -29,6 +29,8 @@ properties:
     description:
       Regulator for the LRADC reference voltage
 
+  wakeup-source: true
+
 patternProperties:
   "^button-[0-9]+$":
     type: object
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v3 2/2] input: sun4i-lradc-keys -  Add wakup support
  2021-04-30  4:20 [PATCH v3 0/2] sunxi LRADC/volume key wakeup support Samuel Holland
  2021-04-30  4:20 ` [PATCH v3 1/2] dt-bindings: sun4i-a10-lradc-keys: Accept wakeup-source property Samuel Holland
@ 2021-04-30  4:20 ` Samuel Holland
  1 sibling, 0 replies; 3+ messages in thread
From: Samuel Holland @ 2021-04-30  4:20 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Hans de Goede, Rob Herring, Maxime Ripard, Chen-Yu Tsai,
	Jernej Skrabec, devicetree, linux-input, linux-kernel,
	linux-sunxi, Samuel Holland, Ondrej Jirman

From: Ondrej Jirman <megous@megous.com>

Allow the driver to wake the system on key press if the "wakeup-source"
property is provided in the device tree. Using the LRADC as a wakeup
source requires keeping the AVCC domain active during sleep. Since this
has a nontrivial impact on power consumption (sometimes doubling it),
disable the LRADC wakeup source by default.

Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Ondrej Jirman <megous@megous.com>
Signed-off-by: Samuel Holland <samuel@sholland.org>
---
 drivers/input/keyboard/sun4i-lradc-keys.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/input/keyboard/sun4i-lradc-keys.c b/drivers/input/keyboard/sun4i-lradc-keys.c
index 4a796bed48ac..af1683d68c8c 100644
--- a/drivers/input/keyboard/sun4i-lradc-keys.c
+++ b/drivers/input/keyboard/sun4i-lradc-keys.c
@@ -22,6 +22,8 @@
 #include <linux/module.h>
 #include <linux/of_platform.h>
 #include <linux/platform_device.h>
+#include <linux/pm_wakeirq.h>
+#include <linux/pm_wakeup.h>
 #include <linux/regulator/consumer.h>
 #include <linux/slab.h>
 
@@ -226,8 +228,7 @@ static int sun4i_lradc_probe(struct platform_device *pdev)
 {
 	struct sun4i_lradc_data *lradc;
 	struct device *dev = &pdev->dev;
-	int i;
-	int error;
+	int error, i, irq;
 
 	lradc = devm_kzalloc(dev, sizeof(struct sun4i_lradc_data), GFP_KERNEL);
 	if (!lradc)
@@ -272,8 +273,11 @@ static int sun4i_lradc_probe(struct platform_device *pdev)
 	if (IS_ERR(lradc->base))
 		return PTR_ERR(lradc->base);
 
-	error = devm_request_irq(dev, platform_get_irq(pdev, 0),
-				 sun4i_lradc_irq, 0,
+	irq = platform_get_irq(pdev, 0);
+	if (irq < 0)
+		return irq;
+
+	error = devm_request_irq(dev, irq, sun4i_lradc_irq, 0,
 				 "sun4i-a10-lradc-keys", lradc);
 	if (error)
 		return error;
@@ -282,6 +286,14 @@ static int sun4i_lradc_probe(struct platform_device *pdev)
 	if (error)
 		return error;
 
+	if (device_property_read_bool(dev, "wakeup-source")) {
+		device_set_wakeup_capable(dev, true);
+
+		error = dev_pm_set_wake_irq(dev, irq);
+		if (error)
+			dev_warn(dev, "Failed to set wake IRQ\n");
+	}
+
 	return 0;
 }
 
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-04-30  4:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-30  4:20 [PATCH v3 0/2] sunxi LRADC/volume key wakeup support Samuel Holland
2021-04-30  4:20 ` [PATCH v3 1/2] dt-bindings: sun4i-a10-lradc-keys: Accept wakeup-source property Samuel Holland
2021-04-30  4:20 ` [PATCH v3 2/2] input: sun4i-lradc-keys - Add wakup support Samuel Holland

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.