112 lines
2.8 KiB
YAML
112 lines
2.8 KiB
YAML
|
# 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.
|
||
|
|
||
|
'#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
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- interrupts
|
||
|
- keypad,num-rows
|
||
|
- keypad,num-columns
|
||
|
- linux,keymap
|
||
|
|
||
|
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)
|
||
|
>;
|
||
|
};
|
||
|
};
|
||
|
...
|