| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/input/adi,adp5588.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Analog Devices ADP5588 Keypad Controller
- maintainers:
- - Nuno Sá <nuno.sa@analog.com>
- description: |
- Analog Devices Mobile I/O Expander and QWERTY Keypad Controller
- https://www.analog.com/media/en/technical-documentation/data-sheets/ADP5588.pdf
- allOf:
- - $ref: matrix-keymap.yaml#
- - $ref: input.yaml#
- properties:
- compatible:
- enum:
- - adi,adp5587
- - adi,adp5588
- reg:
- maxItems: 1
- vcc-supply:
- description: Supply Voltage Input
- reset-gpios:
- description:
- If specified, it will be asserted during driver probe. As the line is
- active low, it should be marked GPIO_ACTIVE_LOW.
- maxItems: 1
- interrupts:
- maxItems: 1
- gpio-controller:
- description:
- This property applies if either keypad,num-rows lower than 8 or
- keypad,num-columns lower than 10.
- '#gpio-cells':
- const: 2
- interrupt-controller:
- description:
- This property applies if either keypad,num-rows lower than 8 or
- keypad,num-columns lower than 10. This property is optional if
- keypad,num-rows or keypad,num-columns are not specified as the
- device is then configured to be used purely for gpio during which
- interrupts may or may not be utilized.
- '#interrupt-cells':
- const: 2
- adi,unlock-keys:
- description:
- Specifies a maximum of 2 keys that can be used to unlock the keypad.
- If this property is set, the keyboard will be locked and only unlocked
- after these keys are pressed. If only one key is set, a double click is
- needed to unlock the keypad. The value of this property cannot be bigger
- or equal than keypad,num-rows * keypad,num-columns.
- $ref: /schemas/types.yaml#/definitions/uint32-array
- minItems: 1
- maxItems: 2
- dependencies:
- keypad,num-rows:
- - linux,keymap
- - keypad,num-columns
- keypad,num-columns:
- - linux,keymap
- - keypad,num-rows
- linux,keymap:
- - keypad,num-rows
- - keypad,num-columns
- - interrupts
- interrupt-controller:
- - interrupts
- required:
- - compatible
- - reg
- unevaluatedProperties: false
- examples:
- - |
- #include <dt-bindings/interrupt-controller/irq.h>
- #include <dt-bindings/input/input.h>
- #include <dt-bindings/gpio/gpio.h>
- i2c {
- #address-cells = <1>;
- #size-cells = <0>;
- keys@34 {
- compatible = "adi,adp5588";
- reg = <0x34>;
- vcc-supply = <&vcc>;
- interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
- interrupt-parent = <&gpio>;
- reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
- keypad,num-rows = <1>;
- keypad,num-columns = <9>;
- linux,keymap = <
- MATRIX_KEY(0x00, 0x00, KEY_1)
- MATRIX_KEY(0x00, 0x01, KEY_2)
- MATRIX_KEY(0x00, 0x02, KEY_3)
- MATRIX_KEY(0x00, 0x03, KEY_4)
- MATRIX_KEY(0x00, 0x04, KEY_5)
- MATRIX_KEY(0x00, 0x05, KEY_6)
- MATRIX_KEY(0x00, 0x06, KEY_7)
- MATRIX_KEY(0x00, 0x07, KEY_8)
- MATRIX_KEY(0x00, 0x08, KEY_9)
- >;
- };
- };
- - |
- #include <dt-bindings/gpio/gpio.h>
- i2c {
- #address-cells = <1>;
- #size-cells = <0>;
- gpio@34 {
- compatible = "adi,adp5588";
- reg = <0x34>;
- #gpio-cells = <2>;
- gpio-controller;
- };
- };
- ...
|