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
65required:
66  - compatible
67  - reg
68  - interrupts
69  - clocks
70  - clock-names
71  - xnur-gpios
72
73allOf:
74  - $ref: touchscreen.yaml#
75
76additionalProperties: false
77
78examples:
79  - |
80    #include <dt-bindings/interrupt-controller/arm-gic.h>
81    #include <dt-bindings/clock/imx6ul-clock.h>
82    #include <dt-bindings/gpio/gpio.h>
83    touchscreen@2040000 {
84        compatible = "fsl,imx6ul-tsc";
85        reg = <0x02040000 0x4000>, <0x0219c000 0x4000>;
86        interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
87                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
88        clocks = <&clks IMX6UL_CLK_IPG>,
89                 <&clks IMX6UL_CLK_ADC2>;
90        clock-names = "tsc", "adc";
91        pinctrl-names = "default";
92        pinctrl-0 = <&pinctrl_tsc>;
93        xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
94        measure-delay-time = <0xfff>;
95        pre-charge-time = <0xffff>;
96        touchscreen-average-samples = <32>;
97    };
98