xref: /linux/Documentation/devicetree/bindings/input/touchscreen/fsl,imx6ul-tsc.yaml (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/touchscreen/fsl,imx6ul-tsc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale i.MX6UL Touch Controller
8
9maintainers:
10  - Haibo Chen <haibo.chen@nxp.com>
11  - Shawn Guo <shawnguo@kernel.org>
12  - Sascha Hauer <s.hauer@pengutronix.de>
13
14properties:
15  compatible:
16    const: fsl,imx6ul-tsc
17
18  reg:
19    items:
20      - description: touch controller address
21      - description: ADC2 address
22
23  interrupts:
24    items:
25      - description: touch controller address
26      - description: ADC2 address
27
28  clocks:
29    maxItems: 2
30
31  clock-names:
32    items:
33      - const: tsc
34      - const: adc
35
36  xnur-gpios:
37    maxItems: 1
38    description:
39      The X- gpio this controller connect to. This xnur-gpio returns to
40      low once the finger leave the touch screen (The last touch event
41      the touch controller capture).
42
43  measure-delay-time:
44    $ref: /schemas/types.yaml#/definitions/uint32
45    description:
46      The value of measure delay time. Before X-axis or Y-axis measurement,
47      the screen need some time before even potential distribution ready.
48    default: 0xffff
49    minimum: 0
50    maximum: 0xffffff
51
52  pre-charge-time:
53    $ref: /schemas/types.yaml#/definitions/uint32
54    description:
55      The touch screen need some time to precharge.
56    default: 0xfff
57    minimum: 0
58    maximum: 0xffffffff
59
60  touchscreen-average-samples:
61    $ref: /schemas/types.yaml#/definitions/uint32
62    description: Number of data samples which are averaged for each read.
63    enum: [ 1, 4, 8, 16, 32 ]
64
65  debounce-delay-us:
66    description: |
67      Minimum duration in microseconds a signal must remain stable
68      to be considered valid.
69
70      Drivers must convert this value to IPG clock cycles and map
71      it to one of the four discrete thresholds exposed by the
72      TSC_DEBUG_MODE2 register:
73
74        0: 8191 IPG cycles
75        1: 4095 IPG cycles
76        2: 2047 IPG cycles
77        3: 1023 IPG cycles
78
79required:
80  - compatible
81  - reg
82  - interrupts
83  - clocks
84  - clock-names
85  - xnur-gpios
86
87allOf:
88  - $ref: touchscreen.yaml#
89
90additionalProperties: false
91
92examples:
93  - |
94    #include <dt-bindings/interrupt-controller/arm-gic.h>
95    #include <dt-bindings/clock/imx6ul-clock.h>
96    #include <dt-bindings/gpio/gpio.h>
97    touchscreen@2040000 {
98        compatible = "fsl,imx6ul-tsc";
99        reg = <0x02040000 0x4000>, <0x0219c000 0x4000>;
100        interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
101                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
102        clocks = <&clks IMX6UL_CLK_IPG>,
103                 <&clks IMX6UL_CLK_ADC2>;
104        clock-names = "tsc", "adc";
105        pinctrl-names = "default";
106        pinctrl-0 = <&pinctrl_tsc>;
107        xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
108        measure-delay-time = <0xfff>;
109        pre-charge-time = <0xffff>;
110        touchscreen-average-samples = <32>;
111    };
112