1# SPDX-License-Identifier: GPL-2.0-only 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/input/gpio-keys.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Device-Tree bindings for GPIO attached keys 8 9maintainers: 10 - Rob Herring <robh@kernel.org> 11 12properties: 13 compatible: 14 enum: 15 - gpio-keys 16 - gpio-keys-polled 17 18patternProperties: 19 ".*": 20 if: 21 type: object 22 then: 23 $ref: input.yaml# 24 25 properties: 26 gpios: 27 maxItems: 1 28 29 interrupts: 30 maxItems: 1 31 32 label: 33 description: Descriptive name of the key. 34 35 linux,code: 36 description: Key / Axis code to emit. 37 $ref: /schemas/types.yaml#/definitions/uint32 38 39 linux,input-type: 40 description: 41 Specify event type this button/key generates. If not specified defaults to 42 <1> == EV_KEY. 43 $ref: /schemas/types.yaml#/definitions/uint32 44 45 default: 1 46 47 linux,input-value: 48 description: | 49 If linux,input-type is EV_ABS or EV_REL then this 50 value is sent for events this button generates when pressed. 51 EV_ABS/EV_REL axis will generate an event with a value of 0 52 when all buttons with linux,input-type == type and 53 linux,code == axis are released. This value is interpreted 54 as a signed 32 bit value, e.g. to make a button generate a 55 value of -1 use: 56 57 linux,input-value = <0xffffffff>; /* -1 */ 58 59 $ref: /schemas/types.yaml#/definitions/uint32 60 61 debounce-interval: 62 description: 63 Debouncing interval time in milliseconds. If not specified defaults to 5. 64 $ref: /schemas/types.yaml#/definitions/uint32 65 66 default: 5 67 68 wakeup-source: 69 description: Button can wake-up the system. 70 71 wakeup-event-action: 72 description: | 73 Specifies whether the key should wake the system when asserted, when 74 deasserted, or both. This property is only valid for keys that wake up the 75 system (e.g., when the "wakeup-source" property is also provided). 76 77 Supported values are defined in linux-event-codes.h: 78 79 EV_ACT_ANY - both asserted and deasserted 80 EV_ACT_ASSERTED - asserted 81 EV_ACT_DEASSERTED - deasserted 82 $ref: /schemas/types.yaml#/definitions/uint32 83 enum: [0, 1, 2] 84 85 linux,can-disable: 86 description: 87 Indicates that button is connected to dedicated (not shared) interrupt 88 which can be disabled to suppress events from the button. 89 type: boolean 90 91 pinctrl-0: 92 maxItems: 1 93 94 pinctrl-names: 95 maxItems: 1 96 97 required: 98 - linux,code 99 100 anyOf: 101 - required: 102 - interrupts 103 - required: 104 - gpios 105 106 dependencies: 107 wakeup-event-action: [ wakeup-source ] 108 linux,input-value: [ gpios ] 109 110 unevaluatedProperties: false 111 112if: 113 properties: 114 compatible: 115 const: gpio-keys-polled 116then: 117 properties: 118 poll-interval: 119 description: 120 Poll interval time in milliseconds 121 $ref: /schemas/types.yaml#/definitions/uint32 122 123 required: 124 - poll-interval 125 126additionalProperties: false 127 128examples: 129 - | 130 #include <dt-bindings/interrupt-controller/irq.h> 131 132 gpio-keys { 133 compatible = "gpio-keys"; 134 autorepeat; 135 136 up { 137 label = "GPIO Key UP"; 138 linux,code = <103>; 139 gpios = <&gpio1 0 1>; 140 }; 141 142 down { 143 label = "GPIO Key DOWN"; 144 linux,code = <108>; 145 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 146 }; 147 }; 148 149... 150