Commit d2ff98b7 authored by Tony Lindgren's avatar Tony Lindgren Committed by Dmitry Torokhov

dt-bindings: input: gpio-keys: Allow optional dedicated wakeirq

Allow configuring an optional dedicated wakeirq for gpio-keys that
some SoCs have.

Let's use the common interrupt naming "irq" and "wakeup" that we already
have in use for some drivers and subsystems like i2c framework.

Note that the gpio-keys interrupt property is optional. If only a gpio
property is specified, the driver tries to translate the gpio into an
interrupt.
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
Link: https://lore.kernel.org/r/20231129110618.27551-1-tony@atomide.comSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent a42b4bd5
...@@ -31,7 +31,23 @@ patternProperties: ...@@ -31,7 +31,23 @@ patternProperties:
maxItems: 1 maxItems: 1
interrupts: interrupts:
maxItems: 1 oneOf:
- items:
- description: Optional key interrupt or wakeup interrupt
- items:
- description: Key interrupt
- description: Wakeup interrupt
interrupt-names:
description:
Optional interrupt names, can be used to specify a separate dedicated
wake-up interrupt in addition to the gpio irq
oneOf:
- items:
- enum: [ irq, wakeup ]
- items:
- const: irq
- const: wakeup
label: label:
description: Descriptive name of the key. description: Descriptive name of the key.
...@@ -97,6 +113,20 @@ patternProperties: ...@@ -97,6 +113,20 @@ patternProperties:
- required: - required:
- gpios - gpios
allOf:
- if:
properties:
interrupts:
minItems: 2
required:
- interrupts
then:
properties:
interrupt-names:
minItems: 2
required:
- interrupt-names
dependencies: dependencies:
wakeup-event-action: [ wakeup-source ] wakeup-event-action: [ wakeup-source ]
linux,input-value: [ gpios ] linux,input-value: [ gpios ]
...@@ -137,6 +167,15 @@ examples: ...@@ -137,6 +167,15 @@ examples:
linux,code = <108>; linux,code = <108>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>; interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
}; };
key-wakeup {
label = "GPIO Key WAKEUP";
linux,code = <143>;
interrupts-extended = <&intc 2 IRQ_TYPE_EDGE_FALLING>,
<&intc_wakeup 0 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "irq", "wakeup";
wakeup-source;
};
}; };
... ...
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment