1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/hid-over-i2c.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: HID over I2C Devices
8
9maintainers:
10  - Benjamin Tissoires <benjamin.tissoires@redhat.com>
11  - Jiri Kosina <jkosina@suse.cz>
12
13description: |+
14  HID over I2C provides support for various Human Interface Devices over the
15  I2C bus. These devices can be for example touchpads, keyboards, touch screens
16  or sensors.
17
18  The specification has been written by Microsoft and is currently available here:
19  https://msdn.microsoft.com/en-us/library/windows/hardware/hh852380.aspx
20
21  If this binding is used, the kernel module i2c-hid will handle the communication
22  with the device and the generic hid core layer will handle the protocol.
23
24allOf:
25  - $ref: /schemas/input/touchscreen/touchscreen.yaml#
26
27properties:
28  compatible:
29    oneOf:
30      - items:
31          - enum:
32              - wacom,w9013
33          - const: hid-over-i2c
34      - description: Just "hid-over-i2c" alone is allowed, but not recommended.
35        const: hid-over-i2c
36
37  reg:
38    maxItems: 1
39
40  interrupts:
41    maxItems: 1
42
43  hid-descr-addr:
44    description: HID descriptor address
45    $ref: /schemas/types.yaml#/definitions/uint32
46
47  panel: true
48
49  post-power-on-delay-ms:
50    description: Time required by the device after enabling its regulators
51      or powering it on, before it is ready for communication.
52
53  touchscreen-inverted-x: true
54
55  touchscreen-inverted-y: true
56
57  vdd-supply:
58    description: 3.3V supply
59
60  vddl-supply:
61    description: 1.8V supply
62
63  wakeup-source: true
64
65required:
66  - compatible
67  - reg
68  - interrupts
69
70additionalProperties: false
71
72examples:
73  - |
74    i2c {
75        #address-cells = <1>;
76        #size-cells = <0>;
77
78        hid@2c {
79            compatible = "hid-over-i2c";
80            reg = <0x2c>;
81            hid-descr-addr = <0x0020>;
82            interrupts = <3 2>;
83        };
84    };
85...
86