1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/touchscreen/resistive-adc-touch.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Generic resistive touchscreen ADC
8
9maintainers:
10  - Oleksij Rempel <o.rempel@pengutronix.de>
11
12description: |
13  Generic ADC based resistive touchscreen controller
14  The device must be connected to an ADC device that provides channels for
15  position measurement and optional pressure.
16
17allOf:
18  - $ref: touchscreen.yaml#
19
20properties:
21  compatible:
22    const: resistive-adc-touch
23
24  io-channels:
25    minItems: 2
26    items:
27      - description: x
28      - description: y
29      - description: pressure (optional)
30      - description: z1 (optional)
31      - description: z2 (optional)
32
33  io-channel-names:
34    oneOf:
35      - items:
36          - enum: [x, y]
37          - enum: [x, y]
38      - items:
39          - enum: [x, y, pressure]
40          - enum: [x, y, pressure]
41          - enum: [x, y, pressure]
42      - items:
43          - enum: [x, y, z1, z2]
44          - enum: [x, y, z1, z2]
45          - enum: [x, y, z1, z2]
46          - enum: [x, y, z1, z2]
47
48  touchscreen-size-x: true
49  touchscreen-size-y: true
50  touchscreen-fuzz-x: true
51  touchscreen-fuzz-y: true
52  touchscreen-inverted-x: true
53  touchscreen-inverted-y: true
54  touchscreen-swapped-x-y: true
55  touchscreen-min-pressure: true
56  touchscreen-x-plate-ohms: true
57
58additionalProperties: false
59
60required:
61  - compatible
62  - io-channels
63  - io-channel-names
64
65examples:
66  - |
67    touchscreen {
68      compatible = "resistive-adc-touch";
69      io-channels = <&adc 24>, <&adc 25>;
70      io-channel-names = "y", "x";
71    };
72  - |
73    touchscreen {
74      compatible = "resistive-adc-touch";
75      touchscreen-min-pressure = <50000>;
76      io-channels = <&adc 24>, <&adc 25>, <&adc 26>;
77      io-channel-names = "y", "pressure", "x";
78    };
79  - |
80    touchscreen {
81      compatible = "resistive-adc-touch";
82      touchscreen-min-pressure = <50000>;
83      io-channels = <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>;
84      io-channel-names = "x", "z1", "z2", "y";
85      touchscreen-x-plate-ohms = <800>;
86    };
87