1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/serio/ps2-gpio.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: GPIO based PS/2
8
9maintainers:
10  - Danilo Krummrich <danilokrummrich@dk-develop.de>
11
12properties:
13  compatible:
14    const: ps2-gpio
15
16  data-gpios:
17    description:
18      the gpio used for the data signal - this should be flagged as
19      active high using open drain with (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)
20      from <dt-bindings/gpio/gpio.h> since the signal is open drain by
21      definition
22    maxItems: 1
23
24  clk-gpios:
25    description:
26      the gpio used for the clock signal - this should be flagged as
27      active high using open drain with (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)
28      from <dt-bindings/gpio/gpio.h> since the signal is open drain by
29      definition
30    maxItems: 1
31
32  interrupts:
33    description:
34      The given interrupt should trigger on the falling edge of the clock line.
35    maxItems: 1
36
37  write-enable:
38    type: boolean
39    description:
40      Indicates whether write function is provided to serio device. Possibly
41      providing the write function will not work, because of the tough timing
42      requirements.
43
44required:
45  - compatible
46  - data-gpios
47  - clk-gpios
48  - interrupts
49
50additionalProperties: false
51
52examples:
53  - |
54    #include <dt-bindings/gpio/gpio.h>
55    #include <dt-bindings/interrupt-controller/irq.h>
56
57    ps2 {
58        compatible = "ps2-gpio";
59        interrupt-parent = <&gpio>;
60        interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
61        data-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
62        clk-gpios = <&gpio 23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
63        write-enable;
64    };
65