forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
3.4 KiB
142 lines
3.4 KiB
# SPDX-License-Identifier: GPL-2.0-only |
|
%YAML 1.2 |
|
--- |
|
$id: http://devicetree.org/schemas/input/gpio-keys.yaml# |
|
$schema: http://devicetree.org/meta-schemas/core.yaml# |
|
|
|
title: Device-Tree bindings for GPIO attached keys |
|
|
|
maintainers: |
|
- Rob Herring <[email protected]> |
|
|
|
properties: |
|
compatible: |
|
enum: |
|
- gpio-keys |
|
- gpio-keys-polled |
|
|
|
autorepeat: true |
|
|
|
label: |
|
description: Name of entire device |
|
|
|
poll-interval: true |
|
|
|
patternProperties: |
|
"^(button|event|key|switch|(button|event|key|switch)-[a-z0-9-]+|[a-z0-9-]+-(button|event|key|switch))$": |
|
$ref: input.yaml# |
|
|
|
properties: |
|
gpios: |
|
maxItems: 1 |
|
|
|
interrupts: |
|
maxItems: 1 |
|
|
|
label: |
|
description: Descriptive name of the key. |
|
|
|
linux,code: |
|
description: Key / Axis code to emit. |
|
|
|
linux,input-type: |
|
default: 1 # EV_KEY |
|
|
|
linux,input-value: |
|
description: | |
|
If linux,input-type is EV_ABS or EV_REL then this |
|
value is sent for events this button generates when pressed. |
|
EV_ABS/EV_REL axis will generate an event with a value of 0 |
|
when all buttons with linux,input-type == type and |
|
linux,code == axis are released. This value is interpreted |
|
as a signed 32 bit value, e.g. to make a button generate a |
|
value of -1 use: |
|
|
|
linux,input-value = <0xffffffff>; /* -1 */ |
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
|
|
debounce-interval: |
|
description: |
|
Debouncing interval time in milliseconds. If not specified defaults to 5. |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
|
|
default: 5 |
|
|
|
wakeup-source: |
|
description: Button can wake-up the system. |
|
|
|
wakeup-event-action: |
|
description: | |
|
Specifies whether the key should wake the system when asserted, when |
|
deasserted, or both. This property is only valid for keys that wake up the |
|
system (e.g., when the "wakeup-source" property is also provided). |
|
|
|
Supported values are defined in linux-event-codes.h: |
|
|
|
EV_ACT_ANY - both asserted and deasserted |
|
EV_ACT_ASSERTED - asserted |
|
EV_ACT_DEASSERTED - deasserted |
|
$ref: /schemas/types.yaml#/definitions/uint32 |
|
enum: [0, 1, 2] |
|
|
|
linux,can-disable: |
|
description: |
|
Indicates that button is connected to dedicated (not shared) interrupt |
|
which can be disabled to suppress events from the button. |
|
type: boolean |
|
|
|
required: |
|
- linux,code |
|
|
|
anyOf: |
|
- required: |
|
- interrupts |
|
- required: |
|
- interrupts-extended |
|
- required: |
|
- gpios |
|
|
|
dependencies: |
|
wakeup-event-action: [ wakeup-source ] |
|
linux,input-value: [ gpios ] |
|
|
|
unevaluatedProperties: false |
|
|
|
allOf: |
|
- $ref: input.yaml# |
|
- if: |
|
properties: |
|
compatible: |
|
const: gpio-keys-polled |
|
then: |
|
required: |
|
- poll-interval |
|
else: |
|
properties: |
|
poll-interval: false |
|
|
|
additionalProperties: false |
|
|
|
examples: |
|
- | |
|
#include <dt-bindings/interrupt-controller/irq.h> |
|
|
|
gpio-keys { |
|
compatible = "gpio-keys"; |
|
autorepeat; |
|
|
|
key-up { |
|
label = "GPIO Key UP"; |
|
linux,code = <103>; |
|
gpios = <&gpio1 0 1>; |
|
}; |
|
|
|
key-down { |
|
label = "GPIO Key DOWN"; |
|
linux,code = <108>; |
|
interrupts = <1 IRQ_TYPE_EDGE_FALLING>; |
|
}; |
|
}; |
|
|
|
...
|
|
|